当前位置: 首页 > article >正文

VCSVerdi:KDB文件的生成和导入

相关阅读

VCSicon-default.png?t=O83Ahttps://blog.csdn.net/weixin_45791458/category_12828763.html

Verdiicon-default.png?t=O83Ahttps://blog.csdn.net/weixin_45791458/category_12829428.html?spm=1001.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>
% vhdlan -kdb <vhdlan_options> <source files>

        在第二步展开阶段(即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而跳过仿真文件(可执行文件)的生成,可以指定only参数与-kdb选项一起使用。

如果使用VCS三步流程:

        需要注意,分析阶段无法使用only参数,只能在展开阶段使用。

% vlogan -kdb <vlogan_options> <source files>
% vhdlan -kdb <vhdlan_options> <source files>
% vcs -kdb=only <top_name> <compile_options>

如果使用VCS两步流程: 

% vcs -kdb=only <compile_options> <source files>

打开KDB

直接打开KDB(较少使用)

1、在命令行使用Verdi命令,并指定simv.daidir目录。

verdi -simflow -dbdir <simv.daidir_path>

2、在Verdi GUI中选择Import Design-From Daidir并选择相应设计的simv.daidir目录,如图1所示。

图1 从simv.daidir目录导入KDB数据库

3、在命令行使用Verdi命令,并指定一个逻辑库目录中的KDB目录(work.lib++),Verdi会将其中所有没有被该逻辑库中的模块例化过的模块当做顶层模块,并执行展开(展开时会根据synopsys_sim.setup文件指定的库顺序对逻辑库进行搜索)。

​verdi -simflow -lib <work.lib++_path>

        可以使用-top选项人为指定顶层模块。 

4、 在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选项。

vlogan top.v -kdb
vcs top -debug_access+r -kdb

或者

vcs -debug_access+r -kdb top.v

然后

./simv -gui

2、在命令行使用Verdi命令,并指定仿真文件,Verdi会自动导入相应的KDB(其实还是从simv.daidir目录中导入的KDB),并进入仿真状态。注意,这么做的前提是在VCS三步流程的展开阶段或VCS两步流程的编译阶段时使用-debug_access选项。

vlogan top.v -kdb
vcs top -debug_access+r -kdb

或者 

vcs -debug_access+r -kdb top.v

然后

verdi -simBin "./simv"    # 仿真文件路径必须用双引号包围

3、在命令行使用Verdi命令,并指定后处理调试模式时使用的fsdb波形文件,Verdi会自动导入相应的KDB(其实还是从simv.daidir目录中导入的KDB)。注意,这么做的前提是在VCS三步流程的展开阶段或VCS两步流程的编译阶段时使用-debug_access选项,并运行仿真文件,使用其中的系统函数导出了fsdb波形文件。

verdi -ssf test.fsdb

http://www.kler.cn/a/390188.html

相关文章:

  • TCP/IP协议,TCP和UDP区别
  • 每日一练:二分查找-搜索插入位置
  • python购物计算 2024年6月青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析
  • 万字长文解读深度学习——ViT、ViLT、DiT
  • 以色列支付龙头遭DDoS攻击,各地超市加油站等POS机瘫痪
  • 嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻
  • QT Unknown module(s) in QT 以及maintenance tool的更详细用法(qt6.6.0)
  • P1打卡-使用Pytorch实现mnist手写数字识别
  • 解锁高效直播新体验:第三代 AI 手机自动直播工具,开启直播高效运作新时代!
  • 网页web无插件播放器EasyPlayer.js点播播放器遇到视频地址播放不了的现象及措施
  • 设计模式(主要的五种)
  • 软件设计师 - 层次化存储
  • 大数据-216 数据挖掘 机器学习理论 - KMeans 基于轮廓系数来选择 n_clusters
  • 鸿蒙UI开发——小图标的使用
  • 使用API有效率地管理Dynadot域名,列表形式查看账户whois联系人信息
  • Dubbo负载均衡
  • Baget 私有化nuget
  • SpringBoot助力企业资产优化
  • Matlab实现鹈鹕优化算法(POA)求解路径规划问题
  • [Docker#4] 镜像仓库 | 部分常用命令
  • AI生活之我用AI处理Excel表格
  • go函数传值是值传递?还是引用传递?slice案例加图解
  • 数据分析-44-时间序列预测之深度学习方法TCN
  • Autosar CP Network Management模块规范导读
  • C#中 layout的用法
  • 易泊车牌识别相机:4S 店的智能之选