• 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. Logic Design
  3. TIP OF THE MONTH: Beware Incomplete Libraries

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 61
  • Views 12614
  • 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

TIP OF THE MONTH: Beware Incomplete Libraries

archive
archive over 18 years ago

I recently encountered a testcase that confirmed the old saying: "garbage in, garbage out".

The customer was running a gate-gate verification using an incorrect Liberty library (source for .db) and that caused a difference to be missed. Here are the details:

  golden:                  revised:

         ------                   ------
    A --|A     |             C --|A     |
    B --|B    Z|-- Z         B --|B    Z|-- Z
    C --|C     |             A --|C     |
         ------                   ------

Note the swapped connections for pins A and C. The problem was that the cell was incorrectly described as:

        -----------
       |A          |
       |B---buf---Z|
       |C          |
        -----------

i.e. A and C had no effect on output Z. Hence the 2 designs are equivalent, based on that incorrect, incomplete library.

Some lessons:

  1. use Verilog libraries. Running synthesis and verification of the synthesis using the same Liberty or .db library can cause inconsistencies to be missed
  2. only use Liberty if you validated it against the Verilog*
  3. leaving a cell black-boxed is better than reading in an incorrect model**
  4. consider using Conformal GXL to validate the Verilog libraries against the Spice

Again, remember: "garbage in, garbage out"


*  on Sourcelink, search for "library qualification" under Conformal for details on how to run it. It should be the first solution search returns

** we do have an AE-ware script to do strict equivalence checking, where any changes to the connections and/or cell names get flagged


Originally posted in cdnusers.org by croy
  • 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