【发布时间】:2020-10-11 10:54:24
【问题描述】:
我想让测试台按顺序运行。我期待的是首先运行 AES_input 并在它完成后运行第二个模块 AES_TOP 。我做了一个参数i_out1,如果AES_input i_out变成0到1,那么第二个模块运行
我检查它编译成功,但我发现它是非法连接。我不知道我如何解决这个问题。有没有其他方法可以顺序运行这些模块?
`timescale 1ns / 1ps
module AES_TB;
// Inputs
reg clk;
parameter i_out1 = 1'b0;
wire [258943:0] p_out;
wire a_out;
wire [258943:0] dataout;
AES_input t1 (.p_out(p_out), .i_out(i_out1));
generate if(i_out1 == 1)begin : ci
AES_TOP t2 (
.clk(clk), .p(p_out),
.dataout(dataout),.a_out(a_out));
end
endgenerate
AES_output t3 (.dataout(dataout), .a_out(a_out));
endmodule
【问题讨论】:
-
你不需要
generate。您需要的所有逻辑,它们就在那里。如果您希望运行哪个,哪个不运行,请创建启用信号。