vcs命令
转载:VCS_weixin_34256074的博客-CSDN博客
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的脚本文件
-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命令的更多相关文章
- vcs 下使用system verilog调用c函数
c中要加入<svdpi.h> sv的tb中加入 import "DPI-C" function int funcname(); 仿真时,vcs命令行中加入 +vc fu ...
- linux下的EDA——VCS使用
原帖地址:https://blog.csdn.net/moon9999/article/details/75283926 在Linux下对verilogHDL进行功能仿真时非常必要的,下面提供两种常见 ...
- VCS常用仿真选项开关及步骤总结
转自:https://blog.csdn.net/bcs_01/article/details/79803304 转自:https://blog.csdn.net/wonder_coole/artic ...
- 转:SYNOPSYS VCS Makefile文件编写与研究
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:mak ...
- Git for PyCharm
Git for PyCharm Using PyCharm's Git integration locally:http://confluence.jetbrains.com/display/PYH/ ...
- 最全Pycharm教程(37)——Pycharm版本号控制之基础篇
1.主题 介绍Pycharm的版本号控制系统 2.准备工作 (1)Pycharm版本号为2.7或者更高 (2)已经创建一个project.參见Getting Started tutorial (3)安 ...
- Golang 模块(Module)官方手册
官方原文: https://github.com/golang/go/wiki/Modules Go 1.11包括此处建议的对版本模块的初步支持.模块是Go 1.11中的实验性加入功能,并计划纳入反馈 ...
- 最全Pycharm教程(39)——Pycharm版本控制之本地Git用法
1.主题 介绍如果通过Pycharm使用本地Git集. 2.准备工作 (1)PyCharm版本为2.7或更高 (2)已经创建一个工程 (3)Git插件可用,对应可执行文件在 Git page页面正确配 ...
- coverage report
转载:http://blog.sina.cn/dpool/blog/s/blog_7853c3910102yn77.html VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三 ...
随机推荐
- 第一类值VS第二类值
数据类型的分类:第一类值VS第二类值 第一类值:变量中可以存储函数,也就是说func类似int/double. 第二类值: 1.不能存储函数,不能动态创建函数,不能动态销毁函数; 2.只能存储一个指向 ...
- python-引用/模块
导入文件,先从当前目录下找,找不到从环境变量中找 1.导入模块,实质是把制定的py文件执行一遍. 自己写的模块:要导入的文件在当前目录下的:form 文件夹.py文件名 import 函数名 标准模块 ...
- cnblogs-theme-silence 主题设置简约风格
本文参考 更改博客皮肤 更改博客皮肤为Custom 页面定制CSS代码 勾选禁用模板默认CSS 导入复制该文件内容到代码框中 配置代码块复制功能 样式 和 右侧滑动条样式 /*复制功能添加按钮 beg ...
- redis连接密码和指定数据库
台服务器上都快开启200个redis实例了,看着就崩溃了.这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开. 那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实 ...
- TP框架中的一些登录代码分享
<?php namespace Admin\Controller;use Think\Controller;class LoginController extends Controller{ p ...
- cas的基础配置
去除HTTPS的j基础认证方式 cas的:deployerConfigContext.xml <!-- Required for proxy ticket mechanism. -->&l ...
- 鸿蒙内核源码分析(内存分配篇) | 内存有哪些分配方式 | 百篇博客分析OpenHarmony源码 | v11.02
百篇博客系列篇.本篇为: v11.xx 鸿蒙内核源码分析(内存分配篇) | 内存有哪些分配方式 | 51.c.h .o 内存管理相关篇为: v11.xx 鸿蒙内核源码分析(内存分配篇) | 内存有哪些 ...
- Loj#2880-「JOISC 2014 Day3」稻草人【CDQ分治,单调栈,二分】
正题 题目链接:https://loj.ac/problem/2880 题目大意 给出平面上的\(n\)个点,然后求有多少个矩形满足 左下角和右上角各有一个点 矩形之间没有其他点 \(1\leq n\ ...
- P4494-[HAOI2018]反色游戏【圆方树】
正题 题目链接:https://www.luogu.com.cn/problem/P4494 题目大意 给出\(n\)个点\(m\)条边的一张无向图,节点有\(0/1\),每条边可以选择是否取反两边的 ...
- JavaWeb#JSP内置对象
[1.JSP内置对象简介] 内置对象:不加声明就可以在JSP页面脚本中使用的成员变量.(使用这些对象可以更容易收集客户端发送的请求信息,响应客户端的请求及存储客户信息.) 主要介绍:out,reque ...