AdvancedPrimeTime guide question 48 of 65Source PDF page 37

How do you make PrimeTime remember the source file and line number of each exception, and what's the hard restriction?

From PDVerse PrimeTime STA Interview Guide · pdVerse Mentor Guide

Ten-second Interview Answer

Set sdc_save_source_file_information to true - it defaults to false - and PrimeTime records the file and line of every exception command. The hard restriction is that it can only be changed before any exception has been input.

Complete Technical Explanation

PrimeTime can tag each timing exception with where it came from, but you have to ask for it up front. The variable is sdc_save_source_file_information, and its default is false, so nothing is recorded unless you turn it on. The restriction is one of ordering: the value can only be changed before any exception has been input. That means it belongs in your setup file, or on the very first lines of the session. Once even a single exception command has run, an attempt to set the variable produces a CMD-013 error and the value is left unchanged - there is no way to retrofit the information onto exceptions already in memory, so the only recovery is to restart the session with the variable set first. The scope of the tracking is the four exception commands: set_false_path, set_multicycle_path, report_exceptions, or with [ location = multi.tcl:17 ] next to the exception. The value of all this is traceability. On a design whose constraints arrive from several teams and several generated Tcl files, the difference between knowing that a path is masked and knowing which line masked it is the difference between a five-minute conversation and an afternoon of grepping.

In Pd / Signoff

On a large SoC you inherit an SDC split across dozens of files plus generated Tcl. Enabling this in the tool setup file means every report_exceptions line, and every dominant or overridden exception in report_timing -exceptions, names the file and line that created it - so when a path turns out to be masked you go straight to the owner and the commit instead of searching thousands of constraint lines.

Common Trap

Trying to enable it after sourcing the SDC. The command returns CMD-013, the variable stays at false, and engineers conclude the feature is broken rather than mis-ordered. Setting it mid-session also does not retroactively tag exceptions already read in - you must restart with the variable set before the first exception command.

Expect Next

If an exception command sits inside a foreach loop, which line number does PrimeTime report?

Topic And Primetime Commands

Timing Exceptions / False Paths. set_false_path, set_multicycle_path, set_max_delay, set_min_delay

Keep building interview depth

Continue practising STA

Continue learning free

Get a practical low-power chapter

Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.