NanDigits中国

推荐参考流程

一、LEC Flow

1.1、Netlist vs Netlist LEC Flow

# filename: goflec.pl
# run: gof -run goflec.pl

use strict;

set_log_file("goflec.log");

# read libraries
read_library("stdcell.lib");
read_library("sram.lib");
read_library("analog.lib");

# read ref. netlist
read_design("-ref", "top_syn.v");

# read imp. netlist
read_design("-imp", "top_pr.v");

# set top module
set_top("top_module_name");

# bypass test mode if exists
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);

run_lec();

二、ECO Flow

2.1、PreMask ECO Flow

# filename: gofeco.pl
# run: gof -run gofeco.pl

use strict;

set_log_file("gofeco_premask.log");

# read libraries
read_library("stdcell.lib");
read_library("sram.lib");
read_library("analog.lib");

# read ref. netlist
read_design("-ref", "top_syn.v");

# read imp. netlist
read_design("-imp", "top_pr.v");

# set top module
set_top("top_module_name");

# bypass test mode if exists
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);

# eco
fix_design();

# report and write result
report_eco();
write_verilog("top_pr_eco.v");

2.2、PostMask ECO Flow

# filename: gofeco.pl
# run: gof -run gofeco.pl

use strict;

set_log_file("gofeco_postmask.log");

# read libraries
read_library("stdcell.lib");
read_library("sram.lib");
read_library("analog.lib");

# read ref. netlist
read_design("-ref", "top_syn.v");

# read imp. netlist
read_design("-imp", "top_pr.v");

# set top module
set_top("top_module_name");

# bypass test mode if exists
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);

# premask eco
fix_design();
report_eco();

# postmask eco
read_def("top.def");
get_spare_cells("spr_1/spr_gate*");
map_spare_cells();
report_eco();

# report and write result
write_verilog("top_pr_eco.v");

三、Debug Flow

3.1、单网表Debug Flow

# filename: gofdebug.pl
# run: gof -run gofdebug.pl

use strict;

set_log_file("gofdebug.log");

# read libraries
read_library("stdcell.lib");
read_library("sram.lib");
read_library("analog.lib");

# read netlist
read_design("top_netlist.v");

# set top module
set_top("top_module_name");

start_gui();

3.2、多网表Debug Flow(LEC或者ECO Fail Debug)

# filename: gofdebug.pl
# run: gof -run gofdebug.pl

use strict;

set_log_file("gofdebug.log");

# read libraries
read_library("stdcell.lib");
read_library("sram.lib");
read_library("analog.lib");

# read ref. netlist
read_design("-ref", "top_syn.v");

# read imp. netlist
read_design("-imp", "top_pr.v");

# set top module
set_top("top_module_name");

# bypass test mode if exists
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);

run_lec();
start_gui();

四、生成Formality指导文件Flow

在ECO脚本或者LEC脚本的最后,加上write_compare_pointswrite_formality_help_filesAPI。

# ...
run_lec();

write_compare_points("gof_compare_points.rpt");
write_formality_help_files("fm_20240103");

运行后,在目录下生成fm_20240103_config.tcl,在formality signoff LEC脚本match命令之前加上source -echo -verbose fm_20240103_config.tcl,例如:

read_db ...

read_verilog -r -05 { resyn.v }
set_top r:/WORK/top

read_verilog -i -05 { eco.v }
set_top i:/WORK/top

# bypass dft

# source help file from gof
source -echo -verbose fm_20240103.config.tcl

match
verify
更多文档:文档目录


微信公众号

LinkedIn

https://www.linkedin.com/company/nandigits-design-automation
Nandigits.com 美国官网 | Nandigits.cn 中国官网
© 2024 Nandigits Design Automation. 版权所有。