Bit manipulation 用于popcount比较的快速电路

Bit manipulation 用于popcount比较的快速电路,bit-manipulation,verilog,system-verilog,hamming-distance,digital,Bit Manipulation,Verilog,System Verilog,Hamming Distance,Digital,我正在设计一个电路,需要检查两个16位向量的popcount(位集数为1)是否相等。所以我需要做的是手术 logic[15:0] A,B; if (popcount(A) == popcount(B)) begin ... end (此处假定popcount是已定义的函数) 简单的解决方案确实是计算实际值并比较它们,但我想知道是否有另一种方法需要更少的逻辑级别来完成操作。我试着想办法利用它们的奇偶性,但没有多大成功…只需以人类可读的方式编写逻辑,然后让合成器对其进行优化。有一些用于降低逻辑级

我正在设计一个电路,需要检查两个16位向量的popcount(位集数为1)是否相等。所以我需要做的是手术

logic[15:0] A,B;

if (popcount(A) == popcount(B)) begin
...
end
(此处假定popcount是已定义的函数)


简单的解决方案确实是计算实际值并比较它们,但我想知道是否有另一种方法需要更少的逻辑级别来完成操作。我试着想办法利用它们的奇偶性,但没有多大成功…

只需以人类可读的方式编写逻辑,然后让合成器对其进行优化。有一些用于降低逻辑级别的人口计数算法。下面是一个例子:。肯定还有更多。搜索htem。只需以人类可读的方式编写逻辑,并让合成器对其进行优化。有一些用于降低逻辑级别的人口计数算法。下面是一个例子:。肯定还有更多。搜索htem。