1 for循環(huán)方式例化方法
先給出 sub_module
module sub(
input [7:0] din,
output logic [7:0] dout
);
assign dout = din;
endmodule
要將這個module分別例化成u_sub_0和u_sub_1,并且每個都例化四次
for循環(huán)的實現(xiàn)方式如下
module top(
input [8*4-1 : 0] din0,
input [8*4-1 : 0] din1,
output logic [8*4-1 : 0] dout0,
output logic [8*4-1 : 0] dout1
);
genvar i;
generate for(i=0; i<4; i++) begin:inst
sub u_sub_0 (
//output
.dout(dout0[i*8 +: 8]),
//input
.din(din0[i*8 +: 8])
);
sub u_sub_1 (
//output
.dout(dout1[i*8 +: 8]),
//input
.din(din1[i*8 +: 8])
);
end
endgenerate
endmodule
來看看例化后的效果

可以看到,總共4組inst,每組inst中存在兩個u_sub
接下來點開inst[0]中的u_sub_0,看看它的信號是什么樣的

依次點擊,然后到shell界面粘貼內(nèi)容

此時可以清晰的看到,這個din信號是來自哪里,這也體現(xiàn)了,在begin后命名block的重要性
2 數(shù)組的方式例化
同樣的 sub_module,同樣的例化要求,這次改用數(shù)組的方式進行例化
module top(
input [8*4-1 : 0] din0,
input [8*4-1 : 0] din1,
output logic [8*4-1 : 0] dout0,
output logic [8*4-1 : 0] dout1
);
sub u_sub_0 (
//output
.dout(dout0),
//input
.din(din0)
);
sub u_sub_1 (
//output
.dout(dout1),
//input
.din(din1)
);
endmodule
來看看這次的例化效果

在打印出這種方式的層次化結(jié)構(gòu)


同樣有清晰的辨識效果
4 一些其他的技巧
對于二維數(shù)組而言,如果想在verdi中將二維數(shù)組展開,那么我們需要在dump波形是加上這句話
$fsdbDumpMDA;
這樣就可以在verdi中展開二維數(shù)組
當(dāng)一個數(shù)組范圍比較大不方便分析,可以將數(shù)組進行分段,操作如下

比如我要將32 bits位寬的din0信號分成8 bits位寬,可以這樣設(shè)置

效果如下

實現(xiàn)了對信號的拆分
對于一些信號,在這種例化方式下拉信號的波形不是很容易(這個例子一時沒想起來 >_<)
要拉出確定的波形可以這樣操作
在波形界面按g,會彈出下面這個框

讓后需要哪個信號選中即可添加


-
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25405 -
dump
+關(guān)注
關(guān)注
0文章
13瀏覽量
9693 -
Verilog設(shè)計
+關(guān)注
關(guān)注
0文章
20瀏覽量
6743
發(fā)布評論請先 登錄
開關(guān)量和模擬量是PLC初期使用最多的兩種輸入輸出方式?
兩種verilog語言寫法的實現(xiàn)問題!求解答~
請問IC設(shè)計中讀寫電路的設(shè)計中如何實現(xiàn)讀寫和連續(xù)讀寫兩種方式?
SQL語言的兩種使用方式
逆變器的兩種電流型控制方式
兩種穿戴健身記錄儀的方式
淺析標(biāo)準(zhǔn)的Verilog對語句有兩種分組方式
MATLAB/simulink中兩種實現(xiàn)建模方式的優(yōu)勢
互鎖正反轉(zhuǎn)電路的兩種實現(xiàn)方式
記錄一下verilog重復(fù)例化的兩種方式
評論