2015-09-24 36 views
0

我是Verilog和學習的新手。我有一個測試臺問題。 假設在Verilog測試平臺中,我有8個模塊實例。 有沒有一種方法可以在測試平臺中使用生成循環來實例化它們,就像模塊可以在代碼的HDL部分中聲明的一樣。例如verilog testbench組件使用生成器實例化

module my_test_bench; 
reg one_r; 
reg two_r; 

wire one_w; 
wire two_w; 

genvar i; 
generate 
(for i = 0; i < 8; i=i+1) 
begin 
    DDR3_module uut[i](.clk(), .rst(),); 
end 
endgenerate 

initial begin 
... test stimulus 
end 

end module 

謝謝。

回答

0

是的,你可以。如果您想直接從推動這些

wire [7:0] clk; 
wire [7:0] rst; 

:使用以下語法:

genvar i; 
generate 
    for (i = 0; i < 8; i = i + 1) begin 
    DDR3_module uut (.clk(clk[i]), .rst(rst[i])); 
    end 
endgenerate 

請注意,您需要爲clkrst信號爲每個實例向量,下面前報關行如然而,在initial塊內,那些需要是reg而不是wires。

+0

謝謝,我知道這會工作。我希望在Xilinx ISE工具集中會出現8個DDR3模塊實例。但在模擬中,我確實看到了所有8. – clicker

+0

@clicker對不起,我不認爲我明白你想說什麼 - 如果*在模擬中看到全部8個,那麼問題是什麼?我對ISE瞭解不多,所以也許我錯過了一些東西?如果是這樣的話,我建議相應地更新你的問題(添加ISE標籤並解釋你到底是什麼)。謝謝。 – FriendFX