Verdi_培训整理笔记.pdf-FPGA CPLD资料源码分享社区-FPGA CPLD-ChipDebug

Verdi_培训整理笔记.pdf

该帖子部分内容已隐藏
付费阅读
已售 3
3积分
此内容为付费阅读,请付费后查看

目标

帮助你理解复杂设计

当发现bug时,帮助你快速追踪到根源

在一个统一且友好的环境中做调试和验证

目标受众

结构工程师

开发工程师

验证工程师

必要条件

基本的HDL/HVL编程能力:Verlog,VHDL,System Verilog,SVA

熟悉标准的仿真器

摘要

技术背景

建立环境

理解FSDB Dumping(存储)任务和重用性

输入设计

在源代码界面调试

在波形界面调试

在原理图界面调试

在FSM界面调试

在时序界面调试

附录:常用参数

术语:

RMB Right Mouse Button 鼠标右键

MMB 鼠标中键

LMB 鼠标左键

DC 双击

D&D 拖拽

KDB 知识数据库模块

FSDB 快速信号数据库

TFV 时序界面

BA 行为分析

技术背景

在设计流程中调试

ESL RTL Gate

设计 SCAN 时序

构建行为 设计(定位)

Testbench 验证交互正式回归 编译器 扫描 收敛 验证交互方式

IP遗产 断言属性 仿真/加速

你知道你的团队调试花费多少时间吗?

你会用那个时间做什么?

阻碍有效调试

复杂设计

更难理解

复杂的行为

复杂设计引起并影响方案

增加验正条件

复杂的多用工具、多组环境

混合方法复杂性

Novas解决艰难的调试问题问题

复杂环境

复杂行为

复杂设计

理解 自动化 统一

增加自动化 Verdi

强大的理解和调试

Novas技术

编译器和接口 数据库 分析引擎 形象化

→知识数据库→行为分析 时序界面

↓ 结构分析 源代码

工具的全范围→FSDB →断言评价 → 波形/事件

事件数据库 事务/信息分析 原理/结构

FSM/流表

断言/信息/事务

理解调试系统——不只简单的形象化

结构/事件调试过程

当前过程包括比较时间、代码和结构在多种窗口跟踪可能的问题。

——浪费时间,容易出错,复杂

自动调试过程决定生产力的提高

在调试过程方面利用基于行为调试来自动化时间消耗

时间和结构在一个界面中

设计行为的直接行为

自动的起因/影响追踪

快速理解问题区域

缩短你用传统方法调试的时间

建立环境

目标

建立环境

完成这一章节后,你应该能够……

运行之前建立环境

指定路径和环境变量

二进制、许可、符号库

使用建立文件——novas.rc

指定参数

理解FSDB转存任务重用性

快速信号数据库介绍(FSDB)

用仿真器链接Novas项目文件为了FSDB转存

FSDB重用

指定路径和环境变量

二进制文件

设置环境变量NOVAS_INST_DIR<Novas安装路径>

设置路径=($NOVAS_INST_DIR/bin $path)

许可文件

设置环境变量NOVAS_LICENSE_FILE

<licence_file>:$NOVAS_LICENSE_FILE

或者使用LM_LICENSE_FILE

搜索优先权比NOVAS_LICENSE_FILE低

符号库背景

为什么使用符号库?

提供源代码和逻辑元件之间的映射。

没有符号映射

活跃的扇入锥,扇入锥和扇出锥原理不会正常工作

原理图将仅展示方框而不是逻辑单元。

使用符号库

使用下列任一方法创建符号库:

syn2SymDB:对于Synopsys逻辑库文件用ASCⅡ格式(.lob)

map2SymDB:对于准备好的映射文件

从<verdi_install>/doc/Symbol_Library.pdf查看开发人员指南文件得到详细格式。

设置符号库环境变量

setenv NOVAS_LIBS”<LIB ROOT#1><LIB ROOT#2>…”

setenv NOVAS_LIBPATHS”<Directory#1><Drectory#2>…”

通过GUI(图形用户界面)设置符号库

调用Tools→Preferences命令来打开参数格式;选择文件夹Schematics→SymbolLibrary

在Symbol LibraryNames 区域输入符号库名称

在Symbol Library Paths输入区域

该设置将会保存到novas.rc源文件

使用创建文件——novas.tc

包括:

为预编译的设计映射信息

映射一个库文件名到一个物理定位

映射格式

[library]

logical name=物理地址(例pack=./work)

pack=./library/pack (例vital=./work)

用户参数(设置方式Tools→Preferences)

指定路径

使用NOVAS_RC环境变量。

setenv NOVAS_RC <path>/novas.rc

在命令行直接通过-rcFile<文件名>

搜索顺序:

1.-rcFile<文件名>命令行选项(读/写指针)

2.NOVAS_RC环境变量(读/写指针)

3../novas.rc

4.$HOME/novas.rc

5.<Verdi instal>/etc/novas.rc

指定参数

摘要

1.通过从窗口调用Tools→Preferences打开参数设置

(1)修改被保存在novas.rc源文件中的格式

(2)在Find栏搜索关键词

2.参考目录以得到常用参数

快速信号数据库(FSDB)

介绍

1.包含仿真信号数据的压缩二进制文件格式

2.开放文件格式以便其他支持工具能转存数据,例如:Verisity、Vera、Ikos等。

3.VHDL和Verilog都可以在仿真期间使用系统任务来转存数据;

常用系统任务

1.fsdbDumpfile——指定FSDB文件名,限制FSDB文件大小

(1)通过用户滑动窗口机制来保留FSDB文件中的最后信号值,如果文件大小超过了限制就扇出旧的值。

2.fsdbDumpvars——转存信号指定实例和深度的变化。

(1)也能够指定FSDB文件名,在每个fsdbDumpvars命令中可以指定不同的FSDB文件名

3.fsdbDumpon/fsdbDumpoff——开/关FADB转存

(1)能指定FSDB文件名来开/关FSDB文件

4.fsdbSwitchDumpfile——转换转存到其他FSDB文件

5.fsdbAutoSwitchDumpFile——限制FSDB文件大小并自动转换转存到新FSDB文件

注1:以上任务是对VHDL仿真而言的,在Verilog仿真中要加上“

$”前缀

注2:要得到更多的系统任务,请参考Linking NovasFiles with Simulators和Enabling FSDB

Dumping(<NOVAS_INST_DIR>/doc/linking_dumping.pdf)

为FSDB转存链接Novas项目文件

1.创建工具环境变量

(1)setenvLM_LICENSE_FILE<simulator_license_file>

(2)<Simulator>_INST_DIR

(3)NOVAS_INST_DIR

(4)使用LD_LIBRARY_PATH来指定适合被分享的项目文件,常用库放在

${NOVAS_INST_DIR}/share/PLI/lib

setenvLD_LIBRARY_PATH

${NOVAS_INST_DIR}/share/PLI/<simulator>/<platform>;

${NOVAS_INST_DIR}/share/PLI/lib/<platform>;

支持的仿真器:VCS/IUS/MODELSIM

2.创建工作裤并为仿真编译设计

3.在仿真器命令提示符上运行并调试FSDB转存函数。

注意:要得到更多的仿真器链接细节,请参考<NOVAS_INST_DIR>/doc/linking_dumping,pdf文件

FSDB重用批处理FSDB文件

1.vfast

VCD文件转换成FSDB文件

2.fsdb2vcd

FSDB文件转换成VCD文件

3.fsdbextract

从现有的没有再仿真的FSDB文件提取信号、范围、时间周期

4.fsdbmerge

将几个FSDB文件合并为1个

5.fsdbreport

生成一个指定信号值变化的报告

注:使用<utility> -h 列出所有选项或查看Verdi Command Reference 获取更多信息

注:参考Verdi Command Reference中的Utilities章节获取完整的实用列表

总结

在这一节,你学到了:

1.在运行Verdi之前怎样建立环境;

2.怎样指定参数

3.怎样理解FSDB转存任务和实用。

输入设计:

目标

输入设计

完成本节后,你应该能够:

1.在命令行输入设计

(1)从文件

(2)从库

(3)通过重复运行一个TCL(终端控制语言)命令文件

2.从GUI(图形用户界面)导入设计

(1)从文件

(2)从库

在命令行导入设计

从文件

Verdi [Verdi 选项] [你的Verilog选项]

1.在命令行参考源文件(仅Verilog)

2.Verdi所有的Verilog命令行选项

%verdi -f <文件列表> +定义+充分利用你的时间

%verdi <源文件1> <源文件2> …

* 文件列表有一个包含Verilog源文件和任何命令行转换器的文件。

%verdi -ssv-vlib.v +libext+.v-ssy-y/src/abc-y/src/def top.v

*-ssv和-ssy对于指定的带有-v和-y的设计文件只需要一次,

top.v是设计文件。

在命令行导入设计

从库

1.编译一次,加载多次;

2.保存加载时间和全部记忆;

3.对于混合语言或VHDL设计是有必要的,对于仅用Verilog语言设计是可选择的;

4.预编译设计进入库:

vericom用于Verilog代码,vhdlcom用于VHDL代码

$ vericom -lib <库名> block1.v block2.v block3.v

$ vhdlcom -lib <库名> block1.vhd block2.vhd block3.vhd

5.然后导入编译后的库并指定顶层模块

$ verdi -lib <库名> -top TopBlock

例:

$ verdi -lib work -top system

在命令行导入设计

通过重复运行一个TCL命令文件

1.在VVerdi中每一个被执行的TCL命令都有一个相对应的TCL命令被保存在./verdiLog/verdi.cmd文件

(1)该文件能被复制和修改到自动化常用命令;

(2)随后新文件能够使用:%verdi -play <文件>.cmd 在Verdi中再次运行。

2.如何修改一个verdi.cmd文件,例:

如果你不在相同路径下再次运行这个文件就要修改run.f的路径;

执行Verdi -palyverdi.cmd之前要删除最后一行。从GUI导入设计

从文件

1.进入verdi命令行启动Verdi;

2.使用File→Import Design或Import Design图标

来导入你的设计。

(1)选择From File标签

(2)指定语言

(3)指定运行文件或单个的源文件

(4)支持映射文件来设置一个Virtual Top.

*参考Verdi应用培训获取Virtual Top的详细内容

3.不建议用于VHDL

从GUI导入设计

从库

1.进入verdi命令行启动Verdi

2.使用File→Import Design或Import Design图标

来导入你的设计。

(1)选择From Library标签

(2)指定库和顶层模块

(3)支持映射文件来设置一个Virtual Top.

*参考Verdi应用培训获取Virtual Top的详细内容

总结

在本节中,你学习了:

1.怎样用命令行导入设计

(1)从文件

(2)从库(3)通过重复运行TCL命令文件

2.怎么从GUI导入设计

(1)从文件

(2)从库

目标

在源代码界面调试

学完本节,你应该能够:

1.打开nTrace窗口

2.查找并折叠层次浏览器

3.遍历源代码

(1)发现操作;

(2)使用书签;

(3)折叠源代码;

(4)提示显示隐含的端口;

(5)双击鼠标显示所有器件。

4.在信号上操作

(1)追踪信号——驱动、负载、连通性、扇入、扇出;

(2)使能够方便的注释;

(3)方便地进行追踪。

5.其他相关的界面

请登录后发表评论