Cadence Conformal ECO flow - library domains issue

Status
Not open for further replies.

ivb1991

Junior Member level 1
Joined
Jan 23, 2014
Messages
18
Helped
2
Reputation
4
Reaction score
2
Trophy points
3
Location
Moscow, Russia
Visit site
Activity points
107
Hi all,

I'm trying to implement automatic ECO for large SoC design using Conformal ECO pre-mask flow.
I've successfully created patches by ANALYZE ECO command, but some of this patches contains unmapped logic primitives(and, nor, xor,...) and "assign" statements.
To resolve this I use OPTIMIZE_PATCH command, which invokes Encounter RTL compiler to map primitives on library cells.
But there is a caveat - the design contains few library domains, i.e. one part of the design for example synthesized on type "A" libraries, and other part on type "B" libraries.
As a result, a problem arises if the ECO affect both parts of the design, because OPTIMIZE PATCH command doesn't have any options concerning library domains.
If I specify both types of libraries in -LIBRARY option of OPTIMIZE PATCH command, all patches will be synthesized on that library cells which specified on first place.
But it is incorrect, because I need patches belonging to different parts of the design were synthesized on the corresponding libraries.

So far the only solution that I see is to patch design sequentially, first one part, then another, in different sessions of Conformal. But this is very inconvenient, I want to properly patch the entire design using a single button click))
I also tried to use -POSTLIBSCRIPT option of OPTIMIZE PATCH command, which allow to run script after reading libraries. In that script a put "create_library_domain" and "set_attribute library" commands of rc, but it doesn't works because this commands must be used before reading libraries.

Maybe someone has an idea how to implement ECO with different library domains in single flow?

PS Sorry for my English)
 

So the revised netlist has right mixed lib type for each fixing spot? What is the special reason for having specific lib type in each location?
Conformal always optimizea all patches at the same time.
 
I think you can try alternate tool, like Gates On the Fly from Nandigits. I saw the tool has patches derived directly from revised netlist, hence the lib types are all preserved.
 
Hi ivb1991, Gates On the Fly can handle your case. The patches keep the library cells from revised netlist (reference netlist in GOF)
You can use this script example

# eco.pl
read_library("art.90nm.lib");
read_design("-ref", "reference.gv"); # Resynthesized netlist
read_design("-imp", "implementation.gv"); # netlist under ECO
fix_modules("mod1", "mod2"); # all modules that have been modified
set_top("topmod");
write_verilog("eco_verilog.v");

And run "gof -run eco.pl"

Let me know you need help.

www.nandigits.com
NanDigits Design Automation

- - - Updated - - -

One modification in the script, you should add all the library files in read_library
# eco.pl
read_library("art.90nm.hvt.lib", "arg.90nm.svt.lib");
read_design("-ref", "reference.gv"); # Resynthesized netlist
read_design("-imp", "implementation.gv"); # netlist under ECO
fix_modules("mod1", "mod2"); # all modules that have been modified
set_top("topmod");
write_verilog("eco_verilog.v");
 
I think you can try alternate tool, like Gates On the Fly from Nandigits. I saw the tool has patches derived directly from revised netlist, hence the lib types are all preserved.

Hi ivb1991, Gates On the Fly can handle your case. The patches keep the library cells from revised netlist (reference netlist in GOF)
You can use this script example

Thanks for replies!

Yes, it seems that Conformal ECO has obvious lacks, which are:
1. Patches generated by "analyze eco" in general case could contain unmapped primitives and assigns.
2. "optimize patch" command maps all patches simultaneously with a general list of libraries.

Well, I'll check the proposed GOF tool)
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…