0

系统verilog中的总线或信号的比特减少有限制吗?

我想在下面的节点中检测到至少一个“1”,并且我正在使用“OR”运算符,但是在某些情况下它无法正常工作。这是我在模拟中看到的行为:

             |000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010=1
             |000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001=1
             |100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=0
             |110_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=0
             |111_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=1

OR 一元位减少运算符是否限制为 41 位?这意味着我不能减少等于或大于 42 位的总线/节点?

提前致谢

这是代码:

             node detect_ones  = 1; 
             node [`175-1:0] output_data;

             assign detect_ones   =  (|output_data[42:0])
4

1 回答 1

0

EDA Playground上显示它工作的最小示例。

但是,如果您错过了 43'b 声明,结果会有所不同。

|000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010=1
|000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001=1
|100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=0
|110_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=0
|111_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=1

应该 :

|43'b000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0010=1
|43'b000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001=1
|43'b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=1
|43'b110_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=1
|43'b111_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000=1
于 2015-09-17T18:17:04.040 回答