再问DesignWare验证
时间:10-02
整理:3721RD
点击:
我在VCS上使用AMBA VIP进行验证,已经跑通了一个example。但是在自己写的Testbench里实例化调用ahb_master_vmt时,出现错误。Testbench代码(amba_ahb_master.v)如下:
module test_top;
`define AHB_ADDR_WIDTH 32
`define AHB_DATA_WIDTH 32
`include "VmtDefines.inc"
`include "AhbMasterDefines.inc"
wire hclk;
reg hclk_r;
wire hresetn;
reg hresetn_r;
wire hgrant;
reg hgrant_r;
wire [`AHB_DATA_WIDTH - 1:0] hrdata;
wire hready;
reg hready_r;
wire [1:0] hresp;
reg [1:0] hresp_r;
wire [`AHB_ADDR_WIDTH - 1:0] haddr;
wire [2:0] hburst;
wire hbusreq;
wirehlock;
wire [3:0] hprot;
wire [2:0]hsize;
wire [1:0]htrans;
wire [`AHB_DATA_WIDTH - 1:0] hwdata;
wirehwrite;
regwriteDone;
ahb_master_vmt ahb_master (
.\hclk(hclk_r),
.\hresetn(hresetn),
.\hgrant(hgrant),
.\hrdata(hrdata),
.\hready(hready),
.\hresp(hresp),
.\haddr(haddr),
.\hburst(hburst),
.\hbusreq(hbusreq),
.\hlock(hlock),
.\hprot(hprot),
.\hsize(hsize),
.\htrans(htrans),
.\hwdata(hwdata),
.\hwrite(hwrite)
);
endmodule
这个Testbench仅仅就是一个实例化ahb_master_vmt的过程。然后使用NTB进行仿真,LINUX终端中输入命令如下:
vcs -ntb_define NTB -ntb_opts rvm -ntb_opts use_ntbpp -ntb_opts use_sigprop -ntb_opts add_dummy_bind -ntb_opts check -ntb_opts vera_compat -ntb +define+NTB +incdir+/home/guest/amba_vip_tutprial/include/verilog -ntb_incdir /home/guest/amba_vip_tutprial/include/vera+$DESIGNWARE_HOME/vip/vmt/latest/vera/src+DESIGNWARE_HOME/vip/amba/latest/vera/src+DESIGNWARE_HOME/vip/amba/latest/ahb_master_vmt/vera/src -o simv AhbMasterProgram.vrp amba_ahb_master.v
可是仿真结果报错,报错信息如下:
Error-[UPIMI] Undefined port in module instantiation
Port "hclk" not defined in module "ahb_master_vmt"
"amba_ahb_master.v", 32: ahb_master_vmt ahb_master(.hclk(hclk_r),
.hresetn(hresetn), .hgrant(hgrant), .hrdata(hrdata),
.hready(hready), .hresp(hresp), . ...
上面只是错误信息中的一个,意思是ahb_master_vmt没有定义hclk,其他端口的实例化也报错,共有15个ERROR。
ahb_master_vmt是DesignWare AMBA VIP里的model,怎么会没有定义端口呢?上面的Testbench也是按照NTB下Verilog Techben的实例化格式写的,终端里的命令也是按照SYNOPSYS给的资料里写的,实在不知道是哪里的问题,希望了解这一块的朋友能够指点一下,非常感谢!
module test_top;
`define AHB_ADDR_WIDTH 32
`define AHB_DATA_WIDTH 32
`include "VmtDefines.inc"
`include "AhbMasterDefines.inc"
wire hclk;
reg hclk_r;
wire hresetn;
reg hresetn_r;
wire hgrant;
reg hgrant_r;
wire [`AHB_DATA_WIDTH - 1:0] hrdata;
wire hready;
reg hready_r;
wire [1:0] hresp;
reg [1:0] hresp_r;
wire [`AHB_ADDR_WIDTH - 1:0] haddr;
wire [2:0] hburst;
wire hbusreq;
wirehlock;
wire [3:0] hprot;
wire [2:0]hsize;
wire [1:0]htrans;
wire [`AHB_DATA_WIDTH - 1:0] hwdata;
wirehwrite;
regwriteDone;
ahb_master_vmt ahb_master (
.\hclk(hclk_r),
.\hresetn(hresetn),
.\hgrant(hgrant),
.\hrdata(hrdata),
.\hready(hready),
.\hresp(hresp),
.\haddr(haddr),
.\hburst(hburst),
.\hbusreq(hbusreq),
.\hlock(hlock),
.\hprot(hprot),
.\hsize(hsize),
.\htrans(htrans),
.\hwdata(hwdata),
.\hwrite(hwrite)
);
endmodule
这个Testbench仅仅就是一个实例化ahb_master_vmt的过程。然后使用NTB进行仿真,LINUX终端中输入命令如下:
vcs -ntb_define NTB -ntb_opts rvm -ntb_opts use_ntbpp -ntb_opts use_sigprop -ntb_opts add_dummy_bind -ntb_opts check -ntb_opts vera_compat -ntb +define+NTB +incdir+/home/guest/amba_vip_tutprial/include/verilog -ntb_incdir /home/guest/amba_vip_tutprial/include/vera+$DESIGNWARE_HOME/vip/vmt/latest/vera/src+DESIGNWARE_HOME/vip/amba/latest/vera/src+DESIGNWARE_HOME/vip/amba/latest/ahb_master_vmt/vera/src -o simv AhbMasterProgram.vrp amba_ahb_master.v
可是仿真结果报错,报错信息如下:
Error-[UPIMI] Undefined port in module instantiation
Port "hclk" not defined in module "ahb_master_vmt"
"amba_ahb_master.v", 32: ahb_master_vmt ahb_master(.hclk(hclk_r),
.hresetn(hresetn), .hgrant(hgrant), .hrdata(hrdata),
.hready(hready), .hresp(hresp), . ...
上面只是错误信息中的一个,意思是ahb_master_vmt没有定义hclk,其他端口的实例化也报错,共有15个ERROR。
ahb_master_vmt是DesignWare AMBA VIP里的model,怎么会没有定义端口呢?上面的Testbench也是按照NTB下Verilog Techben的实例化格式写的,终端里的命令也是按照SYNOPSYS给的资料里写的,实在不知道是哪里的问题,希望了解这一块的朋友能够指点一下,非常感谢!
You can ask synopsys support engineer.
Which VCS version do you use?
应该是包在AhbMasterInterface里的,
`include AhbMasterInterface.svi
好东西,谢谢小编分析啊
多谢. 学习学习
正关注哦
I would like have dw ip core library
非常感谢,,嗯
看看!XIEXIE
小编问题解决没有
非常感谢,,嗯
好东西,谢谢小编分析啊
`include AhbMasterInterface.svi之后该问题解决了 了么
破解了吗
几年前发的,小编估计已经不在这玩了
这个module的port可能是有interface 实现的,在vip 的资料或头文件中可以找到具体 的说明