專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

Verilog乘法運算結(jié)果為0問題的解決

作者:kb129   來源:kb129   點擊數(shù):  更新時間: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;
 
仿真之后得出的結(jié)果overflow_elim 總是0。
 
 
 
于是將overflow_elim 的位寬從24bit增加到48bit,即:
 
wire [47:0] overflow_elim;
 
然后就能出線正確的結(jié)果。
 
這其中的思想應(yīng)該和軟件是一致的,需要足夠的存儲空間來存儲mixed_audio[23:0] * Total_Max的計算結(jié)果。
 
Total_Max是23bit的數(shù),因此和mixed_audio相乘之后的最大值為48bit。然后在進(jìn)行除法操作
關(guān)閉窗口

相關(guān)文章