Verdi思源科技股份有限公司Verdi基本培训基于Verdi2010.01版权©2009SpringSoft.Inc.保留所有版权没有思源科技股份有限公司的书面许可,不得以任何形式或任何方式复制这个培训的内容。商标文件中所用到的产品名称是他们各自的所有商标或注册商标。机密文件中的信息是机密的,并且适用于思源科技与贵组织之间的许可协议。使用和公开是受限制的。目标帮助你理解复杂设计当发现bug时,帮助你快速追踪到根源在一个统一且友好的环境中做调试和验证目标受众结构工程师开发工程师验证工程师必要条件基本的HDL/HVL编程能力:Verlog,VHDL,SystemVerilog,SVA熟悉标准的仿真器摘要技术背景建立环境理解FSDBDumping(存储)任务和重用性输入设计在源代码界面调试在波形界面调试在原理图界面调试在FSM界面调试在时序界面调试附录:常用参数术语:RMBRightMouseButton鼠标右键MMB鼠标中键LMB鼠标左键DC双击D&D拖拽KDB知识数据库模块FSDB快速信号数据库TFV时序界面BA行为分析技术背景在设计流程中调试ESLRTLGate设计SCAN时序构建行为设计(定位)Testbench验证交互正式回归编译器扫描收敛验证交互方式IP遗产断言属性仿真/加速你知道你的团队调试花费多少时间吗?你会用那个时间做什么?阻碍有效调试复杂设计更难理解复杂的行为复杂设计引起并影响方案增加验正条件复杂的多用工具、多组环境混合方法复杂性Novas解决艰难的调试问题问题复杂环境复杂行为复杂设计理解自动化统一增加自动化Verdi强大的理解和调试Novas技术编译器和接口数据库分析引擎形象化→知识数据库→行为分析时序界面↓结构分析源代码工具的全范围→FSDB→断言评价→波形/事件事件数据库事务/信息分析原理/结构FSM/流表断言/信息/事务理解调试系统——不只简单的形象化结构/事件调试过程当前过程包括比较时间、代码和结构在多种窗口跟踪可能的问题。——浪费时间,容易出错,复杂自动调试过程决定生产力的提高在调试过程方面利用基于行为调试来自动化时间消耗时间和结构在一个界面中设计行为的直接行为自动的起因/影响追踪快速理解问题区域缩短你用传统方法调试的时间建立环境目标建立环境完成这一章节后,你应该能够……运行之前建立环境指定路径和环境变量二进制、许可、符号库使用建立文件——novas.rc指定参数理解FSDB转存任务重用性快速信号数据库介绍(FSDB)用仿真器链接Novas项目文件为了FSDB转存FSDB重用指定路径和环境变量二进制文件设置环境变量NOVAS_INST_DIRNovas安装路径设置路径=($NOVAS_INST_DIR/bin$path)许可文件设置环境变量NOVAS_LICENSE_FILElicence_file:$NOVAS_LICENSE_FILE或者使用LM_LICENSE_FILE搜索优先权比NOVAS_LICENSE_FILE低符号库背景为什么使用符号库?提供源代码和逻辑元件之间的映射。没有符号映射活跃的扇入锥,扇入锥和扇出锥原理不会正常工作原理图将仅展示方框而不是逻辑单元。使用符号库使用下列任一方法创建符号库:syn2SymDB:对于Synopsys逻辑库文件用ASCⅡ格式(.lob)map2SymDB:对于准备好的映射文件从verdi_install/doc/Symbol_Library.pdf查看开发人员指南文件得到详细格式。设置符号库环境变量setenvNOVAS_LIBSLIBROOT#1LIBROOT#2...setenvNOVAS_LIBPATHSDirectory#1Drectory#2...通过GUI(图形用户界面)设置符号库调用Tools→Preferences命令来打开参数格式;选择文件夹Schematics→SymbolLibrary在SymbolLibraryNames区域输入符号库名称在SymbolLibraryPaths输入区域该设置将会保存到novas.rc源文件使用创建文件——novas.tc包括:为预编译的设计映射信息映射一个库文件名到一个物理定位映射格式[library]logicalname=物理地址(例pack=./work)pack=./library/pack(例vital=./work)用户参数(设置方式Tools→Preferences)指定路径使用NOVAS_RC环境变量。setenvNOVAS_RCpath/novas.rc在命令行直接通过-rcFile文件名搜索顺序:1.-rcFile文件名命令行选项(读/写指针)2.NOVAS_RC环境变量(读/写指针)3../novas.rc4.$HOME/novas.rc5.Verdiinstal/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:要得到更多的系统任务,请参考LinkingNovasFileswithSimulators和EnablingFSDBDumping(NOVAS_INST_DIR/doc/linking_dumping.pdf)为FSDB转存链接Novas项目文件1.创建工具环境变量(1)setenvLM_LICENSE_FILEsimulator_license_file(2)Simulator_INST_DIR(3)NOVAS_INST_DIR(4)使用LD_LIBRARY_PATH来指定适合被分享的项目文件,常用库放在${NOVAS_INST_DIR}/share/PLI/libsetenvLD_LIBRARY_PATH${NOVAS_INST_DIR}/share/PLI/simulator/platform;${NOVAS_INST_DIR}/share/PLI/lib/platform;支持的仿真器:VCS/IUS/MODELSIM2.创建工作裤并为仿真编译设计3.在仿真器命令提示符上运行并调试FSDB转存函数。注意:要得到更多的仿真器链接细节,请参考NOVAS_INST_DIR/doc/linking_dumping,pdf文件FSDB重用批处理FSDB文件1.vfastVCD文件转换成FSDB文件2.fsdb2vcdFSDB文件转换成VCD文件3.fsdbextract从现有的没有再仿真的FSDB文件提取信号、范围、时间周期4.fsdbmerge将几个FSDB文件合并为1个5.fsdbreport生成一个指定信号值变化的报告注:使用utility-h列出所有选项或查看VerdiCommandReference获取更多信息注:参考VerdiCommandReference中的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/deftop.v*-ssv和-ssy对于指定的带有-v和-y的设计文件只需要一次,top.v是设计文件。在命令行导入设计从库1.编译一次,加载多次;2.保存加载时间和全部记忆;3.对于混合语言或VHDL设计是有必要的,对于仅用Verilog语言设计是可选择的;4.预编译设计进入库:vericom用于Verilog代码,vhdlcom用于VHDL代码$vericom-lib库名block1.vblock2.vblock3.v$vhdlcom-lib库名block1.vhdblock2.vhdblock3.vhd5.然后导入编译后的库并指定顶层模块$verdi-lib库名-topTopBlock例:$verdi-libwork-topsystem在命令行导入设计通过重复运行一个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→ImportDesign或ImportDesign图标来导入你的设计。(1)选择FromFile标签(2)指定语言(3)指定运行文件或单个的源文件(4)支持映射文件来设置一个VirtualTop.*参考Verdi应用培训获取VirtualTop的详细内容3.不建议用于VHDL从GUI导入设计从库1.进入verdi命令行启动Verdi2.使用File→ImportDesign或ImportDesign图标来导入你的设计。(1)选择FromLibrary标签(2)指定库和顶层模块(3)支持映射文件来设置一个VirtualTop.*参考Verdi应用培训获取VirtualTop的详细内容总结在本节中,你学习了:1.怎样用命令行导入设计(1)从文件(2)从库(3)通过重复运行TCL命令文件2.怎么从GUI导入设计(1)从文件(2)从库目标在源代码界面调试学完本节,你应该能够:1.打开nTrace窗口2.查找并折叠层次浏览器3.遍历源代码(1)发现操作;(2)使用书签;(3)折叠源代码;(4)提示显示隐含的端口;(5)双击鼠标显示所有器件。4.在信号上操作(1)追踪信号——驱动、负载、连通性、扇入、扇出;(2)使能够方便的注释;(3)方便地进行追踪。5.其他相关的界面打开nTrace窗口1.导入设计后,Verdi自动调用nTrace窗口%verdi-frun.f2.nTrace窗口包含三个大小可调的子窗口折叠/扩展源代码窗格层次浏览器窗格当前范围信息窗格搜索并折叠浏览器折叠所有范围在层次浏览器窗格中,点击鼠标右