Is pPar works for all CDF parameters? I need to pass intiger numbers (like no. of fingers) from top level to bottem level in schematic. But when I enter pPar(NF) through edit object properties options then it doesn't work's. How can I get this intiger values to bottom level? Let me know if any other set up is needed.
What means "it doesn't work" ?
Error/warning message? is it ignored ?
What is realy written in that field ?
If I'm not wrong the syntax is pPar("NF") , not pPar(NF) .
Also the parameter si cASeSenSiTIVe .
In reply to marcelpreda:
I have been getting below warning message. I have NF(no. of fingers) cdf parameter which is an intiger type. When I enter pPar(NF) as default value through TOOLS~>cdf~>edit then below warning message which I am getting. I have pmos width and length cdf parameters (which is type of srtings) which works well in passing parameters. I dont know much about this cdf parameters. Let me know is there any set up is needed?
*ERROR* The 'Default Value' is not specified for the following component parameter(s): NF
'Default Value' is a mandatory field for component parameters.
These component parameters will not be added to the CDF.
*WARNING* Effective CDF parameter 'NF', cell 'nmos_5V', library 'DIG_CELLS',
'defValue' field must be specified.
In reply to Sarvani:
Hi SarvanipPar works as follows:a. You have a schematic cellview ABC that contains an instance I1.b. In the properties form of the instance, you added the following expression for "nf" parameter:pPar("nf")c. Now instantiate cell ABC in another schematic (e.g. I2) and add a property named "nf" on this instance. Give it a value (e.g. 123). The value will now be passed down from I2 to I1.Please search for "pPar" in $CDSHOME/doc/anasimhelp/anasimhelp.pdf. When in doubt, you can always search for the word through all the pdf manuals in the documentation directory.Best regardsQuek
In reply to Quek:
Thank you Quek. It works now. Thank you very much for your support. I have converted type from int to string for cdf parameter and then selected YES options for parse as Cell and parse as Number. Now pPar("NF") passes to bottom level.
Hi SarvaniThat's great. Thanks for the follow-up. : )Best regardsQuek
How can I pass parameter from top to hierarchy level schematic for int type cdf parameters in hierarchy level (Passing of cdf parameters from top level to bottom level exists if cdf parameter in bottom level is type of string.)? Previously I had converted type from int to string for cdf parameter and then selected YES options for parse as Cell and parse as Number. Then it passes. But now I don't want to convert cdf parameter of cell from int to string( because it is the cell which is given by foundary.) . Let me know is there any solution for this.
You can only use pPar() on CDF parameters of type string, which have parseAsCEL set to Yes. You can only use expressions (including operators and math functions) on string fields, and if they are going to be interpreted, it has to know it should be treated as a component expression language (a.k.a. Analog Expression Language) expression. If the CDF parameter is defined as an int or a float, you can only set the value to be an int or a float; an expression would not be an int or a float and so it cannot be used.
It's quite unusual for foundry PDKs to be using int or float parameters - it sounds as if something is incorrect with the setup and it hasn't been designed with ADE in mind.
In reply to Andrew Beckett:
Yes that's correct. Then I should copy this cell to another library and convert this type from int to string. But I don't want any error's in simulation for schematic. Is there any error's we got if we change PDK cell from one library to another library? Any precautions needed? I should make sure these cells are same as PDK cells.
It's hard to tell - it rather depends on whether the PDK has other things that depend on the parameters being integers. For example, there may be pcells which require the parameters to be integer (although that generally works OK because the parameters get cast to the right type), but I wouldn't like to say what the impact would be.
There may be CDF callbacks which also assume the values are a specific type.
Best would be to contact the foundry and ask them.You could also talk to customer support to discuss this in more detail with information as to which foundry you're using.
Thank you Andrew. We will discuss on this topic on tomorrow. I need to go now. Good night :-)
I have created a inverter which passes paramers to bottom level. Then in top level schematic I have placed two inverters which has different widths (values entered in top level symbols). When I run LVS for a layout which has both inverters. Then I got some error's in LVS error report( looks like parameter errors, nets and devices). I mean is we cann't use two inverters in TOP level with different widths?
If things are set up correctly, this should work. It's been possible to do this for many years (I was using such parameterization 20 years ago as a designer). I suggest you contact customer support so that we can look at your data to find out what's gone wrong- some PDKs don't allow parameterization because they use CDF callbacks to generate derived parameters, and those derived parameters might be used for LVS - but I can't tell that without seeing the data (personally I think this is a badly designed PDK if this is the case, but it happens).
I think that you have to do some other basic tests:
- first use same w everywhere without using pPar() , be sure you got LVS clean
- when LVS is clean try to play with pPar()
If the problem is still there, then it will be much easy for the others to find the problem if you can provide the "some error's in LVS" and at least the netlist generated from schematic.
Hi Andrew and Marcel. I had tested for improper cell (PMOS_5V). If I change the cell to NMOS then it works good. Looks like problem is solved. Thank you for your support.
I will be grateful if someone can help me with a pcell simple issue. I have a lyout cell that instanciate a 1 parameter pcell. I want to move that parameter up in the hierarchy so that when I instanciate the cell and set the parameter, the pcell inside is updated accordingly. The same as the pPar("variable") in schematic.