SlideShare a Scribd company logo
1 of 108
Download to read offline
Intro Arcs& Unateness Setup& Hold Paths SDC Report
Static Time Analysis
How to verify your chip timing
Ahmed Abdelazeem
Faculty of Engineering
Zagazig University
RTL2GDSII Flow, March 2022
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
What is Static Timing Analysis (STA)?
Static Timing Analysis (STA) is a method for determining if
a circuit meets timing constraints without having to simulate.
Static timing analysis:
Verifies Timing
verifies timing between synchronous clocks
does not verify functionality
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
What is Static Timing Analysis (STA)?
Static Timing Analysis (STA) is a method for determining if
a circuit meets timing constraints without having to simulate.
Static timing analysis:
Verifies Timing
verifies timing between synchronous clocks
does not verify functionality
Is Exhaustive
uses formal, mathematical techniques instead of vectors
does not use dynamic logic simulation
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
What is Static Timing Analysis (STA)?
Static Timing Analysis (STA) is a method for determining if
a circuit meets timing constraints without having to simulate.
Static timing analysis:
Verifies Timing
verifies timing between synchronous clocks
does not verify functionality
Is Exhaustive
uses formal, mathematical techniques instead of vectors
does not use dynamic logic simulation
Is Fast
significantly faster than gate level simulation
orders of magnitude Faster than Tx level (spice) simulation
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
STA is Path-Based
STA identifies timing paths within design for analysis
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
STA is Path-Based
STA identifies timing paths within design for analysis
Timing arcs within each path are calculated
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
STA is Constraint Driven
STA in PT is constraint driven
PT does not report a path, by default, that is not constrained
for timing
Incomplete or inaccurate constraints will lead to incorrect
analysis and wasted runtime
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
PrimeTime Inputs and Outputs
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing
Timing Analysis
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing arcs
Timing arcs
means a path from each input to each output of the cell.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing arcs
Timing arcs
means a path from each input to each output of the cell.
Combinational Cells has Timing Arcs from each Input to each
Output of the cell
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing arcs
Timing arcs
means a path from each input to each output of the cell.
Combinational Cells has Timing Arcs from each Input to each
Output of the cell
Flip-flops have Timing Arcs from the Clock Input pin to Data
Output Q pin (Propagation delay/ Delay Arc) and from Clock
Input pin to Data Input D pin (setup, hold checks/ Constraint
Arc)
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing arcs
Timing arcs
means a path from each input to each output of the cell.
Combinational Cells has Timing Arcs from each Input to each
Output of the cell
Flip-flops have Timing Arcs from the Clock Input pin to Data
Output Q pin (Propagation delay/ Delay Arc) and from Clock
Input pin to Data Input D pin (setup, hold checks/ Constraint
Arc)
Latches have 2 timing arcs:
Clock pin to Output Q pin, when D is stable
Data D pin to Output Q pin when D changes (Latch is
transparent)
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing Unate
Unateness
How Output changes for different types of transitions on Input
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing Unate
Unateness
How Output changes for different types of transitions on Input
Positive Unate if Output Transition is same as Input
Transition
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing Unate
Unateness
How Output changes for different types of transitions on Input
Positive Unate if Output Transition is same as Input
Transition
Negative Unate if Output Transition opposite to Input
Transition
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Timing Unate
Unateness
How Output changes for different types of transitions on Input
Positive Unate if Output Transition is same as Input
Transition
Negative Unate if Output Transition opposite to Input
Transition
Non-Unate if the Output Transition cannot be determined
solely from the direction of change of an Input. It also
depends upon the state of the other Inputs
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Positive unate
If a rising transition on the input gives the output to rise and
falling transition on the input gives the output to fall i.e.
there is no change in transition of input and output then that
timing arc is called positive unate.
Timing Arc AND falling edge Timing Arc AND rising edge
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Negative unate
If a rising transition on the input gives the output to fall and
falling transition on the input gives the output to rise i.e.
there is a change in transition of input and output then that
timing arc is called negative unate.
Timing Arc NAND falling edge Timing Arc NAND rising edge
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness
Non-unate
The output transition cannot be determined by not only the
direction of an input but also depends on the state of the
other inputs.
Timing Arc XOR falling edge Timing Arc XOR rising edge
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Transmission Gate
The transmission gate is consists of a parallel connection of
PMOS & NMOS.
Two gate voltage of PMOS and NMOS are the complement
of each other
The effective resistance of the transmission gate is almost
constant because of the parallel connection of PMOS and
NMOS.
It is a bidirectional circuit and it carries the current in either
direction.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
D Latch
The latch is a level-sensitive device and it is transparent when
the clock is high if it is a positive level-sensitive latch and
when the clock is low it is called negative level-sensitive latch.
In latch the output (Q) is dependent only on the level of the
clock (Clk). In this latch D is control the output (Q)
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Positive/Negative D latch using transmission Gate
It consists of two transmission gates and two inverters.
Positive D-Latch Negative D-Latch
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
D Flip flop:
A D flip flop is an edge-triggered device which means the
output (Q) follows the input (D) only at the active edge (for
positive rising edge) of the clock (for the positive
edge-triggered) and retain the same value until the next rising
edge i.e. output does not change between two rising edges, it
should be changed only at the rising edge.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
D Flip flop using a transmission gate
It is a combination of negative level-sensitive latch and
positive level-sensitive latch that giving an edge-sensitive
device. Data is change only at the active edge of the clock.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Timing Parameters, tcq
tcq is the time from the clock edge until the data appears at
the output
The tcq for rising and falling outputs is different
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Timing Parameters, tsetup
tsetup - Setup time is the time the data has to arrive before
the clock to ensure correct sampling.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Timing Parameters, thold
thold - Hold time is the time the data has to be stable after
the clock to ensure correct sampling.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Understanding Launch and Capture Clock Edges
The launch clock is the clock signal that triggers the data.
The launch edge is the edge of the launch clock, which
triggers the data into the initial flop.
The capture clock is the clock that captures the data.
The capture edge is the edge of the capture clock, which
allows the data to be stored in the receiving flop
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Setup (Max) Constraint
Setup time is the duration of time that the synchronous input
data must be stable before the triggering-edge of the clock.
Tclk + Tskew ≥ Tc2q + Tcomb + Tsetup
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold
Hold (Min) Constraint
Hold time is the duration that the synchronous input (D)
must be stable after the triggering edge of the clock.
Thold + Tskew ≤ Tc2q + Tcomb
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
What Are Timing Paths?
Timing path
A timing path is a combination of all the timing arcs from a start
point to an end point. You can break down timing paths into four
simple types or categories.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Start Points
There are two types of start points in a timing path:
The input port of a design (other than a clock port).
The clock pin of a sequential cell.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
End Points
There are two types of End points in a timing path:
The Output port of a design .
The Data pin of a sequential cell.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
What Is Slack?
Slack
Required time is defined by the timing constraints like your clock
period. Arrival time is when the signal actually arrives.
Slack is defined as the difference between the required time and
the arrival time of a signal at the endpoint
Slack = Required Time – Arrival Time (setup)
Slack = Arrival Time – Required Time (hold)
The synthesis engine uses the slack value to identify the paths for
further optimization to meet timing or to reduce area.
The calculating equation for slack is different for the different
types of paths.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
How Do You Time Timing Paths?
Delay
To calculate the delay of a path, simply add the delays of all the
timing arcs in the path.
Calculate all the cell delays.
Cell delay timing arcs are determined by the type of cell delay
model used in the technology library
Calculate all the net delays.
Net delay timing arcs are determined by the layout estimator
or the wire-load model selected
Add all the cell and net delays together to arrive at the path
delay.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Register-to-Register Setup Requirement
The following equation is the setup requirement for the
register-to-register path:
Required time = Clock Period + Skew – Setup Time
Arrival time = tCK2Q + Combo delay
Slack = Required time – Arrival time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Register-to-Register Hold Requirement
The following equation is the Hold requirement for the
register-to-register path:
Required time = Hold Time + Skew
Arrival time = tCK2Q + Combo delay
Slack = Arrival time – Required time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Input-to-Register Setup Requirement
The following equation is the setup requirement for the
input-to-register path:
Required time = Clock Period + Skew – Setup Time of R2
Arrival time = tCK2Q + Combo Delay 1 + Combo delay 2
Input Delay = clk to q + combo1
Slack = Required time – Arrival time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Input-to-Register Hold Requirement
The following equation is the Hold requirement for the
input-to-register path:
Required time = Hold Time of R2 + Skew
Arrival time = Input delay + Combo delay
Input Delay = clk to q + combo1
Slack = Arrival time – Required time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Register-to-Output Setup Requirement
The following equation is the setup requirement for the
register-to-output path:
Required time = Clock Period + Skew – Output Delay
Output Delay = combo 2 delay + setupR2
Arrival time = tCK2Q + Combo Delay 1
Slack = Required time – Arrival time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Register-to-Output Hold Requirement
The following equation is the Hold requirement for the
register-to-output path:
Required time = Output Delay + Skew
output delay2 = combo 2 delay - holdR2
Arrival time = tCK2Q + Combo delay 1
Slack = Arrival time – Required time
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Input to Output Path Timing Requirement
Combinational paths have no clock defined. Therefore, you
need to use either a virtual clock or set max/min.
If you define a virtual clock or a dummy clock, then slack is
calculated as:
Slack = Clock Period – Input Delay – Output Delay –
Combinational Delay
Remember that input delay and output delay are set with
respect to a clock.
You can also set max/min delays using the following syntax:
set max delay
set mix delay
Then the slacks for the input to output paths are calculated
as below.
Setup (late) slack = max delay – combo delay
Hold (early) slack = min delay – combo delay
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT
Activity: Timing Paths
Here are the parameters for this activity:
The clock-to-Q delay of each flop is 0.5 ns.
The setup of each flop is 0.5 ns.
All input and output delays are 0.5 ns.
The clock period of Clk is 4 ns.
What is the worst timing slack based on this illustration?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
What Are Constraints?
Constraints provide specifications that the design must meet
through optimization.
Typical examples of constraints are:
1 Clock constraints
2 External constraints
3 Power constraints
4 Net Delay constraints
5 Environmental constraints
6 Design rules for manufacturing
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Common SDC Constraints
1 Timing
create clock
create generated clock
set clock latency
set clock transition
set clock uncertainty
set input delay
set output delay
2 Exceptions
set false path
set multicycle path
set max delay
set mmin delay
3 Power
set max dynamic power
set max leakage power
4 Operating conditions
set operating conditions
5 Wire-load models
set wire load mode
set wire load model
6 Environmental
set driving cell
set input transition
set load
set fanout load
7 Design rules
set max capacitance
set max fanout
set max transition
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Design Objects
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Design Objects
Designs: {TOP, ENCODER, REGFILE}
References: {ENCODER, REGFILE , INV}
Cells: {U1, U2, U3, U4}
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Design Objects [for all Synopsys tools]
Design: A circuit description that performs some logical
function.
Cell(Instants): It is the instantiated name of the sub-design
in the design.
Reference(Module): The original design to which the cell or
instance refers.
Port: These are the primary inputs, outputs or IO’s of the
design.
Pin: Pins are the input and output of cells (such as gates and
flip-flops) within a design. The ports of a sub-design are pins
within the parent design.
Net: Nets are the wires that connect ports to pins and pins to
each other.
Clock: The port or pin that is identified as a clock source.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Timing Goals: Synchronous Designs
1 Synchronous Designs:
Data arrives from a clocked device
Data goes to a clocked device
2 Objective:
Define the timing constraints for all paths within a design:
all input logic paths
the internal (register to register) paths, and
all output paths
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Timing Goals: Synchronous Designs (cont)
Question
What information must you provide to constrain all the
register-to-register paths in your design?
Does the duty cycle of your clock matter?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Defining a Clock
User MUST Define:
Clock Source (port or
pin)
Clock Period
User may also define:
Duty Cycle
Clock Name
Offset/Skew
dc_shell>create_clock -name CLK -period 10 [get_ports Clk]
dc_shell>set_dont_touch_network [get_clocks Clk]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Default Clock Behavior
Defining the clock in a single-clock design constrains all
timing paths between registers for single-cycle, setup time
By default the clock rises at 0ns and has a 50% duty cycle
By default DC will not “buffer up” the clock network, even
when connected to many clock/enable pins of
flip-flops/latches
The clock network is treated as “ideal” - infinite drive
capability
1 Zero rise/fall transition times
2 Zero skew
3 Zero insertion delay or latency
Estimated skew, latency and transition times can, and should
be modeled for a more accurate representation of clock
behavior
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Clock Trees
Design Compiler is NOT used for synthesis of the clock tree
Clock tree synthesis is usually done by PnR tool, based on
physical placement data
Question
What design considerations need to be taken into account by the
synthesis tool, prior to layout?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Uncertainty on Clock Edges
To account for varying delays between the clock network
branches (commonly called clock skew):
dc_shell>set_clock_uncertainty -setup 0.65 [get_clocks Clk]
dc_shell>set_clock_uncertainty -hold 0.45 [get_clocks CLlk]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
set clock uncertainty and Setup Timing
Example
dc_shell> create_clock -period 10 [get_ports CLK]
dc_shell> set_clock_uncertainty 0.5 [get_clocks CLK]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Setting Clock Transition
Transition models the rise and fall times of the clock
waveform at the register clock pins:
dc_shell>set_clock_transition 0.38 -rise [get_clocks Clk]
dc_shell>set_clock_transition 0.25 -fall [get_clocks Clk]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Latency or Insertion Delay
Network latency models the average ‘internal’ delay from
the create clock port or pin to the register clock pins
Source latency models the delay from the actual clock origin
to the create clock port or pin:
dc_shell>create_clock -period 10 [get_ports CLK]
dc_shell>set_clock_latency -source {max 3 [get_clocks CLK]
dc_shell>set_clock_latency {max 1 [get_clocks CLK]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Pre/Post Layout Clock
Synthesis Constraints
Example
reset_design
....
Post-CTS STA Constraints
Example
reset_design
.....
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Timing Goals: Synchronous Designs, I/O
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Constraining Input Paths
Question
What information must you provide to constrain the input paths?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Constraining Input Paths in DC
dc_shell> set_input_delay -max 4 -clock Clk [get_ports A]
The set input delay command constrains input paths
You specify how much time is
used by external logic...
DC calculates how much time
is left for the internal logic
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Constraining Input Paths
Question
What information must you provide to constrain the output paths?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Constraining Output Paths in DC
dc_shell>set_output_delay -max 5.4 -clock Clk [get_ports B]
The set output delay command constrains input paths
You specify how much time is
needed by external logic...
DC calculates how much time
is left for internal logic
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Factors Affecting Timing
create_clock -period 2 [get_ports Clk]
set_input_delay -max 0.6 -clock Clk [get_ports A]
set_output_delay -max 0.8 -clock Clk [get_ports B]
Note
The above constraints are required, but not sufficient for DC to
accurately model and optimize all logic path delays. Need to take
into account: Input drivers/transition times, Output loading, PVT
corners and parasitic RCs
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Describing Environmental Attributes
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Effect of Output Capacitive Load
Note
Capacitive loading on an output port affects the transition
time, and thereby the cell delay, of the output driver.
By default DC assumes zero capacitive loading on outputs. It
is therefore important to accurately model capacitive loading
on all outputs.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Output Capacitive Load: Example 1
Spec:
Chip-level: Maximum capacitive load on output port B =
30fF
set_load [expr 30.0/1000] [get_ports B]
Question
What if a specific capacitance value is not known, at ablock-level
output port for example?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Output Capacitive Load: Example 2
Spec:
Block-level: Maximum load on output port B = 1
“AN2”gate load, or= 3 “inv1a0”gates
Answer
Use load oflib/cell/pinto place the load of a gate from the
technology library on the port:
set_load [load_ofmy_lib/AN2/A][get_ports OUT1]
set_load [expr[load_of my_lib/inv1a0/A] * 3] 
[get_ports OUT1]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Effect of Input Transition Time
Note
Rise and fall transition times on an input port affect the cell
delay of the input gate.
By default DC assumes zero transition times on inputs. It is
therefore important to accurately model transition times on all
inputs.
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Input Transition: Example 1
Spec:
Chip-level: Maximum rise/fall input transition on input port
A = 0.12ns
set_input_transition 0.12 [get_ports A]
Question
What if a specific transition time value is not known, at a
block-level input port for example?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Input Transition: Example 2
Spec:
Block-level: Maximum load on output port B = 1
“AN2”gate load, or= 3 “inv1a0”gates
set_driving_cell -lib_cell and2a0 [get_ports IN1]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling PVT Effects
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Variations in Cell Delays
Library cells are usually characterized using “nominal”
voltage and temperature:
nominal
nom process : 1.0;
nom temperature : 25.0;
nom voltage : 1.8;
Question
What if the circuit is to operate at a voltage and/or temperature
OTHER than nominal?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Operating Conditions
The timing analysis tool resets itself when you switch between
operating conditions, and creates different timing data based
on the new library information.
Operating conditions are applied at the design level.
Nowadays, the technology library is created for a specific set
of operating conditions. Thus, specifying the library is
probably sufficient.
ASIC vendors might deliver multiple technology libraries,
defining:
best-case and worst-case operating conditions
optimistic and pessimistic WLM
minimum and maximum timing delay
set_min_library ssc_core_slow 
-min_version ssc_core_fast
set_operating_conditions -max slow_125_1.62 
-min fast_0_1.98
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Net delays
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Path Delays are Based on Cell + Net Delays
Cell and net delays are both a function of parasitic RCs
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Modeling Net RCswith Wire Load Models
A wire load model is an estimate of a net’s RC parasitics
based on the net’s fanout:
Models for various design sizes are supplied by your vendor
R/C values are average estimates based on data extracted
from similar designs which were fabricated using this process
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Wire Load Model Examples
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Specifying Wire Loads
Manual model selection
set_wire_load_model -name 8000000
Automatic model selection selects an appropriate wireload
model during compile:
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Wireload Model Mode
Specifies wire load model to use for nets that cross
hierarchical boundaries.
Example
set_wire_load_mode enclosed
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Time Budgeting
Question
What if you don’t know the delays on your inputs or the setup
requirements of your outputs?
Answer
Create a Time Budget !
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Time Budgeting (cont)
Note
Better to budget conservatively than to compile with paths
unconstrained!
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Time Budgeting Example
create_clock -period 10 [get_ports CLK]
set_dont_touch_network [get_clocks CLK]
set_input_delay -max 6 -clock CLK [all_inputs]
remove_input_delay [get_ports CLK]
set_output_delay -max 6 -clock CLK [all_outputs]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Load Budgeting
Question
What if, prior to compiling, the cells driving your inputs, and the
loads on your outputs are not known?
Answer
Create a Load Budget!
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Load Budgeting (cont)
Assume a weak cell driving the inputs, to be conservative
Limit the input capacitance of each input port
Estimate the number of other major blocks your outputs may
have to drive
Question
How do we limit the input capacitance of an input port?
A: Place restrictive design rules on our input ports
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Load Budget Example
Example Specification:
Inputs of any block shall present no more than the load of 10
“AND2” gates to their driving block
Outputs of any blocks will only be allowed to connect to a
maximum of 3 other blocks
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Load Budget Example (cont)
set_driving_cell -lib_cell inv1a0 [all_inputs]
remove_driving_cell [get_ports Clk]
set MAX_INPUT_LOAD [expr [load_of(tech_lib/and2a0/A) * 10]]
set_max_capacitance $MAX_INPUT_LOAD [all_inputs]
remove_attribute max_capacitance [get_ports Clk]
set_load [expr [$MAX_INPUT_LOAD * 3]] [all_outputs]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Asynchronous Multiple Clock Designs
Question
What do you do if the design has asynchronous clock sources?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Synthesizing with Asynchronous Clocks
It is your responsibility to account for the
Instantiate double-clocking, metastable-hard Flip-Flops
dual-port FIFO, etc
Create clocks to constrain the paths within each clock domain
You must also disable timing-based synthesis on any path
which crosses an asynchronous clock boundary:
This will prevent DC from wasting time trying to get the
asynchronous path to “meet timing”
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Example: Asynchronous Design Constraints
create_clock -period 2 [get_ports CLKA]
create_clock -period 2 [get_ports CLKB]
set_false_path -from [get_clocks CLKA] -to
[get_clocks CLKB]
set_false_path -from [get_clocks CLKB] -to
[get_clocks CLKA]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Multi-Cycle Behavior
Situation: Not all paths operate at the target frequency of
the design
Choose one of the following options:
1 Add pipeline stage(s) to divide the logic into single-cycle paths
2 Ease off the single-cycle requirement: allow more clock cycles
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Timing with Multi-cycle Constraints
create_clock -period 10 [get_ports CLK]
set_multicycle_path {setup 6 -to FF4/D[*]
DC assumes change could occur near any clock edge causing
metastability!
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Default Hold Check
Why is hold check performed at 50 ns?
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep.
Set the Proper Hold Constraint
set_multicycle_path -setup 6 -to FF4/D[*]
set_multicycle_path -hold 5 -to FF4/D[*]
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
Table of Contents
1 Introduction
2 Timing arcs and unateness:
3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD
4 Timing Paths
5 Introduction to SDC Constraints
6 Analyzing a Timing Report
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
DesignCompier Timing Reports
Users will typically access DesignTime via the report timing
command
The report timing command
The design is broken down into individual timing paths
Each timing path is timed out twice;
1 once for a rising edge input, and
2 once with a falling edge input
The critical path (worst violator) for each clock group is found
A timing report for each clock group is echoed to the screen
A DesignCompiler timing report has four major sections
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
Timing Report: Path Information Section
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
Timing Report: Path Delay Section
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
Timing Report: Path Required Section
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
Timing Report: Summary Section
Ahmed Abdelazeem ASIC Design Flow
Intro Arcs& Unateness Setup& Hold Paths SDC Report Report
....
ÕækQË@ áÔgQË@ éÊË@ Õæ„.
C

JÊ
¯ B

@ Õ

Ϊ

Ë@ áÓ Õ
æJKð@ AÓð
Ahmed Abdelazeem ASIC Design Flow

More Related Content

What's hot

Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)shaik sharief
 
Physical design-complete
Physical design-completePhysical design-complete
Physical design-completeMurali Rai
 
Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Olivier Coudert
 
VLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyMurali Rai
 
Implementing Useful Clock Skew Using Skew Groups
Implementing Useful Clock Skew Using Skew GroupsImplementing Useful Clock Skew Using Skew Groups
Implementing Useful Clock Skew Using Skew GroupsM Mei
 
Formal Verification - Formality.pdf
Formal Verification - Formality.pdfFormal Verification - Formality.pdf
Formal Verification - Formality.pdfAhmed Abdelazeem
 
2Overview of Primetime.pptx
2Overview of Primetime.pptx2Overview of Primetime.pptx
2Overview of Primetime.pptxShivangPanara
 
Understanding cts log_messages
Understanding cts log_messagesUnderstanding cts log_messages
Understanding cts log_messagesMujahid Mohammed
 
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...VLSI SYSTEM Design
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossingUsha Mehta
 
Timing closure document
Timing closure documentTiming closure document
Timing closure documentAlan Tran
 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEVLSIUNIVERSE
 
Physical design
Physical design Physical design
Physical design Mantra VLSI
 
5. Data and Timing Setup Introduction.pdf
5. Data and Timing Setup Introduction.pdf5. Data and Timing Setup Introduction.pdf
5. Data and Timing Setup Introduction.pdfAhmed Abdelazeem
 

What's hot (20)

3. Synthesis.pptx
3. Synthesis.pptx3. Synthesis.pptx
3. Synthesis.pptx
 
Physical design
Physical design Physical design
Physical design
 
Clock Tree Synthesis.pdf
Clock Tree Synthesis.pdfClock Tree Synthesis.pdf
Clock Tree Synthesis.pdf
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Physical design-complete
Physical design-completePhysical design-complete
Physical design-complete
 
Routing.pdf
Routing.pdfRouting.pdf
Routing.pdf
 
Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows
 
Crosstalk.pdf
Crosstalk.pdfCrosstalk.pdf
Crosstalk.pdf
 
VLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool Terminalogy
 
Implementing Useful Clock Skew Using Skew Groups
Implementing Useful Clock Skew Using Skew GroupsImplementing Useful Clock Skew Using Skew Groups
Implementing Useful Clock Skew Using Skew Groups
 
Formal Verification - Formality.pdf
Formal Verification - Formality.pdfFormal Verification - Formality.pdf
Formal Verification - Formality.pdf
 
2Overview of Primetime.pptx
2Overview of Primetime.pptx2Overview of Primetime.pptx
2Overview of Primetime.pptx
 
Timing analysis
Timing analysisTiming analysis
Timing analysis
 
Understanding cts log_messages
Understanding cts log_messagesUnderstanding cts log_messages
Understanding cts log_messages
 
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing
 
Timing closure document
Timing closure documentTiming closure document
Timing closure document
 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSE
 
Physical design
Physical design Physical design
Physical design
 
5. Data and Timing Setup Introduction.pdf
5. Data and Timing Setup Introduction.pdf5. Data and Timing Setup Introduction.pdf
5. Data and Timing Setup Introduction.pdf
 

Similar to Verify Chip Timing with STA Report Analysis

CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1
CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1
CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1Javed G S, PhD
 
Advanced motion controls dpcanis 060a800
Advanced motion controls dpcanis 060a800Advanced motion controls dpcanis 060a800
Advanced motion controls dpcanis 060a800Electromate
 
Advanced motion controls dpcanis 030a800
Advanced motion controls dpcanis 030a800Advanced motion controls dpcanis 030a800
Advanced motion controls dpcanis 030a800Electromate
 
Advanced motion controls dpcanie 060a800
Advanced motion controls dpcanie 060a800Advanced motion controls dpcanie 060a800
Advanced motion controls dpcanie 060a800Electromate
 
Advanced motion controls dpcanie 015s400
Advanced motion controls dpcanie 015s400Advanced motion controls dpcanie 015s400
Advanced motion controls dpcanie 015s400Electromate
 
Advanced motion controls dpcanis 015a400
Advanced motion controls dpcanis 015a400Advanced motion controls dpcanis 015a400
Advanced motion controls dpcanis 015a400Electromate
 
Advanced motion controls dpcania 060a800
Advanced motion controls dpcania 060a800Advanced motion controls dpcania 060a800
Advanced motion controls dpcania 060a800Electromate
 
Advanced motion controls dpcanie 015a400
Advanced motion controls dpcanie 015a400Advanced motion controls dpcanie 015a400
Advanced motion controls dpcanie 015a400Electromate
 
Advanced motion controls dpcania 015a400
Advanced motion controls dpcania 015a400Advanced motion controls dpcania 015a400
Advanced motion controls dpcania 015a400Electromate
 
Advanced motion controls dzcante 025l200
Advanced motion controls dzcante 025l200Advanced motion controls dzcante 025l200
Advanced motion controls dzcante 025l200Electromate
 
Low power electronic design
Low power electronic designLow power electronic design
Low power electronic designMahesh Dananjaya
 
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdfMarcellino Mandala
 
AgileSwitch SiC Product Overview
AgileSwitch SiC Product OverviewAgileSwitch SiC Product Overview
AgileSwitch SiC Product OverviewJames Charlton
 

Similar to Verify Chip Timing with STA Report Analysis (20)

CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1
CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1
CMOS Analog IC design by Dr GS Javed - Refresher Course - Batch 1
 
Advanced motion controls dpcanis 060a800
Advanced motion controls dpcanis 060a800Advanced motion controls dpcanis 060a800
Advanced motion controls dpcanis 060a800
 
Advanced motion controls dpcanis 030a800
Advanced motion controls dpcanis 030a800Advanced motion controls dpcanis 030a800
Advanced motion controls dpcanis 030a800
 
Advanced motion controls dpcanie 060a800
Advanced motion controls dpcanie 060a800Advanced motion controls dpcanie 060a800
Advanced motion controls dpcanie 060a800
 
Unit-4_ESE.pdf
Unit-4_ESE.pdfUnit-4_ESE.pdf
Unit-4_ESE.pdf
 
Advanced motion controls dpcanie 015s400
Advanced motion controls dpcanie 015s400Advanced motion controls dpcanie 015s400
Advanced motion controls dpcanie 015s400
 
Advanced motion controls dpcanis 015a400
Advanced motion controls dpcanis 015a400Advanced motion controls dpcanis 015a400
Advanced motion controls dpcanis 015a400
 
Advanced motion controls dpcania 060a800
Advanced motion controls dpcania 060a800Advanced motion controls dpcania 060a800
Advanced motion controls dpcania 060a800
 
Advanced motion controls dpcanie 015a400
Advanced motion controls dpcanie 015a400Advanced motion controls dpcanie 015a400
Advanced motion controls dpcanie 015a400
 
Low Power VLSI Designs
Low Power VLSI DesignsLow Power VLSI Designs
Low Power VLSI Designs
 
VLSI Power in a Nutshell
VLSI Power in a NutshellVLSI Power in a Nutshell
VLSI Power in a Nutshell
 
Advanced motion controls dpcania 015a400
Advanced motion controls dpcania 015a400Advanced motion controls dpcania 015a400
Advanced motion controls dpcania 015a400
 
Low Power VLSI Design
Low Power VLSI DesignLow Power VLSI Design
Low Power VLSI Design
 
Advanced motion controls dzcante 025l200
Advanced motion controls dzcante 025l200Advanced motion controls dzcante 025l200
Advanced motion controls dzcante 025l200
 
Low power electronic design
Low power electronic designLow power electronic design
Low power electronic design
 
Verilog_ppt.pdf
Verilog_ppt.pdfVerilog_ppt.pdf
Verilog_ppt.pdf
 
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf
9346f1488e08c541a68f7542d4649dee4f4e37b5.pdf
 
Traffic management system
Traffic management systemTraffic management system
Traffic management system
 
AgileSwitch SiC Product Overview
AgileSwitch SiC Product OverviewAgileSwitch SiC Product Overview
AgileSwitch SiC Product Overview
 
Absolute
AbsoluteAbsolute
Absolute
 

More from Ahmed Abdelazeem

8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdfAhmed Abdelazeem
 
What is the Difference Between the target_library and link_library Variables?
What is the Difference Between the target_library and link_library Variables?What is the Difference Between the target_library and link_library Variables?
What is the Difference Between the target_library and link_library Variables?Ahmed Abdelazeem
 
Physical Implementation: I/O Pad Insertion for Innovus.pdf
Physical Implementation: I/O Pad Insertion for Innovus.pdfPhysical Implementation: I/O Pad Insertion for Innovus.pdf
Physical Implementation: I/O Pad Insertion for Innovus.pdfAhmed Abdelazeem
 
Learn Makefiles With the tastiest examples
Learn Makefiles With the tastiest examplesLearn Makefiles With the tastiest examples
Learn Makefiles With the tastiest examplesAhmed Abdelazeem
 
4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptx4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptxAhmed Abdelazeem
 
Physical Verification Design.pdf
Physical Verification Design.pdfPhysical Verification Design.pdf
Physical Verification Design.pdfAhmed Abdelazeem
 

More from Ahmed Abdelazeem (17)

10. Signoff.pdf
10. Signoff.pdf10. Signoff.pdf
10. Signoff.pdf
 
9. Routing.pdf
9. Routing.pdf9. Routing.pdf
9. Routing.pdf
 
8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf
 
7. Placement.pdf
7. Placement.pdf7. Placement.pdf
7. Placement.pdf
 
6. Design Planning.pdf
6. Design Planning.pdf6. Design Planning.pdf
6. Design Planning.pdf
 
What is the Difference Between the target_library and link_library Variables?
What is the Difference Between the target_library and link_library Variables?What is the Difference Between the target_library and link_library Variables?
What is the Difference Between the target_library and link_library Variables?
 
Physical Implementation: I/O Pad Insertion for Innovus.pdf
Physical Implementation: I/O Pad Insertion for Innovus.pdfPhysical Implementation: I/O Pad Insertion for Innovus.pdf
Physical Implementation: I/O Pad Insertion for Innovus.pdf
 
Learn Makefiles With the tastiest examples
Learn Makefiles With the tastiest examplesLearn Makefiles With the tastiest examples
Learn Makefiles With the tastiest examples
 
ready_valid_interface.pdf
ready_valid_interface.pdfready_valid_interface.pdf
ready_valid_interface.pdf
 
wire vs. reg.pdf
wire vs. reg.pdfwire vs. reg.pdf
wire vs. reg.pdf
 
verilog_fsm.pdf
verilog_fsm.pdfverilog_fsm.pdf
verilog_fsm.pdf
 
always_at_blocks.pdf
always_at_blocks.pdfalways_at_blocks.pdf
always_at_blocks.pdf
 
5. DFT.pptx
5. DFT.pptx5. DFT.pptx
5. DFT.pptx
 
4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptx4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptx
 
Standard-Cells.pdf
Standard-Cells.pdfStandard-Cells.pdf
Standard-Cells.pdf
 
EMIR.pdf
EMIR.pdfEMIR.pdf
EMIR.pdf
 
Physical Verification Design.pdf
Physical Verification Design.pdfPhysical Verification Design.pdf
Physical Verification Design.pdf
 

Recently uploaded

HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 

Recently uploaded (20)

HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 

Verify Chip Timing with STA Report Analysis

  • 1. Intro Arcs& Unateness Setup& Hold Paths SDC Report Static Time Analysis How to verify your chip timing Ahmed Abdelazeem Faculty of Engineering Zagazig University RTL2GDSII Flow, March 2022 Ahmed Abdelazeem ASIC Design Flow
  • 2. Intro Arcs& Unateness Setup& Hold Paths SDC Report Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 3. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 4. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing What is Static Timing Analysis (STA)? Static Timing Analysis (STA) is a method for determining if a circuit meets timing constraints without having to simulate. Static timing analysis: Verifies Timing verifies timing between synchronous clocks does not verify functionality Ahmed Abdelazeem ASIC Design Flow
  • 5. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing What is Static Timing Analysis (STA)? Static Timing Analysis (STA) is a method for determining if a circuit meets timing constraints without having to simulate. Static timing analysis: Verifies Timing verifies timing between synchronous clocks does not verify functionality Is Exhaustive uses formal, mathematical techniques instead of vectors does not use dynamic logic simulation Ahmed Abdelazeem ASIC Design Flow
  • 6. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing What is Static Timing Analysis (STA)? Static Timing Analysis (STA) is a method for determining if a circuit meets timing constraints without having to simulate. Static timing analysis: Verifies Timing verifies timing between synchronous clocks does not verify functionality Is Exhaustive uses formal, mathematical techniques instead of vectors does not use dynamic logic simulation Is Fast significantly faster than gate level simulation orders of magnitude Faster than Tx level (spice) simulation Ahmed Abdelazeem ASIC Design Flow
  • 7. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing STA is Path-Based STA identifies timing paths within design for analysis Ahmed Abdelazeem ASIC Design Flow
  • 8. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing STA is Path-Based STA identifies timing paths within design for analysis Timing arcs within each path are calculated Ahmed Abdelazeem ASIC Design Flow
  • 9. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing STA is Constraint Driven STA in PT is constraint driven PT does not report a path, by default, that is not constrained for timing Incomplete or inaccurate constraints will lead to incorrect analysis and wasted runtime Ahmed Abdelazeem ASIC Design Flow
  • 10. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing PrimeTime Inputs and Outputs Ahmed Abdelazeem ASIC Design Flow
  • 11. Intro Arcs& Unateness Setup& Hold Paths SDC Report STA Path-Based Constraint Inputs and Outputs Timing Timing Analysis Ahmed Abdelazeem ASIC Design Flow
  • 12. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 13. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing arcs Timing arcs means a path from each input to each output of the cell. Ahmed Abdelazeem ASIC Design Flow
  • 14. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing arcs Timing arcs means a path from each input to each output of the cell. Combinational Cells has Timing Arcs from each Input to each Output of the cell Ahmed Abdelazeem ASIC Design Flow
  • 15. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing arcs Timing arcs means a path from each input to each output of the cell. Combinational Cells has Timing Arcs from each Input to each Output of the cell Flip-flops have Timing Arcs from the Clock Input pin to Data Output Q pin (Propagation delay/ Delay Arc) and from Clock Input pin to Data Input D pin (setup, hold checks/ Constraint Arc) Ahmed Abdelazeem ASIC Design Flow
  • 16. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing arcs Timing arcs means a path from each input to each output of the cell. Combinational Cells has Timing Arcs from each Input to each Output of the cell Flip-flops have Timing Arcs from the Clock Input pin to Data Output Q pin (Propagation delay/ Delay Arc) and from Clock Input pin to Data Input D pin (setup, hold checks/ Constraint Arc) Latches have 2 timing arcs: Clock pin to Output Q pin, when D is stable Data D pin to Output Q pin when D changes (Latch is transparent) Ahmed Abdelazeem ASIC Design Flow
  • 17. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing Unate Unateness How Output changes for different types of transitions on Input Ahmed Abdelazeem ASIC Design Flow
  • 18. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing Unate Unateness How Output changes for different types of transitions on Input Positive Unate if Output Transition is same as Input Transition Ahmed Abdelazeem ASIC Design Flow
  • 19. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing Unate Unateness How Output changes for different types of transitions on Input Positive Unate if Output Transition is same as Input Transition Negative Unate if Output Transition opposite to Input Transition Ahmed Abdelazeem ASIC Design Flow
  • 20. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Timing Unate Unateness How Output changes for different types of transitions on Input Positive Unate if Output Transition is same as Input Transition Negative Unate if Output Transition opposite to Input Transition Non-Unate if the Output Transition cannot be determined solely from the direction of change of an Input. It also depends upon the state of the other Inputs Ahmed Abdelazeem ASIC Design Flow
  • 21. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Positive unate If a rising transition on the input gives the output to rise and falling transition on the input gives the output to fall i.e. there is no change in transition of input and output then that timing arc is called positive unate. Timing Arc AND falling edge Timing Arc AND rising edge Ahmed Abdelazeem ASIC Design Flow
  • 22. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Negative unate If a rising transition on the input gives the output to fall and falling transition on the input gives the output to rise i.e. there is a change in transition of input and output then that timing arc is called negative unate. Timing Arc NAND falling edge Timing Arc NAND rising edge Ahmed Abdelazeem ASIC Design Flow
  • 23. Intro Arcs& Unateness Setup& Hold Paths SDC Report Arcs Unateness Non-unate The output transition cannot be determined by not only the direction of an input but also depends on the state of the other inputs. Timing Arc XOR falling edge Timing Arc XOR rising edge Ahmed Abdelazeem ASIC Design Flow
  • 24. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 25. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Transmission Gate The transmission gate is consists of a parallel connection of PMOS & NMOS. Two gate voltage of PMOS and NMOS are the complement of each other The effective resistance of the transmission gate is almost constant because of the parallel connection of PMOS and NMOS. It is a bidirectional circuit and it carries the current in either direction. Ahmed Abdelazeem ASIC Design Flow
  • 26. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold D Latch The latch is a level-sensitive device and it is transparent when the clock is high if it is a positive level-sensitive latch and when the clock is low it is called negative level-sensitive latch. In latch the output (Q) is dependent only on the level of the clock (Clk). In this latch D is control the output (Q) Ahmed Abdelazeem ASIC Design Flow
  • 27. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Positive/Negative D latch using transmission Gate It consists of two transmission gates and two inverters. Positive D-Latch Negative D-Latch Ahmed Abdelazeem ASIC Design Flow
  • 28. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold D Flip flop: A D flip flop is an edge-triggered device which means the output (Q) follows the input (D) only at the active edge (for positive rising edge) of the clock (for the positive edge-triggered) and retain the same value until the next rising edge i.e. output does not change between two rising edges, it should be changed only at the rising edge. Ahmed Abdelazeem ASIC Design Flow
  • 29. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold D Flip flop using a transmission gate It is a combination of negative level-sensitive latch and positive level-sensitive latch that giving an edge-sensitive device. Data is change only at the active edge of the clock. Ahmed Abdelazeem ASIC Design Flow
  • 30. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Timing Parameters, tcq tcq is the time from the clock edge until the data appears at the output The tcq for rising and falling outputs is different Ahmed Abdelazeem ASIC Design Flow
  • 31. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Timing Parameters, tsetup tsetup - Setup time is the time the data has to arrive before the clock to ensure correct sampling. Ahmed Abdelazeem ASIC Design Flow
  • 32. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Timing Parameters, thold thold - Hold time is the time the data has to be stable after the clock to ensure correct sampling. Ahmed Abdelazeem ASIC Design Flow
  • 33. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Understanding Launch and Capture Clock Edges The launch clock is the clock signal that triggers the data. The launch edge is the edge of the launch clock, which triggers the data into the initial flop. The capture clock is the clock that captures the data. The capture edge is the edge of the capture clock, which allows the data to be stored in the receiving flop Ahmed Abdelazeem ASIC Design Flow
  • 34. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Setup (Max) Constraint Setup time is the duration of time that the synchronous input data must be stable before the triggering-edge of the clock. Tclk + Tskew ≥ Tc2q + Tcomb + Tsetup Ahmed Abdelazeem ASIC Design Flow
  • 35. Intro Arcs& Unateness Setup& Hold Paths SDC Report TG latch DFF Definitions setup Hold Hold (Min) Constraint Hold time is the duration that the synchronous input (D) must be stable after the triggering edge of the clock. Thold + Tskew ≤ Tc2q + Tcomb Ahmed Abdelazeem ASIC Design Flow
  • 36. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 37. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT What Are Timing Paths? Timing path A timing path is a combination of all the timing arcs from a start point to an end point. You can break down timing paths into four simple types or categories. Ahmed Abdelazeem ASIC Design Flow
  • 38. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Start Points There are two types of start points in a timing path: The input port of a design (other than a clock port). The clock pin of a sequential cell. Ahmed Abdelazeem ASIC Design Flow
  • 39. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT End Points There are two types of End points in a timing path: The Output port of a design . The Data pin of a sequential cell. Ahmed Abdelazeem ASIC Design Flow
  • 40. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT What Is Slack? Slack Required time is defined by the timing constraints like your clock period. Arrival time is when the signal actually arrives. Slack is defined as the difference between the required time and the arrival time of a signal at the endpoint Slack = Required Time – Arrival Time (setup) Slack = Arrival Time – Required Time (hold) The synthesis engine uses the slack value to identify the paths for further optimization to meet timing or to reduce area. The calculating equation for slack is different for the different types of paths. Ahmed Abdelazeem ASIC Design Flow
  • 41. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT How Do You Time Timing Paths? Delay To calculate the delay of a path, simply add the delays of all the timing arcs in the path. Calculate all the cell delays. Cell delay timing arcs are determined by the type of cell delay model used in the technology library Calculate all the net delays. Net delay timing arcs are determined by the layout estimator or the wire-load model selected Add all the cell and net delays together to arrive at the path delay. Ahmed Abdelazeem ASIC Design Flow
  • 42. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Register-to-Register Setup Requirement The following equation is the setup requirement for the register-to-register path: Required time = Clock Period + Skew – Setup Time Arrival time = tCK2Q + Combo delay Slack = Required time – Arrival time Ahmed Abdelazeem ASIC Design Flow
  • 43. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Register-to-Register Hold Requirement The following equation is the Hold requirement for the register-to-register path: Required time = Hold Time + Skew Arrival time = tCK2Q + Combo delay Slack = Arrival time – Required time Ahmed Abdelazeem ASIC Design Flow
  • 44. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Input-to-Register Setup Requirement The following equation is the setup requirement for the input-to-register path: Required time = Clock Period + Skew – Setup Time of R2 Arrival time = tCK2Q + Combo Delay 1 + Combo delay 2 Input Delay = clk to q + combo1 Slack = Required time – Arrival time Ahmed Abdelazeem ASIC Design Flow
  • 45. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Input-to-Register Hold Requirement The following equation is the Hold requirement for the input-to-register path: Required time = Hold Time of R2 + Skew Arrival time = Input delay + Combo delay Input Delay = clk to q + combo1 Slack = Arrival time – Required time Ahmed Abdelazeem ASIC Design Flow
  • 46. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Register-to-Output Setup Requirement The following equation is the setup requirement for the register-to-output path: Required time = Clock Period + Skew – Output Delay Output Delay = combo 2 delay + setupR2 Arrival time = tCK2Q + Combo Delay 1 Slack = Required time – Arrival time Ahmed Abdelazeem ASIC Design Flow
  • 47. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Register-to-Output Hold Requirement The following equation is the Hold requirement for the register-to-output path: Required time = Output Delay + Skew output delay2 = combo 2 delay - holdR2 Arrival time = tCK2Q + Combo delay 1 Slack = Arrival time – Required time Ahmed Abdelazeem ASIC Design Flow
  • 48. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Input to Output Path Timing Requirement Combinational paths have no clock defined. Therefore, you need to use either a virtual clock or set max/min. If you define a virtual clock or a dummy clock, then slack is calculated as: Slack = Clock Period – Input Delay – Output Delay – Combinational Delay Remember that input delay and output delay are set with respect to a clock. You can also set max/min delays using the following syntax: set max delay set mix delay Then the slacks for the input to output paths are calculated as below. Setup (late) slack = max delay – combo delay Hold (early) slack = min delay – combo delay Ahmed Abdelazeem ASIC Design Flow
  • 49. Intro Arcs& Unateness Setup& Hold Paths SDC Report Paths R2R IN2R R2OUT IN2OUT Activity: Timing Paths Here are the parameters for this activity: The clock-to-Q delay of each flop is 0.5 ns. The setup of each flop is 0.5 ns. All input and output delays are 0.5 ns. The clock period of Clk is 4 ns. What is the worst timing slack based on this illustration? Ahmed Abdelazeem ASIC Design Flow
  • 50. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 51. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. What Are Constraints? Constraints provide specifications that the design must meet through optimization. Typical examples of constraints are: 1 Clock constraints 2 External constraints 3 Power constraints 4 Net Delay constraints 5 Environmental constraints 6 Design rules for manufacturing Ahmed Abdelazeem ASIC Design Flow
  • 52. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Common SDC Constraints 1 Timing create clock create generated clock set clock latency set clock transition set clock uncertainty set input delay set output delay 2 Exceptions set false path set multicycle path set max delay set mmin delay 3 Power set max dynamic power set max leakage power 4 Operating conditions set operating conditions 5 Wire-load models set wire load mode set wire load model 6 Environmental set driving cell set input transition set load set fanout load 7 Design rules set max capacitance set max fanout set max transition Ahmed Abdelazeem ASIC Design Flow
  • 53. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Design Objects Ahmed Abdelazeem ASIC Design Flow
  • 54. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Design Objects Designs: {TOP, ENCODER, REGFILE} References: {ENCODER, REGFILE , INV} Cells: {U1, U2, U3, U4} Ahmed Abdelazeem ASIC Design Flow
  • 55. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Design Objects [for all Synopsys tools] Design: A circuit description that performs some logical function. Cell(Instants): It is the instantiated name of the sub-design in the design. Reference(Module): The original design to which the cell or instance refers. Port: These are the primary inputs, outputs or IO’s of the design. Pin: Pins are the input and output of cells (such as gates and flip-flops) within a design. The ports of a sub-design are pins within the parent design. Net: Nets are the wires that connect ports to pins and pins to each other. Clock: The port or pin that is identified as a clock source. Ahmed Abdelazeem ASIC Design Flow
  • 56. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Timing Goals: Synchronous Designs 1 Synchronous Designs: Data arrives from a clocked device Data goes to a clocked device 2 Objective: Define the timing constraints for all paths within a design: all input logic paths the internal (register to register) paths, and all output paths Ahmed Abdelazeem ASIC Design Flow
  • 57. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Timing Goals: Synchronous Designs (cont) Question What information must you provide to constrain all the register-to-register paths in your design? Does the duty cycle of your clock matter? Ahmed Abdelazeem ASIC Design Flow
  • 58. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Defining a Clock User MUST Define: Clock Source (port or pin) Clock Period User may also define: Duty Cycle Clock Name Offset/Skew dc_shell>create_clock -name CLK -period 10 [get_ports Clk] dc_shell>set_dont_touch_network [get_clocks Clk] Ahmed Abdelazeem ASIC Design Flow
  • 59. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Default Clock Behavior Defining the clock in a single-clock design constrains all timing paths between registers for single-cycle, setup time By default the clock rises at 0ns and has a 50% duty cycle By default DC will not “buffer up” the clock network, even when connected to many clock/enable pins of flip-flops/latches The clock network is treated as “ideal” - infinite drive capability 1 Zero rise/fall transition times 2 Zero skew 3 Zero insertion delay or latency Estimated skew, latency and transition times can, and should be modeled for a more accurate representation of clock behavior Ahmed Abdelazeem ASIC Design Flow
  • 60. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Clock Trees Design Compiler is NOT used for synthesis of the clock tree Clock tree synthesis is usually done by PnR tool, based on physical placement data Question What design considerations need to be taken into account by the synthesis tool, prior to layout? Ahmed Abdelazeem ASIC Design Flow
  • 61. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Uncertainty on Clock Edges To account for varying delays between the clock network branches (commonly called clock skew): dc_shell>set_clock_uncertainty -setup 0.65 [get_clocks Clk] dc_shell>set_clock_uncertainty -hold 0.45 [get_clocks CLlk] Ahmed Abdelazeem ASIC Design Flow
  • 62. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. set clock uncertainty and Setup Timing Example dc_shell> create_clock -period 10 [get_ports CLK] dc_shell> set_clock_uncertainty 0.5 [get_clocks CLK] Ahmed Abdelazeem ASIC Design Flow
  • 63. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Setting Clock Transition Transition models the rise and fall times of the clock waveform at the register clock pins: dc_shell>set_clock_transition 0.38 -rise [get_clocks Clk] dc_shell>set_clock_transition 0.25 -fall [get_clocks Clk] Ahmed Abdelazeem ASIC Design Flow
  • 64. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Latency or Insertion Delay Network latency models the average ‘internal’ delay from the create clock port or pin to the register clock pins Source latency models the delay from the actual clock origin to the create clock port or pin: dc_shell>create_clock -period 10 [get_ports CLK] dc_shell>set_clock_latency -source {max 3 [get_clocks CLK] dc_shell>set_clock_latency {max 1 [get_clocks CLK] Ahmed Abdelazeem ASIC Design Flow
  • 65. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Pre/Post Layout Clock Synthesis Constraints Example reset_design .... Post-CTS STA Constraints Example reset_design ..... Ahmed Abdelazeem ASIC Design Flow
  • 66. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Timing Goals: Synchronous Designs, I/O Ahmed Abdelazeem ASIC Design Flow
  • 67. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Constraining Input Paths Question What information must you provide to constrain the input paths? Ahmed Abdelazeem ASIC Design Flow
  • 68. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Constraining Input Paths in DC dc_shell> set_input_delay -max 4 -clock Clk [get_ports A] The set input delay command constrains input paths You specify how much time is used by external logic... DC calculates how much time is left for the internal logic Ahmed Abdelazeem ASIC Design Flow
  • 69. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Constraining Input Paths Question What information must you provide to constrain the output paths? Ahmed Abdelazeem ASIC Design Flow
  • 70. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Constraining Output Paths in DC dc_shell>set_output_delay -max 5.4 -clock Clk [get_ports B] The set output delay command constrains input paths You specify how much time is needed by external logic... DC calculates how much time is left for internal logic Ahmed Abdelazeem ASIC Design Flow
  • 71. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Factors Affecting Timing create_clock -period 2 [get_ports Clk] set_input_delay -max 0.6 -clock Clk [get_ports A] set_output_delay -max 0.8 -clock Clk [get_ports B] Note The above constraints are required, but not sufficient for DC to accurately model and optimize all logic path delays. Need to take into account: Input drivers/transition times, Output loading, PVT corners and parasitic RCs Ahmed Abdelazeem ASIC Design Flow
  • 72. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Describing Environmental Attributes Ahmed Abdelazeem ASIC Design Flow
  • 73. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Effect of Output Capacitive Load Note Capacitive loading on an output port affects the transition time, and thereby the cell delay, of the output driver. By default DC assumes zero capacitive loading on outputs. It is therefore important to accurately model capacitive loading on all outputs. Ahmed Abdelazeem ASIC Design Flow
  • 74. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Output Capacitive Load: Example 1 Spec: Chip-level: Maximum capacitive load on output port B = 30fF set_load [expr 30.0/1000] [get_ports B] Question What if a specific capacitance value is not known, at ablock-level output port for example? Ahmed Abdelazeem ASIC Design Flow
  • 75. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Output Capacitive Load: Example 2 Spec: Block-level: Maximum load on output port B = 1 “AN2”gate load, or= 3 “inv1a0”gates Answer Use load oflib/cell/pinto place the load of a gate from the technology library on the port: set_load [load_ofmy_lib/AN2/A][get_ports OUT1] set_load [expr[load_of my_lib/inv1a0/A] * 3] [get_ports OUT1] Ahmed Abdelazeem ASIC Design Flow
  • 76. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Effect of Input Transition Time Note Rise and fall transition times on an input port affect the cell delay of the input gate. By default DC assumes zero transition times on inputs. It is therefore important to accurately model transition times on all inputs. Ahmed Abdelazeem ASIC Design Flow
  • 77. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Input Transition: Example 1 Spec: Chip-level: Maximum rise/fall input transition on input port A = 0.12ns set_input_transition 0.12 [get_ports A] Question What if a specific transition time value is not known, at a block-level input port for example? Ahmed Abdelazeem ASIC Design Flow
  • 78. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Input Transition: Example 2 Spec: Block-level: Maximum load on output port B = 1 “AN2”gate load, or= 3 “inv1a0”gates set_driving_cell -lib_cell and2a0 [get_ports IN1] Ahmed Abdelazeem ASIC Design Flow
  • 79. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling PVT Effects Ahmed Abdelazeem ASIC Design Flow
  • 80. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Variations in Cell Delays Library cells are usually characterized using “nominal” voltage and temperature: nominal nom process : 1.0; nom temperature : 25.0; nom voltage : 1.8; Question What if the circuit is to operate at a voltage and/or temperature OTHER than nominal? Ahmed Abdelazeem ASIC Design Flow
  • 81. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Operating Conditions The timing analysis tool resets itself when you switch between operating conditions, and creates different timing data based on the new library information. Operating conditions are applied at the design level. Nowadays, the technology library is created for a specific set of operating conditions. Thus, specifying the library is probably sufficient. ASIC vendors might deliver multiple technology libraries, defining: best-case and worst-case operating conditions optimistic and pessimistic WLM minimum and maximum timing delay set_min_library ssc_core_slow -min_version ssc_core_fast set_operating_conditions -max slow_125_1.62 -min fast_0_1.98 Ahmed Abdelazeem ASIC Design Flow
  • 82. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Net delays Ahmed Abdelazeem ASIC Design Flow
  • 83. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Path Delays are Based on Cell + Net Delays Cell and net delays are both a function of parasitic RCs Ahmed Abdelazeem ASIC Design Flow
  • 84. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Modeling Net RCswith Wire Load Models A wire load model is an estimate of a net’s RC parasitics based on the net’s fanout: Models for various design sizes are supplied by your vendor R/C values are average estimates based on data extracted from similar designs which were fabricated using this process Ahmed Abdelazeem ASIC Design Flow
  • 85. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Wire Load Model Examples Ahmed Abdelazeem ASIC Design Flow
  • 86. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Specifying Wire Loads Manual model selection set_wire_load_model -name 8000000 Automatic model selection selects an appropriate wireload model during compile: Ahmed Abdelazeem ASIC Design Flow
  • 87. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Wireload Model Mode Specifies wire load model to use for nets that cross hierarchical boundaries. Example set_wire_load_mode enclosed Ahmed Abdelazeem ASIC Design Flow
  • 88. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Time Budgeting Question What if you don’t know the delays on your inputs or the setup requirements of your outputs? Answer Create a Time Budget ! Ahmed Abdelazeem ASIC Design Flow
  • 89. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Time Budgeting (cont) Note Better to budget conservatively than to compile with paths unconstrained! Ahmed Abdelazeem ASIC Design Flow
  • 90. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Time Budgeting Example create_clock -period 10 [get_ports CLK] set_dont_touch_network [get_clocks CLK] set_input_delay -max 6 -clock CLK [all_inputs] remove_input_delay [get_ports CLK] set_output_delay -max 6 -clock CLK [all_outputs] Ahmed Abdelazeem ASIC Design Flow
  • 91. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Load Budgeting Question What if, prior to compiling, the cells driving your inputs, and the loads on your outputs are not known? Answer Create a Load Budget! Ahmed Abdelazeem ASIC Design Flow
  • 92. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Load Budgeting (cont) Assume a weak cell driving the inputs, to be conservative Limit the input capacitance of each input port Estimate the number of other major blocks your outputs may have to drive Question How do we limit the input capacitance of an input port? A: Place restrictive design rules on our input ports Ahmed Abdelazeem ASIC Design Flow
  • 93. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Load Budget Example Example Specification: Inputs of any block shall present no more than the load of 10 “AND2” gates to their driving block Outputs of any blocks will only be allowed to connect to a maximum of 3 other blocks Ahmed Abdelazeem ASIC Design Flow
  • 94. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Load Budget Example (cont) set_driving_cell -lib_cell inv1a0 [all_inputs] remove_driving_cell [get_ports Clk] set MAX_INPUT_LOAD [expr [load_of(tech_lib/and2a0/A) * 10]] set_max_capacitance $MAX_INPUT_LOAD [all_inputs] remove_attribute max_capacitance [get_ports Clk] set_load [expr [$MAX_INPUT_LOAD * 3]] [all_outputs] Ahmed Abdelazeem ASIC Design Flow
  • 95. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Asynchronous Multiple Clock Designs Question What do you do if the design has asynchronous clock sources? Ahmed Abdelazeem ASIC Design Flow
  • 96. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Synthesizing with Asynchronous Clocks It is your responsibility to account for the Instantiate double-clocking, metastable-hard Flip-Flops dual-port FIFO, etc Create clocks to constrain the paths within each clock domain You must also disable timing-based synthesis on any path which crosses an asynchronous clock boundary: This will prevent DC from wasting time trying to get the asynchronous path to “meet timing” Ahmed Abdelazeem ASIC Design Flow
  • 97. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Example: Asynchronous Design Constraints create_clock -period 2 [get_ports CLKA] create_clock -period 2 [get_ports CLKB] set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB] set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA] Ahmed Abdelazeem ASIC Design Flow
  • 98. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Multi-Cycle Behavior Situation: Not all paths operate at the target frequency of the design Choose one of the following options: 1 Add pipeline stage(s) to divide the logic into single-cycle paths 2 Ease off the single-cycle requirement: allow more clock cycles Ahmed Abdelazeem ASIC Design Flow
  • 99. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Timing with Multi-cycle Constraints create_clock -period 10 [get_ports CLK] set_multicycle_path {setup 6 -to FF4/D[*] DC assumes change could occur near any clock edge causing metastability! Ahmed Abdelazeem ASIC Design Flow
  • 100. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Default Hold Check Why is hold check performed at 50 ns? Ahmed Abdelazeem ASIC Design Flow
  • 101. Intro Arcs& Unateness Setup& Hold Paths SDC Report Constraints Objects Clock Environmental Budgeting Excep. Set the Proper Hold Constraint set_multicycle_path -setup 6 -to FF4/D[*] set_multicycle_path -hold 5 -to FF4/D[*] Ahmed Abdelazeem ASIC Design Flow
  • 102. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report Table of Contents 1 Introduction 2 Timing arcs and unateness: 3 TRANSMISSION GATE, D-LATCH, DFF,SETUP &HOLD 4 Timing Paths 5 Introduction to SDC Constraints 6 Analyzing a Timing Report Ahmed Abdelazeem ASIC Design Flow
  • 103. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report DesignCompier Timing Reports Users will typically access DesignTime via the report timing command The report timing command The design is broken down into individual timing paths Each timing path is timed out twice; 1 once for a rising edge input, and 2 once with a falling edge input The critical path (worst violator) for each clock group is found A timing report for each clock group is echoed to the screen A DesignCompiler timing report has four major sections Ahmed Abdelazeem ASIC Design Flow
  • 104. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report Timing Report: Path Information Section Ahmed Abdelazeem ASIC Design Flow
  • 105. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report Timing Report: Path Delay Section Ahmed Abdelazeem ASIC Design Flow
  • 106. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report Timing Report: Path Required Section Ahmed Abdelazeem ASIC Design Flow
  • 107. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report Timing Report: Summary Section Ahmed Abdelazeem ASIC Design Flow
  • 108. Intro Arcs& Unateness Setup& Hold Paths SDC Report Report .... ÕækQË@ áÔgQË@ éÊË@ Õæ„. C JÊ ¯ B @ Õ Îª Ë@ áÓ Õ æJKð@ AÓð Ahmed Abdelazeem ASIC Design Flow