How do you make sense of all these layers in klayo...
# klayout
p
How do you make sense of all these layers in klayout? Like, if I open a GDS, how can I tell what the layers look like at a specific location? When there are 5 different colors overlaid on top of each other I really can't tell what is going on anymore.
a
1. How to make sense of the layers? Its hard to answer. We learned this in university. All the technologies are similar. And when you transition you just read the manual to understand the layer and their namings. Two groups exist: Metals, vias and second group: The back end layers. They contain the transistors, while metals and vias connect them. Metals can be viewed in the diagram: https://skywater-pdk.readthedocs.io/en/main/rules/assumptions.html#process-stack-diagram
p
yea I mean I understand the obvious ones you would expect to see in a diagram you linked, but that accounts for less than half of the layers I'm seeing. For example, I know what nwell is, but no clue about
prBoundary.boundary
a
To understand the Back end you need to understand how the transistor is produced by the foundry. You start with P substrate. In other words you have P everywhere. Then the deep nwell is formed, where Nwell is created inside the Psubstrate. Inside deep nwell you have another P substrate. The psubstrate is isolated from other substrates using the deep nwell. Inside this formed psubstrute you can create diffusions. Diff + nsdm = n diffusion. Diff + psdm = P diffusion. Nwells are just called nwells, everything that is not nwell is psubstrate
prBoundary stands for Place and route boundary. Its just "text" layer, that does not carry any meaning, but is used to show the analog designers where they can place transistors and metals. They perfectly encapsulate the area that you can use. If you place a transistor outside of prBoundary its just gonna overlap with Caravel wrapper's transistors/metals
p
yea this all makes sense
and is useful and helpful
what I'm kinda struggling with now is if you're looking at a stack of 5 layers, it becomes hard to tell which ones they are
m
@Pepijn de Vos You might also look at https://skywater-pdk.readthedocs.io/en/main/rules/layers.html#gds-layers-information for explanation of the layers you see in klayout. I generally only have 2 or 3 metal layers + vias visible at a time because it can be confusing.
p
ah yea I just figured you can hide empty layers, which helps a lot... and then yea.. probably only select a few to look at.
So.. if you want to figure out which layer something is on... you just toggle the layers until you find the right one?
m
In klayout, move the mouse over a layer until it's hilighted. The layer and cell name will show on the bottom of the screen.
p
For a pcell it just shows the instance for me. It's also kinda tricky to get the right layer when they are right on top of each other
m
Double click on the colored box to the left of the layer name to toggle visibilty.
p
yea so you just peel it like a banana 😅
m
You can go the other way. Right click on the layer menu -> Hide all and then double click the layers you want visible.
h
@Pepijn de Vos In a nutshell: • There are MANY layers in an IC layout tool: Some directly define a mask structure (like
metal1
that draws where metal will be later), and quite a few are helper layers used by the one or the other tool e.g. help to recognise resistors during layout extraction. And still others are helper layers for mask generation, like suppressing automatic fill in a certain area, for force a fill in an area. Since there are many mask layers (30–70), plus many helper layers, this gives a lot of different layers. •
magic
is still more special: Instead of creating a device by an intersetion of two or more other layers, it uses yet a another layer in this intersection area (uff). • Since there are now so many layers, layout engineers switch visibility A LOT, means turning on or off the layers that are needed. Since you switch visibility constantly, people are definining macros for that, so that you have that at a fingerstroke. • I have defined a few helpful ones here: https://github.com/hpretl/iic-osic/blob/main/iic-magic-bindkeys • Define your own macros in magic similar to this:
macro 0 "see no * ; see locali ; see mcon"
Makes sense?
p
yea thanks it's quite overwhelming but yea turning a lot off helps and knowing that most of them are... not the ones you should be drawing in