how to access mosfet sizes (w/l/m) in ADE calculator express

Y

yvk

Guest
its not OP, MP but an instance parameter, how to use in calculator expressions?

thanks,
yvk
 
On 11/16/12 10:10, yvk wrote:
its not OP, MP but an instance parameter, how to use in calculator expressions?

thanks,
yvk
You can use pv("/M1" "w" ?result 'instance) (for example).

Andrew.
 
thanks Andrew, I did figure it out from the result browser.

Is there any way to get to know the number of instances used in the schematic inside a calculator expression?

ex: I have 5 mosfet parallel instances used with Mxx<0:4> when we need to write an expression for current or gm or gds of this effective device of 5X size, how to do it ?

I dont like to put an expr like 5*IDC(/Mxx<0>/D) myself , but am looking for something like IDC(/Mxx/D) which should be able to sum all the currents Mxx<0> to Mxx<4> and evaluate it.

Thanks,
vamshi



On Tuesday, November 20, 2012 9:14:23 PM UTC+5:30, Andrew Beckett wrote:
On 11/16/12 10:10, yvk wrote:

its not OP, MP but an instance parameter, how to use in calculator expressions?



thanks,

yvk





You can use pv("/M1" "w" ?result 'instance) (for example).



Andrew.
 
On 11/23/12 09:30, yvk wrote:
thanks Andrew, I did figure it out from the result browser.

Is there any way to get to know the number of instances used in the
schematic inside a calculator expression?

ex: I have 5 mosfet parallel instances used with Mxx<0:4> when we
need
to write an expression for current or gm or gds of this effective device
of 5X size, how to do it ?
I dont like to put an expr like 5*IDC(/Mxx<0>/D) myself , but am
looking for something like IDC(/Mxx/D) which should be able to sum all
the currents Mxx<0> to Mxx<4> and evaluate it.
Thanks,
vamshi
That's why you should use m-factor rather than iterated instances.
Iterated instances are more expensive for the simulator (although
APS makes some attempt to combine them in parallel if you're doing that).

There's nothing built-in which would combine the results for all the
iterated instances - the challenge would be that depending on what you
are looking at (e.g. a current, a voltage, a resistance, a capacitance),
it would need to know how to combine (if at all) all the discrete results.

To find out how many there are in an iterated instance, you'd probably
have to either use dbGetNameNumBit - e.g. dbGetNameNumBit("M2<6:0>") =>
7 - or do some pattern matching on outputs() to find matching signal
names and then count them up.

Regards,

Andrew.
 
Hi Andrew,

Looks like mfactor is exactly same as iterated instances( is it so??)
for a mosfet I can do it, but for a user created symbol how do I do it ?

btw dbGetNameNumBit(" ") doesnt seem to work with hierarchies,
ex: dbGetNameNumBit("/X1/M2<6:0>") fails to evaluate.


Thanks,
yvkrishna



On Friday, January 4, 2013 1:13:17 PM UTC+5:30, Andrew Beckett wrote:
On 11/23/12 09:30, yvk wrote:

thanks Andrew, I did figure it out from the result browser.



Is there any way to get to know the number of instances used in the

schematic inside a calculator expression?



ex: I have 5 mosfet parallel instances used with Mxx<0:4> when we

need

to write an expression for current or gm or gds of this effective device

of 5X size, how to do it ?



I dont like to put an expr like 5*IDC(/Mxx<0>/D) myself , but am

looking for something like IDC(/Mxx/D) which should be able to sum all

the currents Mxx<0> to Mxx<4> and evaluate it.



Thanks,

vamshi







That's why you should use m-factor rather than iterated instances.

Iterated instances are more expensive for the simulator (although

APS makes some attempt to combine them in parallel if you're doing that).



There's nothing built-in which would combine the results for all the

iterated instances - the challenge would be that depending on what you

are looking at (e.g. a current, a voltage, a resistance, a capacitance),

it would need to know how to combine (if at all) all the discrete results.



To find out how many there are in an iterated instance, you'd probably

have to either use dbGetNameNumBit - e.g. dbGetNameNumBit("M2<6:0>") =

7 - or do some pattern matching on outputs() to find matching signal

names and then count them up.



Regards,



Andrew.
 
I could add a property mfactor to my symbol as an instance parameter by editing the CDF, it works correctly in simulations also.
But with layout when doing a generate from source schematic, I still get one instance only even with mfactor >1.

ofcourse the VXL tool needs to get this info that it has to instantiate multiple instances of the subciruits layout. Just wondering how to do this.

Thanks,
yvkrishna


On Sunday, January 6, 2013 1:03:35 PM UTC+5:30, yvk wrote:
Hi Andrew,



Looks like mfactor is exactly same as iterated instances( is it so??)

for a mosfet I can do it, but for a user created symbol how do I do it ?



btw dbGetNameNumBit(" ") doesnt seem to work with hierarchies,

ex: dbGetNameNumBit("/X1/M2<6:0>") fails to evaluate.





Thanks,

yvkrishna







On Friday, January 4, 2013 1:13:17 PM UTC+5:30, Andrew Beckett wrote:

On 11/23/12 09:30, yvk wrote:



thanks Andrew, I did figure it out from the result browser.







Is there any way to get to know the number of instances used in the



schematic inside a calculator expression?







ex: I have 5 mosfet parallel instances used with Mxx<0:4> when we



need



to write an expression for current or gm or gds of this effective device



of 5X size, how to do it ?







I dont like to put an expr like 5*IDC(/Mxx<0>/D) myself , but am



looking for something like IDC(/Mxx/D) which should be able to sum all



the currents Mxx<0> to Mxx<4> and evaluate it.







Thanks,



vamshi















That's why you should use m-factor rather than iterated instances.



Iterated instances are more expensive for the simulator (although



APS makes some attempt to combine them in parallel if you're doing that).







There's nothing built-in which would combine the results for all the



iterated instances - the challenge would be that depending on what you



are looking at (e.g. a current, a voltage, a resistance, a capacitance),



it would need to know how to combine (if at all) all the discrete results.







To find out how many there are in an iterated instance, you'd probably



have to either use dbGetNameNumBit - e.g. dbGetNameNumBit("M2<6:0>") =



7 - or do some pattern matching on outputs() to find matching signal



names and then count them up.







Regards,







Andrew.
 
On 01/06/13 07:33, yvk wrote:
Hi Andrew,

Looks like mfactor is exactly same as iterated instances( is it so??)
for a mosfet I can do it, but for a user created symbol how do I do it ?

btw dbGetNameNumBit(" ") doesnt seem to work with hierarchies,
ex: dbGetNameNumBit("/X1/M2<6:0>") fails to evaluate.


Thanks,
yvkrishna
mfactor is NOT exactly the same as iterated instances. It's handled more
efficiently by the simulator, as it multiplies up factors inside the
device equations, but represents the device as a single component in the
simulator - and so has much fewer equations to solve.

dbGetNameNumBit is not supposed to work on a hierarchical path (only the
tail part).

Regards,

Andrew.
 
On 01/08/13 05:00, yvk wrote:
I could add a property mfactor to my symbol as an instance parameter
by editing the CDF, it works correctly in simulations also.
But with layout when doing a generate from source schematic, I still
get one instance only even with mfactor >1.

ofcourse the VXL tool needs to get this info that it has to
instantiate multiple instances of the subciruits layout. Just wondering
how to do this.

Thanks,
yvkrishna
Is this multiple instances of a pre-laid block, or one that will be
flattened by VXL?

Andrew.
 
Its a prelaid block (vxl compatible) which has some mos pcells connected and is not flattened.

Not sure if I got your question correctly.

Thanks,
yvk


On Monday, January 14, 2013 8:10:10 PM UTC+5:30, Andrew Beckett wrote:
On 01/08/13 05:00, yvk wrote:

I could add a property mfactor to my symbol as an instance parameter

by editing the CDF, it works correctly in simulations also.

But with layout when doing a generate from source schematic, I still

get one instance only even with mfactor >1.



ofcourse the VXL tool needs to get this info that it has to

instantiate multiple instances of the subciruits layout. Just wondering

how to do this.



Thanks,

yvkrishna







Is this multiple instances of a pre-laid block, or one that will be

flattened by VXL?



Andrew.
 
On 01/15/13 00:09, yvk wrote:
Its a prelaid block (vxl compatible) which has some mos pcells connected and is not flattened.

Not sure if I got your question correctly.

Thanks,
yvk
In that case, I'd have expected the m-factor to expand to multiple
instances for you. If it doesn't, please contact
http://support.cadence.com (I didn't have a chance to test it myself).

Andrew.
 
Thanks Andrew, I just got the same solution and it works.

-yvk


On Tuesday, January 15, 2013 8:46:18 PM UTC+5:30, Andrew Beckett wrote:
On 01/15/13 00:09, yvk wrote:

Its a prelaid block (vxl compatible) which has some mos pcells connected and is not flattened.



Not sure if I got your question correctly.



Thanks,

yvk







In that case, I'd have expected the m-factor to expand to multiple

instances for you. If it doesn't, please contact

http://support.cadence.com (I didn't have a chance to test it myself).



Andrew.
 
Andrew,

Just another related query.

The m-factor on symbols works perfectly in sims.

However the DCOP annotated on the devices inside this subcircuit seems inconsistent, because the mosfet inside is of unit size but the OP annotated is of the device with size m-factor times the unit device.

I can understand the numbers but the OP seen on schematic is not consistent.
Looks like some scaling with m-factor needs to be done here.


Thanks,
yvk

On Tuesday, January 15, 2013 8:46:18 PM UTC+5:30, Andrew Beckett wrote:

On 01/15/13 00:09, yvk wrote:

Its a prelaid block (vxl compatible) which has some mos pcells connected and is not flattened.



Not sure if I got your question correctly.



Thanks,

yvk







In that case, I'd have expected the m-factor to expand to multiple

instances for you. If it doesn't, please contact

http://support.cadence.com (I didn't have a chance to test it myself).



Andrew.
 
Hi Andrew,

I have noticed that this m-factor is not active in monte carlo sims.

I tested Ixx<31:0> versus Ixx(with mfac=32) this works fine in DC, but for monte carlo the standard dev is exactly scaled by sqrt(32).

How do I make monte sims understand this parameter?

Thanks,
yvk



On Tuesday, January 15, 2013 8:46:18 PM UTC+5:30, Andrew Beckett wrote:
On 01/15/13 00:09, yvk wrote:

Its a prelaid block (vxl compatible) which has some mos pcells connected and is not flattened.



Not sure if I got your question correctly.



Thanks,

yvk







In that case, I'd have expected the m-factor to expand to multiple

instances for you. If it doesn't, please contact

http://support.cadence.com (I didn't have a chance to test it myself).



Andrew.
 
On 01/27/13 17:55, yvk wrote:
Hi Andrew,

I have noticed that this m-factor is not active in monte carlo sims.

I tested Ixx<31:0> versus Ixx(with mfac=32) this works fine in DC,
but
for monte carlo the standard dev is exactly scaled by sqrt(32).

How do I make monte sims understand this parameter?

Thanks,
yvk
There's a solution on Cadence Online Support which describes how to do
this - hopefully you can find it (I'm a bit pushed for time right now).

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top