UVM启动shell脚本:example

文件内容如下:
if [-z "需要检测的环境变量"]; then
    echo "U need to set ..."
    exit 1
else
    set -x
    export PROJECT_HOME =“工程目录”
    rm -rf "每次启动仿真生成的一些临时文件"
    gcc -m64 -fPIC -shared -Bsymbolic -o C_dpi.so C_dpi.c -I "要查找的第一个头文件目录"
    vcs *.so +vcs+lic+wait -sverilog -cm_name test1 -ntb_opts check -l vcs.log -R \
        -f VCS_LIST +define+UVM_NO_DPI +define+“其他一些定义” -full64 \
        +START_SEQ=$1 +END_SEQ=$2 -timescale=100ps/100ps +UVM_TESTNAME="要执行的case名" \
        +gui +debug_all +UVM_PHASE_TRACE +UVM_OBJECTION_TRACE +UVM_CONFIG_DB_TRACE \
        "+OPEN_LOG_PRINT等其他一些设置"

###############
file:内容如下:
    //INCLUDE DESCRIPTION
    +incdir+$UVM_HOME/src
    +incdir+"工程目录"
    +incdir+"启动工程的source code目录的package目录"
    //FILES
    ${UVM_HOME}/src/uvm_pkg.sv
    “其他sv文件”
    "top文件"
    +define+VCS
    +define+相关宏定义的添加
#########################################################################################
#详细解释
#########################################################################################
    #shell命令解释
        -z:检查对应的环境变量是否被定义,若没有被定义,对应变量长度为NULL,返回假;
        exit 1:程序结束返回指定的状态;
        set -x:执行脚本时,会逐行显示当前执行的行,也会显示各种变量的内容,方便debug;
        export:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作;
    #gcc命令解释
        -m64:生成专门运行于64位环境的代码,不能运行于32位环境,仅用于x86_64[含EMT64]环境
        -fPIC:生成可用于共享库的位置独立代码。所有的内部寻址均通过全局偏移表完成。要确定一个地址,需要将代码自身的内存位置 作为表中一项插入。该选项产生可以在共享库中存放并从中加载的目标模块;
        -shared(share?):此选项将尽量使用动态库,所以生成文档比较小,但是需要系统由动态库;
        -Bsymbolic:
        -o:定制目标名称,eg:gcc -o hello.exe hello.c;
        -I:把dir加入到搜索头文件的路径列表中
    #vcs/UVM命令解释
        +vcs+lic+wait:使能进入license申请队列,即每个20s申请一次license,同时必须设置:setenv VCS_LICENSE_WAIT 1;
        -sverilog:systemverilog
           -cm_name:看下面两个例子:
                % ./simv -cm_name test_1 -echo_replay_sym -
                echo_replay_tests=simv.ccdb/cc.tests –echo_replay=1
                % ./simv -cm_name test_2 -echo_replay_sym -
                echo_replay_tests=simv.ccdb/cc.tests –echo_replay=2
            -ntb_opts:正常情况用这个命令来指定uvm版本,eg:-ntb_opts uvm-1.2,但如果setenv VCS_UVM_HOME ,则此时-ntb_opts的设置就没用了;
            -l:log
            -R:vcs执行过程中,会把elab和simulation的log保存在同一个文件中;
            -f:source file;
            +define:+define+text_macro,这种方式定义的宏,一般在代码中作为一种编译控制,`ifdef text_macro;
            -full64:Analyzes the design for 64-bit simulation;
            +START_SEQ=$1 +END_SEQ=$2:
            +UVM_TESTNAME:指定CASE名;
            +gui +debug_all:打开图形界面
            +UVM_PHASE_TRACE
            +UVM_OBJECTION_TRACE
            +UVM_CONFIG_DB_TRACE:打开UVM的phase、objection、config_db的debug信息;

 

你可能感兴趣的:(一站式UVM)