Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] how to add macro module to DC synthesizer?

Status
Not open for further replies.

sicheng163

Member level 2
Joined
Oct 19, 2009
Messages
45
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Location
Chengdu,China
Activity points
1,567
hi,

I need to design a digital-analog mixed chip,
so when synthesized by DC, I have to add the analog macro .db file,
but I don't know how to get the .db source file, .lib file,
should I write the .lib file myself or there's another way?

thanks!!!
 

rca

Advanced Member level 4
Joined
May 20, 2010
Messages
1,485
Helped
355
Reputation
710
Reaction score
328
Trophy points
1,363
Location
Marin
Activity points
8,522
yes, you need to write your liberty file for your analog macro, and used the library compiler to generate the .db file.
just take care to add the define the correct capacitance, transition, and any timing arc...
 

sicheng163

Member level 2
Joined
Oct 19, 2009
Messages
45
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Location
Chengdu,China
Activity points
1,567
yes, you need to write your liberty file for your analog macro, and used the library compiler to generate the .db file.
just take care to add the define the correct capacitance, transition, and any timing arc...

thanks,
but, it's really hard for to write .lib file,
is there any help file?
 

lostinxlation

Advanced Member level 3
Joined
Aug 19, 2010
Messages
701
Helped
197
Reputation
394
Reaction score
184
Trophy points
1,323
Location
San Jose area
Activity points
5,051
thanks,
but, it's really hard for to write .lib file,
is there any help file?

You can copy the header part from other .lib file and write a perl or python script to generate pin part. You may need to throw some timing number if the timing is important for your analog-digital interface. Once you generate .lib file, read it into DC and dump out .db file(this loses the functionality of the pins, but since it's an analog block, I guess pin functions aren't important).
 
Last edited:

kornukhin

Full Member level 3
Joined
Sep 2, 2010
Messages
165
Helped
47
Reputation
94
Reaction score
46
Trophy points
1,308
Location
Zelenograd
Activity points
2,169
You can also write black-box for you analog block with only directions of pins. Set dont_touch attribute on it while synthesize.
It's easy to implement if you don't care about "the correct capacitance, transition, and any timing arc..."
 

newmedia

Member level 2
Joined
Nov 24, 2008
Messages
53
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,286
Location
USA
Activity points
1,693
I think kornukhin's method will be the easiest way, if you are not caring about the timing.

But my question is why you are trying to synthesize the circuit with the hard macro? Is it absolutely necessary?
 

lostinxlation

Advanced Member level 3
Joined
Aug 19, 2010
Messages
701
Helped
197
Reputation
394
Reaction score
184
Trophy points
1,323
Location
San Jose area
Activity points
5,051
But my question is why you are trying to synthesize the circuit with the hard macro? Is it absolutely necessary?
That's pretty common. For example, you have USB tranceivers in the deisgn you synthesize, or memories or other large macros when you go with hier design. .lib is required because unresolved references are always a trouble. Sometimes, DC looks at the pin directions of macros before doing something and if it can't figure out the pin directions, it could mess up the work. One of the experiences I had was that because of the unknown pin directions of black boxes, scan insertion got messed up.
 
Last edited:

sicheng163

Member level 2
Joined
Oct 19, 2009
Messages
45
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Location
Chengdu,China
Activity points
1,567
That's pretty common. For example, you have USB tranceivers in the deisgn you synthesize, or memories or other large macros when you go with hier design. .lib is required because unresolved references are always a trouble. Sometimes, DC looks at the pin directions of macros before doing something and if it can't figure out the pin directions, it could mess up the work. One of the experiences I had was that because of the unknown pin directions of black boxes, scan insertion got messed up.

Thanks for sharing, I know what to do now, just keep patience to complete my .lib files.
 

rca

Advanced Member level 4
Joined
May 20, 2010
Messages
1,485
Helped
355
Reputation
710
Reaction score
328
Trophy points
1,363
Location
Marin
Activity points
8,522
you should make a script to automaticly generate the script based on your RTL code top.
We defined some key words to add in your rtl code top module, like LIB_AREA, LIB_CAP... to automaticly generate a liberty with user define cap/trans...
But if you have some timing arc to be added, you need to have a better view.
What we do, we used a spice model to generate automaticly the timing arc with some script to start/extract the timing in spice simulation.
good luck :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top