news 2026/6/15 7:54:52

Formal验证简单入门一

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Formal验证简单入门一

Formal验证简单入门

背景

近几年慢慢开始接触到formal形式化验证,简单聊聊这是什么,了解其环境搭建和适用范围

核心内容

  1. 什么是formal验证
  2. 验证环境怎么搭
  3. 什么模块适合用formal进行验证

我的理解

不同于使用SV和UVM框架的动态仿真,formal属于静态验证。静态验证的意思就是formal工具在往接口灌的激励是随机的、不遵循时间进行规律变化的。或者说formal验证过程中没有仿真时间的概念,它只在这一刻给接口灌入随机值,检查信号是否根据你期望的进行变化。

下面是UVM仿真框架和Formal仿真框架,可以看到formal的代码量明显小于UVM。

仿真开始后formal工具对接口可能的信号变化进行穷举,然后检查output或者内部信号是否遵循assert中的行为,所以我认为对于formal来讲适合的模块会有以下几种特点:

1、模块相对较小,方便进行穷举;
2、暴露出的输入口行为变化和想要检查的信号关联性较强;

当然这并不意味着大型的设计不适合用formal,如果想要更加完备地对设计进行验证,将大设计拆分成小模块使用formal会更加高效。

实战要点

  • 工作中可以这么用:对于小模块的验证,特别是控制类的、协议类的、对信号约束明确的更适合用formal
  • 容易踩的坑:如果输入信号和检查的信号关联较小,则容易出现假pass的情况

一句话总结

formal是一种用穷举法证明模块没有bug的静态验证方法,适合用来验信号约束明确的模块

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 7:38:54

青龙面板资产推送踩坑记:手把手教你用WxPusher搞定通知,告别notify.sendNotifybyWxPucher报错

青龙面板与WxPusher联动实战:从报错排查到稳定推送的全流程指南 在自动化运维和脚本管理的世界里,青龙面板因其强大的任务调度能力而备受青睐。而WxPusher作为一款便捷的微信消息推送服务,与青龙面板的结合能为用户提供实时、可靠的通知体验…

作者头像 李华
网站建设 2026/6/15 7:35:51

避开D-InSAR的五大‘坑’:失相干、大气延迟与DEM误差的实战应对策略

避开D-InSAR的五大‘坑’:失相干、大气延迟与DEM误差的实战应对策略在利用D-InSAR技术进行地表形变监测时,许多研究者都曾遇到过这样的困扰:明明按照标准流程处理数据,最终得到的干涉图却充满噪声,形变信号被各种误差淹…

作者头像 李华