zoukankan      html  css  js  c++  java
  • FPGA设计—UVM验证篇 Hello world

    这里就不赘述UVM为何物了,做了半年多的FPGA设计验证工作,按需求一直是用VHDL编写测试程序,最近看了几天UVM验证方法学的书,感觉这是一种很好的验证工具,现在开始UVM的学习,于是准备用ModelSim做一个Hello world,于是到网上随便搜了段代码,进行测试,见下方:

    1. `include "uvm_pkg.sv"  
    2. module hello_world_example;   
    3.    import uvm_pkg::*;   
    4.    `include "uvm_macros.svh"  
    5.    initial begin   
    6.      `uvm_info ("info1","Hello World!", UVM_LOW)   
    7.    end   
    8. endmodule: hello_world_example  

    可能是因为使用的测试工具比较新(ModelSim SE 10.0c)吧,直接可以编译,然后进行仿真/运行,结果见下:

    # Refreshing C: _uvmwork.hello_world_example
    # Refreshing C: _uvmwork.uvm_pkg
    # Loading sv_std.std
    # Loading work.uvm_pkg
    # Loading work.hello_world_example
    # ** Warning: (vsim-3770) Failed to find user specified function 'uvm_hdl_check_path'. The search list was empty.
    # Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list
    # of shared libraries that will be used to resolve user specified functions.
    #    Time: 0 ns  Iteration: 0  Instance: /hello_world_example File: top.sv
    ……
    # ** Warning: (vsim-3770) Failed to find user specified function 'uvm_glob_to_re'. The search list was empty.
    # Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list
    # of shared libraries that will be used to resolve user specified functions.
    #    Time: 0 ns  Iteration: 0  Instance: /hello_world_example File: top.sv
    # ** Fatal: (vsim-160) c:/modeltech_10.0c/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh(27): Null foreign function pointer encountered when calling 'uvm_dpi_get_next_arg_c'
    #    Time: 0 ns  Iteration: 0  Process: /uvm_pkg/#INITIAL#619 File: c:/modeltech_10.0c/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh
    #  Fatal error in Module uvm_pkg at D:/modeltech_10.0c/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh line 27

    于是在个里上网查了些资料,一直调试到现在才可以使用,如下:

    1、设置环境变量(下载好的UVM解压到下面的UVM_HOME的目录)

    1. set UVM_HOME c:/modeltech_10.0c/verilog_src/uvm-1.1d  
    2. set MODEL_TECH c:/modeltech_10.0c/win32  

    2、编译UVM_DPI动态链接库(用的是gcc-4.2.1-mingw32vc9编译器)

    1. c:/modeltech_10.0c/gcc-4.2.1-mingw32vc9/bin/g++.exe -g -DQUESTA -W -shared -Bsymbolic -I $MODEL_TECH/../include  $UVM_HOME/src/dpi/uvm_dpi.cc -o  $UVM_HOME/lib/uvm_dpi.dll $MODEL_TECH/mtipli.dll -lregex  

    3、编译Hello_world_example源文件

    1. vlog +incdir+$UVM_HOME/src -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF C:/t_uvm/top.sv  

    4、仿真Hello_world_example(需要调用刚刚编译的uvm_dpi.dll)

    1. vsim -c -sv_lib $UVM_HOME/lib/uvm_dpi work.hello_world_example  


    最后运行得到下图结果:

    至此,Hello World终于出来了。

  • 相关阅读:
    【Java】_2_Java程序入门第五课
    【算法和数据结构】_3_线性结构_栈
    Windows程序设计_17_鼠标_1
    网络基础知识1:集线器,网桥,交换机
    [hyddd安全性测试笔记2]浅淡静态代码分析工具
    [Ruby小记]初试~
    Arp攻击实战
    [hyddd安全性测试笔记1]URL Encode and URL Decode
    网络嗅探技术浅析
    Session小记
  • 原文地址:https://www.cnblogs.com/hfyfpga/p/4861743.html
Copyright © 2011-2022 走看看