一、Conformal EC介绍
Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。
分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。
二、Conformal EC的使用流程图
Conformal的使用流程图如下:
在setup模式下,读入库、golden设计、有修改的设计,并指定一些option。在lec模式下,进行映射和对比设计,确认两个设计是否逻辑等价。
三、Conformal EC的两种命令模式
Conformal分为vpx模式和tcl模式。默认是vpx模式。可以通过命令tclmode和vpxmode进行切换。
四、自动产生Conformal EC的do文件
do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。
> write_hdl -lec > top_syn.v
> write_do_lec -revised_design top_syn.v > lec.do
然后,直接,
lec -do lec.do
五、GUI窗口
对于简单的设计,通过GUI来做LEC也是可以的。可以把GUI上操作的命令保存成do文件,下次直接命令行跑。
六、Mapping Manager窗口
当LEC结果有一些异常时,我们需要进一步debug。如果发现是映射错误,就需要在Mapping Manager里手动调整mapping关系,再重跑。
七、Smart LEC是什么
Smart LEC是一种更智能的Conformal工具版本。支持自动选择高质量的模块来做层次化对比,来减小复杂度。支持分布式层次化对比,充分利用计算资源来并行跑。
八、一个网表对网表的参考脚本
// lec -xl -do lec_syn2pr.do
// read lib
read library -Both -Replace -sensitive -Statetable -Liberty /xxx/WORST.lib -nooptimize
// read golden design (Reference)
read design /xxx/top_syn.v -Verilog -Golden -sensitive -continuousassignment Bidirectional -nokeep_unreach -nosupply
// read revised design (Implement)
read design /xxx/top_apr.v -Verilog -Revised -sensitive -continuousassignment Bidirectional -nokeep_unreach -nosupply
// settings
set analyze option -auto
set flatten model -gated_clock
// match and verify
set system mode lec
add compared points -all
compare
exit -force
运行Conformal LEC的命令:
lec -xl -do lec_syn2pr.do
参考文档:
Conformal EC UG
Genus to Conformal UG