7 Replies Latest reply on Jul 12, 2018 7:18 AM by newatthis

    DRC - Show a path between two objects




      I know this is a specific question about a specific situation, and I can't share the code because it's proprietary, but I'm hoping someone can give a hit as to where to go from here.


      My DRC shows a violation saying that a piece of OD is connected directly (or possibly through resistors) to a bondpad. This is causing a latchup violation. The violation does not tell me which pad the OD is connected to, and it doesn't tell me what path it found that connects the OD to the pad.


      Ideally, I would like DRC to highlight the path that it has found from the OD to the bondpad.


      Does anyone have an idea of how to highlight the path? It seems to me like it should be possible, since DRC has already clearly determined that the path exists.


      Thanks very much for your time.

        • 1. Re: DRC - Show a path between two objects

          PERC or PATHCHK (in ERC during connectivity extraction) might give you more clearly defined results for a check like that as a long term solution but as a quick idea for debug of the immediate issue you might consider adding a text label to metal connected to the OD and then using the NET operation to highlight that net based on the name of the text label you added. The results you get may be influenced by the connectivity (CONNECT statements) in the rule file such as whether or not resistors are considered as breaking the net or if they are ignored (shorted by not cutting the connectivity at the resistor body marker for instance) during the latchup check. Depending on the nature of the connectivity and the presence of resistors in the path you're interested in it may require some trial and error.

          • 2. Re: DRC - Show a path between two objects

            Thank you, chris_balcom.


            Yes, those were my thoughts at first, also. I placed the text label and used CONNECT statements to show me where that net goes, and I further gave it some code to short through resistors. That code is helpful, but it highlights the entire net, which can be quite large once the resistors are shorted through.


            I would like to specifically highlight the path that leads from the OD to the bondpad in question. I'm wondering if there is a method to do exactly this without highlighting parts of the net that aren't related to the OD-Bondpad connection.


            Thanks again.

            • 3. Re: DRC - Show a path between two objects

              Hi Newatthis,


              I think your best bet for getting a direct path is to use "short isolation". If you don't know which bondpad is involved you could add a check to show just the bondpad layer on that original net you were looking at (the NET operation with output by certain layer). If you already know which bondpad is involved you could place a text such as "pad_text" on the pad and then keep the other text near the OD such as "od_text" and then turn on short isolation and run "calibre -spice" style of connectivity extraction. Here's a TechNote with details if you need for that:  https://support.mentor.com/knowledge-base/MG33010


              If the rule file is currently only for DRC you may need to add a dummy device statement and a few basic LVS specification statements for the LVS report etc. so that the calibre -spice netlist extraction will have something to run with (the short isolation is part of LVS flow, not DRC).


              Once you run that you should get an ASCII results file such as lvs.rep.shorts that you can load up in DRC-RVE to view the "pruned" path between those two different texts you added.

              • 4. Re: DRC - Show a path between two objects

                Thanks again, chris_balcom.


                I like the idea of the LVS short isolation tool, where I would place a label on the OD and then let it show me the shortest path between that and a bondpad, shorting through resistors. I had played around with that at some point, but then I went back to trying to augment the DRC code to show the path. Perhaps I should further explore the LVS to see if I can show a clear path that way. And using your advice, I should be able to make some headway with it.


                Thanks again, very much.

                • 5. Re: DRC - Show a path between two objects

                  Hi, Chris.


                  A quick LVS with labels in place and short isolation turned on shows an immediate concern. When I'm shorting through resistors, several pads become part of the net, and the Layout Shorts tab doesn't report all of the shorts because when it seems all these labels on a single net, it picks some names and ignores others. For instance, if a single net has three labels on it: A, B, and C, the Layout Shorts tab shows me two shortest paths:


                  A to B

                  A to C


                  Ideally, I would like it to show multiple shortest paths, covering each combination of labels:


                  A to B
                  A to C
                  B to C



                  I know I can look at my extraction results and see the complete list of labels on that net, but for the purposes of seeing the shortest path, is it possible to have it report all combinations of labels?



                  • 6. Re: DRC - Show a path between two objects

                    If it helps, there is a "NAME" option where you can specify something like:


                    ... NAME "B" "C"


                    to limit the results to a shortest path between those names

                    • 7. Re: DRC - Show a path between two objects

                      Thank you, Chris.


                      From that response, I'll assume that there is no way to have it display the shorts between all the labels in the Layout Shorts tab. I'll experiment with the NAME option. Thanks for your help.