我的方案中有一些模块,我想用大量的电线连接它。我的想法如何:
当顶层模块中的变量some_trigger发生变化时,此时顶层模块在模块input_output_wire
中发送信号a1
- >模块a1
制作一些东西 - >模块a1
通过a2
发送模块massive_input_output_wire[0]
- >模块a2
制作一些东西 - > a2
通过大量massive_input_output_wire[1]
到模块a3
的下一个电汇发送 - > a3
制作一些内容 - >通过a4
发送至massive_input_output_wire[2]
,依此类推......
module a(
input_output_wire;
);
input input_output_wire;
output input_output_wire;
always @(posedge input_output_wire)
begin
if(input_output_wire) begin
....
make some stuff
....
end
end
end module
`include "a.v"
module top_level(
clk,
rst,
some_trigger
);
input clk, rst, some_trigger;
parameter NUM_OF_MODULES_A = 5;
wire massive_input_output_wire[0:NUM_OF_MODULES_A];
a a1(.input_output_wire(massive_input_output_wire[0]));
a an(.input_output_wire(massive_input_output_wire[NUM_OF_MODULES_A-1]));
genvar i;
genarate
for(i=1;i<NUM_OF_MODULES_A-2; i = i + 1)
begin : modules_a
a modules_a(
.(input_output_wire(massive_input_output_wire[i]))
);
end
endgenerate
always @(posedge some_trigger)
begin
if(some_trigger)
massive_input_output_wire[0] = 1;
end
endmodule
答案 0 :(得分:0)
正如你在解释中所说的那样,每个模块都会接收一个信号并制作一些东西并向下一个模块发出另一个信号来制作另一个东西。
对此,您的模块应包含两个端口
喜欢......
module a (input_wire,output_wire);
input input_wire;
output reg out_wire;
always
begin
Make some stuff
End
Endmodule
接下来在顶层模块中,您实例化如下
Module top(input_wire,output_wire,another );
Input input_wire ;
Output output_wire [0:3]
Make some stuff
a a1(input_wire [0],output_wire [0]);
a a2 (output_wire [0],output_wire [1]);
a a3 (output_wire [1],output_wire [2]);
Intantiations
Endmodule
如果我理解你的解释,这可能对你有所帮助