• VCS


    timing check相关的,

        +notimingcheck命令,可以用在compile时,也可以用在run time的时候,

          都是将检查timing的系统函数,都disable掉了,

          加在compile的时候,不会编译到worklib中,速度可快,可以测试gate env;

          setuphold,recrem指定的delay signal只有在run time时加这个option,才会被产生;

                            build的时候加,delay信号不会被产生;

          该命令相比较与ucli中的tcheck命令有最高的优先级;

    vcs中license相关的run cmd:+vcs+lic+wait,无限的等待下去;

                    +licwait timeout,最多等待指定的时间;

      compile_option:

        1)+no_notifier,寄存器中的notifier不会toggle,不会产生x,先利用该option解决violation,

          防止x的传递,导致很难debug;

        2)+no_tchk_msg,不显示timing violation的log信息,

        3)+neg_tchk,是能negative的timing check,如果不加该option,所有的nagative time被约束为0;

        4)+lca,使用一些vcs提供的最新的feature。

        5)-fsdb  -kdb,可以直接从fsdb中打开work,当前工程,不需要verdi重新编译。

        6)+define+macros=value,定义一个macros,它的值为value

          相比较与不需要加define的情况,多是uvm,testplusargs,等参数,可以直接+value,传递值。

      run_option:

        1)+ntb_random_seed = value,将simv的随机seed设定为某个值,srandom(seed)有更高的优先级;

        2)+ntb_random_seed_automatic,每次仿真随机产生seed,不会存在两次simv相同seed的情况;

        3)-ucli -do file,直接执行ucli的脚本文件

        4)-gui=verdi -verdi_opts "rcFile /my.rc/" 在simv的仿真中,指定verdi的opt。

    -force_list,可以放在elaborate和simulation过程中,指定force信息的输出

    VCS动态加载DPI shared lib,在vcs compile之后,调用GCC执行C的编译,产生so文件。

      在vcs run的时候,手动加载so。加载的命令包括:

      1) -sv_liblist,指定一个so的list文件,其中的so不需要加后缀名。

      2) -sv_root,加lib so的hier。之后再加-sv_lib。

      3) -sv_lib,加lib名,不需要加后缀。

    VCS动态加载PLI shared lib,

      1)在VCS编译时,加入-P pli.tab等指定。

      2)在runtime时,每个lib加load选项,simv -load ./pli1.so -load ./pli2.so

    unified simulation profile可以报告CPU time和machine memory的使用情况,

      profrpt是一个基于python的脚本,来产生text或者html的report。

      需要在compile和simulation的时候,都加入-simprofile选项。

      profrpt time,或者profrpt mem 

    system task:

      severity类型的报告:

        1) $fatal,$error,$warning,$info;

      assert control类型:

        1) $assertoff,$asserton,$assertkill;参数(depth,hier_path)

      数值计算类型:

        1) $onehot,$onehot0,$isunknown,$countx,$countz,$countunknown;

      ASCII文件VCD file;

        1) $dumpall,$dumpoff,$dumpon,$dumpfile,$dumpflush,$dumpvars;

      VPD文件,直接用DVE打开;

        1) $vcdplus...

      assertion monitor类型:

        只能在initial的block中使用,显示每一个clock assertion的动作:

        1) $assert_monitor([0|1],assertion_identifier) assertion_identifier可以是一个hier name;

        2) $assert_monitor_off,$assert_monitor_on,控制$assert_monitor task。

      system task类型:

        1) $system(cmd), 2) $systemf(cmd);

      log file类型:

        1) $log("filename"),写入log,优先级高于-l指定的logfile,

        2) $nolog(“filename”),

      File IO操作:

        1) $fclose,$fopen,$fread,$fwrite,

      Loading memory:

        1) $readmemb/h/o, 2) $writememb/h/o

       指定timescale:

        1) $timeformar;

        2) 显示时间,$time,$stime,

      simulation control:

        1) $stop,$finish;

      Timing check类型的:

        1) $disable_warnings,$enable_warnings,

        2) $hold,$nochange等。

      random类型:

        1)返回某个分布的随机值,$dist_exponential,$dist_normal,

          $random,

        2)$get_initial_random_seed,拿到当前seed的值;

      控制VCS:

        1)$reset,将simulation time reset到零,

      SDF file:

        1) $sdf_annotate()

      X和Z的conditional的检查:

        1)$xzcheckon(level_number,   hier_name),每次hier下有一个warning,便报出来;

        2)$xzcheckoff(level_number,  hier_name),

    VCS对uvm有一个内嵌式的支持,uvm的库被放在$VCS_HOME/etc/uvm-1.2中,可以在VCS编译过程中,显示指明-ntb_opts uvm-1.2 options来使用uvm。

      vcs -sverilog -ntb_opts uvm-1.2   (vlogan不支持直接ntb_opts)    

        -top   指定snapshot的顶层

        -kdb   可以整合vcs的DB到verdi的db,直接通过verdi -ssf novas.fsdb打开verdi的工程

        -lca   表示使用vcs的用户限制的功能 

    VCS中dump fsdb的波形,之前需要添加novas.tab和pli.a的文件路径,-P $VERDI_LIB/novas.tab  $VERDI_LIB/pli.a

    现在

      1)设置$NOVAS_HOME的值,

      2)在code中调用$fsdbDumpvars的task,

      3)vcs编译中增加-debug_access+r的权限

      4)编译中加入-fsdb

    使用verdi进行gui调试,-verdi或者-gui=verdi选项

    后启动verdi命令:

    verdi -ssf <fsdb_file>   verdi -simflow -dbdir <path> -top <top_name>

    VCS提供的dpi,getenv,拿到当前terminal下的环境变量;

    force,release与assign类似,是verilog中支持的结构。

    $deposit(hier, value),是VCS中提供的task,

  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/-9-8/p/7743306.html
Copyright © 2020-2023  润新知