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

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

有时,读入第三方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选项读取。

Synposys Formality里,在verify之后用下面的命令来dump不等价的报告文件。

verify
report_failing_points > formality_non_eq.report

用GOF ECO的脚本把Formality的报告文件转成我们需要的ECO points列表文件格式。

下面是转换和后续ECO的GOF脚本示例:

use strict;
my $list_cont = "";
open(FIN, "formality_non_eq.report");
while(<FIN>){
  if(m/Ref\s+(\w+)\s+r:\/\w+\/\w+\/(.+)/){
    my $fm_type = $1;
    my $point = $2;
    my $gof_type = "inst";
    if($fm_type =~ m/Pin/){
      $gof_type = "pin";
    }elsif($fm_type =~ m/Port/){
      $gof_type = "port";
    }else{
      # For instance type
      $point =~ s/\[/_/g; # Mostly abc_reg[0] has name changed to abc_reg_0_ in the netlist
      $point =~ s/\]/_/g;
    }
    $list_cont .= "$gof_type $point\n";
  }
}
close(FIN);
open(FOUT, ">eco_list.txt");
print FOUT $list_cont;
setup_eco("eco_list_file"); # Setup ECO name
set_log_file("eco_list_file.log");
read_library("tsmc.5nm.lib");# Read in standard library
read_design("-ref", "reference.gv");# Read in Reference Netlist
read_design("-imp", "implementation.gv");# Read in Implementation Netlist Which is under ECO
set_top("SOC_TOP");
set_pin_constant("test_mode", 0);
set_pin_constant("scan_en", 0);
set_ignore_output("test_so*");
fix_design("-list_file", "eco_list.txt"); # -list_file option to read in the ECO list file with the ECO points
report_eco();
write_verilog("eco_verilog.v");
exit;

来源: https://www.linkedin.com/pulse/integrating-third-party-lec-tool-outcome-functional-eco-heidi-zheng-tovpc

关于NanDigits Design Automation

NanDigits Design Automation于2007年成立,公司总部位于美国硅谷圣何塞(San Jose)。2016年10月在中国大陆成立销售和技术支持部门。我们是完整的芯片网表解决方案提供商,主要产品有网表功能ECO工具GOF ECO、逻辑等价性检查工具GOF LEC,网表调试工具GOF Debug、汽车电子功能安全验证的GOF Formal。到目前,我们已经帮助全球数十家芯片设计公司Tapeout超过100个项目。

图片

欢迎评估试用

中国大陆

技术支持:support@nandigits.cn

美国总部

技术支持:support@nandigits.com

欢迎联系评估和试用:https://nandigits.cn/license/getlic.php。

欢迎关注同名公众号“NanDigits”,完整的芯片网表解决方案提供商

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值