• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Symbol 'patch' in lib 'basic' may lead to different LVS...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 2100
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Symbol 'patch' in lib 'basic' may lead to different LVS results in different IC suites?

LiQY20
LiQY20 over 1 year ago

Hello everyone,

I generated a digital module via Innovus and tried to import it into Virtuoso via Verilog and GDS file. I got two suites for IC design, one is Virtuoso 16.6+Calibre 2015, the other is Virtuoso 16.8+Calibre 2020. I found that using the latter one the LVS is clear, but using the foemer, there are errors. The schematics and layouts are precisely the same in two suites, for I just copied the Virtuoso files between them.

I tried to search for errors, and I found this symbol 'patch' in lib 'basic'. The schematics are just the same, but leading to different LVS results. 'Patch' symbol seems to be used for connecting two net with different names together, thus no layout, no electrical function. And I think the problem might lay there. Maybe different suites translate this patch's two ends in different ways, but I'm not sure whether this problem come from Calibre or Virtuoso.

I copied the extracted sch and layout extracted spice from the correct suite, and run comparison on the other, and it did pass.

What does the difference come from and how can I fix it. Assum that I'm sure this module is right and the LVS is wrong, how can I clear LVS in both suites? Or at least keep the two LVS results just the same.

Thank you all!

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    The patch component simply sets up an alias in the database between the two nets. During CDL netlisting (which is used for LVS), it should just netlist using one of the two names for all occurrences of either net within the subckt that's netlisted. I guess there might be a problem in Calibre if the name chosen for the pin is not the same as the name of the pin on the layout side.

    First of all, Calibre is not a Cadence tool - you probably need to get support from Siemens EDA on this.

    Also, those are not valid Virtuoso version numbers. I'm assuming you're actually talking about IC6.1.6 and IC6.1.8. If it works with the later versions, I'm not sure it makes sense to spend time trying to figure out why this doesn't work in a 9-year old versions of both the Cadence and Siemens EDA tools.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    The patch component simply sets up an alias in the database between the two nets. During CDL netlisting (which is used for LVS), it should just netlist using one of the two names for all occurrences of either net within the subckt that's netlisted. I guess there might be a problem in Calibre if the name chosen for the pin is not the same as the name of the pin on the layout side.

    First of all, Calibre is not a Cadence tool - you probably need to get support from Siemens EDA on this.

    Also, those are not valid Virtuoso version numbers. I'm assuming you're actually talking about IC6.1.6 and IC6.1.8. If it works with the later versions, I'm not sure it makes sense to spend time trying to figure out why this doesn't work in a 9-year old versions of both the Cadence and Siemens EDA tools.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • LiQY20
    LiQY20 over 1 year ago in reply to Andrew Beckett

    Dear Andrew,

    I verified the problem does come from Calibre. Different versions of Calibre extracts different netlists when encountered 'patch' symbols.

    I still don't know how to extract a correct netlist via Calibre. However, I managed to flatten the netlist in Innovus so I can avoid using 'patch' symbol in schematic, and so the result is LVS is always clear. So I think this problem is solved.

    Thank you for your answer, Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information