Cadence Innovus (Legacy UI) · stage 3 of 16

SDC, MMMC and timing-environment qualification

Covers active view coverage, clock definitions, constraint consistency, case analysis and exceptions, analysis mode, timing-check coverage, and baseline timing rules.

7 min read · Free, no login

Get Innovus + ICC2 Cheat Sheets at ₹199

This stage checks that the MMMC timing environment is complete and consistent before the design is constrained further: active view coverage, clock definitions, constraint completeness, case analysis and exceptions, the analysis mode, timing-check coverage, and the design-rule constraint baseline before placement.

Sanity check cheat sheet

One row per command card. Read left to right: the check, the command that answers it, then what a healthy result, a result to review and a hard stop look like.

CardCheck and whenCommandHealthyReviewHard stop
T-01 Active view coverage
After import
report_analysis_views -type active
all_setup_analysis_views
all_hold_analysis_views
all_analysis_views
Active setup and hold lists equal the methodology list exactly. A view defined but not active, with a reason, for example a corner kept only for later signoff. A required view missing from the active list. Every timing result for that condition is then NOT EVALUATED, not PASS.
T-02 Clock definitions
After import
report_clocks -view <v>
report_clocks
report_clocks -uncertainty_table -view <v>
Every clock in the clock specification appears with the expected period and source. Extra virtual clocks used for I/O constraints; confirm each is referenced. A missing clock, a generated clock with the wrong master or source, or a period that differs from the specification.
T-03 Constraint consistency and completeness
After import, and again after any SDC change
set timing_check_timing_report_all_checks true
set timing_report_check_timing_unconstrained_endpoints_due_to_constants true
check_timing -verbose -view <v> > <f>
No unconstrained functional endpoints; every functional data input has a delay or a drive, or a recorded reason; no loops. Unconstrained test-only endpoints in a functional mode, if the test mode covers them. Unconstrained functional endpoints, a combinational loop, or a generated clock with no source.
T-04 Modes, case analysis and exceptions
After import
report_case_analysis -view <v>
report_inactive_arcs -view <v>
report_path_exceptions -ignored -view <v>
Case values match the mode definition; every ignored exception has a recorded reason. Disabled arcs from library conditions that the library vendor documents. An ignored exception relied on, so the designer follows a different, higher-priority exception.
T-07 Analysis mode and derates
After import
getAnalysisMode -analysisType -cppr -aocv -socv
report_timing_derate
Analysis modes and derates equal the methodology list. A derate that applies to one delay corner only, with a recorded reason. Analysis type, CPPR or derates that differ from the methodology.
T-05 Timing-check coverage
After constraints are clean
report_analysis_coverage -verbose untested -sort reason -view <v> > <f>
report_analysis_coverage -view <v>
report_timing -unconstrained -max_paths 20 -view <v>
Untested checks are all explained by intended constants, false paths or disables. A small number of no_startpoint_clock or no_endpoint_clock checks on test logic, identified from the netlist or the DFT list. Untested functional checks with reason no_endpoint_clock, no_startpoint_clock, no data signal or unknown.
T-06 Design-rule constraints and baseline timing
Before placement
check_design -type timing -out_file <f>
report_constraint -all_violators \
-drv_violation_type {max_transition max_capacitance max_fanout} -view <v>

report_timing -late -max_paths 10 -view <v>
Recorded as a baseline. There is no pass threshold for pre-placement slack in this book; the methodology decides whether a gap is acceptable at this stage. Large negative slack on reg2reg paths before any optimisation, which can point to a constraint error rather than a design problem. None from slack alone at this stage. A hard stop comes from T-01 to T-05, not from pre-placement slack.

Command cheat sheet

Legacy UI commands. Angle brackets are placeholders, and values shown are examples, not project limits.

MMMC objects
create_library_set -name <ls> -timing {<libs>}A named library set that delay corners can refer to.
create_rc_corner -name <rc> -qx_tech_file <f> -T <temp>A named RC corner with extraction technology data and temperature.
create_delay_corner -name <dc> -library_set <ls> -rc_corner <rc>A delay corner that pairs a library set with an RC corner.
create_constraint_mode -name <m> -sdc_files {<sdc>}A constraint mode built from one set of SDC files.
update_constraint_mode -name <m> -sdc_files {<sdc>}Replaces the SDC files of an existing mode and overwrites its previous settings. In MMMC this resets timing, delay calculation and RC data.
create_analysis_view -name <v> -constraint_mode <m> -delay_corner <dc>An analysis view: one mode with one delay corner.
set_analysis_view -setup {<views>} -hold {<views>}The active setup and hold views. Not incremental: both lists are required, and omitted views and any -drv, -leakage or -dynamic views are dropped. Causes a full timing reset.
View coverage
report_analysis_viewsA hierarchical report of every defined view with its mode, corner, library set and RC corner.
report_analysis_views -type activeThe same report for the active views only.
all_analysis_viewsA Tcl list of every defined view.
all_analysis_views -type inactiveThe defined views that are not in use.
all_setup_analysis_viewsA Tcl list of the active setup views.
all_hold_analysis_viewsA Tcl list of the active hold views.
all_constraint_modes -activeA Tcl list of the constraint modes used by the active views.
all_delay_corners -activeA Tcl list of the delay corners used by the active views.
all_rc_corners -activeA Tcl list of the RC corners used by the active views.
all_library_setsA Tcl list of every defined library set.
get_analysis_view <v> -delay_cornerThe delay corner of the view.
get_analysis_view <v> -constraint_modeThe constraint mode of the view.
get_constraint_mode <m> -sdc_filesThe SDC files of the constraint mode, to confirm the released files are the ones loaded.
get_library_set <ls> -timingThe timing libraries in the library set.
check_instance_library_in_viewsInstances whose library is missing from the library set of their power domain in the active views.
report_instance_library -instance <i> -view <v>The library, library file, operating condition and binding used for an instance in a view.
Units and operating conditions
get_time_unitThe session time unit, from the library or setLibraryUnit. Every report and constraint value uses it.
get_capacitance_unitThe session capacitance unit, for example 1.000000pf.
get_resistance_unitThe session resistance unit, for example 1.000000 kohm.
report_design -view <v>The operating conditions and active design rules for the view.
Clocks
report_clocks -view <v>Clock waveforms, generated clocks and uncertainty for the view.
report_clocks -description -view <v>Only the waveform description of each clock.
report_clocks -uncertainty_table -view <v>Only the clock uncertainty table. It lists only clocks that have set_clock_uncertainty, and shows the late or early table for the current analysis mode.
report_clocks -groups -view <v>The existing clock groups.
get_propagated_clockWhether each clock is ideal or propagated. Before CTS, ideal is expected.
report_clock_propagation -clock <c> -to <pins> -view <v>The clocks that do not reach the given pins, and why.
Constraint consistency
set timing_check_timing_report_all_checks trueMakes check_timing list every check type it ran, not only failing ones. It shows which checks ran, not that every endpoint was covered.
set timing_report_check_timing_unconstrained_endpoints_due_to_constants trueEnables the uncons_endpoints_due_to_case_analysis warning of check_timing, which stays off until this is set.
check_timing -view <v>Constraint warnings by type for the view: unconstrained endpoints, missing input delays, loops, clock problems.
check_timing -verbose -view <v> > <f>The same with the pins and ports behind each warning, written to a file.
check_timing -type {clocks} -view <v>Only the clock checks.
check_timing -type {endpoints inputs} -view <v>Only endpoint and input checks.
check_timing -type {loops} -view <v>Only combinational loops, with the arc used to break each loop.
check_timing -include_warning {clock_crossing const_collision} -view <v>Adds warning types that are off by default.
check_design -type timing -out_file <f>Timing-setup integrity checks. check_timing is still needed for full coverage.
Modes, constants and exceptions
report_case_analysis -view <v>The pins and ports with set_case_analysis values.
report_case_analysis -all -view <v>Adds set_logic constants, netlist constants and constant-function outputs.
report_case_analysis -propagated -view <v>All constant pins, including propagated constants.
report_inactive_arcs -view <v>Timing arcs disabled by constants, set_disable_timing, library conditions or loop breaking (snipped arcs), with the reason.
report_path_exceptions -view <v>The applied path exceptions, with SDC file and line.
report_path_exceptions -ignored -view <v>The exceptions ignored because a higher-priority exception covers the same paths.
report_path_exceptions -all -view <v>Applied and ignored exceptions together.
report_path_groupsEvery path group and the paths it contains.
report_ports -view <v>The timing constraints on the ports, such as input and output delays, drive and load.
report_timing_derateThe early and late derating factors for clock and data paths, per delay corner.
Analysis mode
getAnalysisMode -analysisType -cppr -aocv -socvThe current analysis type (single, bcwc or onChipVariation), CPPR, AOCV and SOCV settings. The default analysis type is bcwc.
Coverage and baseline
report_analysis_coverage -view <v>Met, violated and untested check counts by check type for the view. Reasons need -verbose untested. Dynamic checks such as set_max_delay are left out unless -include_dyn_checks is given.
report_analysis_coverage -verbose untested -view <v>The DETAILS table for the untested checks only, with the Reason column.
report_analysis_coverage -exclude_untested const -view <v>The coverage report without checks untested because of constants.
report_analysis_summary -view <v>A slack summary by path group (in2reg, reg2reg, reg2out, in2out) for the view.
report_timing -unconstrained -max_paths 20 -view <v>Paths with no timing requirement, which never appear in slack summaries.
report_timing -late -max_paths 10 -view <v>The worst setup paths for the view.
report_timing -early -max_paths 10 -view <v>The worst hold paths for the view.
report_timing -late -path_type summary -view <v>A one-line-per-path summary instead of full path detail.
report_constraint -all_violators -view <v>Every violating pin for design rule and timing constraints.
report_constraint -all_violators -drv_violation_type {max_transition} -view <v>Only the maximum transition violations.
report_timing -debug unconstrained -view <v>Reasons why paths are unconstrained.
timeDesign -prePlace -outDir <dir>Timing analysis before placement with the net load ignored and ideal clocks. No DRV report files or DRV numbers in this mode. Reports per path group in <dir>.