Download TimeQuest User Guide

Transcript
set clk2cpu_max 1.455
set clk2cpu_min 1.011
set clk2fpga_max 1.505
set clk2fpga_min 1.074
# Equations for CPU to FPGA:
set iMax_cpu [expr $clk2cpu_max + $cpu_tco_max + $cpu2fpga_max - $clk2fpga_min]
set imin_cpu [expr $clk2cpu_min + $cpu_tco_min + $cpu2fpga_min - $clk2fpga_max]
# FPGA’s inputs from CPU:
set_input_delay -max -clock cpu_clk_ext $iMax_cpu [get_ports i_cpu_*]
set_input_delay -min -clock cpu_clk_ext $imin_cpu [get_ports i_cpu_*]
That makes for a nicely descriptive SDC file, with the benefit of auto-calculating new
requirements if the user changes the board delays or parameters of the external device. The only
problem is that the final value isn’t apparent without doing the math by hand. The user could
add something like the following to their .sdc to echo the calculated value to the messages:
puts “iMax_cp => $iMax_cpu \n imin_cpu => $imin_cpu”
The problem is that you still have to find it in the messages. Running report_sdc allows
the user to quickly find:
Of course, the user could also run basic timing analysis on the path:
report_timing -setup -detail full_path -from [get_ports i_cpu*] -panel_name “s: i_cpu*”
report_timing -hold -detail full_path -from [get_ports i_cpu*] -panel_name “s: i_cpu*”
This will analyze the paths based on the constraints, and as discussed in correlating
constraints to timing reports, the iExt delays would be 7.381ns in the setup report and 3.428ns in
the hold report.
The report_sdc command is also useful if looking at constraints from an SDC created
elsewhere, such as Altera’s DDR2/3 IP cores. The user won’t hand-edit machine-generated SDC
files, but can use report_sdc to see what constraints were added.
112