专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

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

作者:kb129   来源:kb129   点击数:  更新时间:2014年06月21日   【字体:

 原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。然后在进行除法操作
关闭窗口

相关文章