目录
1、hierachical comparision flow
一、形式验证
仿真验证:动态;需要输入;对比输出和预期是否一致
形式验证:静态;不需要输入和输出;比较结构是否相等
二、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:觉得有用就点个赞收藏吧