Hello everyone, I'm looking for guidance on the pr...
# magic
p
Hello everyone, I'm looking for guidance on the proper method to use "Read GDS" in Magic. I've been working with KLayout layouts with gf180, and I aim to import these layouts into Magic to extract parameters. However, I've encountered inconsistent results: some layouts are read without issues, while others present challenges. I'm uncertain about any distinctions between them or if there are preliminary steps I should take given that the designs originate from KLayout. I've attached images and corresponding files that illustrate the issue, The file "2PMOS2u.gds" is the one exhibiting the problem. Any insights would be greatly appreciated.
m
Looks like 2PMOS2u.gds has an empty label. In klayout, you can
Edit
->
Search and Replace
and set Object
text
In..
current cell
Layer <blank> Text
*
Delete any empty text that show up. Incidentally, even though your inverter layout will function as an inverter, it is probably not connected as you wish. If each mosfet finger is W=4 L=1, the equivalent device would be W=4, L=4. Also, netgen is not set up to reduce series mosfets, so your netlist will need to contain 4 devices in series for the pmos and the nmos.
👍 1
t
@Patricio Carrasco: Magic is designed for efficiency in extracting devices, and it builds its own derived layers to support that. Because of that, splitting a device (or a contact) across cells is basically forbidden, as it creates a problem for the extraction: A device cannot be split between two subcircuits in a netlist, so it should not be split between two subcells in a layout. The device on the end in your layout is split between the "pfet" cell and the top level (the source and drain are in the top level; the gate is in the subcell). It will read in correctly with the following script:
Copy code
gds flatglob pfet
gds read 2PMOS2u
load PMOS
The "gds flatglob" command options tells magic to flatten the "pfet" cell on read-in (the "glob" in "flatglob" is because you can use glob-style wildcarding in the cell names). The best approach is to make sure that all the information needed to uniquely identify a device (including implant layers, substrate/well, complete terminal geometry, and any device identifier layers) are all inside a single layout cell. The same goes for contacts: The contact cut and both metal layers above and below it should be in the same cell. The
gds flatten true
command option is a "quick & dirty" method that flattens any cell that has fewer than 10 shapes in it, which tends to fix issues with contact cuts being in their own subcells, which is common with many layout editors.
👍 2
p
@Mitch Bailey @Tim Edwards Thank you very much, I'm going to try what you tell me, thank you again