aboutsummaryrefslogtreecommitdiffstats
path: root/passes/pmgen
diff options
context:
space:
mode:
authorLarry Doolittle <ldoolitt@recycle.lbl.gov>2019-03-01 20:15:20 -0800
committerClifford Wolf <clifford@clifford.at>2019-03-01 20:20:53 -0800
commit57f8bb471feecafad9d9e0bae77ea937b6b03a83 (patch)
treed3ba6c78f9e3da69e707822bffdf69eebf20419b /passes/pmgen
parenta02d61576ec42931ed3a67c6900bcd5aeddaf8b8 (diff)
downloadyosys-57f8bb471feecafad9d9e0bae77ea937b6b03a83.tar.gz
yosys-57f8bb471feecafad9d9e0bae77ea937b6b03a83.tar.bz2
yosys-57f8bb471feecafad9d9e0bae77ea937b6b03a83.zip
Try again for passes/pmgen/ice40_dsp_pm.h rule
Tested on both in-tree and out-of-tree builds
Diffstat (limited to 'passes/pmgen')
-rw-r--r--passes/pmgen/Makefile.inc2
-rw-r--r--passes/pmgen/pmgen.py15
2 files changed, 9 insertions, 8 deletions
diff --git a/passes/pmgen/Makefile.inc b/passes/pmgen/Makefile.inc
index e0dd0fc06..e0609d9ba 100644
--- a/passes/pmgen/Makefile.inc
+++ b/passes/pmgen/Makefile.inc
@@ -5,4 +5,4 @@ EXTRA_OBJS += passes/pmgen/ice40_dsp_pm.h
.SECONDARY: passes/pmgen/ice40_dsp_pm.h
passes/pmgen/ice40_dsp_pm.h: passes/pmgen/pmgen.py passes/pmgen/ice40_dsp.pmg
- $(P) mkdir -p passes/pmgen && python3 $^
+ $(P) mkdir -p passes/pmgen && python3 $^ $@
diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py
index 762d8621f..d9747b065 100644
--- a/passes/pmgen/pmgen.py
+++ b/passes/pmgen/pmgen.py
@@ -9,7 +9,8 @@ pp = pprint.PrettyPrinter(indent=4)
pmgfile = sys.argv[1]
assert pmgfile.endswith(".pmg")
prefix = pmgfile[0:-4]
-pmname = prefix.split('/')[-1]
+prefix = prefix.split('/')[-1]
+outfile = sys.argv[2]
state_types = dict()
udata_types = dict()
@@ -179,7 +180,7 @@ with open(pmgfile, "r") as f:
blocks.append(block)
-with open("%s_pm.h" % prefix, "w") as f:
+with open(outfile, "w") as f:
print("// Generated by pmgen.py from {}.pgm".format(prefix), file=f)
print("", file=f)
@@ -190,10 +191,10 @@ with open("%s_pm.h" % prefix, "w") as f:
print("YOSYS_NAMESPACE_BEGIN", file=f)
print("", file=f)
- print("struct {}_pm {{".format(pmname), file=f)
+ print("struct {}_pm {{".format(prefix), file=f)
print(" Module *module;", file=f)
print(" SigMap sigmap;", file=f)
- print(" std::function<void()> on_accept;".format(pmname), file=f)
+ print(" std::function<void()> on_accept;".format(prefix), file=f)
print("", file=f)
for index in range(len(blocks)):
@@ -291,7 +292,7 @@ with open("%s_pm.h" % prefix, "w") as f:
print(" }", file=f)
print("", file=f)
- print(" {}_pm(Module *module, const vector<Cell*> &cells) :".format(pmname), file=f)
+ print(" {}_pm(Module *module, const vector<Cell*> &cells) :".format(prefix), file=f)
print(" module(module), sigmap(module) {", file=f)
for s, t in sorted(udata_types.items()):
if t.endswith("*"):
@@ -321,7 +322,7 @@ with open("%s_pm.h" % prefix, "w") as f:
print(" }", file=f)
print("", file=f)
- print(" ~{}_pm() {{".format(pmname), file=f)
+ print(" ~{}_pm() {{".format(prefix), file=f)
print(" for (auto cell : autoremove_cells)", file=f)
print(" module->remove(cell);", file=f)
print(" }", file=f)
@@ -340,7 +341,7 @@ with open("%s_pm.h" % prefix, "w") as f:
print(" }", file=f)
print("", file=f)
- print(" void run(std::function<void({}_pm&)> on_accept_f) {{".format(pmname), file=f)
+ print(" void run(std::function<void({}_pm&)> on_accept_f) {{".format(prefix), file=f)
print(" run([&](){on_accept_f(*this);});", file=f)
print(" }", file=f)
print("", file=f)