在模块A内部,我正在尝试使用模块B的输出作为另一个模块C的输入。本质上,这是一个“go”开关,在满足某些条件后在模块B中翻转然后这个应该是模块C激活的触发器。是否可以像这样链接输出和输入?
我一直在阅读并发现this image特别有帮助 - 但是,我不太了解网络的概念或它们是否有用。是否将模块B的输出连接到用作模块C工作输入的寄存器?感谢。
编辑:
我正在寻找类似this(涉及3个不同模块)的东西,我在模块A中实例化模块B和模块C.我想将B的输出连接到C的输入。
答案 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
这是连接的方式,如果你想在内部信号上建立这些连接,那么你可以使用线型