Generate current and voltage ratings in schematics

S

sesi

Guest
Hello all,

Is it possible through skill to generate labels of current id
and voltages vds and vgs on corresponding nets for every transistor.
Here the values of id , vgs ,vds are obtained from simulation , from
Analog Design Environment window Results->Annotate->DC operating
points , would display all the important parameters for every
transistor, is it possible to get these values using skill and attach
them as labels on the nets.
Or else is there any other procedure to generate this labels of id ,
vds, vgs on the nets ,so that it is easy for layout engg to take
decisions based on current and voltage ratings.

Regards,
Sesi.
 
Hello all,

I could use the line to display the dc operating points
sevAnnotateResults(sevSession(getCurrentWindow()) 'dcOpPoints)



But how can I obtain the values id , vgs individually for a
particular transistor.

For ex
To get the length of a transistor I can use the following

cv=dbOpenCellViewByType(libname cellname viewname)



cv~>instances~>l



would display the individual length of every transistor and I can pass
this values(length) to the function dbcreatelabel() to create the
label.



In the similar way how can I get id and vgs of all the transistors and
pass the values(id , vgs) to the function dbcreatelabel() to create
the label.



By using the line sevAnnotateResults(sevSession(getCurrentWindow())
'dcOpPoints) wouldnot succeed always because if the schematic is
copied to a new


cell view and if there is no simulation run on that copied schematic
above line sevAnnotateResults(sevSession(getCurrentWindow())
'dcOpPoints) would display an error as no simulation database
available for the schematic.

So I want to copy this values as text labels so that they remain
permanent.

Regards,
Sesi.
 
sesi wrote, on 02/23/10 08:19:
Hello all,

I could extract the parameter vaues using the "pv" command
after doing the openResults() and selectResults()
the following line pv("/MN8" "vth" ?result "dcOpInfo-info")
is giving me the vth value of the transistor MN8 .
Now here how can I generate a label for all the transistors of this
vth value ,
For this I think I need to get
Name of all the transistors ex "/MN8" ( which can be passed as a
parameter to the "pv" command)
Coordinates of the transistor so that it can be passed as an parameter
to the dbCreatelabel function to place the label
How can I generate the "vth" value labels on all the
transistors.
Regards,
Sesi.
Use outputs(?result "dcOpInfo-info") or outputs(?result 'dcOp) to get the names
of all the devices which have op point info available.

Having got the name, you could parse it and then use dbFindAnyInstByName to find
it. Presumably you'll only want top level devices - not sure what you would
expect to do if there's hierarchy.

A better way (if using IC61X) would be to create constraints on the design
(which are stored in a "constraints" view) so that the person doing the layout
with Layout XL will be able to be guided by that. It really depends on how
advanced you're trying to be. I'd think that adding loads of labels will be
rather irritating - it might be simpler to just annotate the results and then
print them out?

Regards,

Andrew.
 
Hello all,

I could extract the parameter vaues using the "pv" command
after doing the openResults() and selectResults()
the following line pv("/MN8" "vth" ?result "dcOpInfo-info")
is giving me the vth value of the transistor MN8 .
Now here how can I generate a label for all the transistors of this
vth value ,
For this I think I need to get
Name of all the transistors ex "/MN8" ( which can be passed as a
parameter to the "pv" command)
Coordinates of the transistor so that it can be passed as an parameter
to the dbCreatelabel function to place the label
How can I generate the "vth" value labels on all the
transistors.
Regards,
Sesi.
 
Hello all,

I could extract the parameter vaues using the "pv" command
after doing the openResults() and selectResults()
the following line pv("/MN8" "vth" ?result "dcOpInfo-info")
is giving me the vth value of the transistor MN8 .
Now here how can I generate a label for all the transistors of this
vth value ,
For this I think I need to get
Name of all the transistors ex "/MN8" ( which can be passed as a
parameter to the "pv" command)
Coordinates of the transistor so that it can be passed as an parameter
to the dbCreatelabel function to place the label
How can I generate the "vth" value labels on all the
transistors.
Regards,
Sesi.
 
Hi Andrew,

Thanks for your reply,
Yes Andrew I am thinking of the same thing that adding loads of labels
will be rather irritating.
For this I have got another idea
Instead of creating labels , I think it would be best to add a user
defined property ex “vth“ and pass the value obtained from pv command
to this propery.
And I can make the display on or off (by assigning a bindkey) when I
require , and another advantage is the user defined properties
persists even when the schematic is copied to a new cellview.
Andrew when ever a schematic is passed to a layout Engg it will be
copied to a new cellview and the layout engg cannot perform the action
Annotate->Dcoperatingpoints as there is no simulation database
available for that particular new schematic cell view.
And still we haven't upgraded to IC61X.
Assuming that I am working on a flat database that is there is no
hierarchy.
Andrew can you please suggest me how can I create a userdefined
property for a instance (here transistor ) using skill ex :vth and
pass the vth value obtained from pv command to this property.
I can do this graphically - on the properties form of the instance
Add -> Name : vth , Type : String , value : "obtained from the pv
command"

Regards,
Sesi.
 
Hi Andrew,

I could create a userdefined property using dbCreateProp function
Now to create the property for all the transistors I am using
something like

cv = dbOpenCellViewByType("Tutorial" "Bandgap" "schematic")
foreach(inst cv~>instances
if(pv(inst~>name "vth")
then
dbCreateProp(inst "vth8" "float" pv(inst~>name "vth"))
else
printf("Instance inst~>name doesnot have dc-information")
))

Here I am getting the transistor name using inst~>name
To skip any instance which doesnot have dc info I am using if
statement , even though properties are created I am getting error
information for the instances which
doesnot have the dc information.
As you said that we can get the names using outputs(?result "dcOpInfo-
info") but I am not able to create property by getting the names using
the line outputs(?result "dcOpInfo-info").
How can I do this.
Even I got an input from my collegue that userdefined properties set
to a symbol will be updated to all the instances in the schematic ,
but I am not able to achieve this , is it True.


Regards,
Sesi.
 
On Feb 23, 2:40 pm, sesi <sesikala...@gmail.com> wrote:
Hi Andrew,

Thanks for your reply,
Yes Andrew I am thinking of the same thing that adding loads of labels
will be rather irritating.
For this I have got another idea
Instead of creating labels , I think it would be best to add a user
defined property ex “vth“ and pass the value obtained from pv command
to this propery.
And I can make the display on or off (by assigning a bindkey) when I
require , and another advantage is the user defined properties
persists even when the schematic is copied to a new cellview.
Andrew when ever a schematic is passed to a layout Engg it will be
copied to a new cellview and the layout engg cannot perform the action
Annotate->Dcoperatingpoints as there is no simulation database
available for that particular new schematic cell view.
And still we haven't upgraded to IC61X.
Assuming that I am working on a flat database that is there is no
hierarchy.
Andrew can you please suggest me how can I create a userdefined
property for a instance (here transistor ) using skill ex :vth and
pass the vth value obtained from pv command to this property.
I can do this graphically - on the properties form of the instance
Add -> Name : vth , Type : String , value : "obtained from the pv
command"

Regards,
Sesi.
 
Hi Andrew,
Messages are not updated that's why I had posted several dummy copies,
still not updated I think website is slow

Regards,
Sesi.
 
Hi Sesi,

For me, your methodology looks very much like 'Reinventing the wheel'.
I don't like it to be entirely frank.
If you want your layout engineers to care about simulation data, then
why not provide them with the data itself ? It is very easy to create
and ADE state that you store as a cellView and provide your layout
guys with a 3-lines instruction set on how to run the sim. The Id,
vth ... information is something you can have on your symbols if you
set the right label information in your CDFs.

Otherwise, I would rather go for a very few labels on the nets, just
the main ones.

To check the compliance of your design with these electrical rules,
you may use Spectre's Assert statements and run an Electromigration
tool like cadence's Voltage Storm. You may look at Apache as well
(http://www.apache-da.com/).

Regards,
Riad.
 

Welcome to EDABoard.com

Sponsor

Back
Top