IC设计中的形式验证formality
形式验证的目的是比较功能的一致性比对综合后的网表netlist和RTL设计的功能是否一致比对PR后的网表和综合后网表功能是否一致。两处比对一致则代表最终PR后的网表功能符合设计者意图。在所有的IC设计中想要最终成功的设计者都不会放弃做形式验证且至少需要两次形式验证第一次是RTL和综合后的网表的比对这次比对简记为前FM第二次是综合后的网表和PR后的网表的比对这次比对简记为后FM。1 FM的逻辑框架不论是前FM还是后FM做形式验证的思路是一样的需要的东西如下1 参考文件就是那个被定义为永远正确的文件这里用ref来表示这里的ref文件就是RTL设计文件原因RTL经过功能仿真验证被认为RTL是符合设计者意图的正确设计2 用于比较的文件这里用imp来表示这里imp文件就是综合后的网表文件原因在综合过程中综合软件会对设计进行优化有些地方的优化可能不符合设计者意图从而导致功能错误3 明白ref文件和imp文件的底层表达ref文件是RTL的代码文件而imp文件是用具体器件表示的网表因此两者之间需要读入具体的器件的db文件软件才能明白文件具体想表达的意思。与此同时在综合过程中进行了优化也需要把优化的记录文件.svf文件读入软件才能比对优化处的功能2 FM的简单实现下面给出一个简单的FM的脚本在进行复杂的芯片验证时可在此基础框架上增删修改。步骤1设置顶层文件名字这个可以给自己提示该脚本是用于那个项目/模块的set top_design_name top_design_name步骤2设计FM的约束条件最开始约束条件可以不用设置用默认设置debug的时候可以加上。约束条件还有很多或者多种用法可参见使用手册和使用man指令set verification_failing_point_limit 0set hdlin_warn_on_mismatch_message {FMR_ELAB-147 FMR_VLOG-091}set verification_clock_gate_hold_mode anyset hdlin_ignore_full_case falseset hdlin_ignore_parallel_case falseset hdlin_unresolved_modules black_box……步骤3读入相应的db文件read_db ../../xxx.db步骤4 读入综合后的优化文件#set_synopsys_setup trueset_svf ../../../../xxxx.svf步骤5读入RTL设计文件到-r container里read_verilog -container r -libname WORK {module_a.v module_b.v module_c.v}set_top r:/WORK/$design_top_nameset_refernce r:/WORK/$design_top_nameset hdlin_unresolved_modules black_box步骤6读入网表文件到-i container里read_verilog -i libname WORK -05 ../../xxxxx.vgset_top i:/WORK/$design_top_nameset_implementation i:/WORK/$design_top_name步骤7将i-container和r-container里的内容进行匹配比对matchreport_unmatched_pointsset_dont_verify {r:/work/xxx/xxx/xx/xxx/shift_x_reg70/\*dff.00.7\*}verifyanalyze_points failingreport_constantsreport_dont_verify_pointsreport_failing_points ../rpt/failing_points.rptreport_aborted_points ../rpt/aborted_points.rptreport_unverified_points ? ../rpt/unverified_points.rpt注1查找使用的命令用man比如 man read_verilog就会出来具体命令的使用方法注2关于formality的使用手册可在eetop社区里找到如下链接简单的应用框架在第81页。Formality® User Guide 2022-03 - 后端资料区 - EETOP 创芯网论坛 (原名电子顶级开发网) -注3formality的用户手册里可以找到相应的脚本模板3 start_guidebug工具可以通过FM的gui界面进行debug这个界面上存在问题分析、可能原因定位、电路的比较图对于debug很友好。用户手册里也有很大的篇幅介绍debug的方法技巧可直接学习用户手册。笔记一定要及时整理啊不然时间久了真的会忘记的………………笔记就简单整理到这里如有不妥之处欢迎大家批评指正

相关新闻

Windows防撤回工具终极指南:RevokeMsgPatcher让微信QQ消息永久保存

Windows防撤回工具终极指南:RevokeMsgPatcher让微信QQ消息永久保存

Windows防撤回工具终极指南:RevokeMsgPatcher让微信QQ消息永久保存 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https:…

2026/10/23 9:53:03 阅读更多 →
mikupad架构解密:单HTML文件如何实现复杂LLM交互逻辑

mikupad架构解密:单HTML文件如何实现复杂LLM交互逻辑

mikupad架构解密:单HTML文件如何实现复杂LLM交互逻辑 【免费下载链接】mikupad LLM Frontend in a single html file 项目地址: https://gitcode.com/gh_mirrors/mi/mikupad mikupad是一款创新的LLM前端工具,它将完整的大型语言模型交互界面浓缩在…

2026/10/28 8:40:11 阅读更多 →
跨越平台鸿沟:WinDiskWriter如何让macOS用户轻松制作Windows启动盘

跨越平台鸿沟:WinDiskWriter如何让macOS用户轻松制作Windows启动盘

跨越平台鸿沟:WinDiskWriter如何让macOS用户轻松制作Windows启动盘 【免费下载链接】WinDiskWriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI &a…

2026/10/26 15:03:01 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/28 16:58:40 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/27 19:19:37 阅读更多 →