If I place my Pcell by hand the cell works fine. Sizes are what I expect them to be.
Gen from source gives me small values that can't be laid out.
The symbol though has "90n M" which doesn't match other tech files I've worked with "90n"
I've tried two different ways of doing the CDF:
cdfCreateParam( cdfId ?name "w" ?prompt "width" ?defValue "0.2n" ?parseAsNumber "yes" ?type "string" ?units "lengthMetric" )
I've also tried the following default value:
?defValue sprintf(nil "%g" minMosWidth)
Neither gives me the desired result. Any thoughts?
My guess is that your schematic has the components instantiated with values such as "0.2u" - and so with the scaling lines in the pcell, it correctly transforms it into layout units (microns).
When you're instantiating in the layout directly, and picking the value as the default (0.2), then that scaling would result in a transistor width of 20cm - which is a tad large.
So it's a units mismatch problem - you need to decide what values you want the user to enter, and then be consistent about it. Maybe your pcell default and CDF default should be "0.2u" and then you will need the scaling in the pcell to convert into microns since the layout will be drawn in microns.
A bit of a guess because obviously I can't see everything...