• 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. Functional Verification
  3. TCL based assertion for connectivity check

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 65
  • Views 15746
  • 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

TCL based assertion for connectivity check

harsharaj
harsharaj over 12 years ago

Hi,

 I am using ncsim and i wish to check connectivity between two nets in RTL/netlist using tcl. I remember there being someway where using tcl input file i could specify two nets which could be tested for connectivity.

ex:
 -src net1  -dst net2

on a change of net1 check net2 value is equal to net1 value. kind of an tcl assertion

I dont remember the syntax. kindly help

thnaks!
Harsha

  • Cancel
  • StephenH
    StephenH over 12 years ago

    You could do this using a breakpoint, something like:

    stop -create -object net1 -execute { if {#net1 != #net2} {puts "error net1 != net2"}} 

    However if you have a lot of these the simulation will be slow, and it doesn't guarantee that your connection is correct. You cannot even tell if the check was made, so there will always be doubt as to how well you verified your connection.

    If you have access to Incisive Formal Verifier (IFV or IEV) then you can use the Formal Connectivity Check app to make point-to-pint connection checks and formally prove them. This avoids the performance penalty of simulating the design, it gives you complete visibility via coverage, and ensures that you cannot get false passes. The connections are entered in a spreadsheet format and code is generatd from that, taking into account muxes etc.

    Here's a link to a webinar we did on the subject, you can register and watch the recording: http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=466

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • harsharaj
    harsharaj over 12 years ago

     Thanks Stephen,

     But it looks like "puts" is not recognized by irun/ncsim

     ncsim: *E,TCLERR: invalid command name "puts "error mismatch on net"".
    invalid command name "puts "error mismatch on net""

     

    any suggestions ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • harsharaj
    harsharaj over 12 years ago

     okay i got the 'puts' working.

     what i need now is to start this check on every change of net1 value. will the below get the job done ?

     

     stop -continue -object tb.inst1.net1 -execute { if {#tb.inst1.net1 != #tb.inst1.net2} {puts "*E ERROR mismatch "}}  

     

    Thanks.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 12 years ago
    One thing to watch out for: this will fail if you have any propagation delays between the two nets. Stopping on net2 might avoid that. Overall I still would not recommend this simulation-based technique; it was the best one could hope for 15 years ago but formal technologies make this push-button now, and give you a proff, not just a bit more optimism. :-)
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • harsharaj
    harsharaj over 12 years ago

     Hey thanks. I will have a look at the webinar :-) 

    • 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