傻白入门芯片设计,形式化验证方法学——AveMC工具学习(二十)

这篇具有很好参考价值的文章主要介绍了傻白入门芯片设计,形式化验证方法学——AveMC工具学习(二十)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、形式验证方法学

(一)什么是形式化验证?

(二)与传统验证的区别?

二、AveMC工具学习

(一)什么是AveMC?

(二)AveMC的工作逻辑?

 (三)AveMC验证应用场景?

(四)AveMC的多种debug方式?


一、形式验证方法学

(一)什么是形式化验证?

形式化验证方法学是使用数学证明的方法,分析设计中所有可能的状态空间来验证设计是否符合预期。形式化验证方法主要有三个方面的应用:定理证明、模型检验和等价性检查

(二)与传统验证的区别?

  • 仿真的验证方法学类似于进行枚举法,每一个测试用例测试一个特定的场景。
  • 形式化验证达到的效果等价于穷举法。形式化验证在实现的时候,并不是真的采取了穷举的方式,而是采取了数理证明的方式来证明在所有的情况下,某些断言一定成立或存在反例不需要用户去生成测试激励,一条属性的真伪结论是基于严格的数学证明——证明为真的属性在任何激励下再进行仿真都不会出错。

二、AveMC工具学习

(一)什么是AveMC?

AveMC是一款高效的用于前端数字集成电路功能验证的EDA软件。不同于传统的仿真验证工具软件,AveMC基于形式化验证方法学,用模型验证(Model Checking)的方法进行完备的功能验证。模型检验不使用用户定义的激励输入,而是用户将电路规格(Sepcification)用设计属性(property)和断言(assertion)描述出来,然后采用数理证明的方式证明设计属性和断言在任何情况下都与RTL设计一致。相比于传统的仿真验证方法学,采用AveMC进行模块级功能验证,具有高效、完备的优势。

(二)AveMC的工作逻辑?

AveMC 前端组件会将待测试的设计 DUT (Design under test,RTL行为级可综合代码)和验证环境(testbench = SVA + 属性 + 一些可综合的Verilog/System Verilog辅助逻辑)一同读入,并对它们进行数学建模。然后将建模结果交给 AveMC 验证引擎进行证明。证明结果会通过文字报告、图形界面波形显示、自动生成仿真复现 testbench 等方式交由用户进行 Debug 和结果统计(通常就是指所有断言/属性的证明结果以及覆盖率报告)。

傻白入门芯片设计,形式化验证方法学——AveMC工具学习(二十)

 (三)AveMC验证应用场景?

在数字前端功能验证领域,AveMC可以应用于以下验证场景:文章来源地址https://www.toymoban.com/news/detail-510882.html

  1. 模块级验证交付。即在模块级,采用 AveMC 作为主要的验证手段,利用形式化验证方法学完备性的优势,进行完整的功能验证。
  2. Bug Hunting。在某些复杂的关键模块中,采用 AveMC 作为一种辅助的验证手段,尽可能去发现 corner case 中隐藏的 bug。这些 bug 通常很难通过仿真或者其他验证手段发现。
  3. Bug 重现。在系统级或原型验证时发现的 bug,如果是模块的功能 bug,经常需要在模块级进行 bug 重现。AveMC 可以通过自动产生错误波形和 testbench 的方式帮助用户在模块级自动重现 bug。
  4. Bug 修复检验。对 Bug 进行修复之后,可以用 AveMC 进行完备验证,以保证该 bug 修复能够完全修复问题并不会影响其他功能。
  5. 逻辑等价性检查。AveMC 还提供 AveMC SEC检查工具,帮助用户检查在设计经过了修改之后,是否和原有的设计在功能逻辑上保持了一致性
  6. 冗余代码检查。AveMC Coverage 检查工具,可以帮助用户发现 RTL 中的冗余代码

(四)AveMC的多种debug方式?

  • 图形化运行界面
  • 波形查看器 /RTL 查看器:AveMC 提供了图形化界面的波形调试器和 RTL 查看器——AveTrace。AveTrace 以 AveMC的结果作为输入,提供了如下功能:
    • RTL 查看
    • 信号 drive/load 追踪
    • 波形查看
    • 波形和 RTL 联动调试
  • 空泛性检查报告:如果一个属性表达式存在一个冗余的子表达式,子表达式没有影响到整个属性表达式的正确性,那么这个属性就叫空泛性属性,包括:
    • 断言前置条件空泛性检查
    • 断言子序列空泛性检查
  • 覆盖率结果报告:精确检查断言属性的覆盖率状况,帮助提高形式化验证testbench的质量,包括:
    • 代码覆盖率:衡量验证约束的完整性
    • 断言覆盖率:检查断言检查功能的完整性
    • 功能覆盖率:用断言描述的覆盖检查点,用于检查功能覆盖率

到了这里,关于傻白入门芯片设计,形式化验证方法学——AveMC工具学习(二十)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 密码协议形式化分析与可证明安全实验1——使用proverif来分析密码协议

    实验环境: Windows 11 X64 根据ProVerif用户手册1.4.3节,Windows用户可以使用二进制发行版安装ProVerif。首先现在你想要的文件路径中新建一个 proverif 文件夹。 graphviz graphviz是一种以图形方式显示ProVerif可能发现攻击的组件,可以通过官网链接进行下载。 我的操作系统是64位系统,

    2024年02月02日
    浏览(35)
  • 密码协议形式化分析与可证明安全实验2——使用circom和snarkjs来创建一个零知识snark电路

    过程 环境配置 RUST的安装 作者此次使用的OS为WIN10系统,在Rust官网下载对应的版本进行安装。最好使用镜像网站,不然下载速度会非常缓慢。 按照指示一步一步走完后,在命令行输入rustc --version查看是否正确安装 NODE的安装 Node.js下载安装及环境配置教程【超详细】_nodejs下载

    2024年01月19日
    浏览(51)
  • UVM验证方法学_phase机制

    phase机制是uvm最重要的几个机制之一,它使得uvm的运行仿真层次化,使得各种例化先后次序正确,保证了验证环境与DUT的正确交互。 目录 一、phase机制概述 二、phase执行顺序 (1)时间顺序 (2)空间顺序 三、phase机制中uvm树的遍历 四、phase的super 五、phase的跳转 六、phase的调

    2024年02月13日
    浏览(34)
  • 【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】

    同步复位 :复位只能发生在在clk信号的上升沿,若clk信号出现问题,则无法进行复位。 Verilog 代码 testbench 代码 编译及仿真 波形如下 : 从波形可以看到,在第100ns后,第一个 clk 时钟沿变化时 q 的信号和 d 的信号保持一样,后面依次如此。 问题小结 在写 testbench 测试的时候

    2024年02月19日
    浏览(51)
  • UVM验证方法学_config_db机制

    config_db机制是uvm中很重要的机制之一。由于验证平台的结构往往会比较复杂,其中的组件如果要进行互相通信和参数传递,则需要一种高效且稳妥的办法,这就是config_db机制的意义。  目录 一、config_db机制概述 (1)路径 (2)set和get (3)省略get函数 二、跨层次多重设置 三

    2024年02月05日
    浏览(34)
  • 芯片验证板卡设计原理图:446-基于VU440T的多核处理器多输入芯片验证板卡

    一、板卡概述         基于XCVU440-FLGA2892的多核处理器多输入芯片验证板卡为实现网络交换芯片的验证,包括四个FMC接口、DDR、GPIO等,北京太速科技芯片验证板卡用于完成甲方的芯片验证任务,多任务功能验证。 Figure 1.1 验证板卡框图 二、技术指标   1)FPGA 外接4 路FMC-HPC;

    2024年02月11日
    浏览(43)
  • 19种芯片封装形式

        DIP封装:Dual In-line Package,双列直插式封装,适用于较大的芯片,易于插拔和维修。 SIP封装:Single In-line Package,单列直插式封装,适用于较小的芯片,和DIP封装一样易于插拔和维修。 SOP封装:Small Outline Package,小轮廓封装,适用于集成度较高的芯片,可在面积和功耗上

    2024年02月16日
    浏览(34)
  • Java程序设计入门教程--日期格式化类SimpleDateFormat

           在程序设计中,经常用到特定的日期格式,此时就可以使用 java.text 包中的 SimpleDateFormat 类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。 目标格式 使用SimpleDateFormat类时,首先要定义一个要转换的日期时间目标格式。目标格

    2024年02月07日
    浏览(36)
  • 基于飞腾芯片的设计与调试入门指导

    一、啥是自主可控 国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过

    2024年02月10日
    浏览(38)
  • systemverilog断言简介 形式验证 第3章

        目录 一、基本断言概念 1、一个简单的仲裁器示例 2、什么是断言(assertion) 3、什么是假设(assumption) 4、什么是覆盖点(cover point) 5、对断言语句的阐述 6、SVA断言语言基础知识 二、即时断言 1、写即时断言 2、过程代码的复杂性和断言FINAL的动机 3、程序块中的位置

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包