您的位置:首页 > 数码 >

硬核产品 “芯天成”形式验证平台EsseFormal系列-当前最新

来源: 凤凰网 时间: 2023-03-02 13:17:05

引言


【资料图】

模型检查也称作属性检查,是一种基于设计属性的形式验证方法:通过在设计中使用 SVA(SystemVerilog Assertion)描述待验证的属性,并验证设计是否满足规范。属性验证工具一般涉及三种形式的属性:

1、断言属性Assertion:用于检查设计的行为是否符合规范

2、约束属性Assumption:用于约束设计行为

3、覆盖率属性Cover:用于监视预期事件是否发生

本期我们将了解芯天成EsseFormal形式验证平台的EsseFPV工具,包括其主要功能、优势及应用。

产品简介

芯天成EsseFPV 工具使用形式化技术验证 RTL 是否符合设计规范,为用户提供快速的错误检测以及预期设计行为的端到端的验证。

EsseFPV不需要搭建测试平台,可在仿真之前就能实现验证,适合设计早期的 bug 追踪。同时,EsseFPV支持断言属性、约束属性、覆盖率属性的验证,可在设计中更快地发现bug并提供反例。此外,EsseFPV通过端到端的验证可确保设计功能的高正确率。

产品优势

1、可定制化的属性验证服务

2、支持多种验证引擎

3、支持在TCL脚本中对属性是否执行、是否禁用进行控制

4、支持在TCL 脚本中为 RTL 设计添加属性:可添加断言属性、约束属性或覆盖率属性

5、支持通过命令行控制验证属性开始执行的时间,并支持跨越周期跳跃执行属性验证

6、可快速定位设计bug

7、支持使用波形调试结果

产品应用

交通灯案例——检查设计行为的断言

交通灯设计作为数字系统设计的入门案例,其包含时序信息和逻辑信息,该案例有助于我们更好地理解EsseFPV的基本原理,理解 EsseFPV 工具的使用方式。

一个基本的交通灯设计主要包含以下要求:

红绿黄三种灯色的出现需要满足规定的顺序,

即绿灯后为黄灯,黄灯后为红灯,

红灯后为绿灯。

三种灯色之间需要间隔一定的时间。

按照以上要求,工程师将设计出RTL代码:

部分交通灯RTL代码

我们可以看到设计工程师将RTL 设计的断言内容(蓝色标注)采用直接嵌入的方式放置在设计当中,该断言用于检测灯色的顺序,即要求黄灯倒计时结束后,需要亮红灯。由于该断言采取的是 A |=>B 的形式,即包含先行算子,因此我们需要开启EsseFPV的空成功检查功能(check vacuous),排除设计假性通过的可能。

验证断言的结果

验证结果为vacuous(空成功),表示先行算子状态始终为假(0),即当灯为黄灯时,剩余时间不可能为 0 或者时当剩余时间为 0 时,灯不可能为黄灯,这明显出现了时序性错误。此时工程师需要在原有RTL代码上进行对剩余时间Counter项的修改,然后再次使用EsseFPV进行验证:

第二次验证断言的结果

第二次结果为 falsified,说明RTL设计功能跟预期不符。EsseFPV工具在遇到 falsified 时,会将反例写入生成的 testbench 文件,并生成对应的 vcd 文件和波形图(如下),便于工程师调试设计代码。

除了检查设计行为的断言,EsseFPV还可以约束形式化验证环境的假设以及监视预期事件的覆盖属性。

目前我们已经详细介绍了芯天成EsseFormal平台的三款工具,分别是EsseFCET、EsseFCEC、EsseFPV。最近,芯天成形式验证平台又结硕果,国微芯研发团队推出了EsseCC等工具,可用于信号的连通性检查和特定功能的验证。让我们期待新工具的正式发布。

标签: 属性 rtl essefpv 黄灯 工具 代码 覆盖率 工程师 交通灯 平台