aboutsummaryrefslogtreecommitdiffstats
path: root/passes/pmgen
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-02-28 14:56:05 -0800
committerClifford Wolf <clifford@clifford.at>2019-02-28 14:56:05 -0800
commit68a693717347cefc057cbf1a1c8d0f66500dec4f (patch)
treed1f8d18be320a0239ce079e4087996b2cd587e4a /passes/pmgen
parent41e5028f982b7929051d6d6ccded09cca0f2292e (diff)
downloadyosys-68a693717347cefc057cbf1a1c8d0f66500dec4f.tar.gz
yosys-68a693717347cefc057cbf1a1c8d0f66500dec4f.tar.bz2
yosys-68a693717347cefc057cbf1a1c8d0f66500dec4f.zip
Fix pmgen for in-tree builds
Signed-off-by: Clifford Wolf <clifford@clifford.at>
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 b9682612b..e0dd0fc06 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 && cd passes/pmgen && python3 $^
+ $(P) mkdir -p passes/pmgen && python3 $^
diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py
index 166d3963a..034ac27aa 100644
--- a/passes/pmgen/pmgen.py
+++ b/passes/pmgen/pmgen.py
@@ -7,8 +7,9 @@ import pprint
pp = pprint.PrettyPrinter(indent=4)
pmgfile = sys.argv[1]
-prefix = pmgfile.split("/")[-1]
-prefix = prefix.split(".")[0]
+assert pmgfile.endswith(".pmg")
+prefix = pmgfile[0:-4]
+pmname = prefix.split('/')[-1]
state_types = dict()
udata_types = dict()
@@ -189,10 +190,10 @@ with open("%s_pm.h" % prefix, "w") as f:
print("YOSYS_NAMESPACE_BEGIN", file=f)
print("", file=f)
- print("struct {}_pm {{".format(prefix), file=f)
+ print("struct {}_pm {{".format(pmname), file=f)
print(" Module *module;", file=f)
print(" SigMap sigmap;", file=f)
- print(" std::function<void()> on_accept;".format(prefix), file=f)
+ print(" std::function<void()> on_accept;".format(pmname), file=f)
print("", file=f)
for index in range(len(blocks)):
@@ -290,7 +291,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(prefix), file=f)
+ print(" {}_pm(Module *module, const vector<Cell*> &cells) :".format(pmname), file=f)
print(" module(module), sigmap(module) {", file=f)
for s, t in sorted(udata_types.items()):
if t.endswith("*"):
@@ -320,7 +321,7 @@ with open("%s_pm.h" % prefix, "w") as f:
print(" }", file=f)
print("", file=f)
- print(" ~{}_pm() {{".format(prefix), file=f)
+ print(" ~{}_pm() {{".format(pmname), file=f)
print(" for (auto cell : autoremove_cells)", file=f)
print(" module->remove(cell);", file=f)
print(" }", file=f)
@@ -339,7 +340,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(prefix), file=f)
+ print(" void run(std::function<void({}_pm&)> on_accept_f) {{".format(pmname), file=f)
print(" run([&](){on_accept_f(*this);});", file=f)
print(" }", file=f)
print("", file=f)