在verilog中用作另一个模块的输入的模块的输出

时间:2013-10-11 21:51:42

标签: input module output verilog

在模块A内部,我正在尝试使用模块B的输出作为另一个模块C的输入。本质上,这是一个“go”开关,在满足某些条件后在模块B中翻转然后这个应该是模块C激活的触发器。是否可以像这样链接输出和输入?

我一直在阅读并发现this image特别有帮助 - 但是,我不太了解网络的概念或它们是否有用。是否将模块B的输出连接到用作模块C工作输入的寄存器?感谢。

编辑:

我正在寻找类似this(涉及3个不同模块)的东西,我在模块A中实例化模块B和模块C.我想将B的输出连接到C的输入。

2 个答案:

答案 0 :(得分:4)

您的三个模块示例(image),使用wire outB_to_inC将输出连接到输入:

//A.v
module A(inA, outA);
input wire inA;
output wire outA;

wire outB_to_inC;

B B_inst(.inB(inA), .outB(outB_to_inC));

C C_inst(.inC(outB_to_inC), .outC(outA));

endmodule

/////

//B.v
module B (inB, outB);
input wire inB;
output wire outB;

//... more code here

endmodule

/////

//C.v
module C (inC, outC);
input wire inC;
output wire outC;

//... more code here

endmodule

答案 1 :(得分:2)

你可以建立这些联系 例如:

module my_moduleA (inA, outA)
input inA;
output reg outA; //If you want to assign something to out inside an always block, it has to be output reg, otherwise you will have to use assign out from an always block.

//Put your logic here

endmodule

module my_moduleB (inB, outB)
input inB;
output reg outB; //If you want to assign something to out inside an always block, it has to be output reg, otherwise you will have to use assign out from an always block.

//Put your logic here

//Instantiation of module A
my_moduleA instance(  //Here is the connection made between module A and B
.inA (inB),  
.outA (outB));
endmodule

这是连接的方式,如果你想在内部信号上建立这些连接,那么你可以使用线型