如何在顶部模块(在测试台中)中使用参数声明虚拟接口?

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

我有以下参数化接口:

interface axi_interface #(parameter DATA_SIZE = 0)
  (input bit ACLK, input bit ARESETn);
   //write address channel signals
   logic [3:0]  AWID; //
   logic [31:0] AWADDR;
   .....
   .....
endinterface

我尝试将此接口声明为顶部模块(在测试台中)中的虚拟接口:

module girobo2_tb_top;
   .....
   .....
   axi_interface #(.DATA_SIZE(63)) axi_vif(tb_axi_clk, axi_arstn);
   .....
   .....
endmodule

但是,当我运行模拟时,出现以下错误:

# ** Error: (vsim-7065) ../sv/girobo2_tb_top.sv(245): Illegal assignment to type 'virtual axi_interface' from type 'interface axi_interface #(.DATA_SIZE(63))': Vir. 'axi_interface' interface must be assigned a matching interface or virtual interface.
interface system-verilog
1个回答
2
投票

为了将参数化接口分配给虚拟接口,您还需要参数化虚拟接口,例如:

virtual axi_interface #(.DATA_SIZE(63)) vif;

https://www.edaplayground.com/x/3KvL

您可能想观看我刚刚看到的这个视频教程。您会看到这里的其他常规贡献者已得到认可。

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