Cdf and pcell. Init value and default value

Discussion in 'Cadence' started by bu-bu, Oct 27, 2008.

  1. bu-bu

    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
    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-bu, Oct 27, 2008
    1. Advertisements

  2. bu-bu

    Riad KACED Guest

    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:
    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

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

    Best Regards,
    Riad KACED, Oct 29, 2008
    1. Advertisements

  3. bu-bu

    bu-bu Guest

    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.


    bu-bu, Oct 30, 2008
  4. bu-bu

    Riad KACED Guest

    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
    Linux assumed in here.

    Can you please do this check.
    fire up a fresh icfb and type in the following in your CIW straight
    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.

    Riad KACED, Oct 30, 2008
  5. bu-bu

    bu-bu Guest

    Hello Riad,

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

    Thanks a lot for your help !!!!


    bu-bu, Nov 5, 2008
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.