Verdi快速上手技巧大全(更新版)

本文详细介绍了Verdi的完整界面,包括工具栏图标、常用操作,如查看波形、显示信号、跳转代码行、修改字体大小等。还涵盖了波形窗口的使用,如全屏显示、放大/缩小、光标和标记操作,以及数值进制设置。此外,讨论了如何查找信号、保存波形文件和使用WaveformCompare功能。Verdi的快捷键和通过tb生成波形文件的方法也得到了阐述。

目录

Verdi完整界面

工具栏图标

常用操作(ntrace窗口)

快速筛选需要的信号

 查看某个或多个信号波形

打开模块原理图

显示原理图中的各个信号/端口/模块名

获得波形时刻代码里的数值

获得代码内的参数值

跳转到代码文件中的指定行

重新加载设计文件

修改Verdi中的字体大小

 查看mem中数据

波形窗口nwave

波形全屏显示

定位代码位置

波形放大/缩小

Cursor (黄色)Marker (白色)

数值进制设置

信号窗口

保存/加载波形文件

显示信号层级路径

自动计数

统计信号跳变次数

Waveform Compare比较波形

查找信号的值

在波形中显示状态机状态名称

显示信号高位0

波形窗口快捷键

Verdi加载 

打开Verdi没波形怎么办

fsdb dump操作命令

$fsdbDumpfile(fsdb_name[,limit_size]) 

$fsdbDumpvars([depth, instance][, “option”]) 

$fsdbAutoSwitchDumpfile(file_size, “fsdb_name”, number_of_files[, “log_file_name”, “+fsdb+no_overwrite”])


Verdi完整界面

恢复默认窗口界面:window -> hardware debug mode

工具栏图标

在工具栏右键可以自行添加或删除图标 

:打开设计文件

:打开波形窗口;打开原理图;打开时序图

:打开信号列表

打开信号列表效果:

 :新建源标签;编辑设计文件(快捷键e);

新建源标签:

在代码窗口下方工具栏右键同样可以新建源标签 

 编辑设计文件:

会自动打开编辑窗口,可以直接在Verdi对代码进行修改 

 

查看当前模块如何被例化;查看当前模块如何定义(也可以双击模块例化名)

上一步操作;下一步操作(ctrl+alt+f,ctrl+alt+b)

查看当前信号被那些信号驱动;查看当前信号会驱动那些信号

双击选定信号后跳转到上一处出现位置;跳转到下一处出现位置(快捷键p,n)

:显示上一层;显示下一层

bookmark:标签(快捷键ctrl+F2),在特定的代码处设置标签可以实现快速跳转(shift+F2前一个标签,F2后一个标签)

 :查找当前代码中的特定字符串(快捷键/);向上查找;向下查找

 查找快捷键:

查找范围:shift+S;source -> find scope

查找信号

法一:shift+A;source -> find signal/instance/instport

法二:在instance窗口右键,选择Show Search/filter,可查找某一信号

常用操作(ntrace窗口)

快速筛选需要的信号

view -> signal list,显示signal list窗口,窗口列出了当前层级的所有信号,支持通配符搜索

 查看某个或多个信号波形

法一:选中后直接拖到波形窗口

法二:选中后ctrl+w

法三:选中后ctrl+4

打开模块原理图

在instance窗口中选中要查看模块,右键选择New Schematic

显示原理图中的各个信号/端口/模块名

打开原理图,在原理图工具栏中的view窗口

获得波形时刻代码里的数值

Source  -> Active Annotation

获得代码内的参数值

将鼠标放到参数上,自动显示参数值

跳转到代码文件
### Verdi 使用技巧与最佳实践 Verdi 是一款功能强大的调试工具,广泛应用于硬件验证领域。以下是关于 Verdi 工具的使用技巧和最佳实践: #### 1. 波形查看优化 在使用 Verdi 进行波形查看时,可以利用以下技巧提高效率: - **信号分组**:将相关的信号分组显示,便于快速定位感兴趣的信号[^1]。 - **信号过滤**:通过正则表达式或关键字过滤信号,减少无关信号的干扰[^2]。 - **波形缩放**:灵活使用波形缩放功能,聚焦于关键时间点的信号变化。 ```python # 示例代码:自动加载信号到波形窗口 add_wave -noupdate /testbench/dut/* ``` #### 2. 断点设置策略 断点是调试过程中不可或缺的功能,以下是一些最佳实践: - **条件断点**:设置带有条件表达式的断点,仅在满足特定条件时暂停仿真[^1]。 - **断点管理**:合理组织断点列表,避免过多断点导致调试混乱。 - **动态断点**:根据仿真进度动态调整断点位置,适应复杂的调试场景。 #### 3. 代码跟踪与分析 Verdi 提供了强大的代码跟踪功能,可用于深入分析问题根源: - **源码高亮**:在仿真过程中实时高亮触发的代码行,帮助理解程序执行流程。 - **变量监控**:添加需要监控的变量,观察其值的变化趋势。 - **覆盖率分析**:结合验证覆盖率工具,评估测试用例的有效性[^2]。 #### 4. 性能优化技巧 为了提高 Verdi 的使用效率,可以采取以下措施: - **日志文件管理**:定期清理不必要的日志文件,减少存储空间占用。 - **仿真配置优化**:调整仿真参数以平衡速度和精度,例如启用增量编译。 - **资源分配**:确保 Verdi 运行时有足够的内存和 CPU 资源,避免性能瓶颈[^2]。 #### 5. 团队协作与知识共享 在团队环境中,有效的协作和知识共享可以显著提升工作效率: - **模板化脚本**:创建标准化的 Verdi 启动脚本,方便团队成员复用。 - **经验总结**:定期总结常见问题及其解决方案,形成内部知识库。 - **培训与交流**:组织定期的技术分享会,促进团队成员之间的学习与进步。 ### 示例代码:启动 Verdi 并加载波形 ```bash verdi -ssf /path/to/simulation/session.ssf ```
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值