Layers again, but different

Continuing to edit my ultra long layer table, I find that now
when I have a smaller portion of that whole-wafer test mask
excerpted, only the layers within that GDS file are made
"valid". This makes me think that I don't understand what
"valid" means.

But the issue at hand is, at this time with this layout, I want
to modify the appearance of some of those layers now that
I'm looking at their "close relatives" who are present, but
because they are deemed "invalid" I am inhibited from
editing their properties.

"Make valid" does not make these layers valid. Only placing
an object on layer makes them "valid". I guess some logic like

actually_valid = is_present AND layer_set_valid

at play. But if I can place a box on a layer then I guess "not valid"
doesn't really mean "for editing operations on objects".

I don't see a reason offhand why a layer can be loaded, defined
and shown but its display and GDS assignment properties can't
be touched. Is there one?

Comments

  • @dick_freebird This is strange. "valid layers" does not refer to validity of a layer - this is only the ability to select shapes from such layers. It means no layer is selected for editing the properties.

    I think this is what happens: you have a .lyp file with many layers, but not all of them are actually present in the database. Reason is that in GDS a layer does not exist if there is nothing on it. So there is a layer entry and you can select it to create polygons, boxes etc. But only by then it will be created.

    If you use "Edit/Layer/Edit Layer Specification", this function will edit the layer properties from the layer inside the database. This is basically a "layer move". As a side effect the layer entry will be redirected to that new layer. If there is no such layer inside the database yet, you cannot edit the properties or you cannot move it.

    To redirect the layer entry to another database layer, use "Select Source" from the layer's context menu. Here you specify where to take the data for drawing from. This does not move the layer's shapes, but changes the origin. This operation is always available, not only if the layer is present in the database.

    Another way to mitigate this issue is to define a layer import table which will always create the listed layers, even if they are empty. But that is more tedious than to use "Select Source".

    Matthias

  • Thanks Matthias. I will try out the import table.

    My goal here is, like every PDK, to get a complete
    and stable layer set and behaviors (not layers
    that change with every layout I open, even in
    the same Technology, because of content detail).

    I presume that all of the import functions (File Open,
    Import Other Files To Current, Pull In Other Layout -
    though I don't know what that one does - and any
    other such, "play nice" with the import table? And
    can I cause the import table to default to mine,
    as a setup thing (maybe part of Technology setup)?
    I see the Technology Manager under "GDS2+OASIS"
    has an area where I can "Load File" but nothing that
    indicates an ability to invoke a saved file on startup
    (unlike, say, how the .lyp can be set to autoload).

    Would you have handy any simple examples (the
    Assistant shows me an article that has an awful
    lot of funky-character options) for a map table?
    I would prefer to go "one layer/purpose pair at
    a time, however many lines that takes" as this
    is pretty old fab and CAD technology at the
    source.

    Now as I wade around in the Technology Manager
    sub-panes I see one thing whose naming indicates
    it might be responsible for some of the layer
    duplicating weirdness when reading in a new
    file (like Import Other...):

  • edited July 2023

    Hi @dick_freebird,

    I prefer the technology manager because it also allows attaching DRC decks, libraries and other things to a layout via the technology.

    In my case, I have created a technology called "sky130A". This will create a folder in my KLayout home directory in the "tech" section, i.e. "~/.klayout/tech/sky130A/". The technology information (that is the thing you're editing in the technology manager) is kept there in "sky130A.lyt".

    I now can put my favorite layer properties file into the same folder. In that case it is "sky130A.lyp". Here is my setup:

    It is not required to specify a path for the .lyp file - that way it is always looked relative to "sky130A.lyt" which makes the technology more portable.

    I checked "Automatically add other layers". This means, unknown layers are added to the layer list with some default style. So you can see layers that are not meant to be in the file. You can turn this option off if you like to see only the layers in your list. In that case, you will not be able to see or edit them (still they are loaded and saved).

    Now in KLayout I can select Sky130A as the "default technology":

    When I create a new file, this technology will be attached to it.

    When I load a file from "File open", it will also use this technology. There is no technology information inside GDS, so KLayout uses the default one.

    If you load from "Recent Files", KLayout uses the technology you had used at the time you loaded the specific file.

    You can change the technology for the current file by selecting the new technology in the tool bar and clicking on the tool bar button. The technology used for the current file is shown at the bottom, not in the tool bar:

    You can also change the technology in "File/Layout Properties". Changing a technology will enable the new .lyp file (if there is one) among other things.

    After all, a technology is a "package" if done properly (i.e. without external references) and being a single directory means you can share it with others easily by duplicating the folder.

    A last thing to say about layer properties files is that if you have multiple layouts in one panel, it is not easy to decide what to do.

    "Import Other Layout" should simply use the layer table from the current layout, but I think this function will create new entries for unknown layers.

    "Pull in Other Layout" will also import the layer table from the source panel, but maybe it is not clearly indicated what layout the layer comes from. There is a simple solution for this: Use this option

    It will display the layout index (@1, @2 etc.) in the layer table along with the layer name. In my case it looks slightly ugly as the layer description for Sky130A already contains the layer and datatype info and that information is replicated.

    Matthias

Sign In or Register to comment.