我在Verilog中有一個自定義模塊,它需要幾個輸入和幾個參數。在Verilog中使用附加參數實例化自定義模塊的向量
module modA (
input inp1, input inp2, ... output out);
parameter my_addr;
...
endmodule
對於我使用的具體硬件相關的各種原因,我需要創建這個模塊,使用不同的參數,每次(因爲my_addr對應於特定內存位置,我的許多實例然後從主機訪問)。此外,我想要一個簡單的方法來訪問所有的輸出。我覺得做這樣
wire [9:0] outputs;
modA #(.my_addr) all_modA[9:0](.inp1(inp1), .inp2(inp2), .out(outputs));
東西於是我不得不all_modA的元素的載體,和輸出的第n個元素將對應於MODA的第n個實例。這聽起來像它會工作得很好,除了我需要傳遞一個唯一的地址到每個實例。當我一次只做一個實例化時,僅定義一個參數非常容易,但我不明白每次如何傳遞唯一標識符。
有什麼辦法可以做到這一點?問題是,如果我使用for循環,那麼我不會看到如何使用唯一標識符來實例化每個modA。如果我不使用for循環,那麼我不確定如何添加唯一標識符。
我將如何確定some_identifier是什麼? – user147177
它是'begin..end'塊的任何**標識符。這是生成塊的用戶定義標籤。可以在這裏使用任何字符串。 – sharvil111
在我的特殊情況下,每個輸出都是16位線。我會寫 「wire [15:0] outputs [0:10];」? – user147177