Cdf and pcell. Init value and default value

B

bu-bu

Guest
Hello All,

I have a small question regarding CDF initialization.
I use CDF to have a nice interface for my pcell.

One of my parameter is described like:

cdfCreateParam( cdfId
?name "MyVar"
?prompt "My Variable description"
?defValue MyVarInit
?type "float"
?display "t"
?editable "t"

)

MyVarInit is setup in another file as MyVarInit = 2

In my pcell, i have:


x1 = -MyVar
y1 = -foo
x2 = MyVar
y2 = foo
dbCreateRect(... )

For MyVar >= MyVarInit, my pcell is ok, the rectangle is create as i
need.
if MyVar < MyVarInit, (for example MyVar = 0.5 ) the rectangle is not
created with the good values!

I don't really understand why.

could you explain me why i can not enter a value lower than the
defvalue please ? I would like to setup the default value for a
transistor as 2 for example, but of course, i need sometimes to have
lowest values...

Of course, i can setup the value to the minimum, and then user will
update himself, but it's not my aim!
(because value = 2 cover 90% of cases, and another value will cover
the missing 10%)

Please help me.

thanks and regards ,

bu.
 
Hi Bubu,

I don't understand any reason why you couldn't do this indeed. It's
very common to set up default values on Pcells which are bigger than
the minimum allowed by the process.
I don't see any reason that prevent you from doing this, execpt a
callback or something else you have set up in your code. I'm pretty
much sure there something wrong hidden in your code.
I have posted an example of Pcell + Cdf a little while back:
http://groups.google.com/group/comp.cad.cadence/browse_thread/thread/4791011ed9a6ff40/1d12829648321907
The def Values for W,L are respectively 2u,5u. If you instantiate the
Pcell with w=1u and l=2u, then there is nothing that would not let you
doing this. This would work as long as the dbCreateRect could draw the
rectangle.

Are there any details I might ignore and that make your problem
clearer for me ?

Best Regards,
Riad.
 
Hello Riad,

Thanks a lot for your answer.
actually, i just realized that i have the following error message:

*Error* eval: undefined function - cdfCreateBaseCellCDF

Maybe it's the root of my problem ?

My code is like this :


;; CDF starts here

LIBRARY = "MyLib"
CELL = "MyCell"


let( ( libId cellId cdfId )
unless( cellId = ddGetObj( LIBRARY CELL )
error( "Could not get cell %s." CELL )
) ;; unless

when( cdfId = cdfGetBaseCellCDF( cellId )
cdfDeleteCDF( cdfId )
) ;; when

cdfId = cdfCreateBaseCellCDF( cellId )

;; definition of parameters
cdfCreateParam( cdfId...


This pcell works fine in techno A, but not with another techno. So i
think my problem is linked to some Cadence setup (maybe some paths are
missing ?) I don't how to setup Cadence actually !

thanks a lot for your help.

regards,

bu.
 
Hi Bubu,

There is something definitely wrong with your cadence setup.
the cdfCreateBaseCellCDF is a built-in cadence that comes with the
cdf.cxt context file of the top of my head ...
The context file should be in your
$CDSHOME/tools.lnx86/dfII/etc/context/64bit/
$CDSHOME/tools.lnx86/dfII/etc/context/
Linux assumed in here.

Can you please do this check.
fire up a fresh icfb and type in the following in your CIW straight
away:
cdfDump("analogLib" "/tmp/vsin.cdf" ?cellName "vsin")

This should come with a message saying loading cdf.cxt.

Wrap up: you should check the cdf.cxt is correctly loaded into your
session. That's the only explanation I could find for the missing
cdfCreateBaseCellCDF function so far.

Regards,
Riad.
 
Hello Riad,

Indeed, it was a problem of setup. It was really strange, but i fixed
it.
Now, all is fine :)


Thanks a lot for your help !!!!


regards,

bubu.
 

Welcome to EDABoard.com

Sponsor

Back
Top