vcs&Verdi常见操作技巧一

本文详细介绍了Verdi工具在电路设计中的各种操作技巧,包括保存设置、VCS调试hang问题、变量赋值、fsdb使用、内存检查、波形格式调整等,旨在提升设计和调试效率。

1. Verdi 如何将已经设置好的nSchematic view 保存下来,方便下次的使用

Step1:点击file的save_session,进去后直接保存文件;

Step2:下一次进入后打开nSchem后在此打开file点击restore session(save session)上边的按钮,找到之前保存的文件load进来就可以了。

2. 如何在Vcs中快速debug hang 的问题

方法1:

分别在编译仿真的时候添加+vcs+loopreport/+vcs+loopdetect

%vcs test.v +vcs+loopreport -debug_access+all -l comp.log

%./simv +vcs+loopreport -l run.log

这样在仿真的过程中出现hang的时候会打印到log,如下:

方法二:

在编译中添加:

%vcs -Xvgprofile -Xmod=0x13;

当仿真挂起的时候再通过:

% pstack <PID> //ps -u

此时会打印hang的信息;

注意:方法二一般用在非死循环原因的hang

3. Vcs 仿真是如何给环境里变量赋值

$value$plusargs();

在仿真时添加:+r1=<想加入的值>;

4. Vcs对编译的warning error进行动态调整

5. Vcs constraint error 时控制仿真立刻停止

% simv +ntb_stop_on_constraint_solver_error=1

6. 加速仿真的几种方法(先列出来,后续再深究)

PC

FGP

DPO

ICO

DTL

VSO.ai

distribution complie

distribution simulation

7. 一个module中多个instance 在随机时如何产生不同的随机数

可以在仿真时添加:

-xlrm hier_inst_seed

8. Verdi 如何快速把design所有寄存器找出来

Step1:在Verdi里边点击APP->design exploration->list registers,根据实际自行设置

 Step2:在smartlog 中输出报告

9. Verdi中变频信号如何直观显示频率值

Step1:选中clk信号,点击菜单栏里边的analog->capture frequency,此时会显示频率;

Step2:如果此时不是很直观,可以继续右击点击digital waveform,通过直观的数字进行观察

10. Verdi如何快速debug force信号

Verdi里边对force 的信号进行标记(source->active annotation 快捷键X)

输出report的命令:

fsdbreport <fsdb文件> -s <信号> -find_forces

Make force_report 会输出force文件

11. Verdi快速检查memory的值

Step1:选中要查找的mem,右击使用debug memory

Step2:  选中show memory contents 查看mem的值。

12. Verdi 如何将string dump到fsdb 中

Step1:首先将string储存到reg中或者写入到多bit中;

Step2:将regvar, strvar 拉到波形中,使用ASCII(set radix)

13. 如何不起Verdi 快速查看fsdb中的某个信号名

% fsdbreport <fsdb文件> -s <heri的信号名>

fsdbreport -h 获取帮助

14. 启动多个Verdi如何给各个Verdi加不同title

Verdi  preTitle <自定义> &

15. Verdi 波形中如何更改real类型精度

Step1:选中信号点击analog->format and precision

Step2: 选择engineering 自行修改即可

16. Verdi 如何将需要的sequence 输出到一个文件

Step1:在波形中选中需要的sequence,file->report selected singles

Step2: 根据需要设置sequence范围,文件名,option(默认9位,更多位输出使用-w 位宽)

Step1:编译时添加-debug_access+all+reserve

Step2: 进入Verdi切换为交互式debug模式(window->interactive debug mode)

Step3: 确保reserve debug功能打开(tool->preferences->interactive debug->reserve debug勾选)

加reverse的优势:可以回退

17. Verdi merge multiple coverage databases

Step1: merge

%urg -dir <vdb1> <vdb2> -dbname merge.vdb

%urg -full64 -f vdb_filelist -dbname merge.vdb 适用于文件类型

Step2: verdi 打开

Verdi -cov -covdir merge.vdb

18. Verdi 对phase的快速断点方式

Step1:进入交互式debug模式(上边有讲)

Step2: 点击▼可在build、run、cleanup 中进行选择添加

19. Verdi如何dump你想要的波形

方法一:

Dump vcs 已经分类好的信号,example:

$fsdbDumpvars(“+Reg_Only”);

具体支持什么参数可以自行查找;

方法二:

Dump 某个instance的信号,example:

$fsdbDumpvars(0,“tb.dut.inst1”,”inst1.fsdb”);

$fsdbDumpvars(0,“tb.dut.inst2”,”inst2.fsdb”);

覆盖不到的场景可以参考linking novas files with simulators and enabling FSDB dumping

20. Verdi debug 状态机显示名字

波形显示状态机string状态方法:

Tool->extract interactive FSM

波形取消状态机string状态方法:

选中要取消的信号,点击waveform->set radix->remove alias

其他的有空在整理

 

### 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 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创芯人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值