diff --git a/tools/test_data/clb_ff/design.segp b/tools/test_data/clb_ff/design.segp new file mode 100644 index 00000000..2e0bd01d --- /dev/null +++ b/tools/test_data/clb_ff/design.segp @@ -0,0 +1,17 @@ + +seg SEG_HCLK_L_X31Y130 +tag HCLK_L.ENABLE_BUFFER.HCLK_CK_BUFHCLK8 +tag HCLK_L.HCLK_LEAF_CLK_B_BOTL5.HCLK_CK_BUFHCLK8 + +seg SEG_CLBLM_L_X10Y102 +tag CLBLM_L.SLICEM_X0.AFF.DMUX.AX +tag CLBLM_L.SLICEM_X0.AFF.ZINI +tag CLBLM_L.SLICEM_X0.AFF.ZRST +tag CLBLM_L.SLICEM_X0.CEUSEDMUX +tag CLBLM_L.SLICEM_X0.SRUSEDMUX +tag INT_L.BYP_ALT0.EE2END0 +tag INT_L.BYP_ALT1.EL1END1 +tag INT_L.CLK_L1.GCLK_L_B11_WEST +tag INT_L.CTRL_L1.ER1END2 +tag INT_L.FAN_ALT7.BYP_BOUNCE0 +tag INT_L.WW2BEG0.LOGIC_OUTS_L4 diff --git a/tools/test_data/clb_lut/design.segp b/tools/test_data/clb_lut/design.segp new file mode 100644 index 00000000..371afecd --- /dev/null +++ b/tools/test_data/clb_lut/design.segp @@ -0,0 +1,22 @@ + +seg SEG_CLBLM_L_X10Y102 +tag CLBLM_L.SLICEM_X0.ALUT.INIT[00] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[08] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[10] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[11] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[13] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[14] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[15] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[41] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[43] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[44] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[46] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[47] +tag CLBLM_L.SLICEM_X0.ALUT.INIT[63] +tag INT_L.IMUX_L1.EE2END0 +tag INT_L.IMUX_L11.EL1END1 +tag INT_L.IMUX_L2.EE2END1 +tag INT_L.IMUX_L4.EE2END2 +tag INT_L.IMUX_L7.EE2END3 +tag INT_L.IMUX_L8.EL1END0 +tag INT_L.WW2BEG0.LOGIC_OUTS_L12 diff --git a/tools/test_segprint2fasm.py b/tools/test_segprint2fasm.py new file mode 100644 index 00000000..14b3b401 --- /dev/null +++ b/tools/test_segprint2fasm.py @@ -0,0 +1,44 @@ +import segprint2fasm + +import unittest +import StringIO +import re + + +class TestStringMethods(unittest.TestCase): + def check_segprint_fasm_equiv(self, segp_fn, fasm_fn): + fout = StringIO.StringIO() + segprint2fasm.run(open(segp_fn, 'r'), fout) + fasm_out = fout.getvalue() + + fasm_ref = open(fasm_fn, 'r').read() + + def normalize(fasm): + '''Remove all comments and sort''' + ret = [] + for l in fasm.split('\n'): + # Remove comments + i = l.rfind('#') + if i >= 0: + l = l[0:i] + l = l.strip() + if not l: + continue + ret.append(l) + return sorted(ret) + + fasm_out = normalize(fasm_out) + fasm_ref = normalize(fasm_ref) + self.assertEquals(fasm_ref, fasm_out) + + def test_lut_int(self): + self.check_segprint_fasm_equiv( + 'test_data/clb_lut/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') + + +if __name__ == '__main__': + unittest.main()