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,
VCS的更多相关文章
- Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束
给Android Studio项目里面的一个文件改名以后,再提交SVN时总是提示冲突,没办法解决.再后来不知道怎么弄的,每次提交时停留在SVN Performing VCS Refresh始终都不会完 ...
- android studio如何开启与禁用版本控制vcs
1.开启
- VCS仿真查看coverage
VCS仿真查看coverage Design compiler & simulate #!/bin/csh -f setenv NOVAS_HOME /EDASynopsys/verdi3-I ...
- VCS仿真 Dump Memory
VCS仿真 Dump Memory 两种方法 vcs联合verdi生成fsdb文件 vcs生成vpd文件 VCS联合verdi生成fsdb文件 1.testbench中加入如下语句: initial ...
- VCS仿真生成fsdb文件(Verilog)
VCS仿真生成fsdb文件(Verilog) 一.环境 Linux 平台 csh环境 VCS 64bit Verdi3 二.开始仿真 1. 联合仿真环境配置 a.在testbench中加入如下语句: ...
- VCS仿真生成vpd文件(verilog)
VCS仿真生成vpd文件(verilog) 一.环境与文件 Linux平台 csh环境 VCS 64bit 代码文件请参考<一个简单的Verilog计数器模型> 二.开始仿真 1.com ...
- VCS引起的oracle数据库异常重新启动一例
1. 环境描写叙述 操作系统版本号:SUSE Linux Enterprise Server 10 sp2 (x86_64) 数据库版本号:Oracle 11.1.0.7.16 VCS版本号:5.1 ...
- vcs 下使用system verilog调用c函数
c中要加入<svdpi.h> sv的tb中加入 import "DPI-C" function int funcname(); 仿真时,vcs命令行中加入 +vc fu ...
- 在VCS仿真器中使用FSDB[转载]
来源:https://www.cnblogs.com/catannie/p/8099331.html FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的 ...
- 在VCS仿真器中使用FSDB
FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的信号波形.据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快.要用VCS仿真器 ...
随机推荐
- 通过Application配置全局的Context
我本来配置了全局变量,但是使用SharedPreferences时总是报空指针异常,报错如下: FATAL EXCEPTION: main Process: com.XXX.xxx, PID: 192 ...
- 四、Sql Server 基础培训《进度4-插入数据(实际操作)》
知识点: 假设有订单表 CREATE TABLE Order ( ID int identity(1,1) not null primary key, --内码 BillNo varchar(100) ...
- css布局 - 工作中常见的两栏布局案例及分析
突然想到要整理这么一篇平时工作中相当常见但是我们又很忽视的布局的多种处理方法.临时就在我经常浏览的网站上抓的相对应的截图.(以后看到其他类型的我再补充) 既然截了图,咱们就直接看人家使用的布局方式,毕 ...
- php 实现双向链表
/** * 链表元素结点类 */ class Node { public $pre = NULL; // 前驱 public $next = NULL; // 后继 public $data = NU ...
- Linux系统挂载windows共享目录报错mount error(121):remote error I/O error
经查,这是由于NFS(Network File System)即网络文件系统服务器有多个版本,V2.V3.V4.而且各版本同时运行,因此挂载时需要说明版本号 mount -o username='pk ...
- MySQL 在高并发下的 订单撮合 系统使用 共享锁 与 排他锁 保证数据一致性
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- codechef cook 103 div2
第一次打codechef...不太会用这oj. A: #include <bits/stdc++.h> #define mk(a,b) make_pair(a,b) #define pii ...
- java学习之路--面试之多线程基础
Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是 ...
- jq 点击按钮显示div,点击页面其他任何地方隐藏div
css .bl_rencai_32{ float: left; height: 35px; line-height: 35px; } .bl_rencai_32 >input{ width: 3 ...
- Python学习之旅(十九)
Python基础知识(18):面向对象高级编程(Ⅰ) 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3 ...