Skip to content
Ch 14 / 16 Chapter 14: Extraction and signoff correlation
CHAPTER 14

Extraction and signoff correlation

Every delay after routing rests on the resistance and capacitance that an extractor reads from the wires. The extractor inside Innovus and the extractor used at signoff are different programs, so they never agree exactly. This chapter checks that the extraction is complete, that the two sides run with the same settings, and that the remaining gap in timing is measured, traced to causes and bounded.

14.1 Stage purpose

RC extraction measures the resistance (R) and capacitance (C) of the routed wires and vias. The result is a set of parasitics that delay calculation turns into net delay and into the load seen by each cell. Innovus stores them in an RC database, written RCDB, and can write them out as SPEF, the Standard Parasitic Exchange Format, one file for each RC corner. An RC corner is a named set of process data, temperature and scale factors for extraction.

Two extractors matter in this chapter. The in-tool extractor produces the numbers that optimisation and in-tool timing use. The signoff extractor, Standalone Quantus, produces the numbers that the signoff timing run uses. Both read the same geometry, but they model the capacitance differently, and the in-tool engines trade some accuracy for speed. The gap between them is the subject of this chapter.

Effort levelEngineLicence named in the referenceRole in the flow
not applicable (preRoute engine)preRouteNo Quantus licenceFast estimate from the density of nearby wires. Coupling is not reported. Used for early timing only.
lowNative detailedNo Quantus licenceDetailed geometry measurement with a capacitance table. Scale factors are recommended.
mediumTQuantusNo Quantus licenceImplementation-phase engine for newer nodes. Needs a Quantus technology file. Scale factors are optional.
highIQuantusQuantus XL licenceNear-signoff accuracy, recommended after ECO. Supports incremental extraction.
signoffStandalone QuantusQuantus licenceHighest accuracy, used for signoff. Scale factors are not supported for this level.

Capacitance between wires deserves a closer look, because it is where the engines differ most. Figure 20 shows one victim wire with two neighbours on the same layer and one wire above it. Each neighbour couples to the victim, and the capacitance to the substrate and to everything else is the ground capacitance. To save run time, the native extractor lumps a small coupling capacitance into the ground capacitance. Three thresholds decide which couplings are small. A filter mode combines the relative and the coupling thresholds, and the total threshold acts on its own. Lumping keeps the total capacitance almost unchanged and removes the aggressor, so the timing tool can no longer see the crosstalk delay that aggressor would cause.

This chapter keeps four things apart. Tool completion means the extraction or timing command returned. Analysis coverage means every net has parasitics in every active view and RC corner. Stage qualification means the gap between in-tool and signoff results is known and inside your project budget. Signoff is the project signoff run itself, which this chapter does not replace.

Three evidence classes are used. Preliminary evidence comes from preRoute extraction, from native extraction whose scale factors have not been checked against signoff, or from a run on an unfinished route. Implementation evidence comes from postRoute extraction and timing on the final routed database. Signoff evidence comes from Standalone Quantus extraction and the signoff timing engine, run with the project signoff setup on the final database. Whether a signoffTimeDesign run inside Innovus counts as your project signoff evidence is a project decision. A difference between two runs of different classes is a correlation result. It is not a pass.

a1va2xL1L2PM2 tracks, victim v on track 8, pitch PM2 wireM3 wire, crossinglumpedtrack guideL1, L2: facing length of a1, a2 along vCost ledger, illustrativecomponentsignoffnativeCg to ground, fF0.7920.956Cc to a1, fF0.5060.499Cc to a2, fF0.138lumpedCc to x, fF0.040lumpedtotal C, fF1.4761.455coupling kept, fF0.6840.499R, ohm140.4134.8Fitted scale factors if you scaledcap 1.014 res 1.042 xcap 1.37The xcap factor hides a filter gap.Match the thresholds first.Native reads 1.4 percent low on Cand 4.0 percent low on R. Not tool data.
Figure 20. One victim wire, two aggressors and one crossing wire, extracted by the signoff engine and by the native engine, with the cost ledger
Read it. The victim v runs on M2 track 8. Aggressor a1 runs beside it for the length L1 and aggressor a2 for the shorter length L2. The M3 wire x crosses v without touching it. The amber dashed boxes mark the two coupling capacitances that the native coupling filter lumps to ground, a2 and x. The ledger on the right lists the capacitance and resistance of v for each engine, and the last block shows the scale factors that fitting the two engines would give. The native run uses thresholds set so that only a2 and x are lumped: with the default total threshold of 5 fF, a net this small would have all its coupling lumped. All values are illustrative.

Scale factors are the second tool. A scale factor multiplies the extracted capacitance, coupling capacitance or resistance of an RC corner, so that the native numbers move toward the signoff numbers. The ledger shows why a scale factor is not a cure for everything. The fitted cap and res factors are small and describe an engine offset. The fitted coupling factor of 1.37 describes something else: two couplings that the filter removed. Match the filter first, and fit only what is left. The factors come from one net here only to show the idea: a real fit uses every net of the SPEF pair, as generateRCFactor does.

The flow that the rest of the chapter follows is drawn in Figure 21 in Section 14.7.1.

14.2 Entry prerequisites

Must already be trueWhy
Chapters 1 to 13 passed, routing is final, fill is present and the DRC is cleanExtraction reads the final geometry. Fill changes the capacitance, as Chapter 13 shows.
The process node is set with setDesignMode -processThe reference states that the node assigns the default coupling thresholds, so a missing node means different filters.
The technology data is available: a capacitance table for native detailed extraction above 32 nm, and a Quantus technology file for the other engines and for preRoute at 32 nm and belowEach engine reads a different file, and a file for the wrong corner gives plausible but wrong numbers.
Signoff extraction is available, either as a Standalone Quantus licence or as signoff SPEF files from the same routed databaseThere is nothing to correlate against without it.
The constraints, views, derates, OCV method and SI settings of the signoff run are written downCards X-07 and X-08 compare the session against this record.
A project budget for the in-tool to signoff difference exists, for net C, net R and for setup and hold slack per viewThis book sets no such numbers.

14.3 Relevant files and analysis context

The inputs are the routed database, the capacitance table or Quantus technology file for each RC corner, and, when signoff extraction runs from Innovus, a layer map between the LEF names and the technology file. The reference states that the layer map is required for Standalone Quantus, and that fill needs a stream layer map as well when its data is passed to Quantus. The outputs are the RCDB in memory, saved RCDB directories, SPEF files, and the timing report directories of both runs.

Four groups of settings decide what the numbers mean: setExtractRCMode, the RC corner scale factors, setAnalysisMode with setDelayCalMode and setSIMode, and the timing derates. The derates deserve a warning. The reference states that set_timing_derate can only be used on the command line and cannot be imported as part of an SDC file. Innovus therefore takes derates only from the session, and a derate written in an SDC does not reach it. A signoff run may read derates from its own SDC or scripts, so the mismatch can run in either direction. Compare both sides.

The scale factors belong to the RC corner, so saving the design with saveDesign saves them in the view definition file. Restoring the design restores them. Thus, record the factors with every comparison, because a factor that is applied silently moves the numbers it is meant to explain.

Use the same routed database for both extractors. The reference states that for postRoute correlation the native extraction must run on the same routed design that produced the signoff SPEF. A signoff SPEF from a design that has had one more ECO is a comparison of two different designs.

14.4 Checks and command cards

14.4.1 Pre-stage checks

Before extraction, store four baselines so that a later difference can be attributed: the routed database saved with saveDesign after the fill checks of Chapter 13, the settings records of X-01 and X-07, the post-route timing baseline of Chapters 11 and 12, and the constraint and derate record of the signoff setup.

14.4.2 Post-stage checks

X-01Mode and RC corner record
Question it answersWhich engine, coupling filter and technology data will the in-tool numbers come from, and do they match the signoff extraction setup?
StageBefore extraction
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded, process node set, RC corners defined in the MMMC setup, routing complete. No extraction is needed to read the mode.
Legacy UI
report_unit_parasitics -all_layers -rc_corner <rc>
get_rc_corner <rc> -rcCornerAttribute
getExtractRCMode -engine -effortLevel -coupled
getExtractRCMode -capFilterMode -coupling_c_th -relative_c_th -total_c_th
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-engine, -effortLevel preRoute or postRoute, and low (native detailed), medium (TQuantus), high (IQuantus) or signoff (Standalone Quantus). The default level is low, but the reference makes TQuantus the default for 65 nm and below when a Quantus technology file is defined, so read the engine back. PreRoute reports no coupling.
-coupled true outputs ground and coupling capacitance separately. The reference says false is typical for static timing and that signal integrity analysis needs true.
-capFilterMode relOnly, relAndCoup or relOrCoup: how the relative and coupling thresholds combine to lump coupling to ground. The default is relOnly.
-coupling_c_th, -relative_c_th, -total_c_th the three thresholds. Defaults are 3 fF, 0.03 and 5 fF unless the process node sets others. The filter mode combines the relative and coupling thresholds only. Nets below the total threshold have coupling grounded whatever the filter mode.
-all_layers, -rc_corner report unit R and C for every layer of one RC corner, at minimum width and default spacing.
-rcCornerAttribute stands for one attribute name per call, for example -postRoute_cap, -postRoute_res, -postRoute_xcap, -T, -cap_table or -qx_tech_file.
Scope and viewExtraction mode is global to the session. Unit parasitics and RC corner attributes are per RC corner.
Licences and scale factor defaultsNative detailed and TQuantus need no Quantus licence, IQuantus needs Quantus XL and Standalone Quantus a Quantus licence. All scale factors default to 1.0 except the clock net factors, whose default 0 means they follow the signal net factor.
Effect on sessionreads or reports only
OutputThe log and console show each mode parameter with its name, value, type and set-by-user flag. The unit report lists ohm per micron and fF per micron per layer.
Fields that matterEngine, effort level, coupled state, filter mode and thresholds, with the set-by-user flags. Per RC corner: unit R and C per layer, scale factors, temperature and technology file names.
HealthyEngine, thresholds and corner data match the signoff setup.
WarningThresholds are defaults, not compared with signoff.
Hard stopCoupling off in an SI flow, or a wrong technology file.
Common misuseReading a default as a decision, or comparing unit values taken at a different width or spacing.
Root cause and fixSet the project values with setExtractRCMode, or correct the corner with update_rc_corner. The reference states that TQuantus supports only relAndCoup, and that a corner change in multi-mode multi-corner mode resets timing and RC data.
Rerun after a fixRerun X-01, then X-02 and every card after it.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-02Extraction run and RCDB
Question it answersDid extraction run with the intended engine on the final route, and is the stored RC database the one the timing run uses?
StageAfter final route and fill
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateRouting and fill final. X-01 passed.
Legacy UI
setExtractRCMode -engine postRoute -effortLevel <level>
extractRC
saveRC <name>.rcdb.d
report_rcdb <name>.rcdb.d
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-engine postRoute selects the detailed engines.
-effortLevel selects the engine variant, as X-01 lists.
saveRC saves the RC data in a directory named with the .rcdb.d suffix. Use it after extractRC or spefIn.
report_rcdb prints the header of one flat RCDB. It cannot read several RCDBs at once.
Scope and viewAll RC corners of the design. report_rcdb reads one saved directory.
Cost and side effectextractRC is an expensive analysis and replaces the RC data in memory. Timing commands read the RC database directly, so a SPEF file is optional. reset_parasitics deletes the data and keeps the extraction mode.
Effect on sessionchanges analysis configuration; updates the design database; writes files; runs an expensive analysis. Some commands in this card only read or report.
OutputThe RC database in memory, a saved .rcdb.d directory, and a header report.
Fields that matterRCDB version, platform, compression, source, design name, RC corners, Coupled, Node-loc and Statistical.
HealthyThe header lists every active RC corner, and Coupled matches the plan.
WarningRCDB saved before the last fill or ECO change.
Hard stopAn active RC corner is missing, or preRoute ran after routing.
Common misuseRestoring an RCDB on a different data model. The reference states that RC data restores only on a system of the same bit width.
Root cause and fixSet the mode, delete the old data with reset_parasitics if you need a clean start, then run extractRC again.
Rerun after a fixRerun X-02, then X-03 and every card after it.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-03Annotation coverage
Question it answersDoes every net that matters have parasitics, in every active view?
StageAfter extraction or SPEF
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateExtraction run, or SPEF read in for every active RC corner.
Legacy UI
report_annotated_parasitics -view <view>
report_annotated_parasitics -view <view> -list_not_annotated -max_missing <n> > <file>
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-view reports one analysis view. It is valid only in multi-mode multi-corner mode.
-list_not_annotated lists the nets without annotation.
-max_missing limits the number of missing annotations listed. The default is 1000.
Scope and viewOne view per call. Run it once for each active view.
Analysis coverageThis is the coverage check of the chapter. A clean extraction log says the engine finished. Only the annotation report says which nets it covered.
Effect on sessionwrites files. Some commands in this card only read or report.
OutputA summary by net type and annotation status, and optionally a list written to a file with the redirect.
Fields that matterAnnotated and not annotated counts for real nets, supply nets and other types. The names in the not-annotated list.
HealthyEvery real signal and clock net is annotated in every active view.
WarningOnly supply or tied nets lack annotation, each explained.
Hard stopAny real signal or clock net has no annotation.
Common misuseTaking a timing report as proof of coverage. A net with no annotation is not timed with its extracted wire R and C, and the report still shows a normal number.
Root cause and fixExtract again or read the missing SPEF. Then inspect the broken, floating and no-driver lists for netlist and extraction mismatches.
Rerun after a fixRerun X-03 for every view, then X-08.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-04SPEF out and in
Question it answersCan the in-tool parasitics leave the tool as SPEF, and can the signoff parasitics come in, for every RC corner?
StageAfter extraction
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateFor rcOut, extraction done. For spefIn, a SPEF file for each active RC corner from the same routed database.
Legacy UI
rcOut -spef <name>.spef.gz -rc_corner <rc>
spefIn <signoff>.spef.gz -rc_corner <rc>
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-spef names the output SPEF file. A .gz suffix compresses it.
-rc_corner, -view name the RC corner. In multi-corner mode, -view picks the corner of a view instead, and it belongs to rcOut only.
-cUnit sets the capacitance unit of the output, fF or pF. The default is pF.
-spef_field is for spefIn. It maps fields of a multi-value SPEF to RC corners on spefIn, in the order of the corner list.
Scope and viewOne RC corner per rcOut call. spefIn needs a file for every active RC corner.
Other spefIn options-extended reads the layer data of a Quantus extended SPEF. -scaleRC applies the postRoute scale factors of the RC corner to the SPEF read in, and -scaleNets limits that to a list of nets. Native factors applied to a signoff SPEF would move it away from signoff, so leave -scaleRC off for the comparison SPEF.
Effect on sessionupdates the design database; writes files
OutputA SPEF file, or parasitics annotated into the design.
Fields that matterThe file per corner, the unit, the corner mapping, and the annotation report after reading.
HealthyOne SPEF per active corner, right unit, X-03 clean.
WarningSPEF exists for only some corners, so reading has not started.
Hard stopSPEF from another database, or written without resistance.
Common misuseUsing a SPEF written with -noRes. The reference states it only speeds up third-party simulators in early stages, and that most tools expect resistance in the file.
Root cause and fixRegenerate the SPEF from the final routed database, with resistance, and state the capacitance unit.
Rerun after a fixRerun X-04, X-03 and X-08.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-05Net and arc comparison
Question it answersFor one chosen net, does the difference between in-tool and signoff lie in C, in R, in coupling or in delay calculation?
StageAfter both SPEF sets
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateThe same net reported from the in-tool parasitics and from the signoff parasitics. Run report_timing before reportDelayCalculation, as the reference advises, so the timing window and the aggressor slew are right.
Legacy UI
report_net_parasitics <net> -rc_corner <rc>
reportDelayCalculation -from <pin> -to <pin> -view <view> -si
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-rc_corner names the RC corner. It is required for report_net_parasitics.
-from, -to name the arc for reportDelayCalculation. A driver output to a load input gives a net delay, and an input to an output gives a cell delay.
-si adds the signal integrity detail of the arc. Add -show_all_attackers to list the small attackers as well.
-view names the view in multi-mode multi-corner mode.
Scope and viewOne net per call, one RC corner or view. spefIn annotates into the same database, so save the in-tool data with saveRC first and restore it with restoreRC to report both. Whether spefIn replaces it is not verified.
Why total C is not enoughThe report lists the probable worst attackers in order of coupling, not every attacker. A net can match on total capacitance and still miss an attacker, which is the case in Figure 20.
Effect on sessionwrites files
OutputA net parasitics report, and a delay calculation report for one arc.
Fields that matterTotal Cap, Total Res, Total XCap, Total Ground Cap and the coupling to each attacker. For the arc: net capacitance, rise and fall capacitance, total resistance and the delay type.
HealthyTotal C, R and coupling agree within the project budget.
WarningTotal C agrees, but coupling or attackers differ.
Hard stopR or total C on a critical net is outside the budget.
Common misuseChoosing easy nets. Take nets from the worst endpoints of X-08, and include one long net and one clock net.
Root cause and fixTrace the cause: thresholds in X-01, technology data in X-01, scale factors in X-06.
Rerun after a fixRerun X-05 on the same nets after each change.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-06Scale factors
Question it answersWhich scale factors bring the native extraction to signoff, and are they used only where they apply?
StageAfter X-01 is aligned
ProductInnovus Implementation. The signoff reference needs a Standalone Quantus licence, or signoff SPEF files given with -spefMapFile.
Required stateA routed design, signoff SPEF files from that routing or a Standalone Quantus licence, and RC corners defined.
Legacy UI
generateRCFactor -preroute false -postroute low -reference signoff -outputFile <f>
update_rc_corner -name <rc> -postRoute_cap {<f>} -postRoute_res {<f>}
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-preroute true by default. It generates factors for preRoute extraction on signal and clock nets.
-postroute low or medium. Without it no postRoute factors are generated.
-reference low, medium, high, signoff or externalSpef. The default is signoff.
-spefMapFile lists RC corner and SPEF file pairs. Use it with -reference externalSpef, as in generateRCFactor -preroute false -postroute low -reference externalSpef -spefMapFile -outputFile . The design must be fully routed and the SPEF must come from it.
-outputFile names the file that receives the factors, for use when you set them. The summary prints clock factors separately, so check them as well as the signal factors.
-postRoute_cap, -postRoute_xcap, -postRoute_res take one value for effort level low, two for low and medium, three for low, medium and high. A missing value is 1.
Scope and viewPer RC corner. The command prints separate factors for signal nets and clock nets.
Order of workThe reference sequence is: write the native SPEF with extractRC and rcOut, correlate it with the signoff SPEF, set the pre-route and post-route factors on the RC corner, and extract again. For preRoute factors, extract at the preRoute stage and not on the final route, so that the factors include the gap between early and final routes. The reference also advises computing preRoute factors without the layer-independent extraction mode.
Effect on sessionchanges analysis configuration; updates the design database; writes files; runs an expensive analysis
OutputA scale factor summary per RC corner and engine, and the output file.
Fields that matterCap, Res, XCap, Clock Cap and Clock Res factors for each RC corner and engine.
HealthyFactors fit the engine in use and a rerun closed the gap.
WarningFactors differ widely between corners, or XCap is far from one.
Hard stopFactors set for effort level signoff, or from other routing.
Common misuseUsing a factor to cover a filter or technology mismatch. Align X-01 first.
Root cause and fixAlign the filters, regenerate the factors, apply them with update_rc_corner, and extract again. A corner change resets RC data, so read the signoff SPEF in again.
Rerun after a fixRerun X-01, X-02, X-03 and X-08 after every change of factors.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-07Equal timing settings
Question it answersDo the in-tool and signoff timing runs use the same analysis type, derates, CPPR, SI and delay calculation settings?
StageBefore the timing comparison
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateViews and constraint modes loaded, derates applied, signoff setup record at hand.
Legacy UI
getAnalysisMode -analysisType -cppr
getDelayCalMode -SIAware
report_timing_derate
get_global timing_cppr_threshold_ps
getDesignMode -earlyPBAMode -pessimisticMode
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-analysisType single, bcwc or onChipVariation.
-cppr none, both, setup or hold: removal of clock path pessimism.
-aocv, -socv also readable with getAnalysisMode: they are booleans that switch AOCV and SOCV analysis on. The libraries they use are named in the library set.
-clkSrcPath, -clockPropagation also readable with getAnalysisMode. The reference says timeDesign -postRoute sets -clkSrcPath true and -clockPropagation sdcControl, so record them after the run.
-SIAware true adds crosstalk-induced delay to delay calculation. It needs multi-mode multi-corner mode and the on-chip variation analysis type. The reference says timeDesign -postRoute sets it to true, so read it after the run.
-delay_corner limits the derate report to one delay corner. The default is all of them.
-earlyPBAMode, -pessimisticMode earlyPBAMode adjusts in-tool delay calculation toward Tempus path-based results. pessimisticMode adds pessimism to limit optimistic outliers, and the reference says it must not be used when Tempus is the final signoff engine.
Scope and viewSession settings and per-corner derates.
CPPR thresholdtiming_cppr_threshold_ps is the most pessimism that CPPR may leave in a path. The reference gives a default of 20 ps. Compare it with the signoff value rather than assuming they agree. With a non-zero value the in-tool run can leave up to that much pessimism in a path. The reference also lists setDelayCalMode -signoff_alignment_settings, false by default, so record whether it was set.
Effect on sessionreads or reports only
OutputA list of values and a derate table with early and late factors for clock and data paths.
Fields that matterAnalysis type, OCV method, CPPR mode and threshold, SI mode, derates per corner, and the early PBA and pessimistic modes.
HealthyAnalysis type, OCV, CPPR, SI and derates match on both sides.
WarningOne setting differs, and its effect is measured and recorded.
Hard stopDerates or OCV set on one side only, or pessimistic mode with Tempus.
Common misuseAssuming the SDC carries the derates. Innovus cannot import set_timing_derate from an SDC file, so derates set in one session do not reach a run that reads the SDC alone, and derates written in an SDC are not imported by Innovus.
Root cause and fixApply the same derates and OCV settings on both sides, or remove them on both, and record which.
Rerun after a fixRerun X-07 and X-08.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
X-08Timing and endpoints
Question it answersHow far apart are the in-tool and signoff timing results in each view, and which endpoints and path stages account for the gap?
StageAfter X-07
ProductInnovus Implementation for timeDesign and report_timing. signoffTimeDesign runs Quantus and Tempus, which are separate products with their own licences.
Required stateSame routed database, equal settings, the signoff licences available.
Legacy UI
signoffTimeDesign -outDir <dir>
report_timing -view <view> -path_type end
timeDesign -postRoute -outDir <dir>
signoffTimeDesign -reportOnly -outDir <dir>
report_timing -view <view> -path_type full_clock -from <pin> -to <pin>
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-expandedViews is a timeDesign option that writes a report directory for each view. signoffTimeDesign writes expanded views by default and has -noExpandedViews.
-outDir, -prefix name the report directory and the file prefix, so two runs do not overwrite each other.
-reportOnly skips extraction and uses the parasitics in memory. For signoffTimeDesign this is the form to use after spefIn.
-noEcoDB turns off the ECO timing database that signoffTimeDesign writes for each view.
-path_type end prints one line per endpoint with cause, slack and arrival time.
-path_type full_clock prints the full path with the launch and capture clock paths. Use it with -from and -to on one path.
-max_paths, -view the number of worst paths, and the view in multi-mode multi-corner mode.
Scope and viewAll active views for the summaries. One view per report_timing call.
Report headerset_global timing_report_timing_header_detail_info extended adds the analysis mode, the active views, the CPPR setting and the delay calculation engine to report headers. Use it so the two reports state their own settings.
Effect on sessionupdates the design database; writes files; runs an expensive analysis. Some commands in this card only read or report.
OutputA timing summary per view and for all views together, report directories, an ECO timing database per view from signoffTimeDesign, an endpoint list and full path reports.
Fields that matterWNS, TNS, violating paths and all paths per view, setup and hold. Per endpoint: slack, arrival, clock path arrival, CPPR credit, and the net and cell delay of each stage.
HealthyWNS, TNS and endpoint lists agree per view within budget.
WarningTotal slack agrees, a few endpoints differ, each traced to a stage.
Hard stopIn-tool optimistic beyond budget in any required view, or a signoff violation has no in-tool endpoint.
Common misuseComparing only WNS, or runs from different databases or view lists. The worst endpoint can differ while the gap is small, and the combined TNS takes the worst slack at each endpoint across views, so it is not the sum of the per-view values.
Root cause and fixWalk the causes in Section 14.7 one source at a time, find the first stage where the two reports differ, and use X-05 on that net.
Rerun after a fixRerun X-08 after every change in extraction, scale factors or settings.
VerificationLegacy syntax checked against the Innovus Legacy text reference.

14.5 Required reports, artefacts and how to read them

ReportFields that support qualificationEvidence class
Extraction mode and RC corner record (X-01)engine, effort level, coupled, filter mode, thresholds, unit R and C per layer, scale factorsimplementation
RCDB header (X-02)RC corners listed, Coupled, source and design nameimplementation
Annotation summary (X-03)not annotated nets by type, per viewimplementation
SPEF files (X-04)one per RC corner, unit, from the final databaseimplementation, or signoff for the signoff SPEF
Net and arc reports (X-05)Total Cap, Total Res, Total XCap, attackers, arc RC summaryimplementation and signoff, compared
Scale factor file (X-06)cap, res, xcap, clock factors per corner and enginepreliminary until a rerun confirms it
Settings record (X-07)analysis type, OCV, CPPR, SI mode, deratesimplementation and signoff, compared
Timing summaries, endpoint and path reports (X-08)WNS, TNS, violating paths per view; endpoint slack, clock paths, stage delaysimplementation and signoff, compared
Reading a pair of net reportsSynthetic report, not tool output
report_net_parasitics v -rc_corner rc_max -file_name v_native.rpt     ## in-tool, illustrative
Net: v
RC Corner: rc_max
Total Cap = 1.455 ff
Total Res = 134.800 ohms
Total XCap = 0.499 ff
Cap Distribution:
Total Ground Cap = 0.956 ff
XCap With Nets:
a1 = 0.499 ff

report_net_parasitics v -rc_corner rc_max -file_name v_signoff.rpt     ## signoff SPEF read in, illustrative
Net: v
RC Corner: rc_max
Total Cap = 1.476 ff
Total Res = 140.400 ohms
Total XCap = 0.684 ff
Cap Distribution:
Total Ground Cap = 0.792 ff
XCap With Nets:
a1 = 0.506 ff
a2 = 0.138 ff
x = 0.040 ff

Let us read the pair against Figure 20. Total capacitance differs by 1.4 percent and resistance by 4.0 percent, both low in the native run. Offsets of this size are what a scale factor is for, and both are small enough to judge against the project budget. The coupling is different. The native report shows 0.499 fF of coupling and one attacker, the signoff report 0.684 fF and three. The ground capacitance in the native report is 0.164 fF higher. The two missing attackers carry 0.178 fF, so most of that capacitance moved to ground.

Thus, the two reports agree where a quick glance looks, on total capacitance, and disagree where timing is sensitive. A fitted coupling factor of 1.37 would make the coupling number look right, but total capacitance would then read 1.640 fF against 1.476 fF at signoff, about 11 percent high, because the lumped capacitance is still in the ground term. The decision is to compare the thresholds of X-01 with the signoff command file, and to fit scale factors only after that. All values here are illustrative and are not from a tool run.

14.6 Healthy, suspicious and hard-stop examples

FindingStatusWhy
Engine and thresholds match the signoff setupPASSThe two extractors answer the same question.
Thresholds are tool defaults, not comparedWARN / REVIEWDefaults come from the process node and may differ from signoff.
In-tool and signoff runs use different routed databasesHARD STOPThe comparison measures two different designs.
Only supply nets are not annotatedWARN / REVIEWExpected, but each net needs a stated reason.
A real signal net has no annotationHARD STOPThe net is timed without its wire R and C.
Derates set on one side onlyHARD STOPThe gap contains a setting difference, not an extraction difference.
Scale factors set for effort level signoffHARD STOPThe reference does not support scaling at that level.
In-tool optimistic beyond the project budgetHARD STOPImplementation closes timing that signoff will fail.
Per-domain derates in a single-supply blockNOT APPLICABLENo power domains exist.

14.7 Debugging, corrective action and reruns

A timing gap has several independent sources, and they hide each other. Change one source at a time, rerun X-08 after each change, and write down the gap that remains. The table lists the usual sources, the symptom that points to each, and the card that checks it.

Source of differenceSymptomCard
Coupling filter or engine differsTotal C close, coupling and attacker list differentX-01, X-05
Technology data or temperature differsUnit R or C differs on one or more layersX-01
Parasitics missingNets not annotated in one viewX-03
Engine offsetA near-uniform ratio on C or R across netsX-06
Fill seen differentlyCapacitance differs on layers that carry fillX-01, Chapter 13
Derates, OCV method or CPPR differStage delays differ in the same ratio on clock or data pathsX-07, X-08
SI mode or delay calculation differsNet delay differs although net RC matchesX-07, X-05
Path-based against graph-based analysisSame stage delays, different slack at the endpointX-08

14.7.1 How to bound the remaining gap

To bound a difference means to give an upper limit for it and to show where it came from. Three steps do that. Figure 21 shows the flow they belong to.

Routed database with fillone database feeds both branchesIn-tool extractRCsetExtractRCMode: native, TQuantus, IQuantusSignoff extractionStandalone Quantus on the same routingrcOut, timeDesign -postRoutein-tool SPEF and in-tool timingsignoffTimeDesignQuantus and Tempus; -reportOnly after spefInComparenet C and R, annotation, WNS, TNS, endpoint deltasgenerateRCFactor, update_rc_cornerscale factors for the native enginererun extraction and timing after every scale factor changeEqual on both sides: routed database, SDC, views, derates, OCV mode, CPPR, SI mode
Figure 21. Extraction and correlation flow from one routed database
Read it. Read the boxes from the top. Both branches start from the same routed database. The left branch extracts and times in the tool, the right branch extracts and times with the signoff engines. The compare box reads both, and the amber box at the bottom turns the gap into scale factors. The dashed loop returns to extraction, because a changed scale factor changes every number below it. The strip at the bottom lists what must be equal on both sides before the compare box means anything.

First, make the two runs comparable, and do it before anything else: the same routed database, the same SDC, the same views, the same derates, OCV, CPPR and SI settings, and the same RC corner data. The strip at the bottom of Figure 21 lists them. A settings difference found later hides inside every extraction number, and a difference found before this step is not yet a measurement.

Second, decompose the extraction gap. Align the filters, then fit the scale factors, and record the gap after each change in a short table. A source that moves the gap is a cause. A source that does not move it is ruled out.

Third, state the residual against the endpoint list and not only against WNS. Take the endpoint lines from X-08 for both runs, subtract the slack of matching endpoints, and report the largest difference and its sign. The sign matters. A residual where the in-tool run is optimistic is a risk. A residual where it is pessimistic costs area and power. Your project budget decides how large either may be. The comparison script is yours to write, since the endpoint lines are plain text. This book prints no database path for it.

14.7.2 Worked example: an optimistic in-tool run

Suppose the setup WNS of the worst view is +0.021 ns in the tool and -0.034 ns at signoff, a gap of 0.055 ns. The routed database is the same. The signoff run applied derates that were written in its SDC, and the in-tool session never received them. All values here are illustrative.

StepChangeIn-tool WNS (ns)Signoff WNS (ns)Gap (ns)
0Baseline+0.021-0.0340.055
1Apply the signoff derates in the tool (X-07)+0.004-0.0340.038
2Match the filter mode and thresholds to the signoff command file (X-01)-0.011-0.0340.023
3Apply the factors from generateRCFactor and extract again (X-06)-0.027-0.0340.007

Step 1 changes the in-tool number. Innovus cannot import set_timing_derate from an SDC file, so the derates in the signoff SDC never reached the session, and part of the original gap was a settings error and not an extraction difference. Step 2 moves the in-tool number again because the removed attackers return, as in Figure 20. Step 3 removes the engine offset. The residual of 0.007 ns is what extraction and delay calculation still differ by, and it is a number you can compare with the project budget.

The decision depends on that budget. If the residual is inside it, X-08 is a pass for this view, and you rerun X-03 to X-08 for the other views. If it is outside, the next sources in the table are path-based against graph-based analysis and SI mode. Note that both runs now fail setup. Closing timing is the work of Chapter 12, and this chapter has shown that the failure is real and not an artefact of the extractor.

14.8 Exit criteria and stage checklist

  • Mode. Extraction mode, filter and thresholds recorded and equal to the signoff setup.
  • Technology. RC corner data and scale factors recorded, unit values checked per layer.
  • Database. RC database saved from the final route and fill, with every active RC corner in its header.
  • Coverage. Every real signal and clock net annotated in every active view.
  • SPEF. One SPEF per RC corner from the same routed database, with the unit stated.
  • Factors. Scale factors generated for the engine in use, applied, and confirmed by a rerun.
  • Settings. Analysis type, derates, OCV method, CPPR and SI mode equal on both sides.
  • Timing gap. In-tool and signoff slack compared per view and per endpoint, with the residual inside the project budget.

Thus, extraction is qualified when it is complete, runs with settings you can name, and sits within a stated, traced distance of signoff. A matching WNS alone does not show this, because two errors can cancel. In the next chapter, Chapter 15 shows how to record an ECO and decide which of these checks to run again.

CHAPTER 14 SANITY CHECKS

14.9 Sanity check cheat sheet: Extraction and signoff correlation

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. Judge every row against your project budgets, because this book sets no universal limits.

CardCheck and whenCommandHealthyReviewHard stop
X-01Mode and RC corner record
Before extraction
report_unit_parasitics -all_layers -rc_corner <rc>
get_rc_corner <rc> -rcCornerAttribute
getExtractRCMode -engine -effortLevel -coupled
Engine, thresholds and corner data match the signoff setup.Thresholds are defaults, not compared with signoff.Coupling off in an SI flow, or a wrong technology file.
X-02Extraction run and RCDB
After final route and fill
setExtractRCMode -engine postRoute -effortLevel <level>
extractRC
saveRC <name>.rcdb.d
The header lists every active RC corner, and Coupled matches the plan.RCDB saved before the last fill or ECO change.An active RC corner is missing, or preRoute ran after routing.
X-03Annotation coverage
After extraction or SPEF
report_annotated_parasitics -view <view>
report_annotated_parasitics -view <view> -list_not_annotated -max_missing <n> > <file>
Every real signal and clock net is annotated in every active view.Only supply or tied nets lack annotation, each explained.Any real signal or clock net has no annotation.
X-04SPEF out and in
After extraction
rcOut -spef <name>.spef.gz -rc_corner <rc>
spefIn <signoff>.spef.gz -rc_corner <rc>
One SPEF per active corner, right unit, X-03 clean.SPEF exists for only some corners, so reading has not started.SPEF from another database, or written without resistance.
X-05Net and arc comparison
After both SPEF sets
report_net_parasitics <net> -rc_corner <rc>
reportDelayCalculation -from <pin> -to <pin> -view <view> -si
Total C, R and coupling agree within the project budget.Total C agrees, but coupling or attackers differ.R or total C on a critical net is outside the budget.
X-06Scale factors
After X-01 is aligned
generateRCFactor -preroute false -postroute low -reference signoff -outputFile <f>
update_rc_corner -name <rc> -postRoute_cap {<f>} -postRoute_res {<f>}
Factors fit the engine in use and a rerun closed the gap.Factors differ widely between corners, or XCap is far from one.Factors set for effort level signoff, or from other routing.
X-07Equal timing settings
Before the timing comparison
getAnalysisMode -analysisType -cppr
getDelayCalMode -SIAware
report_timing_derate
Analysis type, OCV, CPPR, SI and derates match on both sides.One setting differs, and its effect is measured and recorded.Derates or OCV set on one side only, or pessimistic mode with Tempus.
X-08Timing and endpoints
After X-07
signoffTimeDesign -outDir <dir>
report_timing -view <view> -path_type end
timeDesign -postRoute -outDir <dir>
WNS, TNS and endpoint lists agree per view within budget.Total slack agrees, a few endpoints differ, each traced to a stage.In-tool optimistic beyond budget in any required view, or a signoff violation has no in-tool endpoint.
CHAPTER 14 CHEAT SHEET

14.10 Command cheat sheet: Extraction and signoff correlation

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

CommandWhat it produces
Extraction settings and records
getExtractRCModeName, current value, type and set-by-user flag of every setExtractRCMode parameter.
getExtractRCMode -engine -effortLevel -coupledThe engine, the effort level and whether coupling capacitance is kept separate.
getExtractRCMode -capFilterMode -coupling_c_th -relative_c_th -total_c_thThe coupling filter mode and its three thresholds.
all_rc_cornersA Tcl list of the RC corner objects in the design. Add -active for the active ones.
get_rc_corner <rc> -rcCornerAttributeOne attribute of an RC corner. The attribute name replaces -rcCornerAttribute, for example -postRoute_cap or -qx_tech_file.
report_unit_parasitics -all_layers -rc_corner <rc>Unit resistance in ohm per micron and capacitance in fF per micron for every layer.
Setting up and running extraction
setExtractRCMode -engine postRoute -effortLevel lowSelects native detailed extraction. Changes the session.
setExtractRCMode -engine postRoute -effortLevel medium -extraCmdFile <f>Selects TQuantus, with the Quantus extra command file. Changes the session.
setExtractRCMode -engine postRoute -effortLevel signoff -qrcCmdType auto -lefTechFileMap <f>Selects Standalone Quantus with settings derived from Innovus. The layer map is required in auto mode. Changes the session.
setExtractRCMode -capFilterMode relAndCoup -coupling_c_th <fF> -relative_c_th <v> -total_c_th <fF>Sets the coupling filter. Changes the session.
setExtractRCMode -coupled trueKeeps ground and coupling capacitance separate, which signal integrity analysis needs. Changes the session.
extractRCThe RC database for the current routing. Changes the database and takes runtime.
reset_parasiticsDeletes the parasitic database and keeps the extraction mode. Changes the database.
saveRC <name>.rcdb.dThe RC data saved in a directory. Writes files.
restoreRC <name>.rcdb.dThe RC data restored from a directory, on a system of the same data model. Changes the database.
Parasitic files and annotation
report_rcdb <name>.rcdb.dThe header of one flat RCDB: corners, Coupled, source and design name.
report_annotated_parasitics -view <view>A summary of annotated and not annotated nets for the view.
report_annotated_parasitics -view <view> -list_not_annotated -max_missing <n>The nets without annotation, up to the given count.
report_net_parasitics <net> -rc_corner <rc>Total C, R, coupling and the worst attackers of one net.
rcOut -spef <name>.spef.gz -rc_corner <rc>A SPEF file of one RC corner, compressed by the suffix. Writes a file.
spefIn <signoff>.spef.gz -rc_corner <rc>Signoff parasitics annotated to an RC corner. Changes the database.
read_parasitics -rc_corner <rc> <f>.spef.gzSPEF or RCDB parasitics read for an RC corner, also for hierarchical designs. Changes the database.
Scale factors and technology data
generateRCFactor -preroute false -postroute low -reference signoff -outputFile <f>Cap, res and xcap factors per RC corner, from a comparison with signoff extraction. Writes a file and takes runtime.
generateRCFactor -preroute false -postroute low -reference externalSpef -spefMapFile <map> -outputFile <f>The same, using signoff SPEF files named in a map file. Writes a file.
update_rc_corner -name <rc> -postRoute_cap {<f>} -postRoute_xcap {<f>} -postRoute_res {<f>}New post-route scale factors for an RC corner. Can reset timing and RC data in MMMC mode.
create_rc_corner -name <rc> -cap_table <f> -T <temp>A new RC corner with a capacitance table and a temperature. Changes the session.
Timing settings that must match
getAnalysisMode -analysisType -cppr -aocv -socvThe analysis type, the CPPR mode and whether AOCV and SOCV are on or off.
getDelayCalMode -SIAware -socv_accuracy_modeWhether crosstalk delay is included and the SOCV accuracy level.
getDesignMode -earlyPBAMode -pessimisticModeThe delay calculation modes that move in-tool timing toward or away from signoff.
report_timing_derateGlobal and per-object derating factors for early and late, clock and data paths.
get_global timing_cppr_threshold_psThe most pessimism in ps that CPPR may leave in a path.
report_analysis_views -type activeThe active views of the multi-mode multi-corner setup.
In-tool and signoff timing
timeDesign -postRoute -expandedViews -outDir <dir>Extraction at the engine set by setExtractRCMode (native detailed at the low effort level), timing analysis and per-view setup reports. Changes the database and takes runtime.
timeDesign -postRoute -hold -reportOnly -outDir <dir>Hold reports from the extraction already in memory.
signoffTimeDesign -outDir <dir>Quantus extraction and Tempus timing, with a summary per view and an ECO timing database. Writes files and takes runtime.
signoffTimeDesign -reportOnly -outDir <dir>Signoff timing on the parasitics already in memory, for example after spefIn.
report_timing -view <view> -path_type end -max_paths <n>One line per endpoint with cause, slack and arrival.
report_timing -view <view> -path_type full_clock -from <pin> -to <pin>The full path with launch and capture clock paths.
reportDelayCalculation -from <pin> -to <pin> -view <view> -siDelay calculation detail for one arc, with signal integrity information.
set_global timing_report_timing_header_detail_info extendedAdds analysis mode, views, CPPR and delay calculation engine to report headers. Changes the session.