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

news2025/2/9 8:45:56

一、形式验证方法学

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

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

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

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

二、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可以应用于以下验证场景:

  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的质量,包括:
    • 代码覆盖率:衡量验证约束的完整性
    • 断言覆盖率:检查断言检查功能的完整性
    • 功能覆盖率:用断言描述的覆盖检查点,用于检查功能覆盖率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

让你不再疑惑语音翻译怎么弄

语音是人类交流的一种最基本的方式,但是当我们需要和来自不同国家或地区的人交流时,语言的限制往往让我们感到无力。然而,如今的语音翻译技术正在以惊人的速度发展,使得我们的声音可以轻松地跨越语言的界限。那么,你知…

强化学习:蒙特卡洛方法(MC)

引入蒙特卡洛方法例子 以抛硬币为例,将结果(正面朝上或反面朝上)表示为作为随机变量 X X X ,如果正面朝上则 X 1 X1 X1 ,如果反面朝上,则 X − 1 X-1 X−1,现在要计算 E [ X ] E[X] E[X]。    我们通常很容易…

JDK常用的数据类型【1】 ——HashMap(分享篇)

x mod 2^n x & (2^n - 1) 1. 拿到 key 的 hashCode 值 2. 将 hashCode 的高位参与运算,重新计算 hash 值 3. 将计算出来的 hash 值与 (table.length - 1) 进行 & 运算数据结构 1.B树 和 B树 B树叶子节点可以存放多个元素B树的叶子节点之间是有指针的 红…

网络安全|渗透测试入门学习,从零基础入门到精通—收集信息篇

目录 前面的话 1、收集域名信息 1.1、Whois查询 ​编辑1.2、备案信息查询 2、收集敏感信息 3、收集子域名信息 3.1、子域名检测工具 3.2、搜索引擎枚举 3.3、第三方聚合应用枚举 3.4、证书透明度公开日志枚举 本章小结 前面的话 本人喜欢网络完全的一些知识&#xff…

老油条辞职信写好了,00后卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff0…

出现报错Invalid bound statement (not found): xxx.xxxMapper.方法名 时的几种异常排除方法

报错信息:Invalid bound statement (not found): com.ruoyi.enterpriseman.trade.mapper.TradeEnterpriseMapper.selectTradeEnterpriseList 1.mapper.xml中的namespace和实际的mapper文件不一致 这个问题其实很好解决,瞪大眼睛,仔仔细细看看…

[SSM]Maven详解

目录 Maven 自动化构建工具 Maven简介 Maven的核心概念 maven约定的目录结构 仓库 POM文件 生命周期、命令、插件 Maven在IDEA中的应用 IDEA集成maven IDEA创建Maven版java工程 IDEA创建Maven版web工程 IDEA中导入Maven工程(module) 依赖管理…

Windows 离线安装mysql5.7

一、下载MySQL5.7最新版 1、官网地址 https://downloads.mysql.com/archives/community/ 2、下载MySQL5.7最新版 下载下图所示的安装包: 二、安装MySQL5.7 1、解压 将刚才下载压缩包解压搭配目录C:\software\mysql-5.7.41,(路径大家可…

背完这195道软件测试面试题,帮你轻松拿下提前批offer

前言: 最近在整理字节,阿里,腾讯,京东的面试题,挑了一部分在四个大厂面试题中出现频率比较高的,发现还是基础知识比较多,废话不多说,你们自己看看,这里小编只放了面试题&…

电动超声波硅胶洁面仪单片机开发方案

近来,网红超声波洁面仪受到人们喜爱,特别是爱化妆的女性朋友,常用来清洁脸部肌肤。在本方案中,洁面仪IC采用宇凡微YF单片机,我们提供多种洁面仪方案,根据不同功能需求有多个洁面仪芯片可供选择。 一、超声波…

价值5k的软件测试企业级实战项目,只为了回答你软件测试如何学!

学习软件测试如何学,在回答这个问题之前,我先分析下,在企业中做项目整个测试流程是什么样的,你清楚了整个企业的测试流程,就会清楚企业做测试需要什么?从而也就会明白如何去学测试。 1、需求: …

JDBC --- Java的数据库编程

目录 🍈一、数据库编程的必备条件 🍉二、什么是 JDBC JDBC 的优势 🍊三、JDBC 使用流程 以及 常用接口和类的讲解 🍡0. 前置工作 🍭1. 引入依赖 🍬2. 数据库连接Connection 🍬3. 创建操…

11-基于51单片机电子密码锁门禁(实物图+原理图+源程序+仿真+论文)全套资料

编号: 011 本系统采用 51单片机 24C02芯片矩阵键盘 继电器 开锁指示灯 LCD1602液晶 蜂鸣器 而成 1.单片机型号:STC89C52/51、AT89C52/51、AT89S52/51可以任选。程序通用 2.采用矩阵按键输入、1602液晶显示、继电器模拟开锁、发光二极管为开锁指示灯,继电器是可以外…

适配器模式(九)

不管怎么样,都要继续充满着希望 上一章简单介绍了建造者模式(八), 如果没有看过, 请观看上一章 一. 适配器模式 引用 菜鸟教程里面的 适配器模式介绍: https://www.runoob.com/design-pattern/adapter-pattern.html 适配器模式(Adapter Pattern&#…

出海品牌直播带货:虚拟主播的优势与挑战,以及未来趋势揭秘

随着全球化的发展和网络技术的进步,海外直播带货成为了品牌拓展海外市场的一种新方式。而在这个数字化时代,虚拟主播的出现给海外直播带货带来了全新的可能性。 在传统直播带货中,品牌需要派遣代表或明星代言人亲自现场演示产品,…

15、Nginx---slice模块,大文件分片请求

Nginx的slice模块可以将一个请求分解成多个子请求,每个子请求返回响应内容的一个片段,让大文件的缓存更有效率。。 HTTP Range请求: HTTP客户端下载文件时,如果发生了网络中断,必须重新向服务器发起HTTP请求&#xff0…

2023年网络安全专业的前景怎么样?

网络安全与我们每一个人都息息相关,无论是企业还是个人,现在都非常重视网络安全。而且网络安全是一个新兴的行业,人才需求量远远大于供给,所以在薪资福利上具有很大的优势,并且对于初学者而言,很多人依旧担…

【JVM系列】GC算法介绍

文章目录 概述对象存活判断垃圾收集算法标记 -清除算法复制算法标记-整理算法分代收集算法 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程…

企业操作手册有必要弄成在线版本吗?

企业操作手册是对企业运营的各个环节进行详细记录、说明和规范化,以指导企业各类人员在工作中的行为、方法和流程。 下面是编写企业操作手册的基本步骤: 1.明确编写内容。制定编写计划,明确需要编写哪些方面的操作手册和具体内容&#xff0…

抗战时期的15W电台竟能传送到千里之外?

我们大部分人应该都看过谍战影视剧,在剧中不管是敌方、友方还是我方,要想传递情报,基本都是通过无线电台进行联络的。而一旦离开无线电台,谍报人员之间的联络沟通就会变得十分困难。 在电影《永不消逝的电波》中,我们…