45 lines
1.5 KiB
Tcl
45 lines
1.5 KiB
Tcl
# See LICENSE for license details.
|
|
|
|
# Create a report directory
|
|
set rptdir [file join $wrkdir report]
|
|
file mkdir $rptdir
|
|
|
|
# Create a datasheet for the current design
|
|
report_datasheet -file [file join $rptdir datasheet.txt]
|
|
|
|
# Report utilization of the current device
|
|
set rptutil [file join $rptdir utilization.txt]
|
|
report_utilization -hierarchical -file $rptutil
|
|
|
|
# Report information about clock nets in the design
|
|
report_clock_utilization -file $rptutil -append
|
|
|
|
# Report the RAM resources utilized in the implemented design
|
|
report_ram_utilization -file $rptutil -append -detail
|
|
|
|
# Report timing summary for a max of 10 paths per group
|
|
report_timing_summary -file [file join $rptdir timing.txt] -max_paths 10
|
|
|
|
# Report the highest fanout of nets in the implemented design
|
|
report_high_fanout_nets -file [file join $rptdir fanout.txt] -timing -load_types -max_nets 25
|
|
|
|
# Run DRC
|
|
report_drc -file [file join $rptdir drc.txt]
|
|
|
|
# Report details of the IO banks in the design
|
|
report_io -file [file join $rptdir io.txt]
|
|
|
|
# Report a table of all clocks in the design
|
|
report_clocks -file [file join $rptdir clocks.txt]
|
|
|
|
# Fail loudly if timing not met
|
|
#
|
|
# We would ideally elevate critical warning Route 35-39 to an error, but it is
|
|
# currently not being emitted with our flow for some reason.
|
|
# https://forums.xilinx.com/t5/Implementation/Making-timing-violations-fatal-to-the-Vivado-build/m-p/716957#M15979
|
|
set timing_slack [get_property SLACK [get_timing_paths]]
|
|
if {$timing_slack < 0} {
|
|
puts "Failed to meet timing by $timing_slack, see [file join $rptdir timing.txt]"
|
|
exit 1
|
|
}
|