
相关阅读VCShttps://blog.csdn.net/weixin_45791458/category_12828763.htmlVerdihttps://blog.csdn.net/weixin_45791458/category_12829428.html?spm1001.2014.3001.5482前言在复杂的设计中很难在HDL或测试平台级别如使用系统函数找到与逻辑相关的错误。调试过程包括定位与错误相关的设计逻辑、隔离错误原因并理解设计应该如何表现以及为何未按预期表现。设计和验证工程师需要复杂的工具来查找仿真器生成的数据中的错误。Verdi调试工具提供了全面的调试支持适用于所有设计和验证流程。它包括强大的技术帮助您理解复杂和不熟悉的设计行为并自动化繁琐且困难的调试过程。除了标准的源代码浏览器、原理图、波形、状态机图和波形比较等功能外Verdi工具还包括自动追踪信号活动的高级功能利用时序流视图、基于断言的调试以及事务和消息数据的调试和分析。通过以下模式使用Verdi进行调试交互式仿真调试模式允许交互式地调试设计。后处理调试模式允许使用数据库(fsdb)调试设计。生成KDB和仿真文件Verdi知识数据库(KDB)是其特有的数据库用于保存一个设计的相关数据通过使用VCS时添加的选项设计人员可以很方便地生成Verdi KDB。如果使用VCS三步流程在第一步分析阶段即vhdlan或vlogan命令时加入-kdb选项将会生成库KDB目录(work.lib)并将其和分析生成的中间文件一起保存在逻辑库中。// 分析阶段 vlogan -kdb vlogan_options source files // 用于Verilog、SystemVerilog vhdlan -kdb vhdlan_options source files // 用于VHDL在第二步展开阶段即VCS命令时加入-kdb选项将会生成展开后的KDB目录(kdb.elab)并将其保存在simv.daidir目录中。// 展开阶段 vcs -kdb top_name如果使用VCS两步流程在第一步编译阶段即VCS命令时加入-kdb选项将会生成展开后的KDB目录(kdb.elab)并将其保存在simv.daidir目录中。// 编译阶段 vcs -kdb compile_options source files只生成KDB若仅生成KDB而跳过仿真文件可执行文件的生成可以指定only参数与-kdb选项一起使用。如果使用VCS三步流程需要注意分析阶段无法使用only参数只能在展开阶段使用。// 分析阶段 vlogan -kdb vlogan_options source files vhdlan -kdb vhdlan_options source files // 展开阶段 vcs -kdbonly top_name compile_options如果使用VCS两步流程// 编译阶段 vcs -kdbonly compile_options source files打开KDB直接打开KDB较少使用1、在命令行使用Verdi命令并指定simv.daidir目录。verdi -simflow -dbdir simv.daidir_path2、在Verdi GUI中选择Import Design-From Daidir并选择相应设计的simv.daidir目录如图1所示。图1 从simv.daidir目录导入KDB数据库3、在命令行使用Verdi命令并指定一个逻辑库目录中的KDB目录(work.lib)Verdi会将其中所有没有被该逻辑库中的模块例化过的模块当做顶层模块并执行展开展开时会根据synopsys_sim.setup文件指定的库顺序对逻辑库进行搜索也可以使用-top选项人为指定顶层模块执行展开。verdi -simflow -lib work.lib_path4、 在Verdi GUI中选择Import Design-From Library-From VC/VCS Native Compile并选择相应逻辑库如图2所示。图2 从逻辑库导入KDB数据库使用仿真文件自动打开KDB常用1、在命令行以GUI交互式仿真调试模式运行仿真文件时Verdi会自动导入相应的KDB(其实还是从simv.daidir目录中导入的KDB)并进入仿真状态。注意这么做的前提是在VCS三步流程的展开阶段或VCS两步流程的编译阶段时使用-debug_access选项。如果使用VCS三步流程// 分析阶段 vlogan top.v -kdb // 展开阶段 vcs top -debug_accessr -kdb如果使用VCS两步流程// 编译阶段 vcs -debug_accessr -kdb top.v然后// 仿真阶段 ./simv -gui # 需要设置VERDI_HOME环境变量 ./simv -guiverdi # 需要设置VERDI_HOME环境变量 ./simv -verdi # 需要设置VERDI_HOME环境变量2、在命令行使用Verdi命令并指定仿真文件Verdi会自动导入相应的KDB(其实还是从simv.daidir目录中导入的KDB)并进入仿真状态。注意这么做的前提是在VCS三步流程的展开阶段或VCS两步流程的编译阶段时使用-debug_access选项。如果使用VCS三步流程// 分析阶段 vlogan top.v -kdb // 展开阶段 vcs top -debug_accessr -kdb如果使用VCS两步流程// 编译阶段 vcs -debug_accessr -kdb top.v然后// 仿真阶段 verdi -simBin ./simv # 仿真文件路径必须用双引号包围3、在命令行使用Verdi命令并指定后处理调试模式生成的fsdb波形文件Verdi会自动导入相应的KDB(其实还是从simv.daidir目录中导入的KDB)。注意这么做的前提是在VCS三步流程的展开阶段或VCS两步流程的编译阶段时使用-debug_access选项并运行仿真文件使用其中的系统函数生成fsdb波形文件。// 仿真阶段 verdi -ssf test.fsdb