DVT Eclipse集成开发环境

前言

之前,因为自己安装的questasim不能在仿真的时候,打印信息(如display、uvm_info等),特地学习了vcs、dve、verdi。目前,还是想多了解一下EDA工具,这篇文章介绍下DVT Eclipse集成开发环境。
之前,看经验贴提到,我们可以使用代码管理工具,一键调整代码格式,如一个Tab键=两个空格的设置、查看代码hierarchical结构等等;在学习这个工具时,对前面这些有了明确的认识。

DVT Eclipse集成开发环境

  • 验证工作:零构建验证环境准备验证计划、实现测试用例、收集覆盖率;

学会使用更真实且复杂的工作环境、工具。它们包括:

  • 一款更优秀便利的 SV/UVM集成开发环境,而不再只是一款编辑器
  • 一份真正完整的验证计划表格去拆分功能点,并将覆盖率和测试用例进去
  • 商业的寄存器模型管理工具去理解一致性数据在IC流程中的重要性。
  • 一个图形化的回归测试管理工具去帮助你提交测试用例、统计测试结果、合并覆盖率以及完成与验证计划表格之间的映射和报告。
  • 在深入学习了UVM验证结构之后,进入验证环境搭建的快车道,使用UVM环境结构生成器来加速验证结构的搭建

DVT Eclipse验证开发套件

简介

  • DVT( Design and Verification Tools)是面向e、Systemverilog、 Verilog、VHDL的集成开发环境,它同Visual studio Code、 Netbeans一样拥有完善的开发特性。
  • DVT是在 Eclipse的开放框架基础上开发的,在 Eclipse环境中建立项目、编译、运行和调试类似

功能特性

  • DVT帮助改善了设计验证编码中缺少便捷开发工具的现状,它包含的主要特性有:
  • 加快新代码开发的速度和质量:通过完善的编辑环境。
  • 筒化调试和仿真分析:自动进行语法检査和OVM/UVM框架检査,同时跟NcSim、 Specman、VCS和 Questa仿真器有良好接口,从而实现在DVT的窗口通过智记录来分析仿真结果
  • 使得分析复杂源代码变得更为容易:提取类的UML图、継承关系、成员変量和方法、验证框架的结构图(在未编译的情况下就可以分析得出)、层次组成和连接、驱动和负载分析,这些分析都是动态的方式,而且无需仿真器的介入即可完成。
  • 筒化维护旧有代码和可复用库:通过项目的管理方式维护代码。
  • 加快语言和方法学的学习:环境中的快谏链接可以直接跳转到目标类定义方法定义实现应用层和框架层(OVM/UVM源包)之间的跳转,方便学习
  • 提高为代码编辑文档的体验:自带的文档生成工具可以帮助提取文本的注释,从而生成可读性更好的HTML文档。
  • 缩短项目进程:由于DVT本身可以同 Clearcase、SVN、Git等版本控制插件以及同缺陷跟踪系统例如 Bugzilla集成,所以对于项目而言它是一个中心化的项目实施平台。

调试

  • DVT的调试器是开发环境的高级功能,它可以使得在DVT上直接调试代码,无需再转換到仿真器展开调试,这种方式降低了调试的复杂度。用户可以通过DVT调试器进行以下操作
  • 设置断点:设置、使能、关闭断点或者条件断点。
  • 査看变量:可以在断点停止的当前时刻查看局部变量、对象成员和模块信号,也可以修改变量。
  • 表达式密口:用户可以自定义表达式,并且观察表达式的值变化。
  • 输出窗口:观察仿真输出,允许用户敲入命令与仿真器互动

语法语义检查及文档生成

  • 在语言编辑和调试基础之上,DVT的测试平台语义检查器( testbench linter)可以通过静态代码分析发现不合适的语句、代码风格、无用语句、性能问题以及与OVM/UVM相悖的使用方式。它可以通过改进验证代码的可靠性和可维护性来协助验证人员更好地完成验证任务。
  • 与之相比,普通的编译器往往只会检査代码是否符合语言规范,但是不会给出代码可靠性和可维护性的报告,也无法进一步给出建议使得代码与方法学保持一致。
  • 此外,DVT自带的文档生成器可以用来从代码中的注释自动生成HTML文档。这种方式使得设计验证人员花费更少的精力便可得到一份结构良好的设计和验证文档,文档的内容包含类和成员企绍、继承树、设计结构、UML类图和验证框架等

学习思路

  • Win与Linux DVT
  • DVT IDE(集成开发环境)的学习
    windows版本DVT协助代码开发、重构、语义检查和环境理解入手。
    选择采用DVT或者其它编辑器执行验证项目环境搭建。
    Linux版本DVT集成仿真器之后的编译调试、语义检査和文档生成。

workspace工作区

  • workspace(工作区):是 Eclipse平台、已安装插件的存储、配置和临时信息的首选项。
  • 在工作区可以定义项目,但不需要将源文件导入或者复制到工作区中,而项目可以指向任何文件夹或者文件。
  • 每次启动 Eclipse时,你都可以创建一个新的工作空间目录或指定一个现有的工作空间目录
  • 您可以创建许多工作区,每个工作区专用于某种活动。
  • 您可以使用一个工作区来开发当前项目,而使用另一个工作区来维护前一个项目。如果这两个活动无关,则可以通过使用两个工作区来最大程度地减少混乱并提高性能。

项目project

  • 首次创建项目时, Eclipse平台会在你指定的目录中创建一个 project文件。这是平台执行的唯一操作,它不会将任何文件从指定的目录移动或复制到工作区,它仅创建.project文件。
  • 一些插件可能会在项目目录中创建其他信息,例如DVT创建一个.dvt目录来存储DVT的项目级配置
  • 在 Eclipse中,一个项目可以具有0到若干个项目属性。如果项目带有特定属性,则各种插件可为其提供功能。例如仅当DVT具有其可支持的属性(例如 Verilog,VHDL或System Verilog语言)时,才会构建项目。

开始第一个示例

在这里插入图片描述
在这里插入图片描述

软件功能

  • 编译检查 compilation check
  • 内容辅助 content assist
  • 快速修正 quick fix
  • 代码模板 code template
  • 项目模板 project template
  • 代码格式化 code formatting
  • 方法覆盖 method overriding
  • 使用跟踪 usage trace
  • 约束显示 constraint show
  • 语义查询 semantics search
  • 硬件跟踪 connection/ driver/ load trace
  • 重构 refactoring
  • UML图 UML diagram
  • 生成HTML文档 export HTML document
  • UVM支持 UVM support
  • 项目配置 project configuration
  • 外部仿真器集成 external simulator integration
  • 外部调试器集成 external debugger integration

- 编译检查 compilation check

  • 语法检查:表明符合IEEE标准的语法错误,例如,在声明类时输入clas"而不是 class"之类的错字。语法检查是在解析过程中对代码执行的第一级检査。
  • 语义检查:根据IEEE标准指示错误的语义,例如,调用未定义的函数“foo()”。出于性能原因,并非所有语义检查都一次执行。在完全或增量编译期间,可能会执行部分语音检查。
  • 非标准检查:表明语法或语义不是标准的,尽管某些仿真器支持。非标准语法可能是由于在标准版本中使用旧特性的结果
  • 修改 warning/ error等级,或者将其过滤

- 内容辅助 content assist

  • 在代码编辑过程中,可以通过“Al t+/"来触发内容辅助。
  • 一些特定的场景,也会自动触发内容辅助:
    例如在访问句柄或者结构体中的成员时,在敲入“.”后
    例如在表达式中对一些变量斌值或者比较时
  • 在内容辅助列表中可以通过键盘上下键或者光标进行选择,然后敲击 Enter选择,也可以敲击Esc退出。
  • 自动补全有时候会包含许多提案,分为几类:
    第一个是您可以在范围内访问的内容(信号、变量、方法等,取决于所包含的范围)
    第二个用于代码模板
    第三个是其他的东西,例如模块实例

- 快速修正 quick fix

在这里插入图片描述

  • 为模块添加参数或者端口
  • 添加敏感列表
  • 为 interface’句柄添加 virtual关键词
  • 对注释或者字符串中的单词进行拼写修正
  • 创建被` include的文件
  • 声明方法或者变量
  • 模糊语义 “Did you mean”
  • 类型引用检查
  • 实现以及更新外部方法( extern method)
  • 移除"local"或者 "protected’"描述符
  • 移除未使用信号
  • 更新模块实例
  • 更新虚方法声明
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

- 代码模板 code template

在这里插入图片描述

- 项目模板 project template

  • 利用预先准备的模板,结合内容辅助功能可快速实现类型和方法的定义。
  • 模板样式可以在全局代码模板中更新
    Windows-> Preferences-> DVT-> Code Tempaltes
  • 代码模板的插入也可以在 Code Template"窗口从中拖拽到源代码处

- 代码格式化 code formatting

  • 代码格式混乱时,可以通过配置preferences中的formating,使用format source file一键调整代码!
    在这里插入图片描述
    在这里插入图片描述

- 方法覆盖 method overriding

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 使用跟踪 usage trace
  • 约束显示 constraint show
  • 语义查询 semantics search
  • 硬件跟踪 connection/ driver/ load trace
  • 重构 refactoring

- UML图 UML diagram

在这里插入图片描述
在这里插入图片描述

- 生成HTML文档 export HTML document

在这里插入图片描述
在这里插入图片描述

  • UVM支持 UVM support

- 项目配置 project configuration

  • 外部仿真器集成 external simulator integration
  • 外部调试器集成 external debugger integration

后记

加油,逐梦人。

  • 17
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杰之行

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

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

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

打赏作者

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

抵扣说明:

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

余额充值