2016-03-24 58 views
0

如何判斷SystemVerilog中某個模塊的輸出是否與其中一個輸入直接相連?如何將模塊的輸出連接到其輸入?

它取決於使用的建模級別嗎?如果是,切換級別的正確方法是什麼?

module abc (input in1, in2, output out1, out2, out3); 

// out3 needs to be directly connected to in1 
// ... 

endmodule 
+0

的方式,我認爲你在尋找比傳統的Verilog方法更系統的Verilog習慣的方法'分配OUT3 = in1;'? – Morgan

+0

是的,SystemVerilog方式更可取。 – user3900460

回答

2

有很多方法可以做到這一點。但並非所有下游工具(如綜合物理工具)都可以支持它。

這是做它的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 
+0

好的,但是你可以說'alias',或者'assign',或者將兩個端口連接到內部網絡比其他的SystemVerilog更好(除了工具的當前支持)? – user3900460

+1

如果你想要一個交換級網表的直接連接,那麼使用'alias'。你通過'assign'語句失去了力量傳播。如果你正在編寫RTL,那麼'assign'就可以。 –

相關問題