Need help mapping fill shapes from LEF to GDS layers

edited February 20 in General

I'm getting the following messages

Warning: No mapping for layer 'met2', purpose 'FILL' - layer is ignored
Warning: No mapping for layer 'met3', purpose 'FILL' - layer is ignored
Warning: No mapping for layer 'met4', purpose 'FILL' - layer is ignored
Warning: No mapping for layer 'met5', purpose 'FILL' - layer is ignored

I am trying to figure out the right syntax to use in the lyt's

 <reader-options>
  <lefdef>
   <layer-map>

section. I tried

'met2.fill : 69/28'
'met2.fills : 69/28'
'met2.FILL : 69/28'
'met2.FILLS : 69/28'

but none worked. What is the right magic?

I can make a test case if needed but I'm hoping its obvious what I'm doing wrong.
Thanks!

Comments

  • This bit is supposed to follow "lyt's" above:

     <reader-options>
      <lefdef>
       <layer-map>
    
  • It looks like produce_fills & fills_datatype are the controls I need. The message could give more guidance.

  • Hi @mliberty,

    I suggest that maybe you use a .map file. That is much easier to use than the layer map specification inside the .lyt file. The original idea was to supply some pattern-based layer generation with additional translation, but I guess I messed it up. It is definitely not good for easy authoring.

    To use the map file feature, place a ".map" file next to the ".lyt" file (in my case "lefdef.map") listing the layer/purpose to layer/datatype mappings, like the example from here: https://github.com/KLayout/klayout/blob/master/testdata/lefdef/mapfile/all.map.

    Then use a .lyt specification of that form:

      <lefdef>
       ...
       <map-file>lefdef.map</map-file>
       ...
      </lefdef>
    

    without a path, the file is looked up relative to the technology file.

    Here is a brief description taken from the buddy tool's help text:

              Using a map file is an alternative way to specify layer mapping. With
              a layer mapping file, the individual target layers need to specified 
              individually for different layer/purpose combinations.
    
              The mapping file is one layer mapping entry per line. Each line is a 
              layer name, followed by a list of purposes (VIA, PIN ...) and a layer
              and datatype number. In addition, 'DIEAREA', 'REGION' and 'BLOCKAGE' 
              can be used to map the design outline, regions and blockages to a 
              layer. 'REGION' can have a detailed specifier which is 'FENCE', 
              'GUIDE' or 'NONE' for fence, guide or other type regions (e.g. 
              'REGION FENCE 99/0').
    
              'NAME' in place of the layer name and using layer/purpose in the 
              purpose column allows mapping labels to specific layers.
    
              This is an example for a layer map file:
    
              DIEAREA ALL 100 0
              M1 LEFPIN 12 0
              M1 PIN 12 2
              M1 NET 12 3
              M1 SPNET 12 4
              M1 VIA 12 5
              M1 BLOCKAGE 12 10
              NAME M1/PIN 12 10
              VIA1 LEFPIN,VIA,PIN,NET,SPNET 13 0
              M2 LEFPIN,PIN,NET,SPNET,VIA 14 0
    
              If a map file is used, only the layers present in the map file are 
              generated. No other layers are produced.
    

    Hope this helps.

    Matthias

  • This looks more like a layertable, I like it. Probably a better
    thing for PDK which wants to control what layers are and aren't
    picked up from a layout (no auto-add or multiple entries sharing
    layer & purpose generated by opening a file).

    Are there warnings emitted when layers not enumerated,
    are found & discarded?

    Can a .map be generated from a opened .lyp (other than by
    retyping it all)??

  • Hi @dick_freebird,

    unlike the .lyp, the mapping file is based on LEF/DEF layer/purpose pairs, so there is no direct way to translate .lyp to the mapping file.

    And yes, a warning is issued if layers are encountered that are not listed in the file.

    Matthias

Sign In or Register to comment.