将输入输出接口信号连接到引脚

时间:2018-10-11 16:58:25

标签: system-verilog

如何将输入逻辑从接口连接到顶层的引脚?以下是一个基本示例。

接口:

interface SAMPLE_IF;
    logic signal; // inout
    modport master (inout signal);
    modport slave (inout signal);
endinterface

顶级文件:

module top_level(
    inout pin,
);

SAMPLE_IF sample_if();

code_blk code_blk_i (
    .sample_if(sample_if)
);

在上面的示例中,pin如何连接到sample_if.signal

1 个答案:

答案 0 :(得分:0)

您无法将inout端口连接到变量;仅网/电线。如果将接口信号更改为电线,则可以使用端口表达式:

interface SAMPLE_IF;
    wire signal; // inout
    modport master (inout signal);
    modport slave (inout signal);
endinterface
Top level file:

module top_level(
    inout .pin(sample_if.signal),
);

SAMPLE_IF sample_if();

code_blk code_blk_i (
    .sample_if(sample_if)
);

更新

显然,大多数工具都不接受该语法。这是Verilog别名 的解决方法。

interface SAMPLE_IF;
    wire signal; // inout
    modport master (inout signal);
    modport slave (inout signal);
endinterface

module top_level(
    inout pin
);

  Alias A (pin,sample_if.signal);

SAMPLE_IF sample_if();

endmodule 

module Alias #(P=1) (w,w);
  input  [P:1] w;
endmodule

module top;
   wire m;
   top_level dut(m);
endmodule