formal验证

  • cut-point
  • 异步旁路
  • 异步状态保持循环圈
  • 重新编码有限状态机
  • 单独定义FSM状态

cut-point

切点cutpoints表示在信号路径中插入2:1多路复用器。
原始信号成为多路复用器0侧的输入,自由信号成为多路复用器1侧的输入。
其中哪一个通过多路复用器由命令脚本中是否启用了切点来控制。
切点用于将困难的等价性证明简化为更小、更简单、更容易解决的问题。
通常,可以按如下方式使用切点:

  1. 创建描述设计中某个节点行为的断言。
  2. 证明这些断言。
  3. 在该节点启用一个切点,假设刚才证明断言正确,在这些断言下证明设计的其余部分。
    这个过程被称为假设-保证推理,可以在任何必要的步骤中应用它。

异步旁路

一种时序单元,其中一些异步输入具有到输出的组合路径,绕过一般的时序元件SEQGEN,称为异步旁路。
异步旁路逻辑可能来源于:

  • 从一个技术库到另一个技术库的映射;
  • Verilog仿真库:Verilog模块例化逻辑电路,创建出直接影响时序型用户定义单元(UDP)输出的组合路径。
  • 用RTL代码建模触发器。RTL定义了一个显式异步路径,或者当清除和预设都处于活动状态时,RTL指定Q和QN具有相同的值。

异步旁路逻辑不能来自转换为.db文件的.lib文件。库编译器使用时序元素来建模异步行为,以避免创建显式的旁路路径。异步旁路逻辑导致一个比较失败点。

若要防止由于下游故障点而中止验证,使用:
set_app_var verification_asynch_bypass true
此过程在设计中的每个寄存器周围创建异步旁路逻辑。将验证异步旁路设置为true可能会导致以下情况:

  • 更长的验证运行时。
  • 在设计中引入循环。
  • 由于设计复杂性而中止验证。
    异步旁路影响整个设计,不能放置在单个实例上。此外,在验证技术库中的单元时,会自动启用异步旁路;由于库单元的相对简单性,不会发生任何负面影响。

异步状态保持循环圈

形式化用于验证同步设计。因此,您的设计不应该包含作为组合逻辑实现的异步状态保持循环。异步状态保持循环可能导致某些比较点中止,从而得出不确定的结果。异步状态保持循环通过以下方式影响形式:

  • 如果形式上确定异步状态保持循环影响比较点,它将中止该比较点,并且该点不是证明等效的或不等价的。
  • 如果形式证明异步状态保持循环具有不影响比较点的路径,则证明该点等价或不等价。
  • 如果形式不能确定异步状态保持循环具有不影响比较点的路径,它将中止该比较点,并且该点不是证明等效的或不等价的。

如果循环是相同的,则Formality会在验证过程中自动打断它们。
若要更改此行为,请将VERIFICATION_AUTO_LOOP_BREAK变量设置为False。
还可以在验证后指定REPORT_LOOPS命令。
在这种情况下,Formality会报告原始循环,即使它们在验证过程中自动中断。
若要报告异步状态保持循环,请使用formality shell。
report_loops [‑ref ] [‑impl ] [‑limit N ] [‑unfold ]

默认情况下,REPORT_LOOPS命令将返回参考设计和实施设计中的回路的网和接点列表。它报告每个设计10个回路,每个回路100个设计对象,除非使用-Limit选项另行指定。使用基于实例的路径名称报告对象。
使用-unfold选项分别报告嵌入在循环中的子循环。否则,它们将一起报告。
如果循环完全包含在技术库单元中,此命令将列出与其关联的所有网和接点。如果循环只有一部分属于技术库单元,则该单元名称不会显示在列表中。此外,如果循环跨越边界,则报告将显示层次结构。
确定任何异步状态保持回路的位置后,请确保通过插入断点成功验证回路。

重新编码有限状态机

FSM的结构由一组用于保持状态矢量的触发器和一个产生下一个状态矢量和输出矢量的组合逻辑网络组成。
在对实现设计中的重新编码的FSM与其在参考设计中的对应项进行验证之前,您必须采取使验证成为可能的步骤。
这些步骤定义FSM状态向量并使用它们各自的编码建立状态名。
如果没有正确的设置,Formality将无法验证两个具有不同编码的FSM,即使它们具有相同的状态序列和输出向量。
Formality提供了几种方法来命名触发器和定义编码。
用户定义的编码不是通过形式验证的,所以要注意正确地指定编码。
最简单的方法是使用由DesignCompiler生成的SVF文件。
还可以使用单个FM_shell命令读取用户提供的同时包含所有信息的文件,也可以使用两个命令来命名状态向量触发器,然后定义状态名称及其编码。

用于FSM重新编码的SVF文件。
由DesignCompiler生成的SVF文件包含FSM状态向量编码。
此编码采用GUIDE_FSM_REENCODING命令的形式。
使用以下变量告诉Formality使用Design Compiler SVF文件中的FSM guidance:
在读取SVF文件之前设置此变量。
读取用户提供的FSM状态文件。
若要命名FSM状态向量触发器,并同时提供带有其编码的状态名,请执行以下操作:
read_fsm_states filename [designID ]

如果您的FSM具有多个状态,请使用此方法。
如果您的FSM只有几个状态,请考虑下一节中介绍的方法。
您必须为验证成功提供参考和实施设计的FSM信息。
您提供的文件必须符合某些语法规则。
通过使用设计编译器中的REPORT_FSM命令并将报告输出重定向到文件,可以生成合适的文件。

单独定义FSM状态

要将状态机状态向量触发器命名为 ,然后定义状态名及其相应的编码,
set_fsm_state_vector flip-flop_list [designID ]
set_fsm_encoding encoding_list [designID ]

formality verify cases相关推荐

  1. Synopsys Formality 2018操作流程

    Synopsys Formality 2018操作流程 王_嘻嘻 2020-09-16 15:20:18 1940 收藏 26 分类专栏: eda工具使用经验 文章标签: verilog 版权声明:本 ...

  2. Formality使用总结1

    formality流程总结1 一.图形界面启动方式 在命令行输入formality,接着可以看到如下界面 以下1~6为进行formality的流程 0.Guid 在这一步导入DC综合产生的.svf文件 ...

  3. SYNS formality 形式验证常见debug 步骤

    formality 是synopsys 用来验证两个design是否等价的工具,也是IC实现中sign off tool,常用在design ECO 验证,tptg 前后由于design hierar ...

  4. Formality流程

    Formality流程 前言 一.formality是什么? 二.使用步骤 0.打开formality的gui界面 1.导入svf文件 2.读入verilog文件 3.读入网表文件 4.setup 5 ...

  5. formality软件使用教程

    (参考:https://mp.weixin.qq.com/s/XznSbJBlAdZvtAIpyzajAA) 一.formality简介 在现在的数字集成电路设计流程中,有很多步骤都需要进行验证.随着 ...

  6. 形式验证 formality的设置及fm_shell使用

    形式验证进阶(二):Setup阶段的约束信息&说说formality中比较点匹配 2018-10-26  芯司机  公众号:chipdriver 之前的文章导读 <形式验证入门之基本概念 ...

  7. formality: 形式验证流程

    formality工具作用于设计开发过程中验证逻辑功能是否产生变化,不考虑layout与timing,可以作为动态仿真的替代品.受制于设计规模,仿真的时间与其输入向量的多寡有关,而formal ver ...

  8. Formality形式验证教程

    Formality形式验证主要验证综合后,生成的网表文件功能和之前的verilog文件功能是否一致, 需要两个文件,一个verilog文件,一个是网表文件 1.新建一个文件夹,把verilog文件和网 ...

  9. Formality Error/Debug

    1.Formality在match过程中报time limit 一下内容均为运行match命令后打印的log: " Reference design is r:/WORK/kanas_top ...

最新文章

  1. SLAM算法&技术之Gauss-Newton非线性最小二乘算法
  2. 类型转换函数(三十五)
  3. linux后台运行和关闭、查看后台任务
  4. curl参数为多维数组时提示数组到字符串的转换问题
  5. 全国大型水库水情数据汇总2018
  6. ieee1284controller怎么添加打印机_打印机提示脱机状态,如何恢复连接?
  7. Kubernetes 中pod绑定node节点:固定节点nodeName和nodeSelector调度详解
  8. C++中指针优点与线程中指针变量访问
  9. Spring Bean 生命周期
  10. 基于微信小程序的毕业设计题目(32)求职招聘小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  11. 分析开源三大CMS中WordPress相比Drupal与Joomla是怎样摘取皇冠的
  12. 十二步教你学会3d游戏建模,成功入行
  13. C++用I love you!打印心形
  14. 远程登陆Win10自带子系统Ubuntu-22.04
  15. c语言博物馆文物管理系统,博物馆文物智能管理系统.docx
  16. 掌门教育秉持因材施教原则,打造个性化教学模式
  17. 用大数据提升食品安全
  18. 统计个人CSDN的博客文章数量
  19. Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码
  20. post请求几种常见content-type类型

热门文章

  1. 《你是我生命中最美的相遇》
  2. 古典音乐CD购买经验谈
  3. 教你怎样查询快递查询单号并保存物流信息
  4. 计算机的喇叭接口显示的英文,电脑没声音右下角小喇叭显示红X,播放设备AMDHDMIOUTPUT...
  5. Linux-Mysql 源码包安装初始化报错
  6. 用电脑玩创造与魔法还要申请模拟器白名单?不存在的
  7. 设置WINRE的硬盘启动
  8. 字节跳动算法工程师总结:腾讯+字节+阿里面经真题汇总,含面试题+答案
  9. Java开发商用免费必备神器
  10. MFC设置窗体背景图片的办法