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