Documente Academic
Documente Profesional
Documente Cultură
Setup and Hold Timing Analysis - 1-3 © Copyright 2016 Xilinx 108343
113133**slide
Static Timing Paths
A static timing path is a path that Clocked elements include
— Starts at a clocked element flip-flops, block RAMs, DSP cells,
— Propagates through any number of among others
combinatorial elements and the
nets that interconnect them Combinatorial elements include
— Ends at a clocked element LUTs, wide MUXes, carry chains,
among others
1
-
4
Setup and Hold Timing Analysis - 1-4 © Copyright 2016 Xilinx 108343
Setup Check
Checks that a change in a clocked element has time to propagate to
other clocked elements before the next clock event
— That is, from the rising edge of the clock to the next rising edge of the clock
— Checked for all static timing paths
1
-
5
Setup and Hold Timing Analysis - 1-5 © Copyright 2016 Xilinx 108343
113135**slide
Setup Checks and Clock Networks
When a clock object is attached to a port/pin/net, the clock propagates
forward to all clocked elements
A timing check includes the propagation of the clock from the point
attached
— To the startpoint of the static timing path (Source Clock Delay)
— To the endpoint of the static timing path (Destination Clock Delay)
1
-
6
Setup and Hold Timing Analysis - 1-6 © Copyright 2016 Xilinx 108343
Launch and Capture Edge for Setup Checks
A setup check
— Starts at the launch edge of the clock driving the startpoint
— Ends at the capture edge of the clock driving the endpoint
1
-
For a path that starts and ends on different clocks, different pairs of
edges will result in different requirements on the static timing path
7
— The timing engine chooses the pair of edges with the tightest requirement
Setup and Hold Timing Analysis - 1-7 © Copyright 2016 Xilinx 108343
Static Timing Paths and I/O
1-
4
57432**slid e
57434**slid e
57435**slid e
I/O Constraints and Virtual Clocks - 1-5 © Copyright 2016 Xilinx 108087
Timing Waveform
create_clock –name SysClk –period 10 [get_ports ClkIn]
set_input_delay –clock SysClk 4 [get_ports DataIn]
1
-
6
I/O Constraints and Virtual Clocks - 1-6 © Copyright 2016 Xilinx 108087
Using a Common Clock
A set_input_delay command can be related to an already existing
clock
— Can be the clock attached to the FPGA clock pin
I/O Constraints and Virtual Clocks - 1-7 © Copyright 2016 Xilinx 108087
108092**slide
Minimum and Maximum Delays
By default, each input port can have one maximum delay and one
minimum delay
— The maximum delay is used for the setup check
— The minimum delay is used for the hold check
Without the –max or –min option, the value supplied is used for both
I/O Constraints and Virtual Clocks - 1-8 © Copyright 2016 Xilinx 108087
Multiple Input Delays on the Same Port
An input can have multiple set_input_delay commands associated
with it
— Use the –add_delay option
— Results in multiple static timing paths to check
1
-
9
I/O Constraints and Virtual Clocks - 1-9 © Copyright 2016 Xilinx 108087
Creating Input Delays Using the GUI
The Timing Constraint window can be opened by selecting Window >
Timing Constraints
— A clock can be created by double-clicking Set Input Delay or in a new row in
the Set Input Delay table
1
-
1
0
I/O Constraints and Virtual Clocks - 1-10 © Copyright 2016 Xilinx 108087
Set Input Delay Wizard
A separate constraint is required for the maximum and minimum
— The wizard retains its options between invocations, making it easy to specify
the minimum after the maximum has been specified
1
-
1
1
I/O Constraints and Virtual Clocks - 1-11 © Copyright 2016 Xilinx 108087
108097**slide
Output Timing Overview (1)
Setup and hold at the downstream device input pins are analyzed for
timing
1
-
1
2
Source and destination clocks need to be defined, from which the tool
derives the source and destination clock edges to consider
— create_clock (actual FPGA clock and virtual downstream device clock)
— System (common) clock or forwarded clock
— create_generated_clock for forwarded output clocks
I/O Constraints and Virtual Clocks - 1-12 © Copyright 2016 Xilinx 108087
113143**slide
Output Timing Overview (2)
I/O Constraints and Virtual Clocks - 1-13 © Copyright 2016 Xilinx 108087
Completing the Static Timing Output Path
To complete the static timing path, you need to describe the external
elements to the Vivado Design Suite static timing engine
— What clock is used by the external device?
— Delay between the output port of the FPGA and the external device’s clock
Includes the required time of the external device and the board delay
1
-
1
4
I/O Constraints and Virtual Clocks - 1-14 © Copyright 2016 Xilinx 108087
108099**slide
Multiple Output Delays on the Same Port
An output can have multiple set_output_delay commands
associated with it
— Use the –add_delay option
— Results in multiple static timing paths to check
1
-
1
5
I/O Constraints and Virtual Clocks - 1-15 © Copyright 2016 Xilinx 108087
108101**slide
Creating Output Delays Using the GUI
The Timing Constraint window can be opened by selecting Window >
Timing Constraints
— A clock can be created by double-clicking Set Output Delay or in a new row
in the Set Output Delay table
1
-
1
6
I/O Constraints and Virtual Clocks - 1-16 © Copyright 2016 Xilinx 108087
Set Output Delay Wizard
A separate constraint is required for the maximum and minimum
— The wizard retains its options between invocations, making it easy to specify
the minimum after the maximum has been specified
1
-
1
7
I/O Constraints and Virtual Clocks - 1-17 © Copyright 2016 Xilinx 108087
108103**slide