Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

timing constraint- output delay

Status
Not open for further replies.

preethi19

Full Member level 5
Joined
Jun 30, 2014
Messages
273
Helped
0
Reputation
0
Reaction score
1
Trophy points
16
Activity points
3,474
Hi i am learning Static Timing analysis in vivado. I am working on a simple D-flip flop with 2 inputs (CLK and D) and 2 outputs (Q and Qbar). So i have given delay to the input D of 3ns and i can see that the input is delayed by 3ns (meaning say if the data is to arrive at 5ns then it arrives at 8ns ie 5+3=8ns)...But for output delay i have given 3ns delay. The output slack calculation is done by "Required time - Arrival time". So say my data is required to be present at 15ns and the arrival time is 10ns. I thought then if the arriving time is 10ns then with delay of 3ns sec i would get the data to arrive at 13ns (which is still within the required time). But when i checked the analysis done in vivado i can see the output delay is getting subtracted from the required time ie (15-3=12)... I have written rough numbers here. I have attached an image which would be more clear.
output delay.png
Can someone pls explain this concept..
 

SDC specifies timing based on external requirements.

Output delay is the trace delay + the setup time required for the external device's setup time. Hence it is subtracted from the clock period.

Input delay is the Tco + trace delay of the external device driving an input. Hence it is added to the data path delay reducing the available time in the FPGA for input setup.
 
Thank you for the reply!!! So say for instance der is no output delay set then the the "required time" will be around 15ns. So does this mean that the arriving data can arrive anytime within the 15ns. So if we give an output delay so then the "required time" is reduced constraining the output to arrive sooner (like say within 11ns) or else der will be a violation. Am i right??? Its still a bit confusing...
 

From the point of view of the FPGA timing:

FPGA Tco = Tclock_period - Toutput_delay_value

FPGA Tsu = Tclock_period - Tinput_delay_value


If you don't set an output delay for an output, then any Tco for the FPGA is valid. 0 ns is okay and 50 ns would be okay too.
Code:
e.g.
clock period 15 ns

set_output_delay = 6 ns
FPGA clock to output = 9 ns max

set_output_delay = 11 ns
FPGA clock to output = 4 ns max

set_output_delay = undefined
FPGA clock to output = 0 ns < 25 ns < infinite (anything is valid as there is NO constraint)
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top