From e892576560b51c98ab8f358fcaed915a04c7bf22 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Mon, 22 Jan 2018 17:49:08 -0800 Subject: [PATCH] fasm: slice site name as 0/1 instead of global coordinate. Test cleanup Signed-off-by: John McMaster --- tools/fasm2frame.py | 29 +------------------ tools/segprint2fasm.py | 20 +------------ tools/test_data/ff_int.fasm | 14 ++++----- tools/test_data/{clb_ff => ff_int}/.gitignore | 0 .../test_data/{clb_ff => ff_int}/design.bits | 0 .../test_data/{clb_ff => ff_int}/design.segp | 0 tools/test_data/{clb_ff => ff_int}/top.v | 0 tools/test_data/lut.fasm | 26 ++++++++--------- tools/test_data/lut_int.fasm | 26 ++++++++--------- .../test_data/{clb_lut => lut_int}/.gitignore | 0 .../{clb_lut => lut_int}/design.bits | 0 .../{clb_lut => lut_int}/design.segp | 0 tools/test_data/{clb_lut => lut_int}/top.v | 0 tools/test_fasm2frame.py | 4 +-- tools/test_segprint2fasm.py | 4 +-- 15 files changed, 39 insertions(+), 84 deletions(-) rename tools/test_data/{clb_ff => ff_int}/.gitignore (100%) rename tools/test_data/{clb_ff => ff_int}/design.bits (100%) rename tools/test_data/{clb_ff => ff_int}/design.segp (100%) rename tools/test_data/{clb_ff => ff_int}/top.v (100%) rename tools/test_data/{clb_lut => lut_int}/.gitignore (100%) rename tools/test_data/{clb_lut => lut_int}/design.bits (100%) rename tools/test_data/{clb_lut => lut_int}/design.segp (100%) rename tools/test_data/{clb_lut => lut_int}/top.v (100%) diff --git a/tools/fasm2frame.py b/tools/fasm2frame.py index a21aa330..b288f310 100755 --- a/tools/fasm2frame.py +++ b/tools/fasm2frame.py @@ -144,34 +144,7 @@ def run(f_in, f_out, sparse=False, debug=False): segdb = get_database(segj['type']) def clb2dbkey(tile, tilej, site, suffix, value): - def slice_global2x01(tile_name, tile_type, site): - # SLICE_X12Y102 => SLICEL_X0 - m = re.match(r'SLICE_X([0-9]+)Y[0-9]+', site) - xg = int(m.group(1)) - - prefix = { - 'CLBLL_L': { - 0: 'SLICEL', - 1: 'SLICEL' - }, - 'CLBLM_L': { - 0: 'SLICEM', - 1: 'SLICEL' - }, - 'CLBLL_R': { - 0: 'SLICEL', - 1: 'SLICEL' - }, - 'CLBLM_R': { - 0: 'SLICEM', - 1: 'SLICEL' - }, - } - x01 = xg % 2 - return '%s_X%d' % (prefix[tile_type][x01], x01) - - db_site = slice_global2x01(tile, tilej['type'], site) - db_k = '%s.%s.%s' % (tilej['type'], db_site, suffix) + db_k = '%s.%s.%s' % (tilej['type'], site, suffix) return db_k def int2dbkey(tile, tilej, site, suffix, value): diff --git a/tools/segprint2fasm.py b/tools/segprint2fasm.py index d0732888..fd185fbb 100755 --- a/tools/segprint2fasm.py +++ b/tools/segprint2fasm.py @@ -11,25 +11,7 @@ def tag2fasm(grid, seg, tag): segj = grid['segments'][seg] def clbf(seg, tile, tag_post): - # seg: SEG_CLBLM_L_X10Y102 - # tile_type: CLBLM_L - # tag_post: SLICEM_X0.ALUT.INIT[43] - # To: CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[43] 1 - m = re.match(r'(SLICE[LM])_X([01])[.](.*)', tag_post) - slicelm = m.group(1) - off01 = int(m.group(2)) - post = m.group(3) - - # xxx: actually this might not work on decimal overflow (9 => 10) - for site in grid['tiles'][tile]['sites'].keys(): - m = re.match(r'SLICE_X(.*)Y.*', site) - sitex = int(m.group(1)) - if sitex % 2 == off01: - break - else: - raise Exception("Failed to match site") - - return '%s.%s.%s 1' % (tile, site, post) + return '%s.%s 1' % (tile, tag_post) def intf(seg, tile, tag_post): # Make the selection an argument of the configruation diff --git a/tools/test_data/ff_int.fasm b/tools/test_data/ff_int.fasm index 222423ee..3d7e30b7 100644 --- a/tools/test_data/ff_int.fasm +++ b/tools/test_data/ff_int.fasm @@ -2,13 +2,13 @@ # segprint -zd test_data/clb_ff/design.bits # FF as LDCE -CLBLM_L_X10Y102.SLICE_X12Y102.AFF.DMUX.AX 1 -CLBLM_L_X10Y102.SLICE_X12Y102.AFF.ZINI 1 -CLBLM_L_X10Y102.SLICE_X12Y102.AFF.ZRST 1 -CLBLM_L_X10Y102.SLICE_X12Y102.CEUSEDMUX 1 -CLBLM_L_X10Y102.SLICE_X12Y102.SRUSEDMUX 1 -# CLBLM_L_X10Y102.SLICE_X12Y102.FFSYNC 0 -# CLBLM_L_X10Y102.SLICE_X12Y102.LATCH 0 +CLBLM_L_X10Y102.SLICEM_X0.AFF.DMUX.AX 1 +CLBLM_L_X10Y102.SLICEM_X0.AFF.ZINI 1 +CLBLM_L_X10Y102.SLICEM_X0.AFF.ZRST 1 +CLBLM_L_X10Y102.SLICEM_X0.CEUSEDMUX 1 +CLBLM_L_X10Y102.SLICEM_X0.SRUSEDMUX 1 +# CLBLM_L_X10Y102.SLICEM_X0.FFSYNC 0 +# CLBLM_L_X10Y102.SLICEM_X0.LATCH 0 # Note: a number of pseudo pips here # Omitted diff --git a/tools/test_data/clb_ff/.gitignore b/tools/test_data/ff_int/.gitignore similarity index 100% rename from tools/test_data/clb_ff/.gitignore rename to tools/test_data/ff_int/.gitignore diff --git a/tools/test_data/clb_ff/design.bits b/tools/test_data/ff_int/design.bits similarity index 100% rename from tools/test_data/clb_ff/design.bits rename to tools/test_data/ff_int/design.bits diff --git a/tools/test_data/clb_ff/design.segp b/tools/test_data/ff_int/design.segp similarity index 100% rename from tools/test_data/clb_ff/design.segp rename to tools/test_data/ff_int/design.segp diff --git a/tools/test_data/clb_ff/top.v b/tools/test_data/ff_int/top.v similarity index 100% rename from tools/test_data/clb_ff/top.v rename to tools/test_data/ff_int/top.v diff --git a/tools/test_data/lut.fasm b/tools/test_data/lut.fasm index e4975449..0bb7c941 100644 --- a/tools/test_data/lut.fasm +++ b/tools/test_data/lut.fasm @@ -1,15 +1,15 @@ # LUT -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[00] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[08] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[10] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[11] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[13] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[14] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[15] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[41] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[43] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[44] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[46] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[47] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[63] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[00] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[08] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[10] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[11] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[13] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[14] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[15] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[41] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[43] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[44] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[46] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[47] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[63] 1 diff --git a/tools/test_data/lut_int.fasm b/tools/test_data/lut_int.fasm index b4e32fd5..df88dd5d 100644 --- a/tools/test_data/lut_int.fasm +++ b/tools/test_data/lut_int.fasm @@ -2,19 +2,19 @@ # segprint -zd test_data/clb_lut/design.bits # LUT -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[00] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[08] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[10] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[11] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[13] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[14] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[15] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[41] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[43] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[44] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[46] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[47] 1 -CLBLM_L_X10Y102.SLICE_X12Y102.ALUT.INIT[63] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[00] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[08] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[10] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[11] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[13] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[14] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[15] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[41] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[43] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[44] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[46] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[47] 1 +CLBLM_L_X10Y102.SLICEM_X0.ALUT.INIT[63] 1 # din bus # din[0] diff --git a/tools/test_data/clb_lut/.gitignore b/tools/test_data/lut_int/.gitignore similarity index 100% rename from tools/test_data/clb_lut/.gitignore rename to tools/test_data/lut_int/.gitignore diff --git a/tools/test_data/clb_lut/design.bits b/tools/test_data/lut_int/design.bits similarity index 100% rename from tools/test_data/clb_lut/design.bits rename to tools/test_data/lut_int/design.bits diff --git a/tools/test_data/clb_lut/design.segp b/tools/test_data/lut_int/design.segp similarity index 100% rename from tools/test_data/clb_lut/design.segp rename to tools/test_data/lut_int/design.segp diff --git a/tools/test_data/clb_lut/top.v b/tools/test_data/lut_int/top.v similarity index 100% rename from tools/test_data/clb_lut/top.v rename to tools/test_data/lut_int/top.v diff --git a/tools/test_fasm2frame.py b/tools/test_fasm2frame.py index 4d6ef4f8..87f372fc 100644 --- a/tools/test_fasm2frame.py +++ b/tools/test_fasm2frame.py @@ -68,11 +68,11 @@ class TestStringMethods(unittest.TestCase): def test_lut_int(self): self.bitread_frm_equals( - 'test_data/lut_int.fasm', 'test_data/clb_lut/design.bits') + 'test_data/lut_int.fasm', 'test_data/lut_int/design.bits') def test_ff_int(self): self.bitread_frm_equals( - 'test_data/ff_int.fasm', 'test_data/clb_ff/design.bits') + 'test_data/ff_int.fasm', 'test_data/ff_int/design.bits') def test_sparse(self): '''Verify sparse equivilent to normal encoding''' diff --git a/tools/test_segprint2fasm.py b/tools/test_segprint2fasm.py index 14b3b401..9865c9f4 100644 --- a/tools/test_segprint2fasm.py +++ b/tools/test_segprint2fasm.py @@ -33,11 +33,11 @@ class TestStringMethods(unittest.TestCase): def test_lut_int(self): self.check_segprint_fasm_equiv( - 'test_data/clb_lut/design.segp', 'test_data/lut_int.fasm') + 'test_data/lut_int/design.segp', 'test_data/lut_int.fasm') def test_ff_int(self): self.check_segprint_fasm_equiv( - 'test_data/clb_ff/design.segp', 'test_data/ff_int.fasm') + 'test_data/ff_int/design.segp', 'test_data/ff_int.fasm') if __name__ == '__main__':