STA Presentation de 2019 CoreVision
STA Presentation de 2019 CoreVision
Frank de Bont
Trainer / Consultant
Clocks
1
-3
120942
Clock Pessimism
1
-1
5
► Often, the same components are on both the source clock path and the
destination clock path
► Source clock path is timed at [slow_max]
► Destination clock path is timed at [slow_min]
► But a given cell cannot have two different delays at the same time
► Results in pessimism due to the re-convergence of the clock path
120942
► 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
► create_clock –name SysClk –period 10
► set_input_delay –clock SysClk 4 –max [get_ports DataIn]
► set_input_delay –clock SysClk 2 –min [get_ports DataIn]
121318
►Both setup and hold at the FPGA input register are analyzed for timing
►Source and destination clocks need to be defined
► Create_clock (FPGA system clock and virtual upstream device clock)
► System (common) clock or forwarded clock
121318
121318
121318
121318
► To complete the static timing path, you need to describe the external
elements for the 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
121318
► Setup and hold at the downstream device input pins are analyzed for timing
► Source and destination clocks need to be defined, from which the tool
derives the source and destination clock edges to consider
121318
121318
121318
► Combinational delays are paths that enter and exit the FPGA
without being captured by any sequential elements
121299
121337
121337
121325
► There are two possible hold checks for each possible setup check
► From the setup launch edge to the edge before the setup capture edge
► From the edge after the setup launch edge to the setup capture edge
► The launch and capture edges with the tightest requirement are used for
the hold check
121325
121325
121325
121325
► When a flip-flop (REGB0) ► The Vivado timing engine sees the REGB0 →
samples an asynchronous input, REGB1 path as a normal static timing path,
the flip-flop can go metastable subject to a normal setup check
► The metastability will probabilistically ► Allows one clock period of CLKB for the
resolve after some time propagation, including routing
► Back to back flip-flops allow one clock
period for the metastability to resolve before ► To leave time for metastability resolution, the
the second flip-flop samples it (REGB1) requirement on this path should be changed
► When crossing asynchronously between different clock domains a clock crossing circuit is required
► Many approaches exist ► All of these approaches have implicit
► Use Gray code assumptions
► Use an enable to determine a stable point ► Generally, the skew between different bits of the
► Use a FIFO bus to be crossed cannot exceed one clock
period
► It is not possible to constrain skew, but it is possible to
constrain the maximum delay on all bits of the bus
► In these cases, the clock propagation analysis is irrelevant and should be overridden with
the –datapath_only option