dump用法

https://blog.csdn.net/limanjihe/article/details/49924057

Verilog提供一系列系统任务用于记录信号值变化,常见的格式有vcd,fsdb等。

$dumpfile("file. dump"); 打开一个VCD数据库用于记录
$dumpvars(level,start_module); 要记录的信号,level=0表示记录所有
$dumpflush; 将VCD数据保存到磁盘  不明白
$dumpoff; 停止记录
$dumpon; 重新开始记录
$dumplimit(); 限制VCD文件的大小(以字节为单位)
$dumpall; 记录所有指定的信号值

用法:

initial
begin
$dumpfile (“verilog. dump”);
$dumpvars (0, testfixture);
end

举例:

$dumpvars; // Dump所有层次的信号
$dumpvars (1, top); // Dump top模块中的所有信号
$dumpvars (2, top. u1); // Dump实例top. u1及其下一层的信号
$dumpvars (0, top. u2, top. u1\. u13\. q); // Dump top.u2及其以下所有信号,以及信号top. u1\. u13\. q。
$dumpvars (3, top. u2, top. u1); // Dump top. u1和top. u2及其下两层中的所有信号。

https://blog.csdn.net/immeatea_aun/article/details/80961258

Verdi主要在以下方面使用:

IC验证工程师(Debug)
IC设计工程师(Review)

能够生成fsdb波形;
能够查看fsdb波形;
能够追踪RTL代码。
生成FSDB波形

VERDI_HOME/NOVAS_HOME:仿真器默认,且为设置PATH做准备
PATH:让系统(Linux)找到verdi
LD_LIBRARY_PATH:让系统(Linux)能够找到Verdi需要的库文件.
三个命令 
echo(可配合sed):查询环境变量 
echo $PATH | sed ‘s/\:/\n/g’
echo $LD_LIBRARY_PATH | sed ‘s/\:/\n/g’
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
+ which :查询当前软件是否设置,若设置成功,会显示软件路径
+ uname -i:查询当前系统信息,如硬件平台64bit为x86_64/amd64,32bit平台为i386    
两大方法 
使用Verilog系统函数
initial begin
    $fsdbDumpfile("top_tb.fsdb");
    $fsdbDumpvars(0,"tob_tb");
end
* 使用UCLI、TCL接口(VCS使用tcl脚本,irun、questa与该脚本类似)
1
global env
fsdbDumpfile "$env(demo_fifo).fsdb"
fsdbDumpvars 0 "top_tb"
run

Dump波形的两类主要方法优缺点比较
基于系统函数
优点 1.新员工熟悉Verilog代码,接受较快
缺点 1.需要重新编译系统,浪费时间(不使用value
plusargs时);2.Verilog是低级语言,对于文本处理比较困难,不支持正则表达式
基于ucli/tcl接口
1.不需要重新编译仿真顶层; 2.使用高级语言接口,容易完成复杂处理,例如传递变量,例如使用正则表达式;3.交互式接口,控制灵活,仿真过程可修改dump信息,如dumpon/dumpoff
缺点 1.新员工大多不熟悉Tcl,接受较慢

  • 三大EDA厂商
  • Synopsys:VCS + Verdi
  • Cadence :irun + Verdi
  • Mentor :Questa + Verdi

VCS脚本:与Verdi有关的为注释内容,使用ucli接口

com:
vcs -full64
-sverilog
-debug_pp \ # 使能UCLI命令
-LDFLAGS \ # 传递参数给VCS的linker,与以下三行配合使用
-rdynamic \ # 指示需加载的动态库,如libsscore_vcs201209.so
-P {VERDI_HOME}/share/PLI/VCS/{PLATFORM}/novas.tab \ # 加载表格文件
{VERDI_HOME}/share/PLI/VCS/{PLANTFORM}/pli.a \ # 加载静态库
-f ../${demo_name}/tb_top.f
+vcs+lic+wait
-l compile.log

sim:
./simv
-ucli -i ../scripts/dump_fsdb_vcs.tcl \ # ucli的输入文件(-i)为tcl脚本
+fsdb+autoflush \ # 命令行参数autoflush,一边仿真一边dump波形,如果没有该参数,那么不会dump波形,需要在ucli命令run 100ns后键入fsdbDumpflush才会dump波形
-l sim.log

其中dump_fsdb_vcs.tcl(ucli脚本为tcl语言)
global env # tcl脚本引用环境变量,Makefile中通过export定义
fsdbDumpfile "$env(demo_name).fsdb" # 设置波形文件名,受环境变量env(demo_name)控制 # demo_name在makefile中使用export demo_name=demo_fifo
fsdbDumpvars 0 "tb_top" # 设置波形的顶层和层次,表示将tb_top作为顶层,Dump所有层次
run # 设置完dump信息,启动仿真(此时仿真器被ucli控制) 可以run 100ns会在仿真100ns的时候停下来下来

也可以使用交互式仿真:注释内容可以在仿真过程中键入
global env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "top_tb"
run 200ns

fsdbDumpoff

run 100ns

fsdbDumpon

run

irun编译运行脚本:

com:
irun
-elaborate
-access +r \ # 表示需要有读的权限
-f ../${demo_name}/tb_top.f
-top tb_top
-licqueue
-l compile.log

sim:
irun
-R
-input ../scripts/dump_fsdb_irun.tcl
+fsdb+autoflush
-licqueue
-l sim.log

dump_fsdb_irun.tcl
global env
call fsdbDumpfile "$env(demo_name).fsdb" # 需要使用call,与vcs区别之一
call fsdbDumpvars 0 "tb_top"
run
quit # 需要使用quit,irun不自动结束

questa脚本

compile:
vlib work
vmap work work
vlog
-64
-sv
+acc \ # +acc使加载PLI有效
-f ../${demo_name}/tb_top.f
-l com.log

run:
vsim
-64
-batch
-novopt
-pli {VERDI_HOME}/share/PLI/MODELSIM/{PLATFORM}/novas_fli.so \ # 加载共享对象
work.tb_top
-do ../scripts/dump_fsdb_questa.tcl
+fsdb_autoflush
-l sim.log

dump_fsdb_questa.tcl
gloal env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "tb_top"
run -all
quit -sim

不同场景dump波形的需求

verdi 加载设计的脚本

debug:
verdi
-sv \ # 支持sv
-f ../${demo_name}/tb_top.f \ # 加载设计文件列表
-top tb_top \ # 指定设计顶层
-nologo # 关掉欢迎界面

PS:
Verdi加载设计的参数与VCS类似
支持+incdir+xx 设置include文件目录
+libext+.v 设置库文件后缀
-v 设置可搜索设计的文件
-y 设置可搜索设计的目录

加载FSDB波形

dbg:
verdi -sv \ #支持SV
-f ../{demo_name}/tb_top.f \ #加载设计文件列表 -top tb_top \ #设置设计顶层 -ssf{waveform}
-nologo #关闭欢迎界面

verdiLog文件夹里面的compile.log是verdi编译信息

重复加载设计和波形:(reload)

避免重复开关gui
避免频繁申请license(license资源问题,手中掌握资源,霸占…)
verdi界面
ntrace:file -> reload design,一般重新加载设计的同时会重新load wave
nwave :file -> reload
拓扑结构:topology(在nTrace)
源码(nTrace)
选择信号方式:

在设计中选择信号,按快捷键ctrl+w
在nWave界面使用通配符,可以选择in/out/inout/net(wire)/register等信号
查看波形

目标 快捷键 鼠标操作
100%波形 F 点击100%符号
缩小波形 z(推荐) -
放大波形 shift+z 左键拖选放大范围(推荐)
移动信号 中键选择位置+信号+M 鼠标中键按住信号拖拽
拷贝波形 ctrl+p 右键选择
粘贴信号 中间选择位置+Ins 右键选择
删除信号 Del 右键选择
显示结构 h(开/关) -
时间差

  • nWave:waveform -> marker 标记 :输入名字,然后add
    • nWave:waveform -> Signal Value Radix修改进制;
    • nWave:waveform -> Signal Value Notation设置信号。无符号unsigned,有符号一般选择Signed 2's Complement

查看信号变化:

对于状态机:点击nTrace中类似与门的信号,点击打开电路图后波形就变成了rtl中的设置的状态机的不同状态(三段式容易被verdi识别是状态机,标注状态)
信号分组:右键rename组名,结构清晰,便于对照
总线操作:选中信号右键Bus Operations ->Create Bus

这里取反是bit取反,非byte
save和restore

存储当前查看波形的工程
将当前所有信号存成一个*.rc文件
重新打开波形界面时,restore信号
nwave:file -> Save Signal/Restore Signal
debug 追踪波形

快速熟悉一个设计:双击RTL中的信号,追踪波形

掌握设计拓扑结构:通过nTrace界面获取

熟悉设计的输入、输出
Trace(Input)
哪些信号驱动了当前信号
Load(Output)
当前信号驱动了哪些信号

找到ntrace中的L、D

同时可以在trace界面右键Collapse All,Expand All,save等操作
在设计之间跳转,回退 上、下、前、后等

快速找到应用实例:nTrace : Source -> Find Signal/Instance/Instport

勾选Search Full Scope ,选择输入要例化的模块(支持通配符)

  • 获取波形里面的信号数值:nTrace:source -> Active Annotation,将所有的信号标值

————————————————
版权声明:本文为CSDN博主「254、小小黑」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/immeatea_aun/article/details/80961258

dump memory波形和查看
https://www.cnblogs.com/OneFri/p/5989033.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350