Synopsys公司的数字IC设计工具:形式验证工具(Formality)

文章介绍了形式验证中的Formality工具,用于静态比较设计的正确性。Formality包含参考设计和实现设计,通过逻辑锥和比较点进行分析,提供层次化和扁平化的比较方式。工作流程包括Guidance,Reference,Implementation,MATCH,VERIFY和DEBUG等步骤,主要用于检查综合后设计与原始RTL设计的功能等效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、形式验证

二、Formality工具

1、Formality工具构成

1.1 reference design

1.2 implementation design

1.3 containers

2、说明

三、logic cones和compare points

1、logic cones

2、compare points

四、comparison方式

1、hierachical comparision flow

2、flat comparison flow

五、Formality工作流程

1、Guidance

1.1 行为

1.2 文件

2、Reference

2.1 行为

2.2 文件

3、Implementation

3.1 行为

3.2 文件

4、Setup

5、MATCH

2.1 行为

2.2 结果

2.3 Unmapped Points分类

2.3.1 Unreachable Points

2.3.2 Extra points

2.3.3 Not-mapped points

6、VERIFY

7、DEBUG

六、参考


一、形式验证

仿真验证:动态;需要输入;对比输出和预期是否一致

形式验证:静态;不需要输入和输出;比较结构是否相等

二、Formality工具

1、Formality工具构成

1.1 reference design

golden

RTL(仿真验证过的,正确的)

1.2 implementation design

综合后的design(待检查的)

1.3 containers

designs和libraries

reference container被默认命名为“r”

implementation container被默认命名为“i”

2、说明

reference design是功能正确的

检查implementation design和reference design的功能是否等效

无需测试向量

三、logic cones和compare points

1、logic cones

驱动一个compare point的一个组合逻辑块

input:Registers, primary input ports, black box output pins

output:Registers, primary output ports, black box input pins

2、compare points

primary output ports

register or latch

input of a black box

formality打散设计为compare points,每个compare point含有自己的logic cone

四、comparison方式

1、hierachical comparision flow

golden或者revised中,有1个是RTL版本的话,适合hierachical

2、flat comparison flow

一般用于两个门级设计的比较

五、Formality工作流程

Formality有两种启动方式:

GUI界面启动命令:formality

命令行启动命令:fm_shell

1、Guidance

1.1 行为

选择DC在进行逻辑综合时产生的.svf文件,该文件记录了DC在逻辑综合时所做的一些优化

1.2 文件

.svf

2、Reference

2.1 行为

Read Design File;Read DB Libraries;Set Top Design

2.2 文件

RTL级的Verilog文件;.db文件

3、Implementation

3.1 行为

Read Design File;Read DB Libraries;Set Top Design

3.2 文件

DC综合导出的verilog网表文件.v;.db文件

4、Setup

5、MATCH

2.1 行为

检查reference design和Implemention design的比较点是否匹配

2.2 结果

Mapping 之后,配对且绑定成功的点被称作"Mapped Points"; 没有配对或绑定成功的点被称作 "Unmapped Points"。

2.3 Unmapped Points分类

2.3.1 Unreachable Points

这些points不会扇出到任何的primary output端口、也不会扇出到任何其他时序单元的输入、也不会扇出到任何black box 的输入。

默认情况下,LEC 不会对unreachable points 做map, 也不建议对unreachable points 做map。

2.3.2 Extra points

这些key poins 只存在于Golden 或Revised 其中之一,不会同时存在于两个设计中。它们可能是primary input, primary output, DFF, Latch。它们要么是被优化掉的冗余逻辑,要么是被增加的非功能ports。

类别及解决办法:

被误认为是Extra points:添加renaming rule。

2.3.3 Not-mapped points

由于各种原因,LEC 无法轻易在另一个design 中找到与这些key points 对应的点。这类key points 既可能在Golden 中也可能在Revised 中。

类别及解决办法:

被误认为是not-mapped points:添加renaming rule。

modeling option 设置不全,LEC 未对优化工具的优化行为对应建模,如优化动作:寄存器的复制及合并、被优化掉的常值寄存器、"don't care" 逻辑被优化为常值0/1、将寄存器替换成master-slave latches 、clock gating cell 的插入及复制、冗余寄存器的优化等。对于这类,需要用"set flatten model" 加对应的option 予以解决。

6、VERIFY

行为:检查每对compare points的一致性

7、DEBUG

六、参考

论形式验证 | KeyPoint Mapping status - 极术社区 - 连接开发者与智能计算生态 (aijishu.com)

                                                 PS:觉得有用就点个赞收藏吧 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值