Constraints
Constraints
Constraints
The Implementation tools don’t try to find the place and route
that will obtain the best speed
Instead, the Implementation tools try to meet your
performance expectations
Performance expectations are communicated with timing
constraints
Timing Constraints improve the design performance by
placing logic closer together so shorter routing resources can
be used
Note that when we discuss using the Constraint Editor, we
are referring to the Design Manager Constraints Editor
Without Timing Constraints
Making timing constraints becomes easier when you realize that timing
constraints create groups of path endpoints and communicate a timing
specification between these groups
If the arrows are constrained paths, what are the Path End Points in this circuit? Do all of
the registers have anything in common?
CLK
D Q D Q OUT2
BUS [7..0]
= Combinatorial Logic
CDATA
Answers
If the arrows are constrained paths, what are the Path End Points in this
circuit?
– The Path End Points are flip-flops
Do all of the registers have anything in common?
– The registers are all clocked by the same signal. A constraint that references this net
could constrain all delay paths between all of the registers in the design
CLK
= Combinatorial Logic
CDATA
Period Constraint
In this example the Period constraint optimizes all delay paths between flip-flops
The Period constraint does NOT optimize delay paths from input pads to output pads
(purely combinatorial), paths from input pads to flip-flops, or paths from flip-flops to
output pads
CLK
CDATA
= Combinatorial Logic
The Period Constraint
Assume:
50% duty signal on CLK CLK
Period of 20ns BUFG INV
Since FF2 will be clocked on the falling edge of CLK, the delay between
the two flip-flops will actually be constrained to 20ns - 10ns = 10ns
The Pad-to-Pad Constraint
Purely combinatorial delay paths start and end at I/O pads and
are often left unconstrained by users
FLOP LATCH
PADA OUT1
D Q D Q
CLK1 G
BUFG
PADC
Answers
Which paths are constrained by a PERIOD constraint on CLK1?
– FLOP to LATCH
Which paths are constrained by a Pad-to-Pad constraint?
– PADC to OUT2
FLOP LATCH
PADA OUT1
D Q D Q
CLK1 G
BUFG
PADC
Offset Constraint
In this example, the Offset constraint optimizes delay paths from input
pads to flip-flops and paths from flip-flops to output pads
CLK
D Q D Q OUT2
BUS [7..0]
CDATA
= Combinatorial Logic
The Offset Constraint
FLOP LATCH
PADA
D Q D Q
G
OUT1
CLK
BUFG RAM
PADB
OUT2
PADC
Answer
FLOP LATCH
PADA
D Q D Q
G
OUT1
CLK
BUFG RAM
PADB
OUT2
PADC
Starting the Constraints Editor
A global Pad-to-Pad
constraint can be entered
here
Period Constraint Options
Global Offset IN/OUT constraints can be made by clicking on the Global tab
Review Question
• If…
the internal delay on an input signal ADD0_IN is 14 ns, the internal
delay on the output ADD0_OUT is 12 ns, and the design should
perform with a period of 40 ns…
• What constraints should be placed in the the Constraints Editor?
Determined by Determined by
Software Software
Tinput=14ns 40ns Toutput=12ns
40 14 12
Summary