0
是否允許在系統verilog中實例化always_comb
塊中的模塊?是否允許在系統verilog中實例化always_comb塊內的模塊?
always_comb
begin
OR OR1 (.Y(A), .A(Z),
end
是否允許在系統verilog中實例化always_comb
塊中的模塊?是否允許在系統verilog中實例化always_comb塊內的模塊?
always_comb
begin
OR OR1 (.Y(A), .A(Z),
end
首先,您的代碼不完整。顯然,一個雙輸入或門需要三個連接。
用Verilog,當你實例一個模塊,這意味着你要添加額外的硬件到板。
該硬件必須加入仿真開始之前(即在編譯時間)。在這裏,您不能在每個時鐘脈衝添加/刪除硬件。
一旦實例化,模塊將被執行/檢查每個時間戳的模擬,直到結束。因此要執行任何模塊,只需實例化它,爲其提供所需的輸入(並在必要時將always塊添加到子模塊本身中)。
// Simply instantiate module
OR OR1 (.Y(A), .A(Z), .B(M));
無論哪種方式,你可以一個組合模塊添加到當前模塊本身:從Verilog Module Instantiation,Instantiating Modules and Primitives,Structural Modelling鏈接獲得的實例
// Directly use ORing
always_comb begin
A = Z | M;
end
更多信息。
如果您確實想使用條件硬件,請將您的模塊轉換爲任務或功能並有條件地調用它。它增加了您的硬件資源,但會滿足您的要求。 –
有沒有什麼特別的理由讓你嘗試這個而不僅僅是實例化呢? – Morgan