<@U016EM8L91B> Hi Tim, What is the best way to des...
# magic
m
@User Hi Tim, What is the best way to design a complex layout using Magic? I mean if you want to design a complex (or even a simple) analog or digital cell, do you use the tkcon and write a script to generate what you want, or you paint everything manually, or…? I just figured out that painting is a daunting work so I’m wondering to know what professionals do.
m
I'm not Tim, but... Many cells and analog design are hand made. Generator programs for cells are also quite common and pretty good but they will usually be a slightly bit inferior in density compared to a hand cell. (maybe! it's debatable these days) You can also use the premade devices to speed up their creating. There's also a "wire" tool and a plow tool which are quite useful. Once you practice it is not as daunting as it seems.
👍 2
t
@User: Use the device generators in magic to create the complex devices. You can take a look at the "simple_por" in caravel (or "example_por" as I renamed it in the caravel analog user project example), which has a number of cascoded current mirrors at the top; in transistor-heavy layouts, its helpful to make arrays of devices so that they can be arranged rather like standard cells. Then you need to consider matching, and use interleaved devices or common-centroid arrangements where you need good matching, use a lot of dummy devices, and use lots of guard rings. If you want low noise, consider dropping everything in deep nwell structures.
👍 2
w
@User I wrote a number of TCL scripts (some generated by python) to do the initial placement of devices by calling the device generators. This makes it easier to keep everything aligned / reproducible
👍 1
Here is an example: https://github.com/westonb/open-pmic/blob/master/layout/folded_cascode_n_in/folded_cascode_n_in.tcl some of the code I copied from the device generator TCL files do so stuff a bit more advanced, like draw modified guard rings.
👍 1