• 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. starting same TCM multiple times.

Stats

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

starting same TCM multiple times.

harip
harip over 16 years ago

Hi All,

We have a doubt related to starting the TCM multiple no. of times.

Let us take a TCM used to check some property and takes a few cycles(say 5-10) to execute.

If the event which is used to start this TCM occurs multiple times during the executuion period (5-10 clock for TCM),

does the event forks out multiple threads for the TCM?

Regards,

Harip

  • Cancel
Parents
  • tpylant
    tpylant over 16 years ago

    I'm not sure what TCM stands for but I assume you are referring to the enabling condition of an assertion. So if you have an assertion that checks for a ACK to be issued after a REQ:

    property p_reqack; $rose(req) |=> ##[0:5]ack;endproperty
    a_reqack: assert (p_reqack);

    The $rose(req) would be the enabling condition. Your question is what happens if 'req' has more than one posedge before 'ack' goes high? In this case, there would be multiple executions of this property that would all be fulfilled when 'ack' goes high.

    You can actually see this effect in the SimVision waveform browser.Add the assertion to the waveform window (via source code browser or assertion browser). If the assertion is executed multiple times, there will be a '+' next the assertion name that expands the waveform to show the status of each branch.

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • tpylant
    tpylant over 16 years ago

    I'm not sure what TCM stands for but I assume you are referring to the enabling condition of an assertion. So if you have an assertion that checks for a ACK to be issued after a REQ:

    property p_reqack; $rose(req) |=> ##[0:5]ack;endproperty
    a_reqack: assert (p_reqack);

    The $rose(req) would be the enabling condition. Your question is what happens if 'req' has more than one posedge before 'ack' goes high? In this case, there would be multiple executions of this property that would all be fulfilled when 'ack' goes high.

    You can actually see this effect in the SimVision waveform browser.Add the assertion to the waveform window (via source code browser or assertion browser). If the assertion is executed multiple times, there will be a '+' next the assertion name that expands the waveform to show the status of each branch.

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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