• 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. Syntax for device checks associated to just one type of...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 124
  • Views 2232
  • 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

Syntax for device checks associated to just one type of simulation

FormerMember
FormerMember over 7 years ago

Hello,

I am creating a number of device checks in ADE using a separate file (devcheck.scs let's say). I wondered if there was a way to specify that a check just be performed against one type of simulation. This type of operation is possible using the GUI Device Checks panel from what I can see but I would like to know the syntax for how to write such a limited check in a file.

Alternatively perhaps there is a way to output my checks from the GUI to a text file so I can create my check interactively and then create the inlcude file afterwards.

Any suggestions from anyone?

Many thanks,

Matthew Cordrey-Gale

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Matt,

    Unfortunately it's not that straightforward - at least using the method that the UI uses. This is done via the checklimit statement in spectre (see "spectre -h checklimit") but it's not done by specifying a list of analyses to the checklimit statement. Instead it enables and disables the checks between analyses when netlisted:

    //Device Checks created using ADE Device Checking Interface
    fredAssert assert expr="(V("out"))" min=1.0 max=2.0

    //End Device Checks
    dcOpCheckLimit checklimit checkallasserts=yes disable=[ "fredAssert" ] \
    severity=none
    dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
    dcOpInfo info what=oppoint where=rawfile
    acCheckLimit checklimit checkallasserts=yes enable=[ "fredAssert" ] \
    severity=none
    ac ac start=100 stop=150M dec=20 annotate=status
    tranCheckLimit checklimit checkallasserts=yes enable=[ "fredAssert" ] \
    severity=none
    tran tran stop=3u write="spectre.ic" writefinal="spectre.fc" \
    annotate=status maxiters=5
    finalTimeOP info what=oppoint where=rawfile

    However, the assert statement itself can specify which analyses types the check applies to. From "spectre -h assert" : 

    17 anal_types=[...] List of analysis types for which the assert instance
        will be checked. By default the check is performed
        for all analyses. Possible values are ac, dc, noise,
        pz, sp, and tran.

    So you can (on your assert definition) add (say):

    myAssert assert ... anal_types=[dc tran]

    for example.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for such a rapid reply on the subject.

    The point you describe at the bottom of your post is exactly what I'm looking for. I tried it out with the following results.

    An assert that FAILED (correctly) in a tran simulation with anal_types=tran changes to PASSED when I switch to anal_types=dc and rerun the tran simulation.

    So I deduce that this is how the analysis type works. It sets the asserts that shouldn't be considered to PASSED. If that sounds correct to you then I have my solution.

    Thanks again.

    Matt

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to FormerMember

    Hi Matt,

    Asserts don't really "PASS" - they only fail. So all anal_types says is which analyses should they be applied in - effectively it says which analyses the assertion has the opportunity to produce failures.

    I think I'm agreeing with you - it's just different terminology ;-)

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 7 years ago in reply to Andrew Beckett

    Andrew,

    That's fine by me. It was just the fact that the assert remains in the Violations display list even thought it's not applied. No problem with that. The designers will only look for FAILED asserts.

    Thanks again,

    Matthew

    • 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