首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将接口绑定到top中的dut

将接口绑定到top中的dut
EN

Stack Overflow用户
提问于 2021-03-16 12:10:27
回答 1查看 375关注 0票数 1

请在edaplayground上找到我的代码:https://www.edaplayground.com/x/EDVr

在顶部模块中,我实例化了dut,然后尝试将一个接口绑定到它上面的信号。

代码语言:javascript
复制
module tb_top;
  dut dut1();
  bind dut basic basic_intf(.clk(clk), .reset(reset), .addr(addr), .addr_out(addr_out));
  initial begin
    run_test("base_test");
  end  
endmodule

interface basic(
  input clk,
  input reset,
  inout [7:0] addr,
  inout [7:0] addr_out);
  
  modport dut(
    input clk,
    input reset, 
    input addr,
    output addr_out
  );
endinterface

//在此处编写您的设计

代码语言:javascript
复制
module dut(input logic clk, input logic reset, input logic[7:0] addr, output logic[7:0] addr_out);
  
  always_ff @(posedge clk) begin
    if(reset)
      addr_out <= 'h00;
    else
      addr_out <= addr;
  end
  
endmodule

我得到的错误是:引用:

代码语言:javascript
复制
Error-[VIHIOP] Variable in high conn of inout port
testbench.sv, 144
dut, "clk"
This variable is not a net, it cannot be connected to an inout port.
Source info: : basic basic_intf( .clk (clk), .reset (reset), .addr (addr),
.addr_out (addr_out));

如果我声明这些信号为导线,我将不能在驱动函数中使用<=运算符。我想将该接口添加到config_db中,并在测试中检索它。Test是一个uvm_test类型的类。

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-03-16 16:21:10

您正在尝试实例化(通过绑定)具有连接到变量的inout端口的接口,这些变量上有多个驱动程序。(如果将变量连接到inout或输出端口,则该端口必须是唯一驱动该变量的端口。) addr由输入端口和接口实例共同驱动;addr_out由always块和接口实例共同驱动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66649007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档