Verdi 基础教程
一、Verdi 功能
- 查看设计
- debug
- Verdi不能自己产生波形
二、Verdi使用流程
1、Verdi环境配置
.bashrc中配置
export Verdi_HOME=$Synopsys_Dir/Verdi2015
#export NOVAS_HOME=$Synopsys_Dir/Verdi2015
export PATH=$Verdi_HOME/bin:$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/lib/linux64"$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64"$PATH
//设置为verdi的安装目录
2、VCS产生Verdi波形
·tb文件中加入相应的系统函数
initial begin
$fsdbDumpfile("fifo.fsdb");
$fsdbDumpvars(0);
end
·makefile中加入相应的选项
#************parameter input*************#※prepare the source list file and then make add the soucefile name#for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list src_list = simsimv_name = simv vpdpluse_name = vcdpluse cov_file_name = coverage vdb_name = $(simv_name)#************constant command************ #compile
NOR_VCS = vcs -full64 -sverilog +v2k -timescale=1ns/1ns \
-debug_all \
+notimingcheck \
+nospecify \
+vcs+flush+all \
-o $(simv_name) \
-l compile.log \
-f $(src_list).f#coverage compile switch
COV_SW = -cm line+cond+fsm+branch+tgl#verdi dump wave compile option
VERDI_SW = -P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \
/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a#run option
RUN_GUI = -R -gui -l run.log
RUN_VPD = -R +vpdfile+$(vpdpluse_name).vpd -l run.logRUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./$(cov_file_name) -l run.log RUN_VER = -R +fsdb+autoflush -l run.log#************command***********************
#normally sim
norsim:
$(NOR_VCS) $(RUN_GUI)#post-process
postsim:
$(NOR_VCS) $(RUN_VPD) dve -vpd $(vpdpluse_name).vpd#coverage
covsim:
$(NOR_VCS) $(COV_SW) $(RUN_COV) dve -covdir $(cov_file_name).vdb#verdi
versim:
$(NOR_VCS) $(VERDI_SW) $(RUN_VER) verdi -sv -f $(src_list).f -ssf *.fsdb -nologo#rm
clr:
rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf
3、Verdi使用
1.打开Verdi
- verdi -nologo
- makefile 命令
2.nTrace使用
- 查看包含的设计架构
- 查寻模块实例化的位置
①在设计结构中双击实例化模块的名字->源代码窗口高亮了模块名
②再双击高亮的模块名->看到在上层模块中的哪一行被调用了
- 在nTrace中查找模块和信号
- 查寻字符串
- 查看驱动信号相关
3.nSchema使用
- 查看原理图
- 显示原理图各信号名
RTL级
- 在当前的层次中查找某个信号
- 使用Fan-In Cone追踪某个信号的驱动逻辑
①首先要用上面的办法来查找信号
②调用该工具:
- 产生partial hierarchy schematic
用来查看与选择特定信号有关的逻辑/模块
①选择需要查看的信号(可以通过shift键来选择多个信号)
4.nState使用
- 查看状态机视图?
- 查看状态的执行语句和转移条件
- 查看某个状态的执行次数
5.nWare使用
- 添加波形到nWave
①我们要打开.v文件
②打开nWave然后打开.fsdb波形文件
③正式添加波形:
-快捷键G或者:
-在nTrace中选中信号后,鼠标中键拖拽,或者ctrl+w进行添加
- 查找某信号,添加到nWave中
①通过nTrave查找到该信号
②通过上面的方法进行添加
或者通过get signal来查找
- 给Group重命名,排序,以及调整信号位置
(1)重命名:
(2)信号的拖拽:
通过鼠标中键进行拖拽。
(3)缩小:
快捷键z,或者100%匹配:F
(4)放大:
左键拖选放大范围
shift+Z
ctrl+滑轮:进行放大或者缩小
(5)移动:
鼠标中键按住信号拖拽中键选择位置:
(6)复制:
ctrl+P,或者右击信号,选择复制的选项
(7)粘贴:
ins键,或者右击信号,选择粘贴的选项
(注意:可以通过鼠标中键选择粘贴的位置)
(8)删除:
delete键
- 改变信号的颜色:
第一步:Tools->preferences->waveform->viewoption->waveformpane->general->paint waveform with specified color/pattern
第二步:选中信号,然后按快捷键C改变信号颜色:
- 查看信号及变化:
任意值:所有信号变化,一般会应用到组合逻辑的指示信号信号沿:用于查找有效指示信号,比如使能信号
总线值:主要是用来查找数据信号
模拟值:查看比如函数发生器产生的正弦波信号
进制之间的转换:
符号数之间的转换:
状态寄存器显示为状态名字:
nTrace:
或者nWave:
可以通过移除关联从状态机名字恢复到原来的进制显示:
可以看到,我们打开过状态机视图之后,我们也就可以在状态名和进制之间转换了:
- 如何通过逻辑操作创建新信号?
- 如何添加marker?
shift+M
- 总线操作:
- 如何查找信号的某个值、某个值跳转到某个值?
- 如何对比两个波形?
Verdi 基础教程相关推荐
- Verdi 基础介绍
(1)查看驱动信号相关 在下图代码中,选择想追踪的信号X,然后L,表示追踪X在哪里被使用.D表示信号X的源是谁. (2)VCS重新编译仿真后,shift+l,使verdi更新波形. (3)CTRL + ...
- Verdi 使用教程(持续更新中)
本文链接:https://blog.csdn.net/qq_31019565/article/details/86312822 转载请标明出处: 原文发布于:浅尝辄止,未尝不可的博客 https:// ...
- Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...
- [SQL基础教程] 1-5 表的删除和更新
[SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...
- python 包用法_Python 基础教程之包和类的用法
Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...
- Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0
Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...
- Python培训基础教程都教哪些
根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...
- 深度学习之Pytorch基础教程!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...
- python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...
时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...
最新文章
- QT学习第8课:QT计算器界面实现
- java 拆分类_拆分或不拆分类(用Java)
- java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换
- 对称加密实现重要日志上报Openresty接口服务
- IDEA连接Mysql报错: 未找到驱动程序类 ‘com.mysql.cj.jdbc.Driver‘. Change driver class
- 【直观理解】一文搞懂RNN(循环神经网络)基础篇
- java web 断点上传_使用WebUploader实现分片断点上传文件功能(二)
- 【python】【multiprocessing】【Pool、pool.Pool、pool.ThreadPool】apply 和apply_async多进程有关时间的比较分析
- 基于Cookie跨域的单点登录问题
- 叹服,华为高工手写344页高性能Java架构核心原理实战架构手册
- NIFI 自定义 processor 实现
- lenovo启动热键_联想笔记本进bios按什么键|联想笔记本开机进入bios热键是哪个
- cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
- 博客实现浏览量统计次数
- 计算机专业考研英语二国家线,考研英语二国家线多少,2020年考研英语国家线多少?...
- 【转发】相似性度量学习及其在计算机视觉中的应用
- 我的世界服务器ess配置文件,《我的世界》ess指令大全及用法详解
- 传统报修方式和智能报修系统的区别
- tensorflow之tf.tensordot详解
- unity热更新新方案,ILRuntime