• 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 SKILL
  3. how can I use the delay function to measure the delays between...

Stats

  • Replies 1
  • Subscribers 144
  • Views 1307
  • Members are here 0

how can I use the delay function to measure the delays between the closest rising edge of a singal_A and the following rising edge if signal_B

MFahmy
MFahmy 5 months ago

Hi, 

I am trying to use the delay function to measure the delays between a rising edge of a singal_A and the following rising edge if signal_B,

Signal_A is a periodic signal (clock) , while signal_B is a random bit stream, 

The delay function uses every rising edge from signal_A as a measurement event which is inaccurate in this case, what I am looking for is to measure the delay from the current rising edge of Signal_A to the current rising edge on signal_B and the current edge of a given signal is the latest edge, in other words, measuring the closest rising edge of signal_A to the next edge of signal_B

The triggeredDelay function works by measuring a triggering event to a rising edge after it, which also does not serve the purpose, (Tperiod - Triggered delay) can be used as a work around, but it is inaccurate as the clock signal has jitter

Thanks, 

Fahmy

virtuoso version IC23.1-64b 

sub-version  IC23.1-64b.ISR13.25

  • Sign in to reply
  • Cancel
  • Dung Nguyen
    Dung Nguyen 5 hours ago

    Hi,

    Given a case that you are trying to measure the hold time of a flip-flop with periodic clock and random data.

    My previous experience on this is to combine triggeredDelay and rshift. Basically, the idea is to right-shift clock signal with delta X being equal to period, then using triggeredDelay to measure setup time of data compared to shifted-clock. Last step is to subtract your 'calculated setup' from Tperiod to get 'real hold'.

    Ex: (2*VAR("UI")) - ymax(triggeredDelay(clip(VT(din), tc_start, tc_stop) rshift(clk_diff (2*VAR("UI"))) (VAR("vddavs") / 2) "either" 0 "falling"))

    However, a more compatible function has been defined by Cadence:

    support.cadence.com/.../ArticleAttachmentPortal

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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