1、頂層模塊的輸入輸出包括那些?
答:頂層模塊的輸入,是所有底層模塊的輸入的總和。頂層模塊的輸出,是所有底層模塊的總和。
2、頂層模塊對無初始值的子模塊的例化格式是什么?
答:子模塊名 u_子模塊名(
.子模塊輸入1 ( 值或者是其他模塊的時序信號,或者是其他模塊的輸出或輸入),
.子模塊輸入2 ( 值或者是其他模塊的時序信號,或者是其他模塊的輸出或輸入),
.子模塊輸入3 (),
.子模塊輸出1 ( 值,或者是 子模塊本身的變量)
);
例如:module key_debounce(
input mod_clk,
input mod_rst_n,
input key,
output reg key_flag,
output reg key_value
);
頂層模塊例化:
key_debounce u_key_debounce(
.mod_clk (sys_clk), //頂層模塊定義的輸入變量
.mod_rst_n (sys_rst_n), //同上
.key (key), //子模塊本身的輸入
.key_flag (key_flag), //子模塊本身的輸出
.key_flag (1'b1) //強制輸出為1,可能引起編譯不通過
.key_value (key_value) //子模塊本身的輸出
3、頂層模塊對含有parameter參數的子模塊的例化方式是什么?
答:在子模塊中定義了parameter MAX = 25000 ;
parameter MIN = 10000;
如果頂層模塊將其重新賦值並覆蓋子模塊的賦值,則
time_count #(//與其他輸入輸出不同之處在於是#還是u_子模塊名
.MAX (50000),
.MIN (10000)
)
u_time_count(
子模塊輸入輸出例化,
);
頂層模塊也可以不用管該parameter,該parameter會使用子模塊定義的值
4、頂層模塊還可以被例化嗎?
頂層模塊也是模塊,可以在更上一層的頂層模塊例化,像普通模塊一樣被例化。因此設計的時候,可以分模塊設計。