2016-03-24 59 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'就可以。 –

相关问题