From 48a6967adb0cd1e6cc7c125063efbed77f8dfc28 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Mon, 3 Dec 2018 18:27:03 -0800 Subject: [PATCH] tilegrid: ROI fixes Signed-off-by: John McMaster --- database/artix7/settings.sh | 3 ++- fuzzers/005-tilegrid/generate_iob.tcl | 3 ++- fuzzers/005-tilegrid/generate_tiles.tcl | 3 ++- fuzzers/005-tilegrid/util.tcl | 7 ++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/database/artix7/settings.sh b/database/artix7/settings.sh index adf9b0be..992296aa 100644 --- a/database/artix7/settings.sh +++ b/database/artix7/settings.sh @@ -3,10 +3,11 @@ export XRAY_PART="xc7a50tfgg484-1" export XRAY_ROI_FRAMES="0x00000000:0xffffffff" # All CLB's in part, all BRAM's in part, all DSP's in part. +# tcl queries IOB => don't bother adding export XRAY_ROI_TILEGRID="SLICE_X0Y0:SLICE_X65Y99 SLICE_X0Y100:SLICE_X57Y149 RAMB18_X0Y0:RAMB18_X1Y59 RAMB36_X0Y0:RAMB36_X1Y29 RAMB18_X2Y0:RAMB18_X2Y39 RAMB36_X2Y0:RAMB36_X2Y19 DSP48_X0Y0:DSP48_X1Y59" # These settings must remain in sync -export XRAY_ROI="SLICE_X0Y100:SLICE_X35Y149 RAMB18_X0Y40:RAMB18_X0Y59 RAMB36_X0Y20:RAMB36_X0Y29 DSP48_X0Y40:DSP48_X0Y59" +export XRAY_ROI="SLICE_X0Y100:SLICE_X35Y149 RAMB18_X0Y40:RAMB18_X0Y59 RAMB36_X0Y20:RAMB36_X0Y29 DSP48_X0Y40:DSP48_X0Y59 IOB_X0Y100:IOB_X0Y149" # Most of CMT X0Y2. export XRAY_ROI_GRID_X1="9" export XRAY_ROI_GRID_X2="58" diff --git a/fuzzers/005-tilegrid/generate_iob.tcl b/fuzzers/005-tilegrid/generate_iob.tcl index 515461b6..00fbae4d 100644 --- a/fuzzers/005-tilegrid/generate_iob.tcl +++ b/fuzzers/005-tilegrid/generate_iob.tcl @@ -3,7 +3,8 @@ source "$::env(FUZDIR)/util.tcl" proc loc_iob {} { # Some pads are output only (ex: OPAD_X0Y0/PAD) => filt IOB_* # XXX: GTX bank missing, deal with that later - set duts [get_bels -filter {TYPE =~ PAD && NAME =~ IOB_*}] + set roi_sites [get_sites -of_objects [get_pblocks roi]] + set duts [get_bels -of_objects $roi_sites -filter {TYPE =~ PAD && NAME =~ IOB_*}] # Sort them into CMT columns set dut_columns [group_dut_cols $duts 50] diff --git a/fuzzers/005-tilegrid/generate_tiles.tcl b/fuzzers/005-tilegrid/generate_tiles.tcl index eb87c360..3c8c16b6 100644 --- a/fuzzers/005-tilegrid/generate_tiles.tcl +++ b/fuzzers/005-tilegrid/generate_tiles.tcl @@ -26,7 +26,8 @@ proc write_tiles_txt {} { } proc run {} { - make_project + # Generate grid of entire part + make_project_roi XRAY_ROI_TILEGRID place_design route_design diff --git a/fuzzers/005-tilegrid/util.tcl b/fuzzers/005-tilegrid/util.tcl index e57dd641..0d9cf4fc 100644 --- a/fuzzers/005-tilegrid/util.tcl +++ b/fuzzers/005-tilegrid/util.tcl @@ -137,6 +137,11 @@ proc assign_iobs {} { } proc make_project {} { + # Generate .bit only over ROI + make_project_roi XRAY_ROI +} + +proc make_project_roi { roi_var } { # 6 CMTs in our reference part # What is the largest? set n_di 16 @@ -150,7 +155,7 @@ proc make_project {} { create_pblock roi add_cells_to_pblock [get_pblocks roi] [get_cells roi] - foreach roi "$::env(XRAY_ROI_TILEGRID)" { + foreach roi "$::env($roi_var)" { puts "ROI: $roi" resize_pblock [get_pblocks roi] -add "$roi" }