From 09e64265332cfbedc1b53f2eb6937efd834b95a0 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 6 Feb 2018 15:49:53 +0100 Subject: [PATCH] Fix dsp and bram mask generation Signed-off-by: Clifford Wolf --- utils/dbfixup.py | 23 ++++++++++++++++------- utils/mergedb.sh | 10 ++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/utils/dbfixup.py b/utils/dbfixup.py index 859375cc..4159c56d 100644 --- a/utils/dbfixup.py +++ b/utils/dbfixup.py @@ -87,7 +87,7 @@ def add_zero_bits(tile_type): print(line, file=f) -def update_mask(mask_db, *src_dbs): +def update_mask(mask_db, *src_dbs, offset=0): bits = set() mask_db_file = "%s/%s/mask_%s.db" % ( os.getenv("XRAY_DATABASE_DIR"), os.getenv("XRAY_DATABASE"), mask_db) @@ -111,8 +111,12 @@ def update_mask(mask_db, *src_dbs): for line in f: line = line.split() for bit in line[1:]: - if bit[0] != "!": - bits.add(bit) + if bit[0] == "!": + continue + if offset != 0: + m = re.match(r"(\d+)_(\d+)", bit) + bit = "%02d_%02d" % (int(m.group(1)), int(m.group(2)) + offset) + bits.add(bit) if len(bits) > 0: with open(mask_db_file, "w") as f: @@ -134,8 +138,13 @@ update_mask("clblm_r", "clblm_r", "int_r") update_mask("hclk_l", "hclk_l") update_mask("hclk_r", "hclk_r") +update_mask("bram_l", "bram_l") +update_mask("bram_r", "bram_r") +update_mask("dsp_l", "dsp_l") +update_mask("dsp_r", "dsp_r") + for k in range(5): - update_mask("bram%d_l" % k, "bram%d_l" % k, "int_l") - update_mask("bram%d_r" % k, "bram%d_r" % k, "int_r") - update_mask("dsp%d_l" % k, "dsp%d_l" % k, "int_l") - update_mask("dsp%d_r" % k, "dsp%d_r" % k, "int_r") + update_mask("bram_l", "int_l", offset=64*k) + update_mask("bram_r", "int_r", offset=64*k) + update_mask("dsp_l", "int_l", offset=64*k) + update_mask("dsp_r", "int_r", offset=64*k) diff --git a/utils/mergedb.sh b/utils/mergedb.sh index a8735605..94014ac8 100644 --- a/utils/mergedb.sh +++ b/utils/mergedb.sh @@ -27,6 +27,16 @@ case "$1" in -e 's/^CLB\.SLICE_X0\./CLBLM_R.SLICEM_X0./' \ -e 's/^CLB\.SLICE_X1\./CLBLM_R.SLICEL_X1./' ;; + dsp_l) + sed < "$2" > "$tmp1" -e 's/^DSP\./DSP_L./' ;; + dsp_r) + sed < "$2" > "$tmp1" -e 's/^DSP\./DSP_R./' ;; + + bram_l) + sed < "$2" > "$tmp1" -e 's/^BRAM\./BRAM_L./' ;; + bram_r) + sed < "$2" > "$tmp1" -e 's/^BRAM\./BRAM_R./' ;; + int_l) sed < "$2" > "$tmp1" -e 's/^INT\./INT_L./' ;; int_r)