Verdi 基础教程

Verdi 基础教程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 = 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)   \ -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.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) 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使用

  • 查看包含的设计架构

Verdi 基础教程

  • 查寻模块实例化的位置

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

  • 在nTrace中查找模块和信号
  • Verdi 基础教程
  • 查寻字符串

Verdi 基础教程

  • 查看驱动信号相关

Verdi 基础教程    Verdi 基础教程     Verdi 基础教程

3.nSchema使用

  • 查看原理图

Verdi 基础教程

  • 显示原理图各信号名

Verdi 基础教程

RTL级

  • 在当前的层次中查找某个信号

Verdi 基础教程

Verdi 基础教程

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

Verdi 基础教程

  • 产生partial hierarchy schematic

Verdi 基础教程

4.nState使用

  • 查看状态机视图?

Verdi 基础教程

  • 查看状态的执行语句和转移条件

Verdi 基础教程

  • 查看某个状态的执行次数

Verdi 基础教程

Verdi 基础教程

5.nWare使用

  • 添加波形到nWave

Verdi 基础教程

Verdi 基础教程

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

  • 查找某信号,添加到nWave中

①通过nTrave查找到该信号

②通过上面的方法进行添加

或者通过get signal来查找

  • 给Group重命名,排序,以及调整信号位置

(1)重命名:

Verdi 基础教程

 

(2)信号的拖拽:

通过鼠标中键进行拖拽。

(3)缩小:

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

(4)放大:

左键拖选放大范围

shift+Z

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

(5)移动:

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

Verdi 基础教程

 

(6)复制:

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

(7)粘贴:

ins键,或者右击信号,选择粘贴的选项

(注意:可以通过鼠标中键选择粘贴的位置)

(8)删除:

delete键

  • 改变信号的颜色:

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

Verdi 基础教程

 

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

  • 查看信号及变化:

Verdi 基础教程

任意值:所有信号变化,一般会应用到组合逻辑的指示信号信号沿:用于查找有效指示信号,比如使能信号

总线值:主要是用来查找数据信号

模拟值:查看比如函数发生器产生的正弦波信号

进制之间的转换:

Verdi 基础教程

符号数之间的转换:

Verdi 基础教程

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

nTrace:

Verdi 基础教程

或者nWave:

Verdi 基础教程

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

Verdi 基础教程

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

Verdi 基础教程

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

Verdi 基础教程

Verdi 基础教程

  • 如何添加marker?

shift+M

  • 总线操作:

Verdi 基础教程

Verdi 基础教程

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

Verdi 基础教程

Verdi 基础教程    Verdi 基础教程

  • 如何对比两个波形?

Verdi 基础教程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208409.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:39
下一篇 2026年3月19日 上午11:40


相关推荐

  • pytorch中的loss函数_pytorch loss不下降

    pytorch中的loss函数_pytorch loss不下降1)两个分布很接近,但是与0和1不接近,loss仍然很大,只适合分类2)mse只计算两个差异,做回归用的,数据相同,bceloss比mseloss大。3)SmoothL1Loss比mseloss小4)bceloss收敛比较快5)bcelossinput必须是0-1之间,targets可以不是6)target是0.5input是0.4与0.6,loss无正…

    2026年1月18日
    7
  • 怎样用Python识别条形码?

    怎样用Python识别条形码?最近一位热心的网友找到宋宋,想做一个条形码或者二维码的识别系统。现在,他在北京的某知名大型连锁超市,需要通过Python识别条形码,进行快速的商品库存录入。如果已经存在的则不进行录入。不知Python能否实现?所以趁此机会我们给大家介绍下OpenCV和pyzbar。废话不多说,进入正题……条码在生活中随处可见,其可分为三类:一维条码、二维条码、三维条码一维条码:我们平时习惯称为条形码。条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识…

    2025年8月4日
    7
  • 工行u盾华为手机不识别(华为mate20无法连接工行u盾)

    众所周知,随着支付宝、微信支付的使用便利,国内互联网金融业得到迅速发展。对于传统金融服务业特别是零售银行而言,提供差异化和更高标准的服务成为其留住顾客的重要一环——正因为此,更多的银行开始利用电子银行来完成非现金业务,向轻资产转型。据悉,如今电子银行替代率达到90%的银行比比皆是,有些银行的电子银行替代率甚至达到99%。在这样的情况下,包括国家四大行之一的工商银行的数据中心内部的网络流量相比以往大…

    2022年4月13日
    73
  • OpenClaw怎么安装?OpenClaw本地部署教程及阿里云极速部署 OpenClaw(Clawdbot)指南

    OpenClaw怎么安装?OpenClaw本地部署教程及阿里云极速部署 OpenClaw(Clawdbot)指南

    2026年3月15日
    2
  • 怎么检查iis是否安装成功_注册表信息

    怎么检查iis是否安装成功_注册表信息利用注册表检测IIS是否安装

    2022年4月21日
    109
  • java清除浏览器缓存[通俗易懂]

    java清除浏览器缓存[通俗易懂]方法一:<%response.setHeader(“Pragma”,”No-cache”);response.addHeader(“Cache-Control”,”must-revalidate”);response.addHeader(“Cache-Control”,”no-cache”);response.addHeader(“Cache-Control”,”no-store”);response.setDateHeader(“Expires”,0)…

    2022年7月18日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号