如何将组合代码连接到模块的接口modport?

问题描述 投票:0回答:1

我的顶级 SystemVerilog 模块中有一个实例 (

rd_blk
),它有一个接口 modport (
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

verilog system-verilog synthesis
1个回答
0
投票

您的代码缺少

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

代码编译没有错误。

© www.soinside.com 2019 - 2024. All rights reserved.