Synopsys AXI VIP 安装使用

1.安装准备

        Synopsys VIP一般为.run文件形式,以AMBA VIP为例,VIP文件为vip_amba_svt_R-2020.12.run

        VCS版本T-2022.06,有建议说VIP版本不能晚于VCS版本

2.安装步骤

       (1) 新建路径/usr/Synopsys/vip_2020_12

       (2) 在~/.bashrc文件中添加行,修改环境变量DESIGNWARE_HOME为步骤(1)新建路径

export DESIGNWARE_HOME=/usr/Synopsys/vip_2020_12

        (3) 安装VIP,运行./vip_amba_svt_R-2020.12.run,文件运行位置任意,指定好$DESIGNWARE_HOME即可

        等待运行完成,在$DESIGNWARE_HOME/vip/svt/amba_svt/latest/doc路径下可以找到说明文档。

(4)生成VIP和VIP示例

        在$DESIGNWARE_HOME /vip/svt/amba_svt/latest/examples/sverilog路径下可以查看所有示例,可以看到有AXI、AHB、APB。Synopsys把ACE、AXI-Stream都包含在了AXI VIP里包括接口定义。

        选择生成AXI示例,在终端输入

$DESIGNWARE_HOME/bin/dw_vip_setup -path ./ -e amba_svt/tb_axi_svt_uvm_basic_sys -svtb

        等待生成完成 

        其中./为生成文件路径,生成后包含5个文件夹,其中example为生成的示例,其他为生成的VIP,对于同一验证环境需要多个VIP,需要用dw_vip_setup –add的方式生成到同一目录下。

3.运行示例

        进入示例目录

cd ./examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys

        可以在README中看到验证环境示意,验证环境包含1个master个1个slave,DUT查看代码为输出输入直连。

        在终端执行Makefile命令,由于需要使用Verdi查看,所以修改WAVES为fsdb来dump Verdi波形,如果用DVE查看WAVES=1即可。在./tests目录可以看到一些case文件,这里选择directed_test

gmake USE_SIMULATOR=vcsvlog directed_test WAVES='fsdb'

        仿真完成,可以看到完成50包传输

        如果是DVE可以直接使用目录下waves.tcl脚本。使用Verdi需要自己写指令,指令参照编译log中的文件列表

verdi -sverilog -ntb_opts uvm +incdir+../../../../src/sverilog/vcs +incdir+../../../../include/sverilog +incdir+../../../../src/verilog/vcs +incdir+../../../../include/verilog +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/../../env +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/../env +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/env +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/dut +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/hdl_interconnect +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/lib +incdir+../../../../examples/sverilog/amba_svt/tb_axi_svt_uvm_basic_sys/tests -f top_files -f hdl_files -ssf *.fsdb &

        可以看到,master不断发送地址bit增加的AXI写burst,数据为bit递增数,由于DUT直通,master读到的数据实际由slave返回,同样为递增数。

        也可以在./env/axi_master_directed_sequence.sv查看地址、数据bit递增行为。

 for(int i = 0; i < sequence_length; i++) begin

      /** Set up the write transaction */
      `uvm_create(write_tran)
      write_tran.port_cfg     = cfg;
      write_tran.xact_type    = svt_axi_transaction::WRITE;
      write_tran.addr         = 32'h0000_0100 | ('h100 << i);
      write_tran.burst_type   = svt_axi_transaction::INCR;
      write_tran.burst_size   = svt_axi_transaction::BURST_SIZE_32BIT;
      write_tran.atomic_type  = svt_axi_transaction::NORMAL;
      write_tran.burst_length = 16;   
      write_tran.data         = new[write_tran.burst_length];
      write_tran.wstrb        = new[write_tran.burst_length];
      write_tran.data_user    = new[write_tran.burst_length];
      foreach (write_tran.data[i]) begin
        write_tran.data[i] = i;
      end
      foreach(write_tran.wstrb[i]) begin
        write_tran.wstrb[i] = 4'hf;
      end

文章参考AMBA VIP手把手示例安装与使用指南(1)-优快云博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值