EDAboard.com | EDAboard.eu | EDAboard.de | EDAboard.co.uk | RTV forum PL | NewsGroups PL

pcell with multiple layouts

elektroda.net NewsGroups Forum Index - Cadence - pcell with multiple layouts

Goto page Previous  1, 2

rick
Guest

Sat Jul 10, 2010 12:04 am   



On Jul 9, 11:01 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
Quote:
rick wrote, on 07/08/10 05:36:



On Jul 7, 8:46 pm, I-F AB<cop0...@gmail.com>  wrote:
Hi,

Just need to backtrace a bit:

Just to confirm, use the CDF equation to select whether a parameter is
visible...is that correct?

That is what I meant in the example:
   cdfCreateParam( cdfId
     ?name           "switchPcell"
     ?prompt         "Pcell switch"
     ?defValue       "layoutA"
     ?choices        '("layoutA" "layoutB")
     ?type             "cyclic"
     ?callback       "MOS_CB( 'switchPC )"
     ?display        "t"
   )
   cdfCreateParam( cdfId
     ?name           "Width_layoutA"
      ......
      ?display   " equal(cdfgData->switchPcell->value \"layoutA\") "
      ......
   )
   cdfCreateParam( cdfId
     ?name           "Width_layoutB"
      ......
      ?display   " equal(cdfgData->switchPcell->value \"layoutB\") "
      ......
   )

So, the parameter  "TapSpa_layoutA" will be on display only if
'switchPcell' parameter is selected as "layoutA"&  hence similarly for
"layoutB".
No reloading of the form, just control when the parameters are
displayed.
But it means you have to have separate 'Width' parameters for each
cell configuration.

I'm not sure if you can do something like:
   cdfCreateParam( cdfId
     ?name       "Width"
     ?prompt     if(  cdfgData->switchPcell->value == "layoutA"
                      then    "Width for configuration layoutA"
                      else    "Width for configuration layoutB" )
      ......          if( .... then ... else ...)
      ?display   "t"
      ......
   )
But I think this is possible too.

One other issue, I need to reset one of the
parameters back to the default value.
Would the same methodology work?

 From the code above, there is a callback procedure being invoked:
MOS_CB( 'switchPC )
Set defaults for any parameter you want whenever the 'switchPcell'
parameter to switch is thrown.
I can't see any of your code so I don't know where the problem is.

Best regards,
I-FAB

I dont see my last post so let me recap.  The original problem was
that I had the CDF's in the
pcell code so it was stepping on itself.  the form mostly updates
except for the fields that need
to be reset to defaults.   I am hardcoding it in the routine call but
would prefer to set it with a callback
but cant get that to work.  There is a solution on sourcelink that I
used a model/guide but it has no
effect.

Rick

Rick,

Just got to catching up with comp.cad.cadence after some days of being too busy
to look at it.

The fundamental problem is that everyone is running blind here - we cannot know
what you're actually doing because you're not giving enough details.

It all sounds rather dubious to me, and dangerous. Pcells should not interfere
with CDF parameters (although they can read pcells). Also, you should read my
solution "The Dangers of CDF callbacks" just to make sure you know what you're
getting yourself into.

You reference a solution on sourcelink but don't say what it is.

Please help us to help you - withholding information is not going to get you an
answer, and tests the patience of those who want to help...

Regards,

Andrew.

Ive had some problems with posts saying that they were successful but
never showed up.
I know you are not a fan of callbacks and Im only using them because
the PDK uses them heavily
so it a requirement.

Im creating a high level pcell that instantiates PDK pcells and the
layout has 2 different implementations
which with restrictions depending on the layout that is selected. I
created both versions independently
for the initial build then was the last step was to combine them into
on cell. The CDF's were stepping on
each other which caused some pretty strange behavior.

The good news is that I got it working finally but still have one
issue left, the libinit.il file for Assura to run.
This pcell is currently comprised of 3 different files layoutA,
layoutb, and the code to combine which might
not be the best way but there will be other cells and it would be nice
to be able to keep them separate.
I was able to band-aid it by cat'ing all off the files together into
one file and use that in the libInit. What is
the syntax to load multiple files.

Thanks to all!

Rick

Andrew Beckett
Guest

Mon Jul 12, 2010 5:58 pm   



rick wrote, on 07/09/10 22:04:
Quote:
On Jul 9, 11:01 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
rick wrote, on 07/08/10 05:36:



On Jul 7, 8:46 pm, I-F AB<cop0...@gmail.com> wrote:
Hi,

Just need to backtrace a bit:

Just to confirm, use the CDF equation to select whether a parameter is
visible...is that correct?

That is what I meant in the example:
cdfCreateParam( cdfId
?name "switchPcell"
?prompt "Pcell switch"
?defValue "layoutA"
?choices '("layoutA" "layoutB")
?type "cyclic"
?callback "MOS_CB( 'switchPC )"
?display "t"
)
cdfCreateParam( cdfId
?name "Width_layoutA"
......
?display " equal(cdfgData->switchPcell->value \"layoutA\") "
......
)
cdfCreateParam( cdfId
?name "Width_layoutB"
......
?display " equal(cdfgData->switchPcell->value \"layoutB\") "
......
)

So, the parameter "TapSpa_layoutA" will be on display only if
'switchPcell' parameter is selected as "layoutA"& hence similarly for
"layoutB".
No reloading of the form, just control when the parameters are
displayed.
But it means you have to have separate 'Width' parameters for each
cell configuration.

I'm not sure if you can do something like:
cdfCreateParam( cdfId
?name "Width"
?prompt if( cdfgData->switchPcell->value == "layoutA"
then "Width for configuration layoutA"
else "Width for configuration layoutB" )
...... if( .... then ... else ...)
?display "t"
......
)
But I think this is possible too.

One other issue, I need to reset one of the
parameters back to the default value.
Would the same methodology work?

From the code above, there is a callback procedure being invoked:
MOS_CB( 'switchPC )
Set defaults for any parameter you want whenever the 'switchPcell'
parameter to switch is thrown.
I can't see any of your code so I don't know where the problem is.

Best regards,
I-FAB

I dont see my last post so let me recap. The original problem was
that I had the CDF's in the
pcell code so it was stepping on itself. the form mostly updates
except for the fields that need
to be reset to defaults. I am hardcoding it in the routine call but
would prefer to set it with a callback
but cant get that to work. There is a solution on sourcelink that I
used a model/guide but it has no
effect.

Rick

Rick,

Just got to catching up with comp.cad.cadence after some days of being too busy
to look at it.

The fundamental problem is that everyone is running blind here - we cannot know
what you're actually doing because you're not giving enough details.

It all sounds rather dubious to me, and dangerous. Pcells should not interfere
with CDF parameters (although they can read pcells). Also, you should read my
solution "The Dangers of CDF callbacks" just to make sure you know what you're
getting yourself into.

You reference a solution on sourcelink but don't say what it is.

Please help us to help you - withholding information is not going to get you an
answer, and tests the patience of those who want to help...

Regards,

Andrew.

Ive had some problems with posts saying that they were successful but
never showed up.
I know you are not a fan of callbacks and Im only using them because
the PDK uses them heavily
so it a requirement.

Im creating a high level pcell that instantiates PDK pcells and the
layout has 2 different implementations
which with restrictions depending on the layout that is selected. I
created both versions independently
for the initial build then was the last step was to combine them into
on cell. The CDF's were stepping on
each other which caused some pretty strange behavior.

The good news is that I got it working finally but still have one
issue left, the libinit.il file for Assura to run.
This pcell is currently comprised of 3 different files layoutA,
layoutb, and the code to combine which might
not be the best way but there will be other cells and it would be nice
to be able to keep them separate.
I was able to band-aid it by cat'ing all off the files together into
one file and use that in the libInit. What is
the syntax to load multiple files.

Thanks to all!

Rick

load("file1.il")
load("file2.il")
load("file3.il")

(or loadi if your code has errors in it and you don't want to do the right thing
and fix the errors).

Isn't this obvious? I'm assuming there must be some complexity to your question
that I can't guess...

Perhaps there would be some benefit in attending a SKILL class?

Regards,

Andrew.

Goto page Previous  1, 2

elektroda.net NewsGroups Forum Index - Cadence - pcell with multiple layouts

Arabic versionBulgarian versionCatalan versionCzech versionDanish versionGerman versionGreek versionEnglish versionSpanish versionFinnish versionFrench versionHindi versionCroatian versionIndonesian versionItalian versionHebrew versionJapanese versionKorean versionLithuanian versionLatvian versionDutch versionNorwegian versionPolish versionPortuguese versionRomanian versionRussian versionSlovak versionSlovenian versionSerbian versionSwedish versionTagalog versionUkrainian versionVietnamese versionChinese version
RTV map EDAboard.com map News map EDAboard.eu map EDAboard.de map EDAboard.co.uk map Opony