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__':