Formality:Bug记录

发布时间:2026/11/6 7:34:28

Formality:Bug记录 相关阅读Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482本文记录博主在使用Synopsys的形式验证工具Formality中遇到的一个Bug。Bug复现情况一// 例1 module dff ( input clk, input d_in, output d_out ); reg q1, q2; always (posedge clk) begin q1 d_in; q2 q1; end assign d_out q2; endmodule首先以例1的RTL代码作为参考设计和实现设计然后在setup模式使用以下set_constant命令使得q1、q2触发器变成不可读触发器。set_constant -type net r:/WORK/dff_chain/d_out 1 set_constant -type net i:/WORK/dff_chain/d_out 1关于不可读的更详细信息可以参考下面的博客。Formality不可读(unread)的概念https://chenzhang.blog.csdn.net/article/details/145242304随后在fm_shell中使用match命令进行匹配或在GUI界面点击Run Matching此时fm_shell中显示的匹配结果与GUI界面显示的匹配结果出现了差别如下所示。// fm_shell的匹配结果 *********************************** Matching Results *********************************** 1 Compare points matched by name 0 Compare points matched by signature analysis 0 Compare points matched by topology 0 Matched primary inputs, black-box outputs 0(0) Unmatched reference(implementation) compare points 0(0) Unmatched reference(implementation) primary inputs, black-box outputs ****************************************************************************************// GUI界面的匹配结果 3 points matched by name 0 points matched by signature analysis 0 points matched by topology 0 points matched by user 0 unmatched reference points 0 unmatched implementation points结果显示fm_shell没有考虑两对匹配的不可读触发器而GUI界面考虑了更严重的是此时输入/输出端口没有显示在任何匹配报告中。这对最后的验证结果没有影响不可读触发器在默认情况下会被归为Not Compared类而不进行验证可通过verification_verify_unread_compare_points变量改变如下所示。********************************* Verification Results ********************************* Verification SUCCEEDED ---------------------- Reference design: r:/WORK/dff_chain Implementation design: i:/WORK/dff_chain 1 Passing compare points ---------------------------------------------------------------------------------------- Matched Compare Points BBPin Loop BBNet Cut Port DFF LAT TOTAL ---------------------------------------------------------------------------------------- Passing (equivalent) 0 0 0 0 1 0 0 1 Failing (not equivalent) 0 0 0 0 0 0 0 0 Not Compared Unread 0 0 0 0 0 2 0 2 ****************************************************************************************情况二以例2的RTL代码的作为实现设计而使用例1的RTL代码作为参考设计匹配结果如下所示。// 例2 module dff ( input clk, input d_in, output d_out ); reg q1, q2, q3; always (posedge clk) begin q1 d_in; q3 d_in; q2 q1; end assign d_out q2; endmodule// fm_shell的匹配结果 *********************************** Matching Results *********************************** 3 Compare points matched by name 0 Compare points matched by signature analysis 0 Compare points matched by topology 2 Matched primary inputs, black-box outputs 0(0) Unmatched reference(implementation) compare points 0(0) Unmatched reference(implementation) primary inputs, black-box outputs 1(0) Unmatched reference(implementation) unread points ****************************************************************************************// GUI界面的匹配结果 5 points matched by name 0 points matched by signature analysis 0 points matched by topology 0 points matched by user 0 unmatched reference points 0 unmatched implementation points结果显示fm_shell的匹配结果中列出了这个未匹配的不可读触发器而输入/输出端口显示在了匹配报告中。情况三以例2的RTL代码作为参考设计和实现设计匹配结果如下所示。// fm_shell的匹配结果 *********************************** Matching Results *********************************** 3 Compare points matched by name 0 Compare points matched by signature analysis 0 Compare points matched by topology 2 Matched primary inputs, black-box outputs 0(0) Unmatched reference(implementation) compare points 0(0) Unmatched reference(implementation) primary inputs, black-box outputs ****************************************************************************************// GUI界面的匹配结果 6 points matched by name 0 points matched by signature analysis 0 points matched by topology 0 points matched by user 0 unmatched reference points 0 unmatched implementation points结果显示fm_shell没有考虑这对匹配的不可读触发器而GUI界面考虑了而输入/输出端口显示在了匹配报告中。Bug总结1、当使用set_constant命令导致不可读触发器时fm_shell和GUI界面的匹配结果不一致输入输出端口不会出现在任何匹配报告中而匹配的不可读触发器不出现在fm_shell中对最终验证没有影响。2、即使不使用set_constant命令fm_shell和GUI界面的匹配结果也不一致匹配的不可读触发器不出现在fm_shell中对最终验证没有影响。Bug反馈目前已在Solvnet上向Synopsys提出反馈如下图所示。
延伸阅读

更多相关文章

2026/11/6 7:34:28

OpenCV 高级 001-图像修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 7:34:28

02:奇数单增序列

/*** 题目名称&#xff1a;奇数单增序列 <p>* 题目来源&#xff1a;http://noi.openjudge.cn/ch0110/02/ <p>* 程序功能&#xff1a;按升序输出指定整数序列中的奇数** author 潘磊&#xff0c;just_panleijust.edu.cn* version 1.0*/import java.util.List; impor…

2026/11/6 7:34:28

高阶数据结构(C++)

一、并查集 1.并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个 单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一 个元素归属于那个集合的运算。适…

2026/11/6 8:29:34

懂个锤子Vue VueRouter路由深入浅出

VueRouter路由深入浅出 VueRouter 介绍&#xff1a; Vue Router 是 Vue.js官方的路由管理器&#xff1a; 极大地简化了在 单页面应用程序 SPA-Single Page Application&#xff1a; 中构建导航和页面切换的复杂性&#xff1b; 单页面应用程序 SPA 单页面应用程序SPA&#…

2026/11/6 8:29:34

如何给 macOS 应用接入自动更新:Sparkle 完整集成与避坑指南

如何给 macOS 应用接入自动更新&#xff1a;Sparkle 完整集成与避坑指南 【免费下载链接】Sparkle A software update framework for macOS 项目地址: https://gitcode.com/gh_mirrors/sp/Sparkle Sparkle 是 macOS 平台广泛使用的开源自动更新框架&#xff1a;负责检查…

2026/11/6 8:24:33

STM32底层启动与硬件时序实战:从复位向量到PWM波形精控

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代&#xff0c;基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而&#xff0c;与配合度高的人类不同&#xff0c;宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态&#xff0c;更无法控制光照环境。实际应用中&#xff0c;我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:03:39

MCU晶振电路设计全解析:从负载电容计算到PCB布局调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代&#xff0c;基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而&#xff0c;与配合度高的人类不同&#xff0c;宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态&#xff0c;更无法控制光照环境。实际应用中&#xff0c;我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑