SlideShare a Scribd company logo
1 of 75
Ahmed Abdelazeem
03/09/2022
Q-2022.3-SP2
Static Time Analysis(STA) for FPGA
Agenda
Reg-to-Reg and I/O timing, Part1
Reg-to-Reg and I/O timing, Part2
Multiple Clocks and Exceptions
Example Project
Sequential Clocking
Unit Objective
After Completing this Unit, we should be able to:
 All the timing Parameters in Sequential Circuits and How to estimate Setup and
Hold Constraints
Synchronous Design - Reminder
β€’ The majority of digital designs are Synchronous
and constructed with Sequential Elements.
β€’ Synchronous design eliminates races
(like a traffic light).
β€’ Pipelining increases throughput.
β€’ We will assume that all sequential are
Edge-Triggered, using D-Flip Flops as registers
β€’ D-Flip Flops have three critical timing parameters:
β€’ 𝑑𝑐2π‘žβ€“ clock to output: essentially a propagationdelay
β€’ 𝑑𝑠𝑒𝑑𝑒𝑝 – setup time: the time the data needs to arrive before the clock
β€’ π‘‘β„Žπ‘œπ‘™π‘‘β€“ hold time: the time the data has to be stable after the clock
Timing Parameters - π’•π’„πŸπ’’
β€’ π’•π’„πŸπ’’is the time from the clock edge until the data appears
at the output.
β€’ The π’•π’„πŸπ’’ for rising and falling outputs is different.
D
Clk
Q
Timing Parameters - 𝒕𝒔𝒆𝒕𝒖𝒑
β€’ 𝒕𝒔𝒆𝒕𝒖𝒑 - Setup time is the time the data has to arrive before the clock to
ensure correct sampling.
CLK
D
Timing Parameters - 𝒕𝒉𝒐𝒍𝒅
β€’ 𝒕𝒉𝒐𝒍𝒅 - Hold time is the time the data has to be stable after the clock to
ensure correct sampling
CLK
D
Timing Constraints
β€’ There are two main problems that can arise in
synchronous logic:
β€’ Max Delay: The data doesn’t have enough time to pass from one
register to the next before the next clock edge.
β€’ Min Delay: The data path is so short that it passes through several
registers during the same clock cycle.
β€’ Max delay violations are a result of a slow data path,
including the registers’ 𝒕𝒔𝒆𝒕𝒖𝒑, therefore it is often called
the β€œSetup” path.
β€’ Min delay violations are a result of a short data path,
causing the data to change before the 𝒕𝒉𝒐𝒍𝒅 has passed,
therefore it is often called the β€œHold” path.
Setup (Max) Constraints
β€’ Let’s see what makes up our clock cycle:
β€’ After the clock rises, it takes 𝒕π‘ͺπŸπ’’ for the data to propagate to point A.
β€’ Then the data goes through the delay of the logic to get to pointB.
β€’ The data has to arrive at point B, 𝒕𝒔𝒆𝒕𝒖𝒑 before the nextclock.
β€’ In general, our timing path is a race:
β€’ Between the Data Arrival, starting with the launching clock edge.
β€’ And the Data Capture, one clock period later.
tcq
tsetup
CLK
D
A
B
Setup (Max) Constraints
𝑻π‘ͺπ’π’Œ + π‘»π‘Ίπ’Œπ’†π’˜ β‰₯ 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ + 𝑻𝒔𝒆𝒕𝒖𝒑
Hold (Min) Constraints
β€’ Hold problems occur due to the logic changing before 𝒕𝒉𝒐𝒍𝒅 has
passed.
β€’ This is not a function of cycle time – it is relative to a single clock
edge!
β€’ Let’s see how this can happen:
β€’ The clock rises and the data at A changes afterπ’•π’„πŸπ’’.
β€’ The data at B changes 𝒕𝒑𝒅(logic) later.
β€’ Since the data at B had to stay stable for 𝒕𝒉𝒐𝒍𝒅 after the clock (for the
second register), the change at B has to be at least 𝒕𝒉𝒐𝒍𝒅 after the clock
edge.
CLK
D
A
B
Hold (Min) Constraints
𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ > π‘»π‘Ίπ’Œπ’†π’˜ + 𝑻𝒉𝒐𝒍𝒅
Summary
β€’ For Setup constraints, the data has to
propagate fast enough to be captured by the
next clock edge:
β€’ This set our maximum frequency.
β€’ If we have setup failures, we can
always just slow down the clock.
β€’ For Hold constraints, the data path delay has
to long enough so it isn’t accidentally be the
same captured:
β€’ This is independent of clock period.
you can throw your chip away!
𝑻π‘ͺπ’π’Œ + π‘»π‘Ίπ’Œπ’†π’˜ β‰₯ 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ + 𝑻𝒔𝒆𝒕𝒖𝒑
𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ > π‘»π‘Ίπ’Œπ’†π’˜ + 𝑻𝒉𝒐𝒍𝒅
Agenda
Reg-to-Reg and I/O timing, Part1
Reg-to-Reg and I/O timing, Part2
Multiple Clocks and Exceptions
Example Project
Sequential Clocking
Unit Objective
After Completing this Unit, we should be able to:
 Constraint all reg to reg and I/O timing paths of a single clock design for Setup
timing.
Unit Agenda - Part1
β€’ Constraining internal, input and output logic paths
β€’ Constraining combinational logic paths
β€’ Time-budgeting
β€’ Constraint file recommendations and constraint checking
Default Design Scenario
STA Compiler assumes a "synchronously-clocked" environment.
By default:
 Input Data arrives from a pos-edge clocked device.
 Output Data goes to a pos-edge clocked device.
Timing Analysis During/After Synthesis
STA Engine breaks design into timing paths, each with a:
 Start Point
β€’ Input Port (other than a Clock Port)
β€’ Check Pin of Flipflop or Register
 End Point
β€’ Output Port (other than a Clock Port)
β€’ Any Input Pin of a sequential device, except clock π’‘π’Šπ’πŸ.
Constraining Register-to-Register Paths
Constraining Register-to-Register Paths: Example
Spec:
Clock period = 2 ns
create_clock -period 2 [get_ports clk]
What is the maximum delay requirement Tmax for the register-to-register path
through X in MY_DESIGN? Answer
P – Setup = 2 – 0.2 = 1.8
Ideal Clock Behavior
 Defining the clock in a single-clock design constrains all timing paths between registers for single-
cycle, setup time
 Compiler 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
οƒ˜ Zero rise/fall transition times
οƒ˜ Zero skew
οƒ˜ Zero insertion delay or latency
 Estimated skew, latency and transition times can, and should be modeled for a more accurate
representation of clock behavior
Modeling Clock Trees
 Compiler is NOT used to synthesize clock buffer trees
 Clock tree synthesis is usually done by a physical or layout tool, based on actual cell
placement.
Modeling Clock Skew
Uncertainty models the maximum delay difference between the clock network
branches, known as clock skew, but can also include clock jitter and margin:
set_clock_uncertainty -setup 𝑇𝑒 [get_clocks CLK]
Pre-Layout: Clock skew + jitter + margin
Set_clock_uncertainty and Setup Time
Example:
create_clock -period 2 [get_ports CLK]
set_clock_uncertainty -setup 0.14 [get_clocks CLK]
Modeling Latency or Insertion Delay
 Network latency models the average delay from 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 -used for either ideal or propagated clocks (Post
layout)
create_clock -period 10 [get_ports CLK]
set_clock_latency -source -max 3 [get_clocks CLK]
set_clock_latency -max 3 [get_clocks CLK] ; #pre layout
# set_propageted_clock [get_clocks CLK] ; #Post layout
Modeling Transition Time
Transition models the rise and fall times of clock waveform at the
register clock pins:
set_clock_transition -max π‘‡π‘Ÿ [get_clocks CLK]
Pre/Post layout Clock
create_clock -period 5 [get_ports CLK]
set_clock_latency -source -max 4 [get_clocks CLK]
set_clock_latency -max 2 [get_clocks CLK]
set_clock_uncertainty -setup 0.5 [get_clocks CLK]
set_clock_transition -max 0.08 [get_clocks CLK]
create_clock -period 5 [get_ports CLK]
set_clock_latency -source -max 4 [get_clocks CLK]
set_clock_uncertainty -setup 0.2 [get_clocks CLK]
set_propagated_clock [get_ports CLK]
synthesis (Pre-CTS) Clock Constraints Post-CTS Clock Constraints
Constraining Input Path
Constraining Input Paths: Example
Spec:
Latest Data Arrival Time at Port A, after Jana's launching clock edge = 0.6
create_clock -period 2 [get_ports Clk]
set_clock_uncertainty -setup 0.3 [get_clocks Clk]
set_input_delay -max 0.6 -clock Clk [get_ports A]
MY_DESIGN .Cons
What is the maximum delay requirement Tmax for the input path N in
MY_DESIGN? Answer
P – Setup - UNC – IN_DEl = 2 – 0.2 – 0.6 – 0.3 =0.9
Constraining Output Paths
Constraining Output Paths: Example
Spec:
Latest Data Arrival Time at Port B, before Joe’s capturing clock edge = 0.8
create_clock -period 2 [get_ports Clk]
set_clock_uncertainty -setup 0.3 [get_clocks Clk]
set_input_delay -max 0.6 -clock Clk [get_ports A]
set_output_delay -max 0.8 -clock Clk [get_ports B]
MY_DESIGN .Cons
What is the maximum delay requirement Tmax for the input path N in
MY_DESIGN? Answer
P - UNC – OUT_DEl = 2 – 0.3 – 0.8 – 0.3 =0.9
Default I/O Clock Latency and Uncertainty
I/O clocks(set_in/output_delay -clock) inherit the same latencies and uncertainty as
specified by the set_clock_latency/uncertainty commands, by default
create_clock -period 2 [get_ports Clk]
set_clock_latency -source -max 0.3 [get_clocks Clk]
set_clock_latency -max 0.12 [get_clocks Clk]
set_clock_uncertainty -setup 0.2 [get_clocks Clk]
set_input_delay -max 0.6 -clock Clk [all_inputs]
set_output_delay -max 0.8 -clock Clk [all_outputs]
Multiple Inputs/Outputs -same Constraints
To constrain all inputs the same, except for the clock port:
set_input_delay -max 0.5 -clock Clk 
[remove_from_collection [all_inputs] [get_ports Clk]]
To constrain all outputs the same
set_output_delay -max 1.1 -clock Clk [all_outputs]
Unit Agenda - Part 2
β€’ Constraining internal, input and output logic paths
β€’ Constraining combinational logic paths
β€’ Time-budgeting
β€’ Constraint file recommendations and constraint checking
Agenda
Reg-to-Reg and I/O timing, Part1
Reg-to-Reg and I/O timing, Part2
Multiple Clocks and Exceptions
Example Project
Sequential Clocking
Unit Agenda - Part 2
β€’ Constraining internal, input and output logic paths
β€’ Constraining combinational logic paths
β€’ Time-budgeting
β€’ Constraint file recommendations and constraint checking
Example: Combinational Path
create_clock -period 2 [get_ports Clk]
set_clock_uncertainty -setup 0.3 [get_clocks Clk]
set_input_delay -max 0.4 -clock Clk [get_ports B]
set_output_delay -max 0.3 -clock Clk [get_ports D]
𝑇𝐹,π‘šπ‘Žπ‘₯ = 2 βˆ’ 0.3 βˆ’ 0.4 βˆ’ 0.3 = 1.0 𝑛𝑠
Constraining a Purely Combinational Design
What is difference between this Design and The pervious one?
Answer: Use a Virtual Clock!
Answer:
 A clock that is not connected to any port or pin within the current design
 Serves as a reference for input or output delays
 Creates a clock object with a user-specified name within Compiler's
memory
Example: Combinational Design
create_clock -period 2 -name VClk
set_clock_uncertainty -setup 0.3 [get_clocks VClk]
set_input_delay -max 0.4 -clock Clk [get_ports A]
set_output_delay -max 0.3 -clock Clk [get_ports B]
𝑇𝐹,π‘šπ‘Žπ‘₯ = 2 βˆ’ 0.3 βˆ’ 0.4 βˆ’ 0.3 = 1.0 𝑛𝑠
Time Budgeting (1/2)
Time Budgeting (2/2)
Time Budgeting Example
Timing Constraint Summary
Summary: Unit Objective
We should now be able to:
 Constrain all reg_to_reg and I/O timing Paths of a single clock design for
setup timing
Agenda
Reg-to-Reg and I/O timing, Part1
Reg-to-Reg and I/O timing, Part2
Multiple Clocks and Exceptions
Example Project
Sequential Clocking
Unit Objective
After completing this Unit, we should be able to constraint a Design with:
 Multiple synchronous clocks
 Clocks derived from sequential logic
 Mutually exclusive synchronous clocks
 Asynchronous Clocks
 Multi-cycle timing
Agenda – Part 1
Multiple synchronous clocks
Generated Clocks
Mutually Exclusive
Synchronous Clocks
Asynchronous Clocks
Multi-Cycle Paths
Multiple Synchronous Clock Designs
 Multiple Clocks
 All derived from the same clock source
 Some clocks do not have a corresponding clock port on our design
 Multiple constraints on a single port
Multiple Clock Input Delay
create_clock -period 2 [get_ports CLKC]
create_clock -period 3 -name CLKB
set_input_delay -max 0.55 -clock CLKB [get_ports IN1]
Maximum Internal Input Delay Calculation
To get β€œCommon” or base
period information:
report_interclock_relation
For the example shown, input logic cloud N must meet:
𝑑𝑁 < 1.0 βˆ’ 0.55 βˆ’ 𝑑𝑠𝑒𝑑𝑒𝑝
Maximum Internal Output Delay Calculation
create_clock -period 2 [get_ports CLKC]
create_clock -period 1 -name CLKE
create_clock -period [expr {1000/750}] -name CLKD
set_output_delay -max 0.15 -clock CLKD [get_ports OUT1]
set_output_delay -max 0.52 -clock CLKE -add_delay [get_ports OUT1]
Agenda - Part 1
Multiple synchronous clocks
Generated Clocks
Mutually Exclusive
Synchronous Clocks
Asynchronous Clocks
Multi-Cycle Paths
Clock Propagation Through Sequential Logic
Clock definitions (create_clock) do not propagate
through sequential logic
Generated Clocks - Instantiated Register
Agenda - Part 2
Multiple synchronous clocks
Generated Clocks
Mutually Exclusive
Synchronous Clocks
Asynchronous Clocks
Multi-Cycle Paths
Logically Exclusive Clocks: Problem #1
CLK1 and CLK2 are synchronous and logically mutually exclusive
create_clock -period 2.0 [get_ports CLK1]
create_clock -period [expr {1000/750}] [get_ports CLK2]
set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1]
set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1]
Logically Exclusive Clocks: Solution #1
CLK1 and CLK2 are synchronous and logically mutually exclusive
create_clock -period 2.0 [get_ports CLK1]
create_clock -period [expr {1000/750}] [get_ports CLK2]
set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1]
set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1]
set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2]
set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1]
# OR
set_clock_groups -logically_exclusive -group CLK1 -group CLK2
Logically Exclusive Clocks: Problem #2
CLK1 and CLK2 are synchronous and β€œPartially” mutually exclusive
create_clock -period 2.0 [get_ports CLK1]
create_clock -period [expr {1000/750}] [get_ports CLK2]
set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1]
set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1]
set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2]
set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1]
Logically Exclusive Clocks: Solution #2
CLK1 and CLK2 are synchronous and β€œPartially” mutually exclusive
create_clock -period 2.0 [get_ports CLK1]
create_clock -period [expr {1000/750}] [get_ports CLK2]
set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1]
set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1]
set_false_path -from [get_clocks CLK1] 
-through [get_ports OUT1] -to [get_clocks CLK2]
set_false_path -from [get_clocks CLK2] 
-through [get_ports OUT1] -to [get_clocks CLK1]
Multiple Clocks Per Register : Problem #3
 Multiple clocks are allowed to reach register clock pins, and are all analyzed for
worst case timing
β€’ Controlled by the variable timing_enable_multiple_clocks_per_reg (true by default)
 Muxed clocks are not inferred as exclusive clocks!
Multiple Clocks Per Register : Solution #3
Challenge Exercise
Challenge Exercise: Solution
Agenda - Part 3
Multiple synchronous clocks
Generated Clocks
Mutually Exclusive
Synchronous Clocks
Asynchronous Clocks
Multi-Cycle Paths
Asynchronous Clock Designs
Synthesizing with Asynchronous Clocks
 It is your responsibility to design the logic in order to prevent metastability:
β€’ Instantiate double-clocking, metastable-hard Flip-Flops
β€’ Dual-port FIFO, etc.
 Create Clocks to constrain the path within each clock domain
 Disable timing optimization along paths between asynchronous clock domains -
prevent Compiler from:
β€’ Wasting run time on a non-critical timing paths
β€’ Ignoring timing optimization of actual timing critical paths
Asynchronous Designs Constraints
# Constrain register-register paths within each clock domain
create_clock -period 3 [get_ports CLKA]
create_clock -period 2 [get_ports CLKB]
# Disable timing optimization across asynchronous clock
domains
set_clock_groups -asynchronous -group CLKA -group CLKB
Agenda - Part 3
Multiple synchronous clocks
Generated Clocks
Mutually Exclusive
Synchronous Clocks
Asynchronous Clocks
Multi-Cycle Paths
Example Multi-cycle Design
Timing With Multi-cycle Constraints
Where Compiler Perform Hold Analysis?
create_clock -period 2 [get_ports CLK]
set_multicycle_path -setup 6 
-from {A_reg[*] B_reg[*]} -to C_reg[*]
Default Hold Check
set_multicycle_path -setup 6 
-from {A_reg[*] B_reg[*]} -to C_reg[*]
Set the Proper Hold Constraint
set_multicycle_path -setup 6 -from {A_reg[*] B_reg[*]} -to C_reg[*]
set_multicycle_path -hold 5 -from {A_reg[*] B_reg[*]} -to C_reg[*]
Summary: Unit Objective
We should now be able to Constrain a design with:
Multiple synchronous clocks
Clocks derived from sequential logic
Mutually exclusive synchronous clocks
Asynchronous Clocks
Multi-cycle timing
The difference between PLL and MMCM
 PLL: Phase-Locked Loop.
οƒ˜ The frequency it generates is more prepared than DCM, and the jitter is
better, but The PLL cannot dynamically adjust the phase.
 MMCM: Mixed-Mode Clock Manager.
οƒ˜ This is a PLL with a small part of DCM β€œDigital Clock Manager” added to
it for fine phase shifting (this is the reason for its mixed mode-PLL is
analog, but The phase shift is digital).
 The advantage of MMCM over PLL is that the phase can be adjusted
dynamically, but the area occupied by PLL is smaller.

More Related Content

What's hot

Timing closure document
Timing closure documentTiming closure document
Timing closure documentAlan Tran
Β 
Sta by usha_mehta
Sta by usha_mehtaSta by usha_mehta
Sta by usha_mehtaUsha Mehta
Β 
ZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxVishalYadav29718
Β 
STA vs DTA.pptx
STA vs DTA.pptxSTA vs DTA.pptx
STA vs DTA.pptxPayal Dwivedi
Β 
Clock Tree Timing 101
Clock Tree Timing 101Clock Tree Timing 101
Clock Tree Timing 101Silicon Labs
Β 
Formal Verification - Formality.pdf
Formal Verification - Formality.pdfFormal Verification - Formality.pdf
Formal Verification - Formality.pdfAhmed Abdelazeem
Β 
Static_Timing_Analysis_in_detail.pdf
Static_Timing_Analysis_in_detail.pdfStatic_Timing_Analysis_in_detail.pdf
Static_Timing_Analysis_in_detail.pdfUsha Mehta
Β 
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
Β 
VLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyMurali Rai
Β 
Physical design
Physical design Physical design
Physical design Mantra VLSI
Β 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemMostafa Khamis
Β 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlockseInfochips (An Arrow Company)
Β 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSISurya Raj
Β 

What's hot (20)

Timing closure document
Timing closure documentTiming closure document
Timing closure document
Β 
Sta by usha_mehta
Sta by usha_mehtaSta by usha_mehta
Sta by usha_mehta
Β 
ZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptx
Β 
STA vs DTA.pptx
STA vs DTA.pptxSTA vs DTA.pptx
STA vs DTA.pptx
Β 
Clock Tree Timing 101
Clock Tree Timing 101Clock Tree Timing 101
Clock Tree Timing 101
Β 
Vlsi Synthesis
Vlsi SynthesisVlsi Synthesis
Vlsi Synthesis
Β 
Formal Verification - Formality.pdf
Formal Verification - Formality.pdfFormal Verification - Formality.pdf
Formal Verification - Formality.pdf
Β 
Static_Timing_Analysis_in_detail.pdf
Static_Timing_Analysis_in_detail.pdfStatic_Timing_Analysis_in_detail.pdf
Static_Timing_Analysis_in_detail.pdf
Β 
5. DFT.pptx
5. DFT.pptx5. DFT.pptx
5. DFT.pptx
Β 
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-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool Terminalogy
Β 
Floorplanning.pdf
Floorplanning.pdfFloorplanning.pdf
Floorplanning.pdf
Β 
Inputs of physical design
Inputs of physical designInputs of physical design
Inputs of physical design
Β 
ASIC_Design.pdf
ASIC_Design.pdfASIC_Design.pdf
ASIC_Design.pdf
Β 
Physical design
Physical design Physical design
Physical design
Β 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Β 
Physical design
Physical design Physical design
Physical design
Β 
Placement.pdf
Placement.pdfPlacement.pdf
Placement.pdf
Β 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Β 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSI
Β 

Similar to Static_Time_Analysis.pptx

8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdfAhmed Abdelazeem
Β 
file-3.ppt
file-3.pptfile-3.ppt
file-3.pptteja411944
Β 
file-3.ppt
file-3.pptfile-3.ppt
file-3.pptteja411944
Β 
sta slide ref.pdf
sta slide ref.pdfsta slide ref.pdf
sta slide ref.pdfquandao25
Β 
Lecture-5-STA.pdf
Lecture-5-STA.pdfLecture-5-STA.pdf
Lecture-5-STA.pdfKarthikYogesh3
Β 
13 static timing_analysis_4_set_up_and_hold_time_violation_remedy
13 static timing_analysis_4_set_up_and_hold_time_violation_remedy13 static timing_analysis_4_set_up_and_hold_time_violation_remedy
13 static timing_analysis_4_set_up_and_hold_time_violation_remedyUsha Mehta
Β 
Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1colman mboya
Β 
SOC Chip Basics
SOC Chip BasicsSOC Chip Basics
SOC Chip BasicsA B Shinde
Β 
**Understanding_CTS_Log_Messages.pdf
**Understanding_CTS_Log_Messages.pdf**Understanding_CTS_Log_Messages.pdf
**Understanding_CTS_Log_Messages.pdfagnathavasi
Β 
TCP timers.ppt
TCP timers.pptTCP timers.ppt
TCP timers.pptJayaprasanna4
Β 
persist timer.ppt
persist timer.pptpersist timer.ppt
persist timer.pptJayaprasanna4
Β 
12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_designUsha Mehta
Β 
Unit-III.pptx
Unit-III.pptxUnit-III.pptx
Unit-III.pptxSambasiva62
Β 
Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization FlowSatish Grandhi
Β 
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSDeepak Shankar
Β 
Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verificationdennis gookyi
Β 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEVLSIUNIVERSE
Β 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTanel Poder
Β 

Similar to Static_Time_Analysis.pptx (20)

8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf8. Clock Tree Synthesis.pdf
8. Clock Tree Synthesis.pdf
Β 
file-3.ppt
file-3.pptfile-3.ppt
file-3.ppt
Β 
file-3.ppt
file-3.pptfile-3.ppt
file-3.ppt
Β 
sta slide ref.pdf
sta slide ref.pdfsta slide ref.pdf
sta slide ref.pdf
Β 
Lecture-5-STA.pdf
Lecture-5-STA.pdfLecture-5-STA.pdf
Lecture-5-STA.pdf
Β 
13 static timing_analysis_4_set_up_and_hold_time_violation_remedy
13 static timing_analysis_4_set_up_and_hold_time_violation_remedy13 static timing_analysis_4_set_up_and_hold_time_violation_remedy
13 static timing_analysis_4_set_up_and_hold_time_violation_remedy
Β 
Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1
Β 
Major project iii 3
Major project  iii  3Major project  iii  3
Major project iii 3
Β 
SOC Chip Basics
SOC Chip BasicsSOC Chip Basics
SOC Chip Basics
Β 
**Understanding_CTS_Log_Messages.pdf
**Understanding_CTS_Log_Messages.pdf**Understanding_CTS_Log_Messages.pdf
**Understanding_CTS_Log_Messages.pdf
Β 
Scan insertion
Scan insertionScan insertion
Scan insertion
Β 
TCP timers.ppt
TCP timers.pptTCP timers.ppt
TCP timers.ppt
Β 
persist timer.ppt
persist timer.pptpersist timer.ppt
persist timer.ppt
Β 
12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design
Β 
Unit-III.pptx
Unit-III.pptxUnit-III.pptx
Unit-III.pptx
Β 
Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization Flow
Β 
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
Β 
Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verification
Β 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSE
Β 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Β 

More from Ahmed Abdelazeem

6. Design Planning.pdf
6. Design Planning.pdf6. Design Planning.pdf
6. Design Planning.pdfAhmed Abdelazeem
Β 
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 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
Β 
ready_valid_interface.pdf
ready_valid_interface.pdfready_valid_interface.pdf
ready_valid_interface.pdfAhmed Abdelazeem
Β 
always_at_blocks.pdf
always_at_blocks.pdfalways_at_blocks.pdf
always_at_blocks.pdfAhmed Abdelazeem
Β 
1. Introduction to PnR.pptx
1. Introduction to PnR.pptx1. Introduction to PnR.pptx
1. Introduction to PnR.pptxAhmed 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
Β 

More from Ahmed Abdelazeem (20)

10. Signoff.pdf
10. Signoff.pdf10. Signoff.pdf
10. Signoff.pdf
Β 
9. Routing.pdf
9. Routing.pdf9. Routing.pdf
9. Routing.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
Β 
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
Β 
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
Β 
1. Introduction to PnR.pptx
1. Introduction to PnR.pptx1. Introduction to PnR.pptx
1. Introduction to PnR.pptx
Β 
4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptx4. Formal Equivalence Checking (Formality).pptx
4. Formal Equivalence Checking (Formality).pptx
Β 
3. Synthesis.pptx
3. Synthesis.pptx3. Synthesis.pptx
3. Synthesis.pptx
Β 
Routing.pdf
Routing.pdfRouting.pdf
Routing.pdf
Β 
Standard-Cells.pdf
Standard-Cells.pdfStandard-Cells.pdf
Standard-Cells.pdf
Β 
PowerPlanning.pdf
PowerPlanning.pdfPowerPlanning.pdf
PowerPlanning.pdf
Β 
EMIR.pdf
EMIR.pdfEMIR.pdf
EMIR.pdf
Β 
Crosstalk.pdf
Crosstalk.pdfCrosstalk.pdf
Crosstalk.pdf
Β 

Recently uploaded

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
Β 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
Β 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
Β 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
Β 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
Β 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
Β 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
Β 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
Β 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
Β 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
Β 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
Β 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
Β 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
Β 
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”soniya singh
Β 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
Β 
(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
Β 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
Β 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
Β 

Recently uploaded (20)

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 )
Β 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
Β 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
Β 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
Β 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
Β 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
Β 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Β 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
Β 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
Β 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
Β 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
Β 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
Β 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
Β 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
Β 
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”
Model Call Girl in Narela Delhi reach out to us at πŸ”8264348440πŸ”
Β 
β˜… CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
β˜… CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCRβ˜… CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
β˜… CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
Β 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
Β 
(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
Β 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
Β 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Β 

Static_Time_Analysis.pptx

  • 2. Agenda Reg-to-Reg and I/O timing, Part1 Reg-to-Reg and I/O timing, Part2 Multiple Clocks and Exceptions Example Project Sequential Clocking
  • 3. Unit Objective After Completing this Unit, we should be able to:  All the timing Parameters in Sequential Circuits and How to estimate Setup and Hold Constraints
  • 4. Synchronous Design - Reminder β€’ The majority of digital designs are Synchronous and constructed with Sequential Elements. β€’ Synchronous design eliminates races (like a traffic light). β€’ Pipelining increases throughput. β€’ We will assume that all sequential are Edge-Triggered, using D-Flip Flops as registers β€’ D-Flip Flops have three critical timing parameters: β€’ 𝑑𝑐2π‘žβ€“ clock to output: essentially a propagationdelay β€’ 𝑑𝑠𝑒𝑑𝑒𝑝 – setup time: the time the data needs to arrive before the clock β€’ π‘‘β„Žπ‘œπ‘™π‘‘β€“ hold time: the time the data has to be stable after the clock
  • 5. Timing Parameters - π’•π’„πŸπ’’ β€’ π’•π’„πŸπ’’is the time from the clock edge until the data appears at the output. β€’ The π’•π’„πŸπ’’ for rising and falling outputs is different. D Clk Q
  • 6. Timing Parameters - 𝒕𝒔𝒆𝒕𝒖𝒑 β€’ 𝒕𝒔𝒆𝒕𝒖𝒑 - Setup time is the time the data has to arrive before the clock to ensure correct sampling. CLK D
  • 7. Timing Parameters - 𝒕𝒉𝒐𝒍𝒅 β€’ 𝒕𝒉𝒐𝒍𝒅 - Hold time is the time the data has to be stable after the clock to ensure correct sampling CLK D
  • 8. Timing Constraints β€’ There are two main problems that can arise in synchronous logic: β€’ Max Delay: The data doesn’t have enough time to pass from one register to the next before the next clock edge. β€’ Min Delay: The data path is so short that it passes through several registers during the same clock cycle. β€’ Max delay violations are a result of a slow data path, including the registers’ 𝒕𝒔𝒆𝒕𝒖𝒑, therefore it is often called the β€œSetup” path. β€’ Min delay violations are a result of a short data path, causing the data to change before the 𝒕𝒉𝒐𝒍𝒅 has passed, therefore it is often called the β€œHold” path.
  • 9. Setup (Max) Constraints β€’ Let’s see what makes up our clock cycle: β€’ After the clock rises, it takes 𝒕π‘ͺπŸπ’’ for the data to propagate to point A. β€’ Then the data goes through the delay of the logic to get to pointB. β€’ The data has to arrive at point B, 𝒕𝒔𝒆𝒕𝒖𝒑 before the nextclock. β€’ In general, our timing path is a race: β€’ Between the Data Arrival, starting with the launching clock edge. β€’ And the Data Capture, one clock period later. tcq tsetup CLK D A B
  • 10. Setup (Max) Constraints 𝑻π‘ͺπ’π’Œ + π‘»π‘Ίπ’Œπ’†π’˜ β‰₯ 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ + 𝑻𝒔𝒆𝒕𝒖𝒑
  • 11. Hold (Min) Constraints β€’ Hold problems occur due to the logic changing before 𝒕𝒉𝒐𝒍𝒅 has passed. β€’ This is not a function of cycle time – it is relative to a single clock edge! β€’ Let’s see how this can happen: β€’ The clock rises and the data at A changes afterπ’•π’„πŸπ’’. β€’ The data at B changes 𝒕𝒑𝒅(logic) later. β€’ Since the data at B had to stay stable for 𝒕𝒉𝒐𝒍𝒅 after the clock (for the second register), the change at B has to be at least 𝒕𝒉𝒐𝒍𝒅 after the clock edge. CLK D A B
  • 12. Hold (Min) Constraints 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ > π‘»π‘Ίπ’Œπ’†π’˜ + 𝑻𝒉𝒐𝒍𝒅
  • 13. Summary β€’ For Setup constraints, the data has to propagate fast enough to be captured by the next clock edge: β€’ This set our maximum frequency. β€’ If we have setup failures, we can always just slow down the clock. β€’ For Hold constraints, the data path delay has to long enough so it isn’t accidentally be the same captured: β€’ This is independent of clock period. you can throw your chip away! 𝑻π‘ͺπ’π’Œ + π‘»π‘Ίπ’Œπ’†π’˜ β‰₯ 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ + 𝑻𝒔𝒆𝒕𝒖𝒑 𝑻π‘ͺπŸπ’’ + 𝑻π‘ͺπ’π’Žπ’ƒ > π‘»π‘Ίπ’Œπ’†π’˜ + 𝑻𝒉𝒐𝒍𝒅
  • 14. Agenda Reg-to-Reg and I/O timing, Part1 Reg-to-Reg and I/O timing, Part2 Multiple Clocks and Exceptions Example Project Sequential Clocking
  • 15. Unit Objective After Completing this Unit, we should be able to:  Constraint all reg to reg and I/O timing paths of a single clock design for Setup timing.
  • 16. Unit Agenda - Part1 β€’ Constraining internal, input and output logic paths β€’ Constraining combinational logic paths β€’ Time-budgeting β€’ Constraint file recommendations and constraint checking
  • 17. Default Design Scenario STA Compiler assumes a "synchronously-clocked" environment. By default:  Input Data arrives from a pos-edge clocked device.  Output Data goes to a pos-edge clocked device.
  • 18. Timing Analysis During/After Synthesis STA Engine breaks design into timing paths, each with a:  Start Point β€’ Input Port (other than a Clock Port) β€’ Check Pin of Flipflop or Register  End Point β€’ Output Port (other than a Clock Port) β€’ Any Input Pin of a sequential device, except clock π’‘π’Šπ’πŸ.
  • 20. Constraining Register-to-Register Paths: Example Spec: Clock period = 2 ns create_clock -period 2 [get_ports clk] What is the maximum delay requirement Tmax for the register-to-register path through X in MY_DESIGN? Answer P – Setup = 2 – 0.2 = 1.8
  • 21. Ideal Clock Behavior  Defining the clock in a single-clock design constrains all timing paths between registers for single- cycle, setup time  Compiler 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 οƒ˜ Zero rise/fall transition times οƒ˜ Zero skew οƒ˜ Zero insertion delay or latency  Estimated skew, latency and transition times can, and should be modeled for a more accurate representation of clock behavior
  • 22. Modeling Clock Trees  Compiler is NOT used to synthesize clock buffer trees  Clock tree synthesis is usually done by a physical or layout tool, based on actual cell placement.
  • 23. Modeling Clock Skew Uncertainty models the maximum delay difference between the clock network branches, known as clock skew, but can also include clock jitter and margin: set_clock_uncertainty -setup 𝑇𝑒 [get_clocks CLK] Pre-Layout: Clock skew + jitter + margin
  • 24. Set_clock_uncertainty and Setup Time Example: create_clock -period 2 [get_ports CLK] set_clock_uncertainty -setup 0.14 [get_clocks CLK]
  • 25. Modeling Latency or Insertion Delay  Network latency models the average delay from 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 -used for either ideal or propagated clocks (Post layout) create_clock -period 10 [get_ports CLK] set_clock_latency -source -max 3 [get_clocks CLK] set_clock_latency -max 3 [get_clocks CLK] ; #pre layout # set_propageted_clock [get_clocks CLK] ; #Post layout
  • 26. Modeling Transition Time Transition models the rise and fall times of clock waveform at the register clock pins: set_clock_transition -max π‘‡π‘Ÿ [get_clocks CLK]
  • 27. Pre/Post layout Clock create_clock -period 5 [get_ports CLK] set_clock_latency -source -max 4 [get_clocks CLK] set_clock_latency -max 2 [get_clocks CLK] set_clock_uncertainty -setup 0.5 [get_clocks CLK] set_clock_transition -max 0.08 [get_clocks CLK] create_clock -period 5 [get_ports CLK] set_clock_latency -source -max 4 [get_clocks CLK] set_clock_uncertainty -setup 0.2 [get_clocks CLK] set_propagated_clock [get_ports CLK] synthesis (Pre-CTS) Clock Constraints Post-CTS Clock Constraints
  • 29. Constraining Input Paths: Example Spec: Latest Data Arrival Time at Port A, after Jana's launching clock edge = 0.6 create_clock -period 2 [get_ports Clk] set_clock_uncertainty -setup 0.3 [get_clocks Clk] set_input_delay -max 0.6 -clock Clk [get_ports A] MY_DESIGN .Cons What is the maximum delay requirement Tmax for the input path N in MY_DESIGN? Answer P – Setup - UNC – IN_DEl = 2 – 0.2 – 0.6 – 0.3 =0.9
  • 31. Constraining Output Paths: Example Spec: Latest Data Arrival Time at Port B, before Joe’s capturing clock edge = 0.8 create_clock -period 2 [get_ports Clk] set_clock_uncertainty -setup 0.3 [get_clocks Clk] set_input_delay -max 0.6 -clock Clk [get_ports A] set_output_delay -max 0.8 -clock Clk [get_ports B] MY_DESIGN .Cons What is the maximum delay requirement Tmax for the input path N in MY_DESIGN? Answer P - UNC – OUT_DEl = 2 – 0.3 – 0.8 – 0.3 =0.9
  • 32. Default I/O Clock Latency and Uncertainty I/O clocks(set_in/output_delay -clock) inherit the same latencies and uncertainty as specified by the set_clock_latency/uncertainty commands, by default create_clock -period 2 [get_ports Clk] set_clock_latency -source -max 0.3 [get_clocks Clk] set_clock_latency -max 0.12 [get_clocks Clk] set_clock_uncertainty -setup 0.2 [get_clocks Clk] set_input_delay -max 0.6 -clock Clk [all_inputs] set_output_delay -max 0.8 -clock Clk [all_outputs]
  • 33. Multiple Inputs/Outputs -same Constraints To constrain all inputs the same, except for the clock port: set_input_delay -max 0.5 -clock Clk [remove_from_collection [all_inputs] [get_ports Clk]] To constrain all outputs the same set_output_delay -max 1.1 -clock Clk [all_outputs]
  • 34. Unit Agenda - Part 2 β€’ Constraining internal, input and output logic paths β€’ Constraining combinational logic paths β€’ Time-budgeting β€’ Constraint file recommendations and constraint checking
  • 35. Agenda Reg-to-Reg and I/O timing, Part1 Reg-to-Reg and I/O timing, Part2 Multiple Clocks and Exceptions Example Project Sequential Clocking
  • 36. Unit Agenda - Part 2 β€’ Constraining internal, input and output logic paths β€’ Constraining combinational logic paths β€’ Time-budgeting β€’ Constraint file recommendations and constraint checking
  • 37. Example: Combinational Path create_clock -period 2 [get_ports Clk] set_clock_uncertainty -setup 0.3 [get_clocks Clk] set_input_delay -max 0.4 -clock Clk [get_ports B] set_output_delay -max 0.3 -clock Clk [get_ports D] 𝑇𝐹,π‘šπ‘Žπ‘₯ = 2 βˆ’ 0.3 βˆ’ 0.4 βˆ’ 0.3 = 1.0 𝑛𝑠
  • 38. Constraining a Purely Combinational Design What is difference between this Design and The pervious one?
  • 39. Answer: Use a Virtual Clock! Answer:  A clock that is not connected to any port or pin within the current design  Serves as a reference for input or output delays  Creates a clock object with a user-specified name within Compiler's memory
  • 40. Example: Combinational Design create_clock -period 2 -name VClk set_clock_uncertainty -setup 0.3 [get_clocks VClk] set_input_delay -max 0.4 -clock Clk [get_ports A] set_output_delay -max 0.3 -clock Clk [get_ports B] 𝑇𝐹,π‘šπ‘Žπ‘₯ = 2 βˆ’ 0.3 βˆ’ 0.4 βˆ’ 0.3 = 1.0 𝑛𝑠
  • 45. Summary: Unit Objective We should now be able to:  Constrain all reg_to_reg and I/O timing Paths of a single clock design for setup timing
  • 46. Agenda Reg-to-Reg and I/O timing, Part1 Reg-to-Reg and I/O timing, Part2 Multiple Clocks and Exceptions Example Project Sequential Clocking
  • 47. Unit Objective After completing this Unit, we should be able to constraint a Design with:  Multiple synchronous clocks  Clocks derived from sequential logic  Mutually exclusive synchronous clocks  Asynchronous Clocks  Multi-cycle timing
  • 48. Agenda – Part 1 Multiple synchronous clocks Generated Clocks Mutually Exclusive Synchronous Clocks Asynchronous Clocks Multi-Cycle Paths
  • 49. Multiple Synchronous Clock Designs  Multiple Clocks  All derived from the same clock source  Some clocks do not have a corresponding clock port on our design  Multiple constraints on a single port
  • 50. Multiple Clock Input Delay create_clock -period 2 [get_ports CLKC] create_clock -period 3 -name CLKB set_input_delay -max 0.55 -clock CLKB [get_ports IN1]
  • 51. Maximum Internal Input Delay Calculation To get β€œCommon” or base period information: report_interclock_relation For the example shown, input logic cloud N must meet: 𝑑𝑁 < 1.0 βˆ’ 0.55 βˆ’ 𝑑𝑠𝑒𝑑𝑒𝑝
  • 52. Maximum Internal Output Delay Calculation create_clock -period 2 [get_ports CLKC] create_clock -period 1 -name CLKE create_clock -period [expr {1000/750}] -name CLKD set_output_delay -max 0.15 -clock CLKD [get_ports OUT1] set_output_delay -max 0.52 -clock CLKE -add_delay [get_ports OUT1]
  • 53. Agenda - Part 1 Multiple synchronous clocks Generated Clocks Mutually Exclusive Synchronous Clocks Asynchronous Clocks Multi-Cycle Paths
  • 54. Clock Propagation Through Sequential Logic Clock definitions (create_clock) do not propagate through sequential logic
  • 55. Generated Clocks - Instantiated Register
  • 56. Agenda - Part 2 Multiple synchronous clocks Generated Clocks Mutually Exclusive Synchronous Clocks Asynchronous Clocks Multi-Cycle Paths
  • 57. Logically Exclusive Clocks: Problem #1 CLK1 and CLK2 are synchronous and logically mutually exclusive create_clock -period 2.0 [get_ports CLK1] create_clock -period [expr {1000/750}] [get_ports CLK2] set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1] set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1]
  • 58. Logically Exclusive Clocks: Solution #1 CLK1 and CLK2 are synchronous and logically mutually exclusive create_clock -period 2.0 [get_ports CLK1] create_clock -period [expr {1000/750}] [get_ports CLK2] set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1] set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1] set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2] set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1] # OR set_clock_groups -logically_exclusive -group CLK1 -group CLK2
  • 59. Logically Exclusive Clocks: Problem #2 CLK1 and CLK2 are synchronous and β€œPartially” mutually exclusive create_clock -period 2.0 [get_ports CLK1] create_clock -period [expr {1000/750}] [get_ports CLK2] set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1] set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1] set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2] set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1]
  • 60. Logically Exclusive Clocks: Solution #2 CLK1 and CLK2 are synchronous and β€œPartially” mutually exclusive create_clock -period 2.0 [get_ports CLK1] create_clock -period [expr {1000/750}] [get_ports CLK2] set_output_delay -max 0.15 -clock CLK1 [get_ports OUT1] set_output_delay -max 0.52 -clock CLK1 -add [get_ports OUT1] set_false_path -from [get_clocks CLK1] -through [get_ports OUT1] -to [get_clocks CLK2] set_false_path -from [get_clocks CLK2] -through [get_ports OUT1] -to [get_clocks CLK1]
  • 61. Multiple Clocks Per Register : Problem #3  Multiple clocks are allowed to reach register clock pins, and are all analyzed for worst case timing β€’ Controlled by the variable timing_enable_multiple_clocks_per_reg (true by default)  Muxed clocks are not inferred as exclusive clocks!
  • 62. Multiple Clocks Per Register : Solution #3
  • 65. Agenda - Part 3 Multiple synchronous clocks Generated Clocks Mutually Exclusive Synchronous Clocks Asynchronous Clocks Multi-Cycle Paths
  • 67. Synthesizing with Asynchronous Clocks  It is your responsibility to design the logic in order to prevent metastability: β€’ Instantiate double-clocking, metastable-hard Flip-Flops β€’ Dual-port FIFO, etc.  Create Clocks to constrain the path within each clock domain  Disable timing optimization along paths between asynchronous clock domains - prevent Compiler from: β€’ Wasting run time on a non-critical timing paths β€’ Ignoring timing optimization of actual timing critical paths
  • 68. Asynchronous Designs Constraints # Constrain register-register paths within each clock domain create_clock -period 3 [get_ports CLKA] create_clock -period 2 [get_ports CLKB] # Disable timing optimization across asynchronous clock domains set_clock_groups -asynchronous -group CLKA -group CLKB
  • 69. Agenda - Part 3 Multiple synchronous clocks Generated Clocks Mutually Exclusive Synchronous Clocks Asynchronous Clocks Multi-Cycle Paths
  • 71. Timing With Multi-cycle Constraints Where Compiler Perform Hold Analysis? create_clock -period 2 [get_ports CLK] set_multicycle_path -setup 6 -from {A_reg[*] B_reg[*]} -to C_reg[*]
  • 72. Default Hold Check set_multicycle_path -setup 6 -from {A_reg[*] B_reg[*]} -to C_reg[*]
  • 73. Set the Proper Hold Constraint set_multicycle_path -setup 6 -from {A_reg[*] B_reg[*]} -to C_reg[*] set_multicycle_path -hold 5 -from {A_reg[*] B_reg[*]} -to C_reg[*]
  • 74. Summary: Unit Objective We should now be able to Constrain a design with: Multiple synchronous clocks Clocks derived from sequential logic Mutually exclusive synchronous clocks Asynchronous Clocks Multi-cycle timing
  • 75. The difference between PLL and MMCM  PLL: Phase-Locked Loop. οƒ˜ The frequency it generates is more prepared than DCM, and the jitter is better, but The PLL cannot dynamically adjust the phase.  MMCM: Mixed-Mode Clock Manager. οƒ˜ This is a PLL with a small part of DCM β€œDigital Clock Manager” added to it for fine phase shifting (this is the reason for its mixed mode-PLL is analog, but The phase shift is digital).  The advantage of MMCM over PLL is that the phase can be adjusted dynamically, but the area occupied by PLL is smaller.

Editor's Notes

  1. 1- "Examples of non-clock input pins of a sequential device: D (Data), S(Set) or R (Reset), E (Enable)." Static Timing Analysis determines if a circuit meets timing constraints during and after synthesis This involves three main steps: 1) The design is broken down into sets of timing paths 2) The delay of each path is calculated 3) Path delays are compared against expected arrival times to determine if constraints have been met or not
  2. The duty cycle matters only if your registers are clocked by both positive and negative edges of the clock. In the example down both registers are positive-edge-triggered so the duty cycle docs not matter. The only information the user must supply is the clock period. DC retrieves the setup time of FF3 from the technology library.
  3. "Unless explicitly defined with the -waveform option, the clock object that is created starts off going high at 0ns, comes down at 50% of the clock period, and repeats every clock period. The clock object's name is the same as the port/pin object to which it is assigned, unless explicitly defined by the -name option. The unit of time is defined in the technology library. it is commonly 1 nanosecond, as in the example above.
  4. clock skew: The difference in the arrival time of a clock signal at two different registers, which can be caused by path length differences between two clock paths, or by using gated or rippled clocks. Clock skew is the most common cause of internal hold violations.
  5. By default, the command "set_clock_uncertainty" assigns the same value to the setup and the hold uncertainty, unless either the -setup or the -hold switch is used. This allows the design to be synthesized with different uncertainty numbers for setup versus hold timing, for example: For single clock timing paths, clock jitter applies to setup timing but not to hold timing, so jitter would be included in the setup uncertainty, but not in the hold uncertainty.
  6. If you do not use the -source option with set_clock_latency, then the specified value represents network latency. The total latency to any register (called "clock network delay"in a timing report) is equal to the source latency + network latency. In a single-clock design the launch and capture clock edges inherit the same total latency, which cancel each other out. Clock latencies are important in multi-clock designs where one clock domain with one total latency communicates with another clock domain with a different total latency. After clock tree synthesis (CTS), clocks are no longer "ideal" - they become "propagated ".For propagated clocks, ideal network latency constraints are ignored by timing analysis and replaced by the measured latencies derived from their propagated clock buffer delays. However, source latency constraints are still added to their respective propagated network latencies to calculate the total post-CTS clock latencies."
  7. For post-CTS(Clock Tree Synthesis) static timing analysis set_propagated_clock forces the analyzer to calculate the ACTUAL clock tree skew, latency and transition times. The post-CTS constraints therefore do not include ideal transition and network latency commands. If the uncertainty number used during synthesis includes jitter and/or margin, these effects must still be included in the post-CTS analysis, along with the source latency. If the network latency and clock transition constraints are kept, along with the "propagatedβ€œ clocks, these constraints are ignored during timing analysis. The actual propagated network latencies and transition times are calculated and applied. It is therefore not necessary to delete these constraints (as implied by the down post-CTS example).
  8. ANSWER: In addition to the clock definition, the user must supply the latest arrival time of the data at input port A, with respect to FF1 's launching clock edge. In other words, an amount of time AFTER the external (Jane's) launching clock edge. STA retrieves the setup time of FF2 from the technology library.
  9. ANSWER: In addition to the clock definition, the user must supply the latest arrival time of the data at output port B, with respect to FF4's capturing clock edge. In other words, the maximum "Setup" at Joe's input, with respect to Joe's Clock. This is an amount if Time Before The external capturing clock edge.
  10. The goal of this example is to tell the Compiler that input timing path N (including the setup time of FF2) only has 40% of the clock period. If the designer for Circuit X does also constrains their block's output path to 40% of the clock period this allows a 20% timing margin between the blocks.
  11. The following example shows the output when there are two clocks: CLKB has period of 3ns and CLKC has a period of 2ns report_interclock_relation *************************** Report: Interclock Relation *************************** From period1 count1 To Period2 Count2 Common ---------------------------------------------------------------------------------------------------------------- CLKB 3.00 2 CLKC 2.00 3 6.00 CLKC 2.00 3 CLKB 3.00 2 6.00 if there is a set_false_path -from CLKC -to CLKB, then: From period1 count1 To Period2 Count2 Common ---------------------------------------------------------------------------------------------------------------- CLKB 3.00 2 CLKC 2.00 3 6.00
  12. Answer: No! The paths through "S" and "T" may be incorrectly over-constrained because Compiler will pick the worst of the two output delay constraints and apply that to each of the paths
  13. Answer: This will disable optimization along "legal" timing paths between CLK1 and CLK2 -paths connected by the "red" nets above.
  14. Answer: CLK1 and CLK2 are mutually exclusive for FF1 and FF2, but not for FF3 and FF4 Create generate clocks at the MUX output, and define the generated clocks as physically exclusive