如何在顶层模块(在测试平台中)中使用params声明虚拟接口?

时间:2016-12-12 15:29:08

标签: interface system-verilog

我有以下参数化界面:

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

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

**错误:(vsim-7065)../ slav / girobo2_tb_top.sv(245):从类型'interface axi_interface#(。DATA_SIZE(63))'类型'virtual axi_interface'的非法赋值:Vir。必须为'axi_interface'接口分配匹配的接口或虚拟接口。

1 个答案:

答案 0 :(得分:1)

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

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

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

您可能希望在我公司的网站上观看此video tutorial,我刚刚遇到过该网站。你会看到其他常规贡献者在这里得到承认。