我的顶级 SystemVerilog 模块内部有一个实例 (
rd_blk
),它有一个接口端口 (sec_rd
)。我需要暂时将其连接到组合代码,但我很难想出一个无错误的解决方案。请提出建议。
interface sec_rd_if (
input wire clk
);
logic sec_rd;
logic [7:0] sec_rd_addr;
logic sec_rd_rdy;
modport dst (
input sec_rd,
input sec_rd_addr,
output sec_rd_rdy,
);
modport src (
output sec_rd,
output sec_rd_addr,
input sec_rd_rdy,
);
endinterface
module dst_rd_blk (
input logic clk,
sec_rd_if.dst sec_rd
);
< main rtl code >
endmodule
module top (
input logic clk
);
always_comb begin
// Combo logic to connect to sec_rd port goes here?
end
dst_rd_blk rd_blk (
.clk (clk),
.sec_rd (???)
);
endmodule
您的代码缺少
interface
的实例。我在top
中添加了一个:
module dst_rd_blk (
input logic clk,
sec_rd_if.dst sec_rd
);
//< main rtl code >
endmodule
module top (
input logic clk
);
always_comb begin
// Combo logic to connect to sec_rd port goes here?
end
sec_rd_if sec_rd_if (.clk(clk));
dst_rd_blk rd_blk (
.clk (clk),
.sec_rd (sec_rd_if)
);
endmodule
代码编译没有错误。