move part_sig_add to its own directory
[soclayout.git] / experiments2 / part_sig_add.py
1 from nmigen.cli import rtlil
2 from ieee754.part.test.test_partsig import TestAddMod2
3 import subprocess
4 import os
5 from nmigen import Signal
6
7 def test():
8 width = 16
9 pmask = Signal(3) # divide into 4-bits
10 module = TestAddMod2(width, pmask)
11 sim = create_ilang(module,
12 [pmask,
13 module.a.sig,
14 module.b.sig,
15 module.add_output,
16 module.ls_output,
17 module.sub_output,
18 module.eq_output,
19 module.gt_output,
20 module.ge_output,
21 module.ne_output,
22 module.lt_output,
23 module.le_output,
24 module.mux_sel,
25 module.mux_out,
26 module.carry_in,
27 module.add_carry_out,
28 module.sub_carry_out,
29 module.neg_output,
30 ],
31 "part_sig_add")
32
33 def run_yosys(test_name):
34 liberty_file = os.getenv("HOME")+"/coriolis-2.x/src/alliance-check-toolkit/cells/nsxlib/nsxlib.lib"
35 print("test_name:",test_name)
36 cmd = [
37 "read_ilang part_sig_add.il",
38 "hierarchy -check -top part_sig_add",
39 "synth -top part_sig_add",
40 "dfflibmap -liberty "+liberty_file,
41 "abc -liberty "+liberty_file,
42 "clean",
43 "write_blif test.blif"
44 ]
45 cmd = "; ".join(cmd)
46 subprocess.call(["yosys","-p",cmd])
47
48 def create_ilang(dut, ports, test_name):
49 vl = rtlil.convert(dut, name=test_name, ports=ports)
50 with open("%s.il" % test_name, "w") as f:
51 f.write(vl)
52 #run_yosys(test_name)
53
54
55 if __name__ == "__main__":
56 test()