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

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

3天内不再提示

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

芯司机 来源:芯司机 2022-12-27 15:18 次阅读

一、什么是形式验证?

VLSI设计的功能验证有两种方法,动态仿真验证和形式验证。形式验证采用数学方法来比较原设计和修改设计之间的逻辑功能的异同,而动态仿真验证是对两设计施加相同的激励后,观测电路对激励的反应异同。设计越大,为了达到100%的覆盖率,动态仿真验证所需要的矢量越多,这时形式验证在这方面就有优势了。但形式验证是一种功能等价验证,这种验证脱离工艺和版图约束,无法保证时序的准确性,故而,形式验证往往需要和静态时序分析工具一起来完成对电路完备的验证。本文就以Synopsys公司的formality工具为例,来介绍形式验证的流程和基本概念,后续会详细介绍使用formality做RTL2Gate流程中每一步骤的操作。

二、使用formality做形式验证需知的基本概念。

5398df0a-834e-11ed-bfe3-dac502259ad0.png

图1. 形式验证概念图

1. reference design 和 implementation design

reference design是golden design,即认为是正确的标准的设计。implementation design是经过非功能性修改的、待验证的设计。比如,使用综合工具DC将RTL代码映射成和工艺库相关的门级网表,那么原RTL设计就是reference design,而DC输出的门级网表就是implementation design。

2. logic cone和compare point

逻辑锥(logic cone)是由设计中的组合逻辑电路组成的,每个逻辑锥可以有多个输入,只有一个输出。逻辑锥的输入为:设计输入端口寄存器输出端口、黑盒子输出端口;逻辑锥的输出为:设计的基本输出端口、寄存器输入端口和黑盒子输入端口。逻辑锥的输出点就是比较点,reference design中的比较点和implementation design中的比较点是要一一对应的,这称为比较点匹配(match)。Formality将设计划分成一个个逻辑锥,以逻辑锥为单位,将其抽象为数学模型,然后针对每个比较点将implementation design和reference design进行比较,注意逻辑锥之间是可以交叠的。

53b1d82a-834e-11ed-bfe3-dac502259ad0.png

图2. 设计的逻辑锥划分

3. Consistency and Equality

对于某个输入pattern,reference design中某个比较点的响应为x,即0或1都可以的一个状态,那么在implementation design 中相应比较点处的响应为0或者1,验证都会通过,这叫做Design Consistency;而此时Design Equality要求在implementation design 中相应比较点处的响应也应该为x。可见,Design Equality的验证标准要高于Design Consistency,对这两种验证,Formality工具都是支持的。

4. container和library

在Synopsys工具中,container是个常见概念,它就是一个存储空间,formality中的container内存储的是工艺库和设计库信息。通常,为了对两个设计进行比较,我们需要将reference design放到一个container中,将implementation design放到另一container中。一旦启动formality,工具会自动创建一个名为FM_WORK的工作空间,在这个工作空间里,默认创建了名为i和r两个container,这两个默认的container用起来很方便,当然,用户也可以创建新的container。在向container中读入设计的时候,如果不指定设计库的名称,formality会默认创建一个名为WORK的设计库,并将设计读入其中。在读工艺库的时候,如果不指定container,那么这些工艺库会放到FM_WORK工作目录下,并对所有container可见,称为共享库;如果指定了container,那么这些工艺库会放到相应的container中,库信息只能该container内部访问。这样,如图所示,每一个design和design object可以通过container、design library、design、design object找到,这条路径就是designID或objectID。

53e310e8-834e-11ed-bfe3-dac502259ad0.png

图3. Container 和 library关系图

三、形式验证的基本流程

使用formality做形式验证的基本流程如图4所示,1)Load guidance阶段是formality提取SVF文件信息的阶段;2)接下来读入设计,如果set_top声明的设计顶层和待验证的设计不是同一层次,需要使用命令set_reference_design和set_implemetation_design来声明target design;3)在setup阶段提供帮助比较点匹配的信息,声明约束信息。4)match阶段进行比较点匹配,这一步骤formality进行逻辑锥划分、比较点映射和对读入的SVF文件的信息处理(即guide命令处理);5)进行等价性验证,若不一致需要debug。在整个过程中,涉及到四种shell mode:setup mode、match mode、verify mode和guide mode,每种mode下可使用的formality command是不相同的,使用者在查看相应命令的man page时需要注意。打开工具默认进入setup mode,执行了math命令后进入match mode,执行了verify命令后进入verifymode,而guide mode不易察觉,因为SVF信息的提取虽然在这一mode下进行,但是提取后工具又进入setup mode了,所以使用者不以察觉。

53fdea30-834e-11ed-bfe3-dac502259ad0.png

图4. formality 应用基本流程图

小结:本文介绍了形式验证的基本概念和基本流程,有兴趣的同学欢迎关注接下来对各个步骤的详细介绍:如何恰当使用guidance、load design注意事项、setup阶段需要补充哪些信息、比较点匹配规则和verify失败时基本的debug方法等。

审核编辑:汤梓红

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

    关注

    0

    文章

    8

    浏览量

    5674
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66750
  • VLSI
    +关注

    关注

    0

    文章

    71

    浏览量

    42644

原文标题:形式验证入门之基本概念和流程

文章出处:【微信号:芯司机,微信公众号:芯司机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Proteus涉及的基本概念

    Proteus涉及的基本概念
    发表于 08-01 20:58

    《单片机入门知识与基本概念

    本帖最后由 eehome 于 2013-1-5 10:04 编辑 《单片机入门知识与基本概念
    发表于 08-13 15:38

    Java新手入门的30个基本概念

    Java新手入门的30个基本概念
    发表于 08-16 20:02

    Fpga Cpld的基本概念

    Fpga Cpld的基本概念
    发表于 08-20 17:14

    C语言基本概念

    C语言基本概念
    发表于 08-01 02:00

    数据结构的基本概念是什么

    数据结构基本概念
    发表于 05-27 08:29

    让初学者能掌握环路设计的基本概念流程,灌输设计的理念

    主要内容:1、环路和直流稳压电源的关系2、与环路相关的基本概念3、常用的补偿控制器4、模拟环路设计流程5、数字和模拟环路的差别6、相关仪器和软件的使用
    发表于 11-27 09:30

    阻抗控制相关的基本概念

    阻抗控制部分包括两部分内容:基本概念及阻抗匹配。本篇主要介绍阻抗控制相关的一些基本概念
    发表于 02-25 08:11

    智能天线的基本概念

    1智能天线的基本概念 智能天线综合了自适应天线和阵列天线的优点,以自适应信号处理算法为基础,并引入了人工智能的处理方法。智能天线不再是一个简单的单元,它已成为一个具有智能的系统。其具体定义为:智能
    发表于 08-05 08:30

    CODESYS的基本概念有哪些

    CODESYS是什么?CODESYS的基本概念有哪些?CODESYS有哪些功能?
    发表于 09-18 06:52

    变频器&逆变器工作原理基本概念

    变频器&逆变器工作原理基本概念直流产生方波正弦波产生原理正弦波产生制作脉冲正弦波产生滤波&平均基本概念逆变器:直流电(DC)转变为交流电(AC)变频器:目的是得到特定频率的交流电
    发表于 11-15 08:25

    STM32的中断系统基本概念

    STM32 中断系统概述笔记(一)中断概述中断相关的基本概念STM32的中断系统基本概念:NVIC 嵌套向量中断控制器中断通道中断优先级优先级分组EXTI 外部中断控制器三种外部中断触发方式引脚分组
    发表于 01-07 07:32

    主板维修入门教程:电路的基本概念

    主板维修入门教程:电路的基本概念 电流:电荷的定向移动叫做电流,电流常用I表示。电流分直流和交流两种。电流的大小和方向不
    发表于 05-19 21:56 1570次阅读

    基于PID调节相关的15个基本概念详解

    PID入门读此文,必须熟透于心的15个PID基本概念
    的头像 发表于 01-08 09:14 6455次阅读
    基于PID调节相关的15个<b class='flag-5'>基本概念</b>详解

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

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