一、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

  1. verdi -nologo
  2. 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 基础教程相关推荐

  1. Verdi 基础介绍

    (1)查看驱动信号相关 在下图代码中,选择想追踪的信号X,然后L,表示追踪X在哪里被使用.D表示信号X的源是谁. (2)VCS重新编译仿真后,shift+l,使verdi更新波形. (3)CTRL + ...

  2. Verdi 使用教程(持续更新中)

    本文链接:https://blog.csdn.net/qq_31019565/article/details/86312822 转载请标明出处: 原文发布于:浅尝辄止,未尝不可的博客 https:// ...

  3. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  4. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

  5. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  6. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0

    Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...

  7. Python培训基础教程都教哪些

    根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...

  8. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

  9. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

最新文章

  1. QT学习第8课:QT计算器界面实现
  2. java 拆分类_拆分或不拆分类(用Java)
  3. java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换
  4. 对称加密实现重要日志上报Openresty接口服务
  5. IDEA连接Mysql报错: 未找到驱动程序类 ‘com.mysql.cj.jdbc.Driver‘.  Change driver class
  6. 【直观理解】一文搞懂RNN(循环神经网络)基础篇
  7. java web 断点上传_使用WebUploader实现分片断点上传文件功能(二)
  8. 【python】【multiprocessing】【Pool、pool.Pool、pool.ThreadPool】apply 和apply_async多进程有关时间的比较分析
  9. 基于Cookie跨域的单点登录问题
  10. 叹服,华为高工手写344页高性能Java架构核心原理实战架构手册
  11. NIFI 自定义 processor 实现
  12. lenovo启动热键_联想笔记本进bios按什么键|联想笔记本开机进入bios热键是哪个
  13. cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
  14. 博客实现浏览量统计次数
  15. 计算机专业考研英语二国家线,考研英语二国家线多少,2020年考研英语国家线多少?...
  16. 【转发】相似性度量学习及其在计算机视觉中的应用
  17. 我的世界服务器ess配置文件,《我的世界》ess指令大全及用法详解
  18. 传统报修方式和智能报修系统的区别
  19. tensorflow之tf.tensordot详解
  20. unity热更新新方案,ILRuntime

热门文章

  1. 使用logminer分析日志文件
  2. iframe子页面内刷新父页面中另一个iframe子页面
  3. aix6.1 nfs
  4. Go语言字符串和正则表达式
  5. Qt打开文件对话框同时选中多个文件或单个文件
  6. 打造自己Django博客日记
  7. Oracle中主键自增长
  8. 【JZOJ4861】【NOIP2016提高A组集训第7场11.4】推冰块
  9. Hammer.js移动端触屏框架的使用
  10. 福昕PDF阅读器的图章妙用