微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 有符号和无符号赋值的问题

有符号和无符号赋值的问题

时间: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就变味了

上一篇:模块连接问题
下一篇:ASIC方向发论文

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top