pluto_hdl_adi/library/axi_ad9361/axi_ad9361_delay.tcl

44 lines
1.4 KiB
Tcl
Raw Normal View History

2017-03-09 20:21:42 +00:00
# report delays
set m_file [open "axi_ad9361_delay.log" w]
set m_ios [get_ports -filter {NAME =~ rx_*_in*}]
2017-03-09 20:21:42 +00:00
set m_ddr_ios [get_pins -hierarchical -filter {NAME =~ *i_rx_data_iddr/C || NAME =~ *i_rx_data_iddr/D}]
set m_info [report_timing -no_header -return_string -from $m_ios -to $m_ddr_ios -max_paths 100]
set m_sources {}
set m_string $m_info
while {[regexp {\s+Source:\s+(.*?)\s+(.*)} $m_string m1 m_value m_string] == 1} {
lappend m_sources $m_value
}
set m_destinations {}
set m_string $m_info
while {[regexp {\s+Destination:\s+(.*?)\s+(.*)} $m_string m1 m_value m_string] == 1} {
lappend m_destinations $m_value
}
set m_delays {}
set m_string $m_info
while {[regexp {\s+Data\s+Path\s+Delay:\s+(.*?)\s+(.*)} $m_string m1 m_value m_string] == 1} {
lappend m_delays $m_value
}
set m_size [llength $m_sources]
if {[llength $m_destinations] != $m_size} {
puts "CRITICAL WARNING: axi_ad9361_delay.tcl, source-destination size mismatch"
2017-03-09 20:21:42 +00:00
}
if {[llength $m_delays] != $m_size} {
puts "CRITICAL WARNING: axi_ad9361_delay.tcl, source-delay size mismatch"
2017-03-09 20:21:42 +00:00
}
for {set m_index 0} {$m_index < $m_size} {incr m_index} {
set m_delay [lindex $m_delays $m_index]
set m_source [lindex $m_sources $m_index]
set m_destination [lindex $m_destinations $m_index]
puts "$m_source $m_destination $m_delay"
puts $m_file "$m_source $m_destination $m_delay"
}
puts $m_file "\nDetails:\n"
puts $m_file $m_info
close $m_file