Automate detection of relevant tile types in 070-tileconn

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2017-12-24 17:04:40 +01:00
parent deaa3952f4
commit fd35afc32c
1 changed files with 26 additions and 32 deletions

View File

@ -47,41 +47,35 @@ proc print_tile_pair {fp t1 t2} {
} }
} }
proc print_tile_pairs {fp lst} { set tiles [get_tiles -filter "GRID_POINT_X >= $::env(XRAY_ROI_GRID_X1) && \
for {set i 1} {$i < [llength $lst]} {incr i} { GRID_POINT_X < $::env(XRAY_ROI_GRID_X2) && \
print_tile_pair $fp [lindex $lst [expr $i - 1]] [lindex $lst $i] GRID_POINT_Y >= $::env(XRAY_ROI_GRID_Y1) && \
} GRID_POINT_Y < $::env(XRAY_ROI_GRID_Y2)"]
}
set horz_cache [dict create]
set vert_cache [dict create]
set fp [open "tilepairs.txt" w] set fp [open "tilepairs.txt" w]
if {$::env(XRAY_DATABASE) == "artix7"} { foreach tile $tiles {
# horizontal pairs set tile_type [get_property TILE_TYPE $tile]
print_tile_pairs $fp "INT_R_X13Y114 CLBLL_R_X13Y114 CLBLL_L_X14Y114 INT_L_X14Y114 INT_R_X15Y114" set grid_x [get_property GRID_POINT_X $tile]
print_tile_pairs $fp "VBRK_X29Y125 CLBLM_L_X10Y120 INT_L_X10Y120 INT_R_X11Y120 CLBLM_R_X11Y120 VBRK_X34Y125 CLBLL_L_X12Y120" set grid_y [get_property GRID_POINT_Y $tile]
print_tile_pairs $fp "CLBLL_R_X17Y113 VFRAME_X47Y118"
print_tile_pairs $fp "HCLK_VBRK_X29Y130 HCLK_CLB_X30Y130 HCLK_L_X31Y130 HCLK_R_X32Y130 HCLK_CLB_X33Y130 HCLK_VBRK_X34Y130 HCLK_CLB_X35Y130"
print_tile_pairs $fp "HCLK_CLB_X46Y130 HCLK_VFRAME_X47Y130"
print_tile_pairs $fp "T_TERM_INT_X31Y156 T_TERM_INT_X32Y156"
print_tile_pairs $fp "BRKH_CLB_X10Y99 BRKH_INT_X10Y99 BRKH_INT_X11Y99 BRKH_CLB_X11Y99"
print_tile_pairs $fp "BRKH_B_TERM_INT_X36Y104 BRKH_B_TERM_INT_X37Y104"
# vertical pairs set horz_tile [get_tiles -filter "GRID_POINT_X == [expr $grid_x + 1] && GRID_POINT_Y == $grid_y"]
print_tile_pairs $fp "CLBLM_L_X10Y115 CLBLM_L_X10Y114" set vert_tile [get_tiles -filter "GRID_POINT_Y == [expr $grid_y + 1] && GRID_POINT_X == $grid_x"]
print_tile_pairs $fp "INT_L_X10Y115 INT_L_X10Y114"
print_tile_pairs $fp "INT_R_X11Y115 INT_R_X11Y114" set horz_type [get_property TILE_TYPE $horz_tile]
print_tile_pairs $fp "CLBLM_R_X11Y115 CLBLM_R_X11Y114" set vert_type [get_property TILE_TYPE $vert_tile]
print_tile_pairs $fp "VBRK_X34Y120 VBRK_X34Y119"
print_tile_pairs $fp "CLBLL_L_X12Y115 CLBLL_L_X12Y114" if {! [dict exists $horz_cache $tile_type.$horz_type]} {
print_tile_pairs $fp "CLBLL_R_X13Y115 CLBLL_R_X13Y115" dict append horz_cache $tile_type.$horz_type
print_tile_pairs $fp "VFRAME_X47Y120 VFRAME_X47Y119" print_tile_pair $fp $tile $horz_tile
print_tile_pairs $fp "T_TERM_INT_X31Y156 INT_L_X10Y149" }
print_tile_pairs $fp "T_TERM_INT_X32Y156 INT_R_X11Y149"
print_tile_pairs $fp "CLBLM_L_X10Y100 BRKH_CLB_X10Y99" if {! [dict exists $vert_cache $tile_type.$vert_type]} {
print_tile_pairs $fp "INT_L_X10Y100 BRKH_INT_X10Y99" dict append vert_cache $tile_type.$vert_type
print_tile_pairs $fp "INT_R_X11Y100 BRKH_INT_X11Y99" print_tile_pair $fp $tile $vert_tile
print_tile_pairs $fp "CLBLM_R_X11Y100 BRKH_CLB_X11Y99" }
print_tile_pairs $fp "INT_L_X12Y100 BRKH_B_TERM_INT_X36Y104"
print_tile_pairs $fp "INT_R_X13Y100 BRKH_B_TERM_INT_X37Y104"
} }
close $fp close $fp