有符号和无符号赋值的问题
时间:10-02
整理:3721RD
点击:
integer tar;
reg [5:0]bar;
tar = -4'd12/4; 结果为1073741821
bar = -4'd12/4; 结果为61
根据运算优先级推算,第一个赋值 -4‘d12先转化为补码形式为4294967284,然后再除以4,得到结果
第二个赋值,应该也应用相同的方法推算,但是是不对的?
求教:这里应该怎么理解这个问题才好?
问题解决了,谢谢各位了.
第二个赋值应该是这样算的(-4'd12)转化成补码4294967284,除以4后,结果为1073741821,然后再取低6位传送给bar。
电路里面只有各种门电路,没有赋值
我的问题可以理解成在testbench中的语句,其实主要是verilog语言的语法规则,在好多教材里都举了这个例,因为不理解,所以在这里提出来。
完全按照电路行为来思考即可
现在的Verilog是支持寄存器赋值的,不支持wire赋值。
比如用xilinx器件用verilog写就可以,经过验证是支持的,门电路怎么搭这个到是不太理解,也许是FPGA在上电配置的时候,将这个赋的值固定为触发器,然后赋给变量。
请大家讨论下。
寄存器类型的应该为无符号类型的数字吧
可以 signed reg 。
如果从你的角度考虑,FPGA就变味了
