Verilog乘法运算结果为0问题的解决

原Verilog程序如下:

wire [22:0] Total_Max;
reg  [23:0] Mixed_Max;
wire [23:0] overflow_elim;
 
assign overflow_elim = mixed_audio[23:0] * Total_Max/Mixed_Max;
 
仿真之后得出的结果overflow_elim 总是0。 
 
于是将overflow_elim 的位宽从24bit增加到48bit,即:
 
wire [47:0] overflow_elim;
 
然后就能出线正确的结果。
 
这其中的思想应该和软件是一致的,需要足够的存储空间来存储mixed_audio[23:0] * Total_Max的计算结果。
 
Total_Max是23bit的数,因此和mixed_audio相乘之后的最大值为48bit。然后在进行除法操作。
永不止步步 发表于11-10 13:58 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308217个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号