process independent netlisting from ADE

S

stroller

Guest
hi all,

i want to create my schematics in a process independent manner so i
can port easily.

i have alot of process information in a skill hashtable so that the
following evaluates

myHash["pmosMinWidth"] to a number

so i want to set the width "w" cdf on my analoglib to
myHash["pmosMinWidth"]

but when i try and netlist this using the ADE netlist create tool i
just get

w=myHash["pmosMinWidth"]


so in conclusion i can't get the netlist to interperate this string as
a function,

i think i need to be using some kind of AEL here (i have parseasCEL set
to yes on the master). i experimented with this but still wasn't able
to track it down.

anyone have some insight?

thx, stroller
 
On 30 Sep 2005 18:50:13 -0700, "stroller" <smcbutler@hotmail.com> wrote:

hi all,

i want to create my schematics in a process independent manner so i
can port easily.

i have alot of process information in a skill hashtable so that the
following evaluates

myHash["pmosMinWidth"] to a number

so i want to set the width "w" cdf on my analoglib to
myHash["pmosMinWidth"]

but when i try and netlist this using the ADE netlist create tool i
just get

w=myHash["pmosMinWidth"]


so in conclusion i can't get the netlist to interperate this string as
a function,

i think i need to be using some kind of AEL here (i have parseasCEL set
to yes on the master). i experimented with this but still wasn't able
to track it down.

anyone have some insight?

thx, stroller
It sounds as if you're trying to write your own AEL functions. AEL is not the
same as SKILL, and so doing what you're trying to do above is not possible - at
least not that way. Effectively you're trying to add to the set of AEL functions
(like pPar(), iPar()) - but this can't be done.

What you could do is write a custom netlist procedure, or even perhaps overload
the default spectre netlisting procedure, so that you interpret any expressions
before passing them on. It's not going to be that easy though...
The documentation on this is in:

<instdir>/doc/skartistref/skartistref.pdf

Regards,

Andrew.
 
i often hear of people writing their own netlisters instead of using
the cadence provided one, are there any examples of the code out there?
is it a "huge" job or a medium sized one? are there other benefits to
doing this beyond handling the skill variable issue i included in the
orginal post? i'd be interested in hearing from other folks on this.

anyway, thx for the info Andy.
 
Stroller,
We write our own spectre netlisters. Especially useful for analog-Lib
like elements that you have conceived within your own company that has
a few more advantages etc..

But the framework for writing one as Andrew points out is pretty
intense.
You may find these docs from sourcelink very helpful,

OSS ref - Open Simulation System reference.
Specificaly, Customizing the SE(simulation environment) - chapter 3
Customizing HNL(Hierarchical netlister) - Chapter 5
And an application note named: Sample Hierarchical Netlist Formatter.

Partha
 
thx for the info partha, i have had a look at these manuals.

i can't help but wonder though if this is overkill for my app. just to
reiterate, i want to pre-load in some design variables to the
simulation env and have these evaluated and netlisted by the default
tool.

know of any sev or ael tricks to do this?
 
hey, one more data point.

i created a bunch of design variables on a dummy scematic and assigned
the values. then i instanced this on my top level schematic and
netlisted and these vars were correctly netlisted out. this is an ok
workaround for me for now, so is there a way to take a dummy schem and
create the design vars programatically? i'm just restating my above
question i guess with the addition that i've tested this with a
hand-created dummy inst and the netlister works correctly. thx again.
 
You can probably do this?

Dump out the cdf's, using

cdfDump("analogLib" "/tmp/pmos.cdf" ?cellName "pmos" ?level 'base ?edit
t)

then insert your own cdfCallback procedure for the form field, which
does the function evaluation and return a number and then netlist?

Or condense the function to use primitive ael expressions allowed to
work for you?
(Refer the AEL manual)

YMMV
 
andy already said there weren't any ael expressions useful to us here,
i couldn't find any in the ael manual either..

i don't want to have to go back and keep resetting the cdf everytime i
port so the cdf option probably won't help.

thx though
 
stroller wrote:
hey, one more data point.

i created a bunch of design variables on a dummy scematic and assigned
the values. then i instanced this on my top level schematic and
netlisted and these vars were correctly netlisted out. this is an ok
workaround for me for now, so is there a way to take a dummy schem and
create the design vars programatically? i'm just restating my above
question i guess with the addition that i've tested this with a
hand-created dummy inst and the netlister works correctly. thx again.

design variables will show up in ADE, so that is not so nice to put there a
swarm of generic-to-tech mappings. Anyway, the ocean desVar() will do. You can
have the skill with all the desVar() commands loaded by a .cdsinit, or a libInit.il
 

Welcome to EDABoard.com

Sponsor

Back
Top