12 Replies Latest reply on Aug 23, 2018 11:52 AM by dan_liddell

    LVS ignore select Ports during reduction & compare

    derrick

      Is there a way to ignore a select port during the LVS reduction & compare?

      For example, there is a thermal node (THERM) that can be extracted as floating in our devices since it is not an electrical connection. If there is a device in parallel with it, it will be in parallel for all ports except the floating THERM node.   I would like to ignore the THERM node during the LVS reduction and compare.

        • 1. Re: LVS ignore select Ports during reduction & compare
          dan_liddell

          Hi Derrick,

           

          There is no dedicated statement for ignoring a specific port by name. You may want to try LVS IGNORE TRIVIAL NAMED PORTS YES and see if that helps.

           

          Another approach that might work depending on the connectivity is to eliminate the user name on the floating node. You could try this:

           

          LAYOUT RENAME TEXT "/THERM//" CELL LIST A

          LAYOUT CELL LIST A "my_cell_name"

           

          where my_cell_name is the name of the cell with the THERM text object you want to ignore  for the time being.

           

          If those methods don't work, maybe provide a layout SPICE netlist excerpt showing the problem and the discrepancy that you're getting in the LVS report.

           

          Thanks,

          dan

          • 2. Re: LVS ignore select Ports during reduction & compare
            derrick

            Hi Dan,

             

            Thank you for the quick reply. I gave your suggestion a try and it didn't quite work.

            Here is a sample layout netlist. I've deleted most of the parameters from it for simplicity.  Three npnt devices are connected in parallel.  The "T" node is floating.  I want to combine these three npnt devices during the compare to match the schematic (the schematic will have one npnt device, with m=3).

            Can I add a statement to ignore the value of the "T" node?  Or possibly delete the "T" node from this step?

             

            ***************************************

            .SUBCKT npnt C B E BULK T

            .ENDS

            ***************************************

            .SUBCKT De_npnt_m_1_all_p COLLECTOR BASE EMITTER BULK

            X0 COLLECTOR EMITTER BASE BULK 128 npnt  m=1

            X1 COLLECTOR EMITTER BASE BULK 129 npnt  m=1

            X2 COLLECTOR EMITTER BASE BULK 130 npnt  m=1

            .ENDS

            • 3. Re: LVS ignore select Ports during reduction & compare
              dan_liddell

              Hi Derrick,

               

              If I have this as the layout:

               

              ***************************************

              .SUBCKT npnt C B E BULK T

              .ENDS

              ***************************************

              .SUBCKT De_npnt_m_1_all_p COLLECTOR BASE EMITTER BULK

              X0 COLLECTOR EMITTER BASE BULK 128 npnt  m=1

              X1 COLLECTOR EMITTER BASE BULK 129 npnt  m=1

              X2 COLLECTOR EMITTER BASE BULK 130 npnt  m=1

              .ENDS

              ***************************************

              .SUB top

              X0 1 2 3 4 De_npnt_m_1_all_p

              .ENDS

               

              and this as the source:

               

              ***************************************

              .SUBCKT npnt C B E BULK T

              .ENDS

              ***************************************

              .SUBCKT De_npnt_m_1_all_p a b c d

              X0 a b c d 1 npnt m=3

              .ENDS

              ***************************************

              .SUB top

              X0 1 2 3 4 De_npnt_m_1_all_p

              .ENDS

               

              This causes a discrepancy because the layout nets 128, 129, and 130 cannot be matched in the source, and source net 1 cannot be matched in the layout (another way to look at it is, instances X0, X1, and X2 are not really connected in parallel in the layout because these nets differ). The ports named T are not considered floating because they are connected to device pins. (These ports can't be dropped from the netlist because there are device instances with pins connected to them.)

               

              But if I change the layout to this:

               

              .SUBCKT De_npnt_m_1_all_p COLLECTOR BASE EMITTER BULK

              X0 COLLECTOR EMITTER BASE BULK 128 npnt  m=1

              X1 COLLECTOR EMITTER BASE BULK 128 npnt  m=1

              X2 COLLECTOR EMITTER BASE BULK 128 npnt  m=1

              .ENDS

               

              Then the result is CORRECT.

               

              If I've understood your situation correctly, would it make sense to short the unlabeled npnt instance pins together in the layout?

               

              dan

              • 4. Re: LVS ignore select Ports during reduction & compare
                derrick

                Hi Dan,

                 

                Thanks for looking into this. Shorting the nets is what we currently do -

                we don't want all the T nets shorted together, so we require the designer

                to place a special LVS only shape that will tie T nodes together for

                certain npn devices. This works just like your modified netlist.

                 

                We have been asked to add the T node to additional devices and I was hoping

                for a way to get around not having the designer add in special shapes.

                Unfortunately, the modelling team doesn't want us to short all T's together

                in the extracted netlist, otherwise that would be the easiest approach.

                 

                Assura LVS has a function called "deleteCellPin"that can be used in the

                compare stage like deleteCellPin("npnt" "T")

                I was hoping Calibre had something similar to that, or a way that I could

                short all of the nodes together just for the compare/reduce stage.

                 

                Thanks for looking into it.

                Derrick

                • 5. Re: LVS ignore select Ports during reduction & compare
                  dan_liddell

                  Hi again,

                   

                  I overlooked something that may help:

                   

                    LVS IGNORE DEVICE PIN npnt "T"

                   

                  Maybe give that a try.

                   

                  dan

                  • 6. Re: LVS ignore select Ports during reduction & compare
                    derrick

                    Hi Dan,

                     

                    That does exactly what I want!  Thanks!

                     

                    Derrick

                    • 7. Re: LVS ignore select Ports during reduction & compare
                      derrick

                      Hi Dan,

                       

                      This works great on devices like NPNs.  But I've found that it interferes

                      with pin swapping on devices that would otherwise allow it, such as the two

                      terminals of a resistor, or the source and drain of a FET.   Do you know

                      why this would happen?

                       

                      On Thu, Aug 16, 2018 at 4:23 PM, Derrick Kunze <

                      • 8. Re: LVS ignore select Ports during reduction & compare
                        dan_liddell

                        Hi Derrick,

                         

                        The SVRF Manual states the following:

                         

                        "When this statement is used, pin swapping occurs according to how the final device, after ignoring pins, may be matched to Device statements and their pin swapping conditions. Default pin swapping during comparison occurs according to the description in the “Pin Swapping” section of the Calibre Verification User’s Manual."

                         

                        When you say LVS Ignore Device Pins interferes with pin swapping of various devices, are those devices themselves specified in LVS Ignore Device Pin statements, or are they connected to other devices (like your bipolars) that are specified in such statements?

                         

                        If the former, are the corresponding Device statements present in the rules when you run LVS comparison?

                         

                        If yes, provide an example of one of the Device statements associated with the pin swapping issue, please.

                         

                         

                        dan

                        • 9. Re: LVS ignore select Ports during reduction & compare
                          derrick

                          Hi Dan,

                           

                          Thank you for the quick reply.  The pin swapping in question happens for

                          the devices that are specified in the LVS Ignore Device Pin statments.

                           

                          For example, there is a resistor called balres, which can have the "in" and

                          "out" terminals swapped, as shown in the device statement below.

                           

                          DEVICE balres  balres_sx  balres_term("in") balres_term("out") psub(x)

                          balres_therm(T)       NETLIST ELEMENT X

                           

                           

                          I added:   LVS IGNORE DEVICE PIN balres "T"

                           

                           

                          Now I sometimes get an error saying that the pin that I have connected to

                          "in" should be connected to "out" and vice versa.  If I swap the pins in

                          the layout or schematic, LVS will pass.  Based on the device statement, I

                          would expect swapping to occur automatically.  Maybe I'm missing something?

                          • 10. Re: LVS ignore select Ports during reduction & compare
                            dan_liddell

                            Hi,

                             

                            At this point, I could only speculate on what's happening.

                             

                            Although I think it's unlikely to work, you might try giving an explicit pin swap group, like this:

                             

                            DEVICE balres  balres_sx  balres_term("in") balres_term("out") psub(x) balres_therm(T)    ("in" "out")   NETLIST ELEMENT X

                             

                            If that doesn't work, consider opening a service request, as a test case may be needed to obtain a solution.

                             

                            dan

                            • 11. Re: LVS ignore select Ports during reduction & compare
                              derrick

                              Hi Dan,

                               

                              Unfortunately that did not work.  I can't seem to take advantage of pin

                              swappablility for any device that I list in a LVS IGNORE DEVICE PIN

                              statement.

                               

                              What is the next step?  Can you send me a link to where I would enter a

                              service request?

                               

                              Thank you,

                              Derrick

                              • 12. Re: LVS ignore select Ports during reduction & compare
                                dan_liddell

                                Hi Derrick,

                                 

                                How you submit support tickets is largely a function of the policy at your company. Some may prefer to have such requests go through a centralized channel. Others may allow any employee with access to the tools to submit support tickets.

                                 

                                If you are submitting a ticket, you'll need a support account that can be obtained here:

                                 

                                https://support.mentor.com/en/signin

                                 

                                Once you have an account, you can log in. From the main page that loads, look for the Service Requests menu at the top of the page. Select "Open a Service Request" and configure the request for Calibre. Then fill out the form.

                                 

                                The Mentor support team often benefits from a test case. The tarball should include a minimal set of data needed to produce the behavior in question. The data should be scrubbed of anything considered confidential. Including a README file that explains the data and how to produce the questionable behavior is helpful. The software version is also a needed detail.

                                 

                                If you need more information about the support process, contact your company's liaison who works with a Mentor technical sales rep and arrange a meeting. The rep can go over the whole support process with you.

                                 

                                dan