Hello, this is Masuo.
This is the fourth installment of the "Timing Analysis Series."
The most difficult part of the training for newcomers was the timing analysis lecture. In this column, I would like to summarize the lecture materials and notes on timing analysis and introduce some of the points that I stumbled upon.
TimeQuest Timing Analyzer analysis results are expressed as "slack values". Here is what this means!
A negative slack value indicates a timing error.
Figure 1 shows the results of a timing analysis, in which TimeQuest Timing Analyzer determines whether a timing constraint is satisfied by a positive or negative slack value.
Figure 1. part of the timing analysis report
In the mind of the Masuo, "Slack value? is negative, timing error ????" was. Understanding the slack value was very difficult. I was able to understand the slack value by understanding the following four parameters.
・Data Arrival Time (Data Arrival)
・Clock Arrival Time
・Setup Data Required
・Hold Data Required
Four Slack Value Parameters
To understand slack values, I have identified four parameters.
Data Arrival Time
The time it takes for data to arrive at the D input of the receive register.
From Figure 2, (Equation 1) can be derived.
Figure 2: Schematic of Data Arrival Time
Clock Arrival Time
Time for the clock to arrive at the clock input of the receive register.
From Figure 3, (Equation 2) can be derived.
Figure 3. Schematic of Clock Arrival Time
Setup Data Required
For the receiving register to correctly receive data, the signal must arrive within this time.
From Figure 4, (Equation 3) can be derived.
Figure 4. Schematic of Setup Data Required Time
Hold Data Required Time
For the receiving register to receive data correctly, the signal must arrive after this time. Earlier than this time interferes with data from the previous cycle.
From Figure 5, (Equation 4) can be derived.
Figure 5: Schematic of hold data required time
Equation to Define Slack Value
The slack value can now be understood from the formula defining the operating frequency (Fmax ) and the above four parameters. For the definition formula of operating frequency (Fmax ), please refer to "Timing Analysis Series 1: Concepts of Timing Analysis".
◆Setup Slack
Setup slack is the timing margin at which the setup data request time is satisfied. It guarantees that data will arrive in time to satisfy the latch.
Setup slack = setup data request time - data arrival time
Substitute (Equation 1) (Equation 4) here
= (clock arrival time - Tsu ) - ( transmit edge + TCLK1 + μTco + TdataDelay )
Substitute (Equation 2)
= (Receive Edge + TCLK2 - Tsu ) - ( Transmit Edge + TCLK1 + μTco + TdataDelay )
= (received edge - transmitted edge) + TdataDelay + (TCLK2 - TCLK1) - Tsu - μTco
Substituting (Equation 5)
= 1 clock cycle - 1/Fmax
*1 clock cycle is the desired operating frequency. 1/Fmax is the result of the operating frequency calculation.
◆Hold Slack
Hold slack is the timing margin at which the hold data request time is satisfied. It ensures that latch data is not interfered with by data from another rising edge. It also prevents data from being pushed through.
Hold Slack = Data Arrival Time - Data Request Time for Hold
= 1 clock cycle - 1/Fmax
*1 clock cycle is the desired operating frequency. 1/Fmax is the calculated operating frequency.
Therefore,
From (Equation 6), the slack value is the difference between the "desired operating frequency" and the "operating frequency calculated for feasibility in the actual user design".
In other words, the slack value is the gap between the "ideal" and "actual" operating frequency.
Masuo is also struggling to face the gap between the ideal and the reality every day. I am trying my best every day to get one step closer to the ideal!
Summary
When slack value > 0 Timing is satisfied
When slack value < 0 Timing error
New Engineer's Blush Blog Article List