代碼大概是這樣的……
module adder(a,b,c,c_);
input [3:0] a,b;
output[4:1] c;
input c_;
reg [4:1] c;
reg [3:0] g,p;
genvar i;
generate
for(i=0;i<=3;i=i+1)
begin
assign g[i]=a[i]&b[i];
assign p[i]=a[i]|b[i];
end
assign c[1]=g[1]+(p[i]&c_);
for(i=2;i<=4;i=i+1)
assign c[i]=g[i]|(c[i-1]&p[i]);
endgenerate
endmodule
也不報錯,但是仿真結果不論輸入還是輸出都是x……
初始化是初始化了的!
uj5u.com熱心網友回復:
親,你的testbench呢,,仿真時未賦初值的情況下一般都是X(不定值)或者Z(高阻態)。uj5u.com熱心網友回復:
首先test_bench要寫對。其次在點擊simulate behavioral model時,一定要在hierarchy中先選中你的test_bench模塊。

uj5u.com熱心網友回復:
不要太相信仿真,經驗是XILinx的仿真不可靠uj5u.com熱心網友回復:
在你的方針檔案中沒有仿時鐘或者仿時鐘沒有初始值或者沒有寫激勵吧uj5u.com熱心網友回復:
test bench里initial給初始化的值uj5u.com熱心網友回復:
x一般是不可預知態,這個根據實際硬體情況確定的,不一定就出問題uj5u.com熱心網友回復:
真正做工程的時候,一般每個模塊都會加入一個reset的輸入信號。并且在這個信號拉低的時候對所有REG做初始化。然后在reset拉高的時候才處理業務邏輯。uj5u.com熱心網友回復:
如果只是學習仿真,你需要在你的module加入initial 塊。在其中做reg的初始化。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/145914.html
標籤:硬件設計
上一篇:解析度不能正常設定,且用投影儀分屏顯示時不能正常輸出,則很有可能是
下一篇:USRP自身損耗問題
