0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Formal Verify形式验证的流程概述

冬至子 来源:简矽芯学堂 作者:简矽芯学堂 2023-09-15 10:45 次阅读

概述

Formal Verify,即形式验证,主要思想是通过使用数学证明的方式来验证一个修改后的设计和它原始的设计,在功能上是否等价。

用于比较的设计文件可以是一个RTL级的设计和它的门级网表,或者综合后的门级网表和做完布局布线及优化之后的门级网表。常见的工具是synopsys公司的Formality。

对于DFT工程师来说,要完成的形式验证有2种:

第一,验证插入DFT测试逻辑之后的设计文件与未插入DFT测试逻辑的原始设计文件之间是否等价;

第二,验证综合后插入扫描链的门级网表与未插入扫描链的门级网表之间是否等价。

图片

Why Formal Verify

做形式验证是为了确认修改后的设计电路与原始设计电路是等价的。不管是人为的修改还是工具处理后的电路不一定能保证等价性,工具也是人做出来的,也有可能会出错,所以要确认。

DFT工程师运用工具将DFT测试逻辑插入到设计中,不能改变原始电路的功能,所以在完成DFT设计后要验证电路是否等价于原始设计的电路。

Formal Verify****的分类

1、等价性检查

用于比较设计的两种实现是否一致,可分为组合等价性检查和时序等价性检查。利用数学技术来验证参考设计与改动后的设计等价,主要目的是在一个设计经过变换之后,穷举地检验变换前后的功能一致性,即证明设计的变换没有产生功能的变化。

2、形式模型检查

是一种检测设计是否具有所需属性的方法,如安全性、活性和公平性。模型检验所针对的对象是同步时序设计。系统的设计spec用时序状态逻辑公式来描述。而通过对有限状态系统的所有可能的状态空间遍历来证明设计是符合规范的,增强设计者的信心;或者是通过提供违反spec的反例,以帮助设计者来发现早期设计的错误。反例给出的方式是从系统的初始状态出发到“坏”的状态的路径。系统的状态空间能够用有效的抽象符号算法来隐含地描述。

3、定理证明

是形式验证技术中最高的,它需要设计行为的形式化描述,通过严格的数学证明,比较HDL描述的设计和系统的形式化描述在所有可能输入下是否一致。这种验证方法需要非常深厚的数学功底,而且不能完全自动化,所以应用案例较少。

Formal Verify的流程

图片

1、准备HDL文件和fm_verify.tcl脚本

对于DFT工程师,需要准备好原始设计的RTL-level的HDL文件、插入DFT测试逻辑之后RTL-level的HDL 文件和fm_verify.tcl运行脚本,进行RTL的Formal Verify;

准备好综合后的门级网表文件、插入扫描链之后门级网表 文件和fm_verify.tcl运行脚本,进行门级网表的Formal Verify。

2、设置design_name和读取库文件

set_top top, 设置顶层为top。

read_db/project/${USER}/library/db/*.db,用read_db读取.db库文件。

3、用read_verilog命令读入设计

create_container pre_dft

read_verilog -f ./scripts/ref_filelist (未插DFT测试逻辑的设计)

create_container post_dft

read_verilog -f ./scripts/imp_filelist(已插DFT测试逻辑的设计)

读入reference design和implement design

current_design top 设置当前设计名称为top

4、设置环境

读取设计后,需要设置formal verification环境。比如插入dft以后,做function验证时,不需要考虑scan mode/test mode,或者人为创建的port,需要给这些port设置一个常量告诉工具不去检查。

5、Match

检查 reference design 和 Implemention design 的比较点是否匹配。

6、Verify

验证功能是否一致,电路是否等价。

总结

本文主要介绍了Formal Verify的概念、分类、进行Formal Verify的原因以及Formal Verify的具体流程。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59068
  • 形式验证
    +关注

    关注

    0

    文章

    8

    浏览量

    5674
  • SPEC
    +关注

    关注

    0

    文章

    31

    浏览量

    15677
  • DFT设计
    +关注

    关注

    0

    文章

    10

    浏览量

    8811
  • HDL语言
    +关注

    关注

    0

    文章

    46

    浏览量

    8869
收藏 人收藏

    评论

    相关推荐

    浅析形式验证的分类、发展、适用场景

    Formal Verification:利用数学分析的方法,通过算法引擎建立模型,对待测设计的状态空间进行穷尽分析的验证
    的头像 发表于 08-25 09:04 923次阅读
    浅析<b class='flag-5'>形式</b><b class='flag-5'>验证</b>的分类、发展、适用场景

    EDA形式化验证漫谈:仿真之外,验证之内

    “在未来五年内仿真将逐渐被淘汰,仅用于子系统和系统级验证。与此同时,形式化验证方法已经开始处理一些系统级任务。随着技术发展,更多Formal相关的商业标准化会推出。” Intel fellow
    的头像 发表于 09-01 09:10 949次阅读

    关于功能验证、时序验证形式验证、时序建模的论文

    半定制/全定制混合设计的特点,提出并实现了一套半定制/全定制混合设计流程中功能和时序验证的方法。论文从模拟验证、等价性验证和全定制设计的功能验证
    发表于 12-07 17:40

    A Roadmap for Formal Property

    What is formal property verification? A natural language such as English allowsus to interpret
    发表于 07-18 08:27 0次下载
    A Roadmap for <b class='flag-5'>Formal</b> Property

    深层解析形式验证

      形式验证Formal Verification)是一种IC设计的验证方法,它的主要思想是通过使用形式证明的方式来
    发表于 08-06 10:05 3773次阅读
    深层解析<b class='flag-5'>形式</b><b class='flag-5'>验证</b>

    新思科技凭借突破性机器学习技术将形式属性验证性能提高10倍

    新思科技宣布,推出一种基于人工智能(AI)的最新形式验证应用,即回归模式加速器。作为新思科技VC Formal®解决方案的组成部分,VC Formal采用最先进的机器学习算法,将设计和
    的头像 发表于 09-06 11:13 5672次阅读

    形式验证工具对系统功能的设计

    形式验证工具(Formal Verification Tool)是通过数学逻辑的算法来判断硬件设计的功能是否正确,通常有等价性检查(Equivalence Checking)和属性检查(Property Checking)两种方
    的头像 发表于 08-25 14:35 1097次阅读

    16nm技术的形式验证流程、优势和调试

    必须优化正式验证流程中的初始网表,因此测试设计需要额外的逻辑。在这里,我们提供16 nm节点的形式验证流程和调试技术。
    的头像 发表于 11-24 12:09 891次阅读
    16nm技术的<b class='flag-5'>形式</b><b class='flag-5'>验证</b><b class='flag-5'>流程</b>、优势和调试

    形式验证入门之基本概念和流程

    和静态时序分析工具一起来完成对电路完备的验证。本文就以Synopsys公司的formality工具为例,来介绍形式验证流程和基本概念,后续会详细介绍使用formality做RTL2G
    的头像 发表于 12-27 15:18 1252次阅读

    Formal Verification:形式验证的分类、发展、适用场景

    形式验证分为两大分支:Equivalence Checking 等价检查 和 Property Checking 属性检查 形式验证初次被EDA工具采用,可以追溯到90年代,被应用于R
    的头像 发表于 02-03 11:12 1548次阅读

    分享一些形式验证(Formal Verification)的经典视频

    前段时间很多朋友在微信群里讨论Formal验证的视频资料问题,今天整理好了,分享给大家。
    的头像 发表于 02-11 13:15 552次阅读
    分享一些<b class='flag-5'>形式</b><b class='flag-5'>验证</b>(<b class='flag-5'>Formal</b> Verification)的经典视频

    可以通过降低约束的复杂度来优化Formal的执行效率吗?

    我们可以通过降低约束的复杂度来优化Formal的执行效率,但是这个主要是通过减少Formal验证空间来实现的,很容易出现过约,导致bug遗漏。
    的头像 发表于 02-15 15:14 550次阅读

    Formal Verification的基础知识

    通过上一篇对Formal Verification有了基本的认识;本篇将通过一个简单的例子,感受一下Formal的“魅力”;目前Formal Tool主流的有Synopsys的VC Forma
    的头像 发表于 05-25 17:29 1445次阅读
    <b class='flag-5'>Formal</b> Verification的基础知识

    聊聊形式验证中的SVA

    SVA,即SystemVerilog Assertion,在simulation和Formal都有极为广泛的应用,这里介绍一些基本的概念和常用的语法。
    的头像 发表于 06-14 09:31 842次阅读
    聊聊<b class='flag-5'>形式</b><b class='flag-5'>验证</b>中的SVA

    什么是形式验证(Formal验证)?Formal是怎么实现的呢?

    相信很多人已经接触过验证。如我以前有篇文章所写验证分为IP验证,FPGA验证,SOC验证和CPU验证
    的头像 发表于 07-21 09:53 5352次阅读
    什么是<b class='flag-5'>形式</b><b class='flag-5'>验证</b>(<b class='flag-5'>Formal</b><b class='flag-5'>验证</b>)?<b class='flag-5'>Formal</b>是怎么实现的呢?