【文档+视频】Verdi基础教程

这篇具有很好参考价值的文章主要介绍了【文档+视频】Verdi基础教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

1.Verdi 环境配置

2.VCS 产生Verdi 波形

1、tb中加入相应的系统函数

2、makefile中加入相应的选项 

3.nTrace

1、如何调用Verdi? 【重点】

2、如何查看包含的设计架构?

 3、如何查寻模块实例化的位置?【重点】

4、在nTrace中如何查找  模块和信号?【重点】

5、如何查寻字符串?【重点】

6、如何查看某个信号是被哪些信号驱动的?【重点】

7、如果查看某个信号驱动了哪些信号?【重点】

8、如何查找位于不同层次的驱动信号【跨层次查看信号,看最终驱动谁,或者看最终被谁驱动】?【重点】

9、如何查看设计有哪些信号?【重点】

4.nSchema

1、如何打开原理图

2、如何查看nShema Window中符号对应的源代码?

3、如何显示原理图中的各个信号/端口/模块名?

4、如何在当前的层次中查找某个信号?

5、使用 Fan-In Cone追踪某个信号的驱动逻辑?

6、如何产生 partial hierarchy schematic?

7、如何移动原理图中的器件?

5.nState

1、如何查看状态机视图?

2、如何查看状态的执行语句?[重点]3、如何查看状态的转移条件?

4、如何查看状态以及节点的相关源代码?【重点】

5、查看在什么时候状态机转移到某个状态?《与tb有关》

6、查看某一种状态转移【状态循环】情况是否会发生?

7、如何查看某个状态被执行了多少次?《与tb有关》

8、如何查看某个状态转移到某个状态的转移次数《与tb有关》

5.nWare使用

1、添加波形到nWave

2、添加信号到波形【重要】

3、查找某信号,添加到nWave中?【重要】

4、如何给Group重命名,排序,以及调整信号位置?

5、 缩小:【重要】

6、放大:【重要】

7、移动:【重要】

8、复制:

9、粘贴:

10、删除:【重要】

11、改变信号的颜色:【重要】

12、查看信号及变化:【重要!】

13、如何通过逻辑操作创建新信号?

14、如何添加marker?

15.总线操作:

16、如何查找信号的某个值、某个值跳转到某个值?

17、如何对比两个波形?



前言

通过此篇博客,能够了解到Verdi的环境配置启动Verdi的方法Verdi常用的操作方法

配套教学视频介绍Verdi的基本使用方法

1.Verdi 环境配置

.bashrc中需配置三个路径

  • VERDI_HOME / NOVAS_HOME:  其实就是Verdi的安装路径
  • PATH  : 在Verdi的安装路径中,Linux能找到启动Verdi的快捷键
  • LD_LIBRARY_PATH  :  让Verdi找到相应的库文件,从而进行相应的仿真
export Verdi_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

2.VCS 产生Verdi 波形

1、tb中加入相应的系统函数

如异步FIFO设计:

initial begin
$fsdbDumpfile("fifo.fsdb");  //fifo.fsdb是波形文件名字,根据设计名字自行定义。
$fsdbDumpvars(0);            //0代表dump电路设计所有层次; 若为1,则代表dump1层。
end

在TB中要添加$stop$finish,否则波形会一直dump下去。

2、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 = sim
simv_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) -f $(src_list).f -l compile.log 

#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.log
RUN_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) 
//****$(NOR_VCS) : 编译阶段—— 执行VCS普通编译过程,编译过程中产生simv.name文件;
//****$(VERDI_SW):  在编译过程中添加verdi开关选项,主要加入novas.tab类表文件和  pli.a 接口文件文件;
//****$(RUN_VER) : 仿真阶段—— 主要用来产生 .fsdb 文件
verdi -sv -f $(src_list).f -ssf *.fsdb -nologo  
//****启动Verdi,并打开fsdb文件

#rm
clr:
rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf

3.nTrace

1、如何调用Verdi? 【重点】

  • Verdi或verdi -nologo
  • makefile中的命令

2、如何查看包含的设计架构?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 3、如何查寻模块实例化的位置?【重点】

①在设计结构中双击实例化模块的名字 ->源代码窗口高亮了设计部分的模块名
②再双击高亮的模块名->看到在上层模块中的哪一行被调用了

4、在nTrace中如何查找  模块和信号?【重点】

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

或Shift+A:

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 搜索通配符

5、如何查寻字符串?【重点】

类似于文本查找功能。

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

或者快捷键斜杠/:verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频 

6、如何查看某个信号是被哪些信号驱动的?【重点】

双击信号名,或者单击选中信号名然后点击:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 接着可以通过快捷键N查看下一个被赋值/驱动的位置 或者快捷键P查看上一个被驱动/赋值的位
置。 或点击L后的上、下箭头来选择。

7、如果查看某个信号驱动了哪些信号?【重点】

选中信号,然后点一下:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频
接着可以通过快捷键N查看下一个驱动其他信号的位置 或者快捷键P查看上一个驱动其他信号的
位置。或点击L后的上、下箭头来选择。

8、如何查找位于不同层次的驱动信号【跨层次查看信号,看最终驱动谁,或者看最终被谁驱动】?【重点】

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

9、如何查看设计有哪些信号?【重点】

 通过最右下方signal_list来查看,可以选择查看输入/输出等端口类型。

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

4.nSchema

1、如何打开原理图

选中设计 -> new schematic

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

2、如何查看nShema Window中符号对应的源代码?

双击对应的功能单元电路图,即可跳转到描述该单元的源代码

3、如何显示原理图中的各个信号/端口/模块名?

4、如何在当前的层次中查找某个信号?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 被查到的信号会高亮

5、使用 Fan-In Cone追踪某个信号的驱动逻辑?

①首先要用上面的办法来查找信号,高亮选中
②调用该工具:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

这样就可以看到某个信号是如何生成的(可以通过View选项来显示信号名)

6、如何产生 partial hierarchy schematic?

用来查看与选择特定信号有关的逻辑/模块
①选择需要查看的信号(可以通过shift键来选择多个信号)
②:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

选择查看与wclk和wrst_n有关的信号/模块/逻辑:

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

7、如何移动原理图中的器件?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 鼠标左键选中,按住右键进行拖拽。

5.nState

状态机查看器。
很多设计的控制器,状态机组成。
使用Verdi流程。

当拿到一个设计时,你想知道他是怎么工作的?可通过下面操作研究?

1、如何查看状态机视图?

①打开原理图

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频
②双击相应状态机视图后,呈现状态机图

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

2、如何查看状态的执行语句?[重点]3、如何查看状态的转移条件?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

4、如何查看状态以及节点的相关源代码?【重点】

选择状态,然后使用鼠标中键拖拽状态到nTrace中的源代码视图中即可

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

5、查看在什么时候状态机转移到某个状态?《与tb有关》

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

①要依靠tb
②打开nstate后,要导入波形

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

6、查看某一种状态转移【状态循环】情况是否会发生?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

7、如何查看某个状态被执行了多少次?《与tb有关》

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

8、如何查看某个状态转移到某个状态的转移次数《与tb有关》

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

5.nWare使用

1、添加波形到nWave

①我们要打开.v文件
②打开nWave然后打开.fsdb波形文件

③正式添加波形:
-快捷键G或者:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

2、添加信号到波形【重要】

 -在nTrace中选中信号后,鼠标中键拖拽,或者ctrl+w进行添加

3、查找某信号,添加到nWave中?【重要】

①通过nTrave查找到该信号
②通过上面的方法进行添加
或者通过get signal来查找

4、如何给Group重命名,排序,以及调整信号位置?

重命名:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

信号的拖拽:

通过鼠标中键进行拖拽。
 

5、 缩小:【重要】

快捷键z,或者100%匹配:F

6、放大:【重要】

左键拖选放大范围
shift+Z


ctrl+滑轮:进行放大或者缩小

7、移动:【重要】

鼠标中键按住信号拖拽
中键选择位置:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

8、复制:

ctrl+P,或者右击信号,选择复制的选项
 

9、粘贴:

ins键,或者右击信号,选择粘贴的选项
(注意:可以通过鼠标中键选择粘贴的位置)

10、删除:【重要】

delete键

11、改变信号的颜色:【重要】

第一步:Tools->preferences->waveform->viewoption->waveformpane->general->paint waveform
with specified color/pattern

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 第二步:选中信号,然后按快捷键C改变信号颜色:

12、查看信号及变化:【重要!】

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 任意值:所有信号变化,一般会应用到组合逻辑的指示信号
信号沿:用于查找有效指示信号,比如使能信号
总线值:主要是用来查找数据信号
模拟值:查看比如函数发生器产生的正弦波信号

进制之间的转换:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 符号数之间的转换:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 状态寄存器显示为状态名字:

nTrace:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 或者nWave

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

可以通过移除关联从状态机名字恢复到原来的进制显示: 

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 可以看到,我们打开过状态机视图之后,我们也就可以在状态名和进制之间转换了:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

13、如何通过逻辑操作创建新信号?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

14、如何添加marker?

shift+M

15.总线操作:

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

16、如何查找信号的某个值、某个值跳转到某个值?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

 verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频

17、如何对比两个波形?

verdi代码层次结构是由什么决定的,02、vcs和verdi的使用,音视频文章来源地址https://www.toymoban.com/news/detail-812328.html

到了这里,关于【文档+视频】Verdi基础教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Tools】Verdi常用方法

    一、简介         verdi是一个目前流行的ICer使用的debug工具,主要用来查看代码以及波形以方便工程师解决问题。verdi的基本界面如下图所示,包括rtl界面以及波形界面。  二、基本操作         使用verdi打开设计以及波形的几种方法:         方法一:              

    2024年02月12日
    浏览(32)
  • verdi基本操作

    1. 生成波形:要VCS  与 verdi 联合仿真,需要在tb_top中加入如下代码,否则不会生成波形文件 2. Verdi 基本操作 ( 大写: shift+) g    get, signlas 添加信号,显示波形 n    next, Search Forward 选定信号按指定的值(上升沿,下降沿, both, 指定 Value )向前跳转 N     与 n 功能相同,方

    2024年02月10日
    浏览(25)
  • verdi查看二维数组波形正确操作

    在编写verilog设计电路时,需要通过查看波形来进行调试,而在数字IC设计中常用的波形查看工具就是Verdi。 使用makefile脚本语言打开verdi后,常规操作是将鼠标点击要查看的信号,再使用ctrl+w即可添加该信号波形。但如果想要查看二维数组信号波形,则会出现如下所示的问题。

    2024年02月11日
    浏览(28)
  • [VCS、verdi、makefile] 联合仿真 ——步骤

    目录 1、vcs、verdi简介和安装 2、Verdi的配置 3、vcs与Verdi联合仿真的Makefile脚本 1、基于Verilog系统函数Makefile脚本 1.1 先在tb文件中添加代码段,仿真后可以产生.fsdb文件  1.2 Makefile写法 2、基于ucli/tcl接口Makefile脚本 4、Verdi的使用       建议去淘宝买别人别人装好的环境,自己整

    2024年02月01日
    浏览(29)
  • linux环境下vcs+verdi的使用

    今日感想:学习只能慢慢搭积木,想一步登天可不行啊 在vcs仿真时调用$dump函数dump出fsdb文件,随后verdi load filelist和fsdb文件来进行debug 1、 vcs两步仿真:先编译文件,生成simv可执行文件;后进行仿真 (compilation and simulation) VCS:Verilog Compiler Simulator 问题一:当设计比较大的

    2024年02月11日
    浏览(33)
  • 【VCS+Verdi联合仿真】~ 以计数器为例

    首先,先声明一下,我写这篇博客的时候我就是一个纯小白,实不相瞒,刚刚学了一天,哈哈哈,没错,你没看错,就是一天!!!主要是因为前天因为刷题和找工作的需要,需要熟悉VCS和Verdi的联合仿真(据说是很好用,随大流呗!!!),所以才会有接下来的一些相关博

    2023年04月12日
    浏览(26)
  • VCS与Verdi联仿,简要万能工程模板,持续更新中...

    一、背景 学习verilog,故用vcs来编译verilog,用verdi来查看波形。 提供一套简要verilog工程模板去执行教程中代码,并分析波形。 二、编写工程模块 建立工程在temp文件夹下新建文件夹/rtl、/sim、/tb,如下: 在/rtl文件夹下新建两个.v文件: template.v和timescale.v ,为模板rtl代码。

    2024年02月12日
    浏览(32)
  • 同步和异步、同步复位、异步复位、同步释放(Verilog、Verdi、DC综合)

    数字电路根据逻辑功能的不同特点,可以分成两大类:一类叫做组合逻辑电路,简称组合电路或组合逻辑;另一类叫做时序逻辑电路,简称时序电路或时序逻辑。 如果数字电路满足任意时刻的输出仅仅取决于该时刻的输入,那么该数字电路为组合逻辑电路。 相反,如果数字

    2024年02月11日
    浏览(33)
  • 【前端设计】使用Verdi查看波形时鼠标遮住了parameter值怎么整

    盆友,你们在使用Verdi的时候,有没有遇到过鼠标遮挡着了parameter数值的场景?就跟下面这个示意图一样: 最可恨的是这个参数值他会跟着你的鼠标走,你想把鼠标移开看看看这个例化值到底是多大吧,这个数他跟着你的鼠标飞,就很气。 所以这个时候需要点击Verdi - Source

    2024年02月16日
    浏览(29)
  • linux VCS+verdi运行UVM实战(第二章)中的例子

    目录 前言 介绍 建立工程 运行代码 查看波形 总结 前言 用VCS+verdi运行了下UVM实战中的例子(第二章)。 在某宝上花了几十块,买了个虚拟机(已经安装好VCS+verdi)。直接用UVM实战中,现成的uvm代码跑了下。 UVM实战源码下载地址:UVM实战源码下载 书中DUT的功能:通过rxd接收

    2023年04月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包