4 Replies Latest reply on Jun 4, 2012 2:33 PM by chris_balcom

    Connect nets with colon for layers with "pin" purpose

    mark.lin

      I am doing LVS for the third-party design. The LVS is expected to be perfectly clean.

      However, I am confused with the "Connect nets with colon" in Calibre. When I check this box in Calibre, I still got more nets in layout than in schematic since nets with colon still were NOT virtually connected in layout.    Frustrated after many iterations, I physically modified the layout by changing all top-level nets with colon from the "pin" purpose to "drawing" purpose.  Then, I got a smiling face.  Since I may still have hundreds of layout cells that have the same problems, is there any SVRF command that I can have virtual net connection with "pin" purpose layers instead of the more intuitive "drawing" purpose layers?

        • 1. Re: Connect nets with colon for layers with "pin" purpose
          chris_balcom

          Hi Mark,

           

          Are you able to tell what layer/datatype/texttype those text objects end up on in a gds file after a streamout?

           

          Calibre is typically looking for text on a certain layer (possibly certain layer/texttype combination if LAYER MAP is part of the rule file) and once the layout is streamed out, there may not be a distinction between pin purpose and drawn purpose. So in effect, the text may not exist in the stream file that Calibre is using for input. Just a guess... will be interesting to see how this turns out.

           

          -chris

          • 2. Re: Connect nets with colon for layers with "pin" purpose
            mark.lin

            Chris,

            That is a helpful clue.   I don't have any idea on the GDSII file after a stream out.    I may have an idea to try out your suggestion but I cannot get access to Calibre from home.  I will keep you posted.  Thanks.

            • 3. Re: Connect nets with colon for layers with "pin" purpose
              mark.lin

              Chris,

              FYI.

              After groping around for the clues in LVS rule file, I cobbled together with the following SVRF commands which solved the virtual connection problems for layers with pin purpose.

               

              PORT LAYER TEXT metal1_pin_text

              LAYER metal1_pin_text 1076      /* 1076 is an arbitrary and non-conflicting layer number */

              LAYER MAP 88 TEXTTYPE 0 1076    /* 88 is metal1 layer with pin purpose */

              TEXT LAYER metal1_pin_text

              ATTACH   metal1_pin_text   metal1_net    /* metal1_net is defined in the LVS rule file */

               

              However, I only have a smattering of understanding for these commands.    Any comment on this kludgy "solution" is welcome.

              • 4. Re: Connect nets with colon for layers with "pin" purpose
                chris_balcom

                Hi Mark,

                 

                From what I can see, this solution seems very "normal" looking. All these statements you have seem to be working together in a good and normal fashion. Here are my remarks for each in case it's of interest.

                 

                PORT LAYER TEXT metal1_pin_text

                // PORT LAYER TEXT tells Calibre to create a top level port where it finds top level text objects on Calibre layer "metal1_pin_text".

                 

                LAYER metal1_pin_text 1076      /* 1076 is an arbitrary and non-conflicting layer number */

                // This LAYER statement lets us use the name "metal1_pin_text" in place of the Calibre layer number 1076 when we want to refer to this layer elsewhere in the rule file.

                 

                LAYER MAP 88 TEXTTYPE 0 1076    /* 88 is metal1 layer with pin purpose */

                // This LAYER MAP statement tells Calibre that text objects in the layout file on drawn layer 88 with texttype 0, will be re-mapped to Calibre layer 1076. Because of this, it will be important to use layer number 1076 (or equally good layer name metal1_pin_text as above) when referring to these text objects.

                 

                TEXT LAYER metal1_pin_text

                // This TEXT LAYER statement in effect tells Calibre to recognize text objects on Calibre layer metal1_pin_text (same as Calibre layer number 1076) as labels for nets. Without this statement, text on Calibre layer 1076 (metal1_pin_text) would be ignored.

                 

                ATTACH   metal1_pin_text   metal1_net    /* metal1_net is defined in the LVS rule file */

                // This ATTACH statement tells Calibre that the "net names" from text objects on layer metal1_pin_text should actually be used on the metall polygon data that is on the layer named "metal1_net". Without this ATTACH statement, the net name labels would be used by default for polygon data on layer 1076 and there probably isn't really any polygon data on that layer, so the text objects would likely be floating if not for this ATTACH statement.