Merge pull request #60 from mcmasterg/slice_x01
fasm: slice site name as 0/1 instead of global coordinate. Test cleanup
diff --git a/tools/fasm2frame.py b/tools/fasm2frame.py
index a21aa33..b288f31 100755
--- a/tools/fasm2frame.py
+++ b/tools/fasm2frame.py
@@ -144,34 +144,7 @@
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 d073288..fd185fb 100755
--- a/tools/segprint2fasm.py
+++ b/tools/segprint2fasm.py
@@ -11,25 +11,7 @@
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 222423e..3d7e30b 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 e497544..0bb7c94 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 b4e32fd..df88dd5 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 4d6ef4f..87f372f 100644
--- a/tools/test_fasm2frame.py
+++ b/tools/test_fasm2frame.py
@@ -68,11 +68,11 @@
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 14b3b40..9865c9f 100644
--- a/tools/test_segprint2fasm.py
+++ b/tools/test_segprint2fasm.py
@@ -33,11 +33,11 @@
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__':