精华内容
下载资源
问答
  • uvm环境搭建demo

    2020-09-30 17:44:58
    芯片在国内的发展注定越来越多的人才会加入这个队伍,uvm作为主流的验证方法学,希望这个安装demo能够帮助到你们,确保makefile的UVM_HOME路径和你的UVM源文件路径一致
  • 前言:top module是整个UVM验证环境的最顶层,那么我们需要在top中做什么工作呢?本文将做一个详细的介绍。

           前言:top module是整个UVM验证环境的最顶层,那么我们需要在top中做什么工作呢?本文将做一个详细的介绍。

     

    一、调用run_test(),启动UVM验证系统。

    1. 需要制定download哪些Wavefrom。
    2. 其次需要定制化环境中时间的显示格式。
    3. 最后调用run_test()启动验证环境。
    module top();
    
      initial begin
        $fdsbDumpDMA(); #vcs compile option : -debug_pp, +memcbk is needed
        $fdsbDumpSVA(0, "dut_i");
        $timeformatf(-9, 3, "ns", 20);
        run_test();
      end
    
    endmodule

    二、例化DUT

    dut dut_i(
      .clk            (sys_clk),
      .rst_n          (rst_n),
      .psel           (psel),
      .pclk           (sys_clk),
      .penable        (penable),
      .pready         (pready),
      .paddr          (paddr),
      .pwrite         (pwrite),
      .prdata         (prdata),
      .pwdata         (pwdata)
    )

     

    三、Set Interface.

    svt_apb_mst_if        apb_mst_vif(.clk(sys_clk), .rst_n(rst_n));
    
    initial begin
      uvm_config_db#(virtual svt_apb_trans)set(uvm_root::get(), "uvm_test_top.env", "apb_mst_vif", apb_mst_if);
    end

     

     

    四、声明全局变量

    logic                    sys_clk;
    logic                    rst_n;
    logic                    aip_rst_n;
    
    bit [3:0]                randmode;

     

    五、get Plusgras

           這個步驟主要是為了應對驗證中需要改變DUT連線的問題。

    initial begin
      $value$plusargs("RANDMODE=%0h", randmode);
    end

     

     

    展开全文
  • UVM环境搭建BUG记录 Driver put a response with null sequence_id 问题描述: driver同sequencer之间的通信方式采取get模式。driver负责请求数据,sequencer和item在合适的时间点产生需要的数据。当采用应答的形式...

    UVM环境搭建BUG记录

    Driver put a response with null sequence_id


    问题描述:

    driver同sequencer之间的通信方式采取get模式。driver负责请求数据,sequencer和item在合适的时间点产生需要的数据。当采用应答的形式时,即driver告知已接收到数据时,需要返回给sequencer一个sequence_id,如若不返回则会出现下图报错。

    @Override
    	 Driver put a response with null sequence_id
    

    解决方案:

    需要在driver中使用sequence_item自带的函数 set_sequence_id和get_sequence_id能够解决该报错。例子如下:

    @Override
    	class driver extends uvm #(my_trans)
    	...
    	  task do_drive();
          my_trans req, rsp;
          @(posedge intf.clk);
          forever begin
            seq_item_port.get_next_item(req);
            this.write(req);
            void'($cast(rsp, req.clone()));
            rsp.rsp = 1;
            rsp.set_sequence_id(req.get_sequence_id());
            seq_item_port.item_done(rsp);
          end
        endtask
        ...
        endclass
    

    后记

    2022届在读研究生IC验证菜鸟一枚,希望记录一下成长的过程,欢迎批评和指正。

    展开全文
  • [UVM]UVM环境搭建之 env

    2020-03-21 21:31:39
    UVM环境搭建之env 前言:通常我们会在env中例化agent,Create RAL Model,Get Interface,Create Configure Object,Connect PORT。通常ENV该怎么部署比较好?本文将做一个详细的介绍。 一、声明Interface virtual ...

                                      UVM环境搭建之env

     

           前言:通常我们会在env中例化agent,Create RAL Model,Get Interface,Create Configure Object,Connect PORT。通常ENV该怎么部署比较好?本文将做一个详细的介绍。

     

    一、声明Interface

    virtual svt_apb_if                apb_mst_vif();
    virtual dut_if                    dut_vif();

     

    二、声明Configure Class

    svt_clk_agent                    clk_agent[3];
    svt_clk_cfg                      clk_cfg[3];
    svt_rst_agent                    rst_agent[3];
    svt_rst_cfg                      rst_cfg[3];
    
    sys_ral_mode                     duv_ral_mode;
    sys_cfg                          dut_cfg;
    
    dut_scb                          dut_scb_i;
    dut_sub                          dut_sub_i;
    dut_vsqr                         dut_vsqr_i;
    
    int                              slv_id;

     

    三、Create Agent and RAL Model

    • Create Agent
    function void dut_env::build_phase();
    
      foreach(clk_agent[i]) begin
        clk_agent[i] = svt_clk_agent::type_id::create($sformatf("clk_agent[%0d]", i), this);
      end
    
    endfunction : build_phase
    
    
    
    • Create RAL Model
    function void dut_env::build_phase();
    
      if(duv_ral_mode == null) begin
        uvm_reg::include_coverage("*", UVM_CVR_ALL);
        duv_ral_mode = sys_ral_mode::type_id::create("duv_ral_mode", this);
        duv_ral_mode.configure(null, "top.dut_i.uvm_dfedsb_top");
        duv_ral_mode.build();
        duv_ral_mode.set_coverage(UVM_CVR_ALL);
        duv_ral_mode.look_model();
        duv_ral_mode.reset();    //must add for initi CR Value
      end
    
    endfunction : build_phase
    
    

     

    除此外,还需要:

    • Create Reference Model
    • Create Scoreboard
    • Create Subscriber
    • Create APB Master/Slave

     

    四、Connect PORT

    function void dut_env::connect_phase();
      
    endfunctiom : connect_phase 

     

    五、Override report_phase

          主要目的是统计仿真过程中出现UVM_ERROR的次数,实现方法之前已经分享过了,此处不再赘述。

     

     

    展开全文
  • Modelsim下uvm环境搭建

    千次阅读 2019-03-03 19:35:04
    1. 下载modelsim软件 下载modelsim,这里用的是modelsim10.4版本。... 完成下载和安装,在安装文件夹中可以看到uvm-1.1d,这是我们使用的uvm版本...在uvm-1.1d/win64下有uvm_dpi.dll文件,这是已经编译过的uvm库。 ...

    1. 下载modelsim软件

    下载modelsim,这里用的是modelsim10.4版本。下载地址:https://pan.baidu.com/s/1wnCwlQ2EblCkKHFOM6gEyw 提取码:772l 。

    完成下载和安装,在安装文件夹中可以看到uvm-1.1d,这是我们使用的uvm版本。在uvm-1.1d/win64下有uvm_dpi.dll文件,这是已经编译过的uvm库。

    2. 编写文件

    以“hello,world”为例,编写uvm源文件如下:

    然后编写一个windows下的执行程序:run.bat。

    其中只有一句话:

    这个就是运行modelsim脚本文件sim.do。

    Sim.do文件内容如下:

    第一句话是设置uvm环境变量,指定uvm的dpi位置。

    第二句话是创建work工作目录。

    第三句话是编译源文件,并且通过-L指定几个编译库。

    第三句是执行仿真,调用uvm库uvm_dpi。

    第四句话是运行多长时间:100ns。

    3. 执行

    双击run.bat,然后会调用modelsim进行编译和仿真。

     

     

    欢迎关注公众号:

    展开全文
  • 本篇文章介绍使用Modelsim10.2c搭建UVM环境,并跑通第一个hello world实例。 最开始的时候按照网上的教程,设置系统环境变量、下载gcc编译器等等,折腾了半天并没有跑通,后来发现Modelsim10.2c的安装目录下已经有...
  • Modelsim中UVM环境搭建 作者:巩文宏 公众号 :数字积木 我安装的是modelsim-win64-10.7-se.exe这个版本,安装并激活成功后,在modelsim的安装目录就可以看到已经编译好的 UVM库,生成了.dll文件,供UVM验证使用...
  • [UVM]用modelsim搭建UVM环境及源码分享

    千次阅读 2020-05-10 18:52:05
    用modelsim搭建UVM环境及源码分享 一、下载modelsim 1.1、百度云盘链接:https://pan.baidu.com/s/1BRSlQiOXIa7CvOr_UQIr7A 1.2、提取码:crg0 二、文件准备 1.1、准备test top //UVM test yop //top `...
  • APB协议UVM验证环境搭建 一、编译文件 只需编译这两个文件即可 apb_pkg.sv 里面包含了"apb.svh",即编译apb_pkg.sv这个文件的同时,也会编译所需要的所有的头文件。 `ifndef APB_PKG_SV `define APB_PKG_SV ...
  • 搭建UVM验证环境历程
  • Systemverilog+UVM搭建SOC

    2018-03-23 20:25:54
    svUVM搭建利用Systemverilog+UVM搭建SOC及ASIC的RTL验证环境
  • 需求说明:UVM系统验证 内容 :IC设计验证 来自 :时间的诗 ...在modelsim中建立UVM环境,使用的UVM是UVM1.1b。  如果安装的是modelsim 10.1c版本的话,软件自动的将UVM的库给编译好了,生成了

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

uvm环境搭建