集成第三方LEC工具来做功能ECO

本文介绍了如何将第三方逻辑等价性检查(LEC)工具如SynopsysFormality的结果整合到GOFECO流程中,解决GOF在处理特定SystemVerilog语法和复杂结构时的难题,以及使用脚本将Formality的不等价报告转换为GOF所需的ECOpoints列表进行设计修复。

有时,读入第三方RTL与RTL的等价性检查结果来做ECO是一种非常方便的工作流程。用户做ECO修改RTL后,从RTL与RTL的LEC中可以直接看出设计的改动。第三方的LEC结果,比如Synopysys Formality的不等价报告,可以无缝衔接进GOF ECO的flow里。

另外,这个流程也解决了GOF自带的RTL LEC的问题,尤其是一些SystemVerilog的特殊用法,或者generate语句和复杂参数导致GOF在elab后的层次结构很难与用户网表(通常由Synopsys DC或者Cadence Genus生成)匹配的问题。

图片

从第三方工具中加载不等价的列表文件

GOF ECO能够读入并处理ECO points的列表。ECO points列表由类型(inst、port、pin等)和路径组成,一行一个,可以写多行。这个ECO points列表格式简单,也很容易手工整理和编写。当ECO改动不大时,手工写也是好的选择。

inst yak_zcvg_inst/skip_pix_reg
port te_coord[5]
inst yak_hah_inst/x_start_pa_reg_31_
inst yak_hah_inst/x_end_pa_reg_30_
inst yak_hah_inst/x_end_pa_reg_29_
inst yak_hah_inst/x_end_pa_reg_28_
inst yak_hah_inst/x_end_pa_reg_27_
inst yak_hah_inst/x_end_pa_reg_26_
pin yak_hah_inst/u_sync_cell/D

从第三方LEC工具生成ECO列表文件后,在GOF的fix_design() api里用-list_file选项读取。

Synpos

在数字设计中应用LEC(逻辑等价性检查)工具进行功能验证,是确保设计在经过综合、优化或工程变更后仍保持原有功能一致性的关键手段。该过程通常涉及两个设计版本的对比:一个是原始设计(Golden),另一个是修改后的设计(修订版)。通过形式验证技术,LEC工具能够判断这两个设计是否在布尔逻辑上完全等价[^1]。 ### 准备阶段 在执行LEC之前,需准备好以下三类文件: - **Golden设计**:通常是综合后的门级网表。 - **修订版设计**:可能是经过优化、ECO修改或物理实现后的设计。 - **约束文件**:包括时钟定义、复位信号、don't care状态设定等信息,用于指导工具正确建模设计行为[^1]。 此外,还需配置验证环境,例如设置匹配规则、指定忽略的模块或信号等,以确保工具能准确识别两个设计之间的对应关系。 ### 执行流程 使用如Synopsys Formality或Cadence Conformal等主流LEC工具时,基本流程如下: 1. **读取设计**:加载Golden和修订版设计,并指定其类型。 2. **设置建模选项**:根据优化动作调整建模参数,例如对于寄存器复制、合并、常值优化等情况,需启用`set_flatten_model`及相关选项以避免误判[^2]。 3. **建立映射关系**:手动或自动对齐两个设计中的端口、模块和信号名称。 4. **运行验证**:启动形式验证引擎,工具将基于布尔逻辑进行比对。 5. **分析结果**:查看报告中的不匹配项,分析原因并修正设计或约束条件。 ### 常见问题与处理 在实际应用中,可能遇到以下情况: - **信号未匹配**:由于命名差异或结构变化导致,可通过添加别名或调整映射策略解决。 - **DON'T CARE优化**:某些“无关紧要”的输入被优化为固定值,需在约束中明确指定这些信号的状态范围。 - **寄存器替换**:如将DFF替换为latch或插入clock gating cell,需启用对应的建模选项以支持此类变换[^2]。 - **冗余逻辑**:工具应能识别并跳过不影响输出的冗余部分。 ### 示例:Conformal LEC脚本片段 ```tcl # 设置Golden和修订版设计路径 set golden_netlist "golden.v" set revised_netlist "revised.v" # 读取设计 read_verilog -golden $golden_netlist read_verilog -revised $revised_netlist # 指定顶层模块 set_top_module golden top_module set_top_module revised top_module # 配置建模选项,应对寄存器优化 set_flatten_model -golden true set_flatten_model -revised true # 运行验证 run_verification # 输出结果报告 report_verification_status ``` 上述脚本展示了如何在Conformal中配置基础环境并执行验证任务。具体参数和命令可根据项目需求进一步定制。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值