Static Timing Analysis (STA): The Nervous System of Design

 Static Timing Analysis (STA) in chip design can be  correlated with the nervous system of the human body. Below are few analogies :

  • Signal Propagation
    • In STA, Signal propagation from one sequential element to other element is analyzed and it is make sure that it meet requirement such as Setup/Hold slack.
    • Similarly, Nervous systems ensures that nerves signals propagate properly between brain, spinal cord and other body part.
  • Critical paths
    • in STA, it is really important to identify and critical paths
    • same ways, in body it is important to analyze critical paths such as spinal cord and 
  • Constraints
    • In STA, Constraints plays import role for critical paths.
    • The nervous system also has constraints, such as reaction times, which must be within limits for the body to respond effectively.
  • Optimization:
    • STA helps optimize the design to minimize timing violations by following constraints.
    • The nervous system adapts and optimizes signal transmission, for example, by strengthening neural pathways through practice and learning.

Example

STA Example: In a chip, if a signal takes too long to propagate through a critical path, it may cause a timing violation, leading to incorrect operation.

Nervous System Example: If a nerve signal is delayed (e.g., due to nerve damage or a condition like multiple sclerosis), it can result in slow or impaired responses, such as delayed reflexes or difficulty in movement


STA Terminologies

Clock

  • as majority of ASIC designs are Synchronous in nature where data handshaking ( launching + capturing) is done at specific interval of time which is controlled by Clock.
clock


  • below are STA terminologies w.r.t clock :
    • Clock period : it is smallest duration after which whole clock signal repeats. it depicts the frequency of any clock. The time taken to complete one clock is called clock period. We can also say, the time duration between two conjugate rising edge or two conjugative falling edge.
    • Clock frequency : Reciprocal of clock period is called clock frequency. It indicates the number of clock cycle repetition per unit time
    • Rising edge : It is edge where clock toggles from low to high level. It is also called positive edge.
    • Falling edge: It is edge where clock toggles from high to low level.  It is also called negative edge.
    • Clock level : it is constant high or constant low level is called level high and level low respectively. 
    • Rise time : Time requires to rise the clock edge from 10% (or 20%) to 90% (or 80%) of the maximum voltage. In real life, clock edge can't be sharp 90 degree. it will look like as below :
rise and fall time
    • Fall time : Time requires to fall the clock edge from 90% (or 80%) to 10% (or 20%) of the maximum voltage.
    • Transition time : Time requires to change the logic level of a signal either from 0 to 1 or from 1 to 0 is called transition time.
    • Pulse width : The time difference between (rising edge and falling edge)  or  (falling edge and rising edge) of clock is called the pulse width
min pulse width


    • Duty cycle : Duty cycle is defined as the ratio of on time of clock (pulse width) to the clock period in percentage:

    • duty cycle


    • Jitter : Jitter is deviation of clock edge from its ideal position. Jitter can impact Timing analysis hence it is consider as one of the part of Uncertainty. 
    • Jitter

    • Clock latency : 
Clock Latency
      • it is total delay from clock source to destination pin/sink pin.
      • Two types of latency is there : 1. source latency 2. network latency
      • Source Latency : it is the delay from clock source (such as Pll) to clock definition point.
      • Network Latency : it is total delay from clock definition point to destination/sunk pin.
      • Total clock latency : Source Latency + Network Latency 

Clock definition in Synopsys Design Constraints (SDC) file

  • in sdc file, any clock can be defined using Clock name, clock period, clock duty cycle, clock definition point. Clock definition point is generally Input ports. 
    • create_clock -name <name> -period <ns> -waveform {<rise_time> <fall_time>} <source>
    • e.g
    • create_clock -name CLK -period 10 -waveform {0 5} [get_ports clk]

  • There are three types of clock exists :
    • Master/Main clock : Clock defined on any input port is referred as "Main/Master Clock"
    • Generated clock :  Clock defined on any internal pin is referred as "Generated Clock". to defined generated clock, master clock name and clock definition is required,
    • Virtual clock : if there is no clock definition point, then that clock is referred as "Virtual clock"
If you like the explanation, Like the post and  Please share your feedback if any further terminology/point needs to be discussed. 


Similar posts on STA :

Challenge 11 : Setup/Hold slack calculation

Challenge 6 : Advanced STA - calculate slack timing report

Challenge 1 : Advanced STA - calculating setup slack

Comments

  1. If a timing violation is found during STA,
    adding buffers or change logic placement is a common optimization technique ?

    ReplyDelete
    Replies
    1. No
      Without understanding root cause of timing violation, you can't apply fixes.
      There are multiple fixing methods are there. It depends on the scenario

      Delete

Post a Comment