• 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. Need help in assertion based connectivity checking

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 66
  • Views 16322
  • 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

Need help in assertion based connectivity checking

SnehalC
SnehalC over 12 years ago

Hi,

I am new to the formal verification process and I am trying to use it for verifying the connectivity between some modules in a SoC. I am using Incisive Formal SoC Connectivity Solution (V2.01) speadsheet to create the property file for the specified connections.

While verifying the connections I am finding certian issues:

1. The connection status is passed and the connection is visible in schematic but when I view waveform for the same, I get only 0 is driven on both the pins. How can I assure that the connection is verified if only 0 or only 1 is driven for entire simulation cycle? Is there any way to toggle the input on pins with the help of connectivity spreadsheet?

2. When the top file language is specified as verilog in the excel sheet, then the property file created by using the CSV file contains a clock, ifv_connectivity_clk. Where does this clock comes from? I have not specified any such clock in the spreadsheet. At the same time when the top file language is changed to vhdl, no such clock is generated. Why is this so?

I am using PSL assertion language in the excel sheet.

Regards,

Snehal

  • Cancel
  • JoergM
    JoergM over 12 years ago

    Hi Snehal,

    1) IEV verifies the connection using all possible values within one single proof. The witness you see when opening the waveform browser is only 1 example of a scenario that fulfils the property. You can assume that the fomal engine considers all values, not only the one displayed in the witness example waveform. There is one caveat: Usually we cutpoint the drivers of the source of the connection so IEV has the freedom to consider any possible value. If for some reason your environment keeps logic driving the source pin, it may cause incomplete analysis with a restricted set of values. There are a few options to obtain the coverage in that case:

      a) write a cover on the signal and prove (e.g. using an interactive property like "assert -add -interactive {my.sig == 1'b1} -cover"
      b) use the builtin toggle coverage and enable it for the signal in question

    2) The ifv_connectivity_clk is only generated with SVA in my trials, not with PSL. The reason is that SVA requires a clocking statement for any property, even if they describe combinational behavior like connectivity. PSL does not. Can you confirm you observe this with PSL?

    Jörg.

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

    Hi Joerg,

    When I ran the same script with PSL, clock was not generated. I previously though that it was due to the HDL language (VHDL/Verilog).

    I had one more question: How do we enable the builtin toggle coverage? I was not able to find any such option in the tool.

    Your information was really useful for me. Thanks a lot.

    Regards,

    Snehal

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

    Hi Snehal,

    you need to add "+enable_togglecheck" to the iev commandline in order to infer the automatic toggle checks. please refer to chapter 10 of the Formal Verifier User Guide for details on "Toggle Checks".

    Jörg.

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

    Hi Snehal,

    I would like to add that in the next release 13.1 we will add covers to the connectivity checks that make sure we do not validate a stuck connection.

    Thanks again for your query.
    Jörg.

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

    Hi Joerg,

    Thanks a lot for the help you provided. I could find out coverage now.

    It is good to hear that covers are being added to connectivity checks.

    While I was trying some more options in IFV, I found the option for the debug solver waveform. I added searchpoints and ran the search command for 5 cranks. The debug -solver command gave me a waveform which shows that in 5 cranks all the assertions have toggled and also the duration of high and low signals.

    I wanted to confirm if these results are relevant to the proofs I got? They are much easy and less time consuming to get too.

    Thanks a lot again.

    Snehal

    I found that when I run only search N command, the status of assertion is "Explored". [I tried with high effort and N as large as 1000] But when I issue Pass command, the status is "Pass". What might be the reason of his happening?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • nannasin28
    nannasin28 over 12 years ago
    shows that in 5 cranks all the assertions have toggled and also the duration of high and low signals.
    IRF3205
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SnehalC
    SnehalC over 12 years ago

    Hi,

    Got this doubt cleared. The sarch command will never show a pass result it will always show explored for the assertions that are passing. This is because search command runs a simulation .It will not run exhausively. We need to issue prove command to thorougly verify the design.

    Thanks a lot for help.

    Regards,

    Snehal

    • 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