Home > Community > Blogs > Digital Implementation > five minute tutorial find a pin s transition time
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Digital Implementation blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Five-Minute Tutorial: Find A Pin's Transition Time

Comments(2)Filed under: Digital Implementation, encounter, EDI, report_constraint, max_transition, pin transition time, five minute tutorial

How many times while working in Encounter Digital Implementation system have you wanted to find the transition time on a certain pin? How did you go about finding it? Here are some ways I know that I've used:

  • If I knew the pin was failing the max_transition constraint, hunt it down in the .tran violation report.
  • Try to find the pin somewhere in my timing reports and look at the slew column.
  • Use (gasp!) undocumented commands (unsupported and therefore sometimes unreliable).

Well, there's an easier, cleaner, faster way. The report_constraint command! This is an oft-forgotten little gem that can be very handy. It's worth reading about all of its features in the documentation, but today I wanted to highlight how it can be used to find the transition violation of any pin. Just specify the constraint we want to report (max transition) and the pin:

report_constraint -drv_violation_type max_transition i_BUFX2/Z

And you'll see results something like this:

Check type : max_transition
  Pin : i_BUFX2/Z       View : func_ss_0p90v_125c_rcworst
  max_transition :     0.400
- Transition Time:     0.322
      slack          :     0.078

I bet some of you out there are using this very command for other useful checks -- share your favorites with us in the comments, please!

- Kari Summers


By BobD on June 17, 2011
Great post Kari. I like it because there are a lot of different ways to do this and I learned something new from your approach.
I always tend to go to a programmatic query of the timing graph. Like this:
encounter 1> get_pins DTMF_INST/TDSP_CORE_INST/i_10084/Y
encounter 2> report_property [get_pins DTMF_INST/TDSP_CORE_INST/i_10084/Y]
max_transition                      | 4.500
slew_max_fall                       | 0.398
slew_max_rise                       | 0.739
slew_min_fall                       | 0.398
slew_min_rise                       | 0.739
encounter 10> get_property [get_pins DTMF_INST/TDSP_CORE_INST/i_10084/Y] slew_max_rise
A nice thing about get_property is that you can specify which MMMC view you want query:
encounter 11> get_property [get_pins DTMF_INST/TDSP_CORE_INST/i_10084/Y] slew_max_rise -view setup_func

By Kari on June 20, 2011
Hi Bob, thanks! I like your method as well, lots of info in one shot. And GREAT point about the view, since almost everything is run in MMMC these days. I double-checked the documentation for report_constraint, and there is a -view argument, so we're covered both ways.

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
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.