如何判斷SystemVerilog中某個模塊的輸出是否與其中一個輸入直接相連?如何將模塊的輸出連接到其輸入?
它取決於使用的建模級別嗎?如果是,切換級別的正確方法是什麼?
module abc (input in1, in2, output out1, out2, out3);
// out3 needs to be directly connected to in1
// ...
endmodule
如何判斷SystemVerilog中某個模塊的輸出是否與其中一個輸入直接相連?如何將模塊的輸出連接到其輸入?
它取決於使用的建模級別嗎?如果是,切換級別的正確方法是什麼?
module abc (input in1, in2, output out1, out2, out3);
// out3 needs to be directly connected to in1
// ...
endmodule
有很多方法可以做到這一點。但並非所有下游工具(如綜合物理工具)都可以支持它。
這是做它的SystemVerilog
module abc (input in1, in2, output out1, out2, out3);
// out3 needs to be directly connected to in1
// ...
alias out3 = in1;
endmodule
用Verilog
module abc (input .in1(sig), in2, output out1, out2, .out3(sig));
wire sig;
// out3 needs to be directly connected to in1
// ...
endmodule
好的,但是你可以說'alias',或者'assign',或者將兩個端口連接到內部網絡比其他的SystemVerilog更好(除了工具的當前支持)? – user3900460
如果你想要一個交換級網表的直接連接,那麼使用'alias'。你通過'assign'語句失去了力量傳播。如果你正在編寫RTL,那麼'assign'就可以。 –
的方式,我認爲你在尋找比傳統的Verilog方法更系統的Verilog習慣的方法'分配OUT3 = in1;'? – Morgan
是的,SystemVerilog方式更可取。 – user3900460