AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
extractDelay.tcl
Go to the documentation of this file.
1 set targetFolderPath "/home/tingyuan/tmpFiles/"
2 
3 set fo [open "${targetFolderPath}/NetDelay" "w"]
4 set allCells [xilinx::designutils::get_leaf_cells *]
5 set logicCells [get_cells $allCells -filter {LOC =~ "SLICE*" && (REF_NAME =~ "LUT*" || REF_NAME =~ "F*" || REF_NAME =~ "MUX*" || REF_NAME =~ "CAR*" )}]
6 set cnt 0
7 foreach curCell $logicCells {
8  set locDriven [get_property LOC [get_cells $curCell]]
9  set cellPins [get_pins -leaf -of_objects [get_cells $curCell] -filter {DIRECTION == IN}]
10  foreach pinDriven $cellPins {
11  incr cnt
12  if {$cnt == 100 } {
13  set cnt 0
14  set pinNet [get_nets -of [get_pins $pinDriven]]
15  set tmp_net $pinNet
16  set driverPin [get_pins -leaf -of_objects $tmp_net -filter {DIRECTION == OUT}]
17  set driverCell [get_cells -of_objects [get_pins $driverPin] -filter {LOC =~ "SLICE*" && (REF_NAME =~ "LUT*" || REF_NAME =~ "F*" || REF_NAME =~ "MUX*" || REF_NAME =~ "CAR*" )}]
18  set driverNum [llength $driverCell]
19  if ($driverNum>0) {
20  set locDriver [get_property LOC [get_cells $driverCell]]
21  set delay [get_property FAST_MAX [lindex [get_net_delays -of_objects [get_nets $tmp_net] -to [get_pins $pinDriven] ] 0 ]]
22  puts $fo "pinDriven=> $pinDriven locDriven=> $locDriven"
23  puts $fo "driverPin=> $driverPin locDriver=> $locDriver"
24  puts $fo "delay=> $delay"
25  }
26  }
27  }
28 }
29 close $fo