芯片验证|Formal验证技术总结

路科验证 2024-07-02 12:10

前言

形式化验证是一种验证方法,而实际应用方向主要有两方面,一是综合前后的等价性检查,二是RTL设计的功能验证。

本文所讲的是形式化验证方法在RTL设计功能验证方向的应用。

模拟仿真验证和形式化验证

芯片验证的两个方法,一个是模拟仿真验证,另一个是形式化验证。

模拟仿真验证是目前最主流的验证方法,主要是以 UVM 为代表的验证方法学,特点就是搭建模拟仿真环境,通过随机化激励进行模拟仿真,reference module作为验证标准进行结果数据的check,以收集覆盖率的方式作为验证进度的参考,当代码覆盖率和功能点覆盖率达到100%时,做到sign off。

由此看来,模拟仿真的优点就是基本不受设计复杂度的影响,而缺点就是验证环境搭建较复杂,测试激励手动添加,收集覆盖率周期较长,尤其是Corner场景的覆盖很让人头疼。

形式化验证从某层面看似乎让人省心。形式化方法简单的说就是用数学工具进行定义、开发和验证,它会对设计电路进行数学建模,然后穷举系统运行过程中电路所能达到的所有状态以断言的形式完成设计电路的功能验证和规则检查(也可以通过reference model的形式,做结果数据的check)。

听起来似乎完美,但是这要依赖强大的运算系统和EDA工具,否则会发生状态爆炸问题,长时间无法得出证明结果。以目前的形式化验证工具来看,还不足以吃进一个超复杂的设计电路,来完全替代模拟仿真的验证方法。

所以,在芯片的验证中,随机仿真验证和形式化验证往往是相辅相成,一个更适合系统级功能验证,一个更适合模块级的功能验证。除此之外,还有FPGA的硬件加速测试,这三种验证手段可谓是三位一体,相辅相成。

什么是形式化验证

个人认为,形式化验证是基于严格的数学算法和模型,根据设计功能提取电路规则的属性描述,并穷举系统运行过程中电路所能达到的所有状态,自动进行数学分析和证明。验证过程如下:

以上的形式化验证过程就像做一道数学证明题,用数学方法证明该命题是否成立,而这个证明过程是验证工具完成的,工程师不需要关心。

目前,业界主流的形式化验证工具主要有Cadence的 JasperGold 和 Synposys 的 VC-Formal。

SVA语法

形式化验证使用的是 SVA (SystemVerilog Assertion) 语言,属于SV的一部分,下面对SVA基本的使用语法进行说明。

SVA的语法主要分为三种使用类型:assume、assert、cover。

使用的基本规则为,先描述一个property,然后为property设置为assume或assert或cover,命名时习惯性将property名字添加“P_”前缀,将assume名字添加“ASM_”前缀,将assert名字添加“AST_”前缀,将cover名字添加“COV_”前缀。注:建议所有属性带时钟沿触发条件。

Assume

Assum即假定之意,也就是假定某些信号符合某规则特性,最常见的就是给输入信号添加约束,下面对assume语法的使用做简单介绍:

property P_property_name;
@(posedge clk) (condition==1'b1) -> (result==1'b1);
endproperty
ASM_property_name: assume property (P_property_name);
  • 精简写法
ASM_property_name: assume property (@(posedge clk) (condition==1'b1) -> (result==1'b1));

Assert

Assert即断言之意,也就是认为某些信号符合某规则特性,出现反例则报错,最常见的就是给关键信号依据特定属性设置断言,来进行特性检查,下面对assert语法的使用做简单介绍:

property P_property_name;
@(posedge clk) (condition==1'b1) -> (result==1'b1);
endproperty
AST_property_name: assert property (P_property_name);
  • 精简写法
AST_property_name: assert property (@(posedge clk) (condition==1'b1) -> (result==1'b1));

Cover

cover即覆盖之意,也就是对某些信号的某规则特性进行采样,反馈是否覆盖该特性,下面对cover语法的使用做简单介绍:

property P_property_name;
@(posedge clk) (condition==1'b1) -> (result==1'b1);
endproperty
COV_property_name: cover property (P_property_name);
  • 精简写法
COV_property_name: cov property (@(posedge clk) (condition==1'b1) -> (result==1'b1));

JasperGold的使用

本文使用的形式化验证工具是JasperGold,其常用的使用方法有两种类型,

  • 一个是SEC,对模块功能做对等性检查,
  • 另一个是FPV,基于规则特性的功能验证。

这里只对FPV进行介绍,也就是 Formal Property Verifycation。

验证环境

  • FPV_project_name:整个FPV的验证环境。
  • Report:用来存放验证报告。
  • Source:整个FPV环境的文件源。
  • FPV_project_name.tcl:FPV验证环境的启动脚本。
  • Design:文件源中的设计文件,也可以不存放设计文件,而由design.flist指定设计文件。
  • Property:文件源中的验证文件(SVA),提取设计文件的属性。
  • Refer_model:此文件为参考模型文件,根据需求创建,非必须。

启动脚本

  • 设置环境变量
set FPV_ROOT    /FPV_project_path
set DES_PATH $FPV_ROOT/source/design
set PRO_PATH $FPV_ROOT/source/property
  • 设置功能点收集选项
set_capture_elaborated_design on
check_cov –init –exclude_bind_hierarchies –enable_prove_based_proff_core
  • 编译设计文件 (注:v2k指IEEE 2001 标准)
analyze -v2k –f $DES_PATH/design.flist

  • 编译验证文件
analyze –sva –f $PRO_PATH/property.flist

  • 设置顶层
elaborate –top top_module_name

  • 设置时钟和复位 (注:如果复位是低位有效,则为 ~reset_signal_name)
clock clock_signal_name
reset reset_signal_name
  • 设置最长验证时间
set_prove_time_limit 24h
  • 启动验证
prove -all
  • 生成报告
report –summary –force –result –file “report/FPV_project_name.rpt”
  • 其他 以上只说明了基本设置,其他详细设置可参考手册或JasperGold的Tcl Command Help。

启动命令

启动验证环境很简单,验证流程主要依靠启动脚本的设置,而验证环境的启动只需在终端敲下启动命令即可,如下:

jg FPV_project_name.tcl

关于形式化验证的个人总结

什么样的设计适合用形式化验证

  • 规模较小:设计模块太大对应验证复杂度较高,导致验证时间过长。
  • 功能独立:功能独立的设计更容易提取规则属性。
  • 时序较短:时序较长会导致验证复杂度增大,验证时间指数增长。
  • 接口清晰:接口清晰便于对输入添加约束,避免非法输入影响验证结果。

形式化验证中影响验证时间的因素

  • 设计复杂度:设计复杂度高,肯定验证时间长,这也是为什么形式化验证不适合大的设计模块。
  • 时序较长:形式化验证是所有状态的全遍历,时序每增加一个cycle,所增加的遍历空间并非只是此cycle,还包括此cycle与前几个cycle的状态组合,换句话说,时序增加,遍历空间指数增长。
  • 设计中存在时序控制:比如advance_pipeline对pipeline进行使能控制的此类信号,以及所有影响流水线不能依次脉动流出的控制信号。
  • 设置的特性检查:设置的特性检查越多越复杂,对应的验证时间越长,如果以reference model形式进行数据结果check,所需验证时间最长,但是若只提取设计特性又很难做到signoff标准。

形式化验证不能验证完全是不是就无任何作用

当然不是!

  • 形式化验证工具进行了语法检查,可确定设计逻辑语法无误。
  • 形式化验证工具进行了部分特性检查,可确定已验证的特性符合设计规则。

换句话说,形式化验证不能验证完全,虽然不能做到sign off,但是可以将前期暴露的语法bug和设计bug进行修复,最终验证不完全,无非表明我不一定是对的,但也没找到我的错误,说明设计代码已经达到一定成熟度。

形式化验证工具的其他用途

  • 完成设计不加任何特性检查,直接启动形式化验证工具,可将暴露的语法错误和警告修复,提高设计代码质量。当然反过来,验证人员可先启动形式化验证工具,将暴露的语法错误和警告提单给设计人员。
  • 设计时对于显而易见的规则特性边设计边记录,待设计交付验证人员时,可先启动形式化验证,修复前期bug,提高设计代码质量。
  • 模拟仿真中收集覆盖率,对于较难收到的功能点可利用形式化验证工具去设置cover,辅助模拟仿真创建定向用例。这里提两点:
    • 一是需要确定输入的场景作为输入约束,
    • 二是无需保证形式化验证的正确性,因为只是提取测试激励,正确性由模拟仿真保证。

复杂设计如何完成验证

复杂的设计验证时间通常较长,不容易完成验证,但是,依据设计的特性,也是可以通过一些手段完成验证,下面以典型设计举例。

设计结构

此设计有以下几个特点:

  • 设计中stage1输入,stage5输出,中间需寄存四拍。
  • 设计中分为流水线控制信号、数据信号和控制信号、组合逻辑三个部分,流水线控制信号带复位。
  • 设计中为单向流动,无bypass,也就是流水线前后独立,无反馈。
  • 设计中带advance_pipeline,流水线的使能控制,也就是流水线可能锁定n拍后重新启动。
  • 设计中模块支持多功能类型,也就是op_type。

复杂设计的形式化验证方案

  • 依据功能类型,分类验证,各个功能依次验证。
  • 约束输入,单功能验证仅提交一次,运算数据由工具遍历,验证功能正确性。
  • 除流水线控制寄存器之外,其他寄存器不加复位,工具会将其初始值进行遍历,可等效为激励输入前模块的任何状态。
  • 凡是影响流水线行进的输入,全部添加约束,可以约束停顿周期为1~2,或直接约束为无停顿,暂不验证流水线控制功能。
  • 数据check语法采用单比特,如“data_a[3:0]==data_b[3:0]”改为“data_a[3]==data_b[3], data_a[2]==data_b[2] ……”,前者遍历空间是2^4,后者遍历空间2*4。
  • 对流水线控制功能的验证,在其算法功能验证的正确基础上,将数据进行适当约束,减少遍历空间,主要验证流水线控制功能。
  • 其他手段有待后续补充。

其他减少状态空间的方法

  • 抽象模型:如fifo或其他存储类模块,设计本身主要验证的是控制逻辑,从而可以减少存储单元来针对设计完成抽象模型,可以有效的减少状态空间。
  • 黑盒化:将不关心的设计设置黑盒,可以有效的减少状态空间
  • 断点:待了解

以上方法还未在实际工程中使用过,待后续总结

推荐书籍

  • 《SystemVerilog Assertion应用指南》
  • 《Formal Verification: An ESSential Toolkit For Modern VLSI Design》
  • 《JasperGold使用手册》


路科验证 专注于数字芯片验证的系统思想和前沿工程领域。路桑是Intel资深验证专家,主持验证架构规划和方法学研究,担任过亿门级通信芯片的验证经理角色。在工程领域之外,他在西安电子科技大学和西安交通大学客座讲授芯片验证课程。著有书籍《芯片验证漫游指南》。
评论 (0)
  •   电磁干扰抑制系统平台深度解析   一、系统概述   北京华盛恒辉电磁干扰抑制系统在电子技术快速发展、电磁环境愈发复杂的背景下,电磁干扰(EMI)严重影响电子设备性能、稳定性与安全性。电磁干扰抑制系统平台作为综合性解决方案,通过整合多元技术手段,实现对电磁干扰的高效抑制,确保电子设备稳定运行。   应用案例   目前,已有多个电磁干扰抑制系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁干扰抑制系统。这些成功案例为电磁干扰抑制系统的推广和应用提供了有力支持。   二
    华盛恒辉l58ll334744 2025-04-22 15:27 49浏览
  • 近期,金融界消息称,江西万年芯微电子有限公司申请一项名为“基于预真空腔体注塑的芯片塑封方法及芯片”的专利。此项创新工艺的申请,标志着万年芯在高端芯片封装领域取得重要突破,为半导体产业链提升注入了新动能。专利摘要显示,本发明公开了一种基于预真空腔体注塑的芯片塑封方法,方法包括将待塑封的大尺寸芯片平铺于下模盒腔体内的基板并将大尺寸芯片的背向表面直接放置于基板上以进行基板吸附;将上模盒盖合于下模盒形成塑封腔,根据基板将塑封腔分为上型腔以及下型腔;将下型腔内壁与大尺寸芯片间的空隙进行树脂填充;通过设置于
    万年芯 2025-04-22 13:28 64浏览
  • 引言:老龄化社会的健康守护需求随着全球老龄化进程加速,老年人的健康管理与生活质量成为社会焦点。记忆衰退、用药混乱、日程遗漏等问题频发,催生了智能健康设备的市场需求。WTR096录音语音芯片,凭借其高度集成的录放音、计时时钟与计划管理功能,为老年人量身打造了一站式健康管理方案,重新定义智能语音时钟的价值。功能亮点:1. 用药安全守护:多维度提醒,拒绝遗忘多时段精准提醒:支持一天内设置多个用药时间(如早、中、晚),适配复杂用药需求。个性化语音定制:家属可录制专属提醒语音(如“上午9点,请服用降压药”
    广州唯创电子 2025-04-22 08:41 91浏览
  •   电磁兼容故障诊断系统平台深度解析   北京华盛恒辉电磁兼容(EMC)故障诊断系统平台是解决电子设备在复杂电磁环境下性能异常的核心工具。随着电子设备集成度提升与电磁环境复杂化,EMC 问题直接影响设备可靠性与安全性。以下从平台架构、核心功能、技术实现、应用场景及发展趋势展开全面剖析。   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。  
    华盛恒辉l58ll334744 2025-04-22 14:29 57浏览
  • 4 月 19 日,“增长无界・智领未来” 第十六届牛商大会暨电子商务十大牛商成果报告会在深圳凤凰大厦盛大举行。河南业之峰科技股份有限公司总经理段利强——誉峰变频器强哥凭借在变频器领域的卓越成就,荣膺第十六届电子商务十大牛商,携誉峰变频器品牌惊艳亮相,以十几年如一日的深耕与创新,书写着行业传奇。图 1:誉峰变频器强哥在牛商大会领奖现场,荣耀时刻定格牛商大会现场,誉峰变频器强哥接受了多家媒体的专访。面对镜头,他从容分享了自己在变频器行业二十年的奋斗历程与心路感悟。谈及全域营销战略的成功,誉峰变频器强
    电子与消费 2025-04-22 13:22 78浏览
  •   电磁兼容(EMC)故障诊断系统软件解析   北京华盛恒辉电磁兼容故障诊断系统软件是攻克电子设备电磁干扰难题的专业利器。在电子设备复杂度攀升、电磁兼容问题频发的背景下,该软件于研发、测试、生产全流程中占据关键地位。以下为其详细介绍:   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。   一、软件核心功能   干扰与敏感分析:深度剖析电磁干
    华盛恒辉l58ll334744 2025-04-22 14:53 64浏览
  •   北京华盛恒辉机场保障能力评估系统软件深度解析   在航空运输业快速发展的背景下,机场保障任务愈发复杂,传统人工评估方式已无法满足高效精准的管理需求。机场保障能力评估系统软件作为提升机场运行效率、保障飞行安全的关键工具,其重要性日益凸显。   应用案例   目前,已有多个机场保障能力评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润机场保障能力评估系统。这些成功案例为机场保障能力评估系统的推广和应用提供了有力支持。   一、系统功能模块   数据采集与整合模块  
    华盛恒辉l58ll334744 2025-04-22 10:28 81浏览
  • 引言:工业安全与智能化需求的双重驱动在工业安全、环境保护及家庭安防领域,气体泄漏引发的安全事故始终是重大隐患。随着传感器技术、物联网及语音交互的快速发展,气体检测报警器正朝着智能化、低成本、高可靠的方向演进。WT588F02B-8S语音芯片,以“离在线语音更换+多协议通信”为核心优势,为气体检测报警器提供了一套高效、灵活的低成本语音解决方案,助力开发者快速响应市场需求。产品功能与市场需求1. 核心功能:从监测到预警的全流程覆盖实时气体监测:支持一氧化碳、臭氧、硫化氢等多种气体浓度检测,精度可达p
    广州唯创电子 2025-04-22 09:14 65浏览
  • 据国际精益六西格玛研究所(ILSSI)成员大卫·哈钦斯(David Hutchins)的回忆,在“六西格玛”名称出现前,摩托罗拉组建了约100个质量改进团队,接受朱兰博士制作的16盘录像带培训,名为《朱兰论质量改进》(Juran on Quality Improvement),为了推广这种严谨的分析方法(朱兰博士视频中的核心内容),摩托罗拉前首席执行官鲍勃·加尔文创造了“六西格玛”这一标签,用以表彰这种“最顶尖"的方法。大卫·哈钦斯(David Hutchins)是朱兰博士的好友,也为他的工作做
    优思学院 2025-04-22 12:03 66浏览
  •   北京华盛恒辉基于GIS的电磁态势可视化系统软件是将地理空间信息与电磁态势数据相结合,通过图形化手段直观展示电磁环境态势的系统。这类软件在军事、通信、无线电管理等领域具有广泛应用,能够辅助用户进行电磁频谱分析、干扰监测、态势研判和决策支持。以下是关于此类系统的详细介绍:   应用案例   目前,已有多个电磁态势可视化系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁态势可视化系统。这些成功案例为电磁态势可视化系统的推广和应用提供了有力支持。   一、系统功能   电磁
    华盛恒辉l58ll334744 2025-04-22 11:44 63浏览
  •   卫星通信效能评估系统平台全面解析   北京华盛恒辉卫星通信效能评估系统平台是衡量卫星通信系统性能、优化资源配置、保障通信服务质量的关键技术工具。随着卫星通信技术的快速发展,特别是低轨卫星星座、高通量卫星和软件定义卫星的广泛应用,效能评估系统平台的重要性日益凸显。以下从技术架构、评估指标、关键技术、应用场景及发展趋势五个维度进行全面解析。   应用案例   目前,已有多个卫星通信效能评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润卫星通信效能评估系统。这些成功案例为卫
    华盛恒辉l58ll334744 2025-04-22 16:34 53浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦