AN775: I/O Timing Information Generation Guidelines
This Application Note demonstrates techniques to generate I/O timing
information for any given device using the
Quartus® Prime software.
I/O timing information is crucial for early analysis during PCB board design
stages. Generate timing parameters to help you adjust the timing budget of your design,
considering I/O standards and pin placement. The relevant I/O timing information parameters
are: input setup time tsu, input hold time th, and clock to output delay tco.
Generating I/O timing information includes the following steps:
Create a simple D flipflop (DFF) design project that targets the device for
Assign the I/O standard and pin location constraints.
Run compilation and timing analysis.
Determine tsu, th, and
This document provides both GUI and script-based generation examples.
I/O Timing Parameters
The following are timing parameters relevant for analysis:
Table 1. I/O Timing Parameter Description
Input setup time (tsu)
Data delay from input pin to input register,
plus the micro setup time of the input register, minus the
clock delay from input pin to input register
Input hold time (th)
Clock delay from input pin to input register,
minus data delay from input pin to input register, plus
micro hold time of the input register
Clock to output delay
Delay from clock pin to I/O output register,
plus register clock to output delay, plus delay from output
register to output pin
This demonstration requires the current version of the
Quartus® Prime software. The script-based technique is only available on
Note: This document assumes basic
familiarity with the
Quartus® Prime software, the Pin Planner,
and the TimeQuest Timing Analyzer.
Update Timing Netlist and Set Operating Conditions
Follow these steps to update the timing netlist and set operating
conditions following full compilation:
Click Tools > TimeQuest Timing Analyzer.
In the Task pane,
double-click Update Timing Netlist. The timing netlist updates with full compilation
timing information that accounts for constraints.
Figure 5. Task Pane in TimeQuest Timing Analyzer
Under Set Operating
Conditions, select either Slow 900 mV
100C Model or Fast 900mV 100C
Figure 6. Set Operating Conditions in TimeQuest Timing
Determine I/O Timing Information from Datasheet Report
View the Compiler timing reports to determine the timing
Click Report > Datasheet > Report Datasheet.
Figure 7. Datasheet Report on TimeQuest Timing
The Report pane displays the Setup
Times, Hold Times, and
Clock to Output Times
Click each report to view the Rise and Fall parameter
For a conservative approach, select the maximum absolute
Determining I/O Timing Parameters from Datasheet Report
In the following example Setup Times
report, the fall time is greater that the Rise time, therefore tsu=tfall.
Figure 8. Setup Time Report
In the following example Hold Times
report, the absolute value of the fall time is greater that absolute value of the
rise time, therefore th=tfall.
Figure 9. Hold Time Report
In the following example Clock to Output
Time report, the absolute value of the fall time is greater that
absolute value of the rise time, therefore tco=tfall.
Figure 10. Clock to Output Time Report
Scripting I/O Timing Information Generation
Alternatively, you can create and execute a tcl script to generate
I/O timing information.
This scripted approach generates tabular I/O timing
parameter data for several I/O standards. Download example scripts for a selection of
devices from the
Intel® FPGA Wiki page.
Note: This method is only available on Linux platforms.
Follow these steps to generate I/O Timing information for an
Arria® 10 device reflecting multiple I/O standards:
In an internet browser, type http://www.alterawiki.com/wiki/Device_I/O_Timing_Information_Generation
in the address field.
Click the Arria 10 IO Timing Extraction Script link,
then click A10_vversion.tgz to download the
Extract the contents of the file in your computer. Example:
tar –zxvf A10_v1p2.tgz. The a10 folder appears.
Change directory to a10.
The a10 directory contains one
or more subfolders with names corresponding to device types, such as a10_ax_r4_f40. This is the script for the
Arria® 10 GX device with 66 transceiver count, package type F40.
Change directory to a10/a10_ax_r4_f40/.
To run the script, type quartus_sta –tR
Wait for completion. The script execution may take 8 hours or more,
because each change on I/O standard or pin location requires design
After the script completes, locate the
.csv file in the current directory. This file
contains I/O timing information for all supported I/O standards for the device. Open
this file in a text editor to view the parameters.