0
我在我的計劃中有一些模塊,我想通過大量的電線連接它。它是如何看在我的腦海裏:通過大量電線連接方案中的所有模塊。 Verilog
當input_output_wire
模塊進來頂層模塊變量some_trigger的變化,在這一刻頂層模塊發送信號a1
- >模塊a1
做一些東西 - >模塊a1
送過模塊a2
由massive_input_output_wire[0]
- >模塊a2
做一些東西 - >a2
明年線在龐大massive_input_output_wire[1]
發送到模塊a3
- >a3
做一些東西 - >通過massive_input_output_wire[2]
發送到a4
等等...
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
對不起:我不明白你在問什麼。請你能添加更多解釋嗎? –
電線不像編程語言中的變量。他們不會連續分配最後一場勝利。同時驅動通常導致Xs。你不應該使用'assign'或'force'語句在always塊中分配一條線(我猜這就是你現在正在做的)。 – Greg
@MatthewTaylor好的,我想在這個邏輯中連接我所有的模塊('a1','a2',....'an'):'a1'('massive_input_output_wire [0]')的輸出線必須去輸入'a2'。來自a2('massive_input_output_wire [1]')的輸出線必須到a3的輸入端。來自'a [n-1]'('massive_input_output_wire [n]')的輸出線必須到達輸入端'a [n]'。問題是如何正確地編寫生成模塊('modules_a')的代碼以及爲我編寫的模塊而不生成'a1'和'an' – Anton