Pin-level timing

Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.

SourceThese cards follow the reporting commands of OpenSTA, the open-source static timing analyzer used by OpenROAD, and each answer links to that command in the OpenSTA command reference. Report commands are not a standard: other timers name and format their reports differently. The report excerpts are real OpenSTA output from the gcd example design. Reference: OpenSTA command reference (OpenSTA on GitHub).
All 3 cards in this section, with answers
  • report_slack u1/D
    Prints the rise and fall, min and max slack at u1/D per clock.

    Hint: It reports at one pin, so no path is walked. Ask which numbers exist at a pin.

    Pin-level commands print numbers at one pin, without a path. They answer "how much margin is there here?" quickly, and report_checks -through then shows the path. OpenSTA reference

  • report_arrival u1/D
    Prints the earliest and latest arrival times at pin u1/D, per clock.

    Hint: Arrival is when the data gets there, as opposed to when it is needed.

    The arrival is when data reaches the pin. Min and max arrivals feed the hold and setup checks respectively. OpenSTA reference

  • report_required u1/D
    Prints the required times that arrivals at u1/D are checked against.

    Hint: Required is the limit that the arrival is compared against; slack is the difference.

    For setup, data must arrive before the max required time; for hold, after the min required time. Slack is the difference between required and arrival. OpenSTA reference