verdi使用
1 命令行选项
verdi tb.v -wcfile -ssv -f file.lst -ssf xx.fsdb
选项 | 说明 |
---|---|
-sv | 支持systemverilog语法 |
+systemverilogext+.sv | 指定sv文件的后缀 |
-ssv | 取消-v指定的library为lib cell |
-ssy | 取消-y指定的library为lib cell |
-ssz | 忽略`celldefine的compiler指令 |
-top tb | 指定整个环境的top名称为tb |
-vc | 支持DirectC语法 |
-f | 指定文件列表 |
-ssf | 指定波形文件 |
-wcfile | 使verdi可以识别filelist.f中 path/*.v这种写法 |
2 查看图形常用操作
2.1 颜色
操作 | 作用 |
---|---|
快捷键c | 给选中的对象标记颜色 |
nSchema菜单 -> Schematic -> All Objects to Default Color |
取消所有标记的颜色 |
主菜单(或nSchema菜单) -> Tools -> Preference -> Schematics -> Color/Font |
1. 在Color Theme处可以选择主题颜色, 目前verdi默认是Classic Theme, net颜色刺眼, 可选择第2个Black Theme. 2. Type处可以设置特定元素的颜色和线型. 3. 右侧选择框, 选中"Automatic Font And Size", 让inst名称等字体自动放大/缩小 |
部分type名称对应的元素
Type | 说明 |
---|---|
Background | 背景 |
Block Symbol | 例化的块 |
Normal Signal | 普通net |
Pre Select | 鼠标悬停在元素上(还没有选中)时 |
Selected Set | 选中的元素 |
Symbol Name | port名/inst名/inst.pin名等 |
Symbol Port | port图标/inst.pin图标等 |
2.2 文本
操作 | 作用 |
---|---|
Ctrl+H | 复制当前选中对象的全路径 |
2.3 电路
操作 | 作用 |
---|---|
快捷键a | 调出搜索窗口, 在当前层次搜索Singal/Inst/Port/InstPort等 |
快捷键A | 调出搜索窗口, 在Hir层次搜索Singal/Inst/Port/InstPort等 |
工具栏D | 追查当前选中信号的Drive |
工具栏<- | 返回上一个视图 |
菜单Tools -> NewSchematic -> FlattendWindow |
在新窗口查看选中信号的flatten视图 |
菜单Tools -> NewSchematic -> Fan-in |
在新窗口查看选中信号的所有fanin |
菜单Tools -> Preferences... -> Schematics展开 -> Select 在SelectSettings中选中 "AutoFitSelection" |
当在Find窗口选中某元素时, nSchema窗口中会自动把选中的元素缩放到合适尺寸 |
3 查看波形常用操作
操作 | 作用 |
---|---|
快捷键f | |
快捷键Ctrl+w | 将电路图中的信号送到波形窗口 |
鼠标左键单击 | 将标尺1定位到当前时间点 |
鼠标中键单击 | 将标尺2定位到当前时间点 |
快捷键x | 将标尺1和标尺2的相对位置固定(或解除固定) |
鼠标左键拖动 | 查看拖动范围内的时间段 |
快捷键r | load信号列表文件signal.rc |
快捷健shift+s | 保存信号列表文件signal.rc |
菜单WaveForm.SetRadix.AddAliasFromFile | 从文件加载Aliasfile, 给信号值比如Tap.IR取别名, 文件格式见表格后面. |
菜单WaveForm.Snap Cursor/Marker to Transitions | 用鼠标点击波形时, 标尺(cursor/marker)跳到信号值变化的时间点. |
Alias文件格式:
Intest 8'h18
Sample 8'h1B
Extest 8'h1C
4 查看force信息.
参考链接: http://www.lujun.org.cn/?p=4582
1). 在仿真参数中加入+fsdb+force选项(./simv +fsdb+force), 这时dump fsdb时就会得到force信息.
2). 使用verdi查看信号时, 如果该信号有force, 则波形上对应的时间点会有紫色箭头.
向下箭头表示当前时间有force应用到该信号.
向上箭头表示当前时间有release应用到该信号.
3). 如果环境中force比较多, 可以把force信息生成一个报告文件:
fsdbreport xx.fsdb -find_forces -s "/*" -level 0 -o xx.txt
其中:
xx.fsdb : 是输入的波形文件.
-find_force: 表示当前报告是要抓force.
-s : 指定查找force信息的层次, /*表示从最顶层开始查找.
-level : 指定向下查找的层次. 0表示查找-s指定的层次下所有的层次.
-o : 指定输出文件名.
4). 报告文件的格式:
#/xx/xx/fsdbreport xx.fsdb -find_forces -s / -level 0 -o xx.force.txt
Time(1fs), /tb/FCLK
0, Forced, ^x, design
20, Forced, ^0, external
...
Time(1fs), /tb/interposer/BP_TCK
0, Forced, ^?, design
0, Forced, ^0, design
20, Forced, ^1, design
...
...
line1: 生成该报告文件的命令.
line2: force信号的层次
line3: force时间, force/release值.
5 自定义novas.rc文件
有时我们要把在图形界面的设置固化到novas.rc中, 但novas.rc文件很长, 里面有很多选项, 并不容易找到某个设置对应哪个变量.
这时我们可以参考一个文件, 在打开verdi图形界面的目录下verdiLog/verdi.cmd, 这个文件记录了对图形界面的操作对应的命令.
比如, 在verdi图形界面点击:
nSchema菜单->View->Net Name,
用来在电路图中显示net名, 这时在verdi.cmd文件中会多出一行:
schSetOptions -win $_nSchema2 -localNetName on
可以得知net名称在novas.rc中的配置项大约是localNetName,
打开novas.rc文件, 搜索, 果然有一个localNetName = False, 将它改为True.
下次再打开verdi看电路, 就可以发现net name就自动标记到电路上了.