[Magic-dev] Re: Magic lambda to microns mapping
R. Timothy Edwards
tim.edwards at multigig.com
Thu Jan 26 13:43:52 EST 2006
Dear Frank,
> I tried to understand the relationship between the basic lambda unit
> and tech microns in lef file. I read the tech tutorial. However, it
> seems that I can't get it right. I would appreciate very much
> your help on the following.
> 1. How do I specify absolute number of microns to a magic lambda unit
> in tech file?
> 2. How do I translate a unit in magic (lambda) to/from microns in lef?
> (I may be able to get this one if I know answer to #1).
This is always a tricky one. "Lambda" traditionally meant the
minimum process feature size, usually 1/2 the length of a minimum
size poly gate, and therefore (confusingly), half of whatever the
process claims to be (e.g., "AMI 0.5" has a lambda of 0.25um), but
possibly rounded up it the process minimum gate length is an odd
number (e.g., "AMI 0.3 has a lambda of 0.3um in at least one tech
file). It's a fake number for "scalable CMOS", one that (hopefully)
conveniently works out such that all major features can be described
in multiple lambda units---minimum gate length 2 lambda, contact size
4 lambda, minimum metal1 route width 3 lambda, etc. Usually vendor-
specified minimum dimensions are rounded up, so scalability comes at
some performance price.
Because the idea is that lambda units are "scalable" (although as far
as I am aware, no actual process in recorded history was truly scalable),
they are dimensionless. In magic, the thing that maps lambda units to
a physical dimension is the "cifoutput" section. Each "cifoutput"
section may specify a different scaling from lambda to physical output
dimensions.
Thus when you type "box" at the magic command prompt and get an answer
in microns, this depends on the "cif ostyle" currently specified.
The dimension that you are looking for, then is the "scalefactor" value
that is the first entry for a style in the "cifoutput" section of the magic
technology file. This value is equal to centimicrons per lambda
(although keywords "nanometers" and "angstroms" can be used to mean
that the scale value is nanometers per lambda or angstroms per lambda,
respectively). Note that older technology files give two values on
the "scalefactor" line; only the first value is relevant (the second
value should be the least common denominator of all distances declared
in the cifoutput style, which is computable, so magic-7.3 computes it,
so you don't have to).
LEF files declare all units in physical dimensions. When I implemented
the "lef" section in the magic techfile, I decided I'd had it with too
many different scalefactors in the file, so I let stand the idea that
the "cif ostyle" determines the lambda-to-microns scaling, and all else
follows. So, yes, the answer to question #1 effectively determines the
answer to question #2.
Finally, please note that the tutorials and maintainer's manual #2
(technology file manual) still cover only magic versions up to 6.5
and not everything stated is true for magic-7.3. In particular, a
number of severe restrictions on the value of the scalefactor no
longer apply. The scalefactor can be anything down to 1 angstrom
(not that you would want to) and still produce correct output for
CIF, GDS, and (I think) LEF and DEF.
I hope you don't mind my posting this answer to the magic-dev mailing
list, so it can end up in the email archives, since this is a question
fundamental to the working of magic (and CIF, GDS, LEF, and DEF) that
leaves a lot of people confused.
Regards,
Tim
+--------------------------------+-------------------------------------+
| Dr. R. Timothy Edwards (Tim) | email: tim.edwards at multigig.com |
| MultiGiG, Inc. | web: http://www.multigig.com |
| 100 Enterprise Way, Suite A-3 | phone: (831) 621-3283 |
| Scotts Valley, CA 95066 | cell: (240) 401-0616 |
+--------------------------------+-------------------------------------+
More information about the magic-dev
mailing list