串联verilog中的奇怪之处

时间:2015-04-03 16:07:05

标签: verilog

我在verilog有一个模块,它有两个64位数字,这些数字是随机的,奇怪的是当我调试它时,fa是正确的,从1开始,但是{{ 1}}从0开始!有人可以帮助我吗?

它有什么问题?!

fb

1 个答案:

答案 0 :(得分:3)

此分配中存在位宽不匹配:

fb={one,b[51:0],12'b0};

左侧(LHS)为64位宽,但右侧(RHS)为65位宽。

LHS:

  • fb是64位宽[63:0]。

RHS:

  • one是1位宽
  • b[51:0]是52位宽
  • 12'b0是12位宽

(1 + 52 + 12 = 65)

one被忽略,因为fb [11:0] = 12'b0和fb [63:12] = b [51:0]。因此,如果b [51] = 0,则fb [63] = 0。

fa也是如此。