IC设计中的形式验证formality

发布时间:2026/10/16 21:06:20
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的方法技巧可直接学习用户手册。笔记一定要及时整理啊不然时间久了真的会忘记的………………笔记就简单整理到这里如有不妥之处欢迎大家批评指正

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询