aboutsummaryrefslogtreecommitdiffstats
path: root/passes/pmgen/ice40_dsp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'passes/pmgen/ice40_dsp.cc')
-rw-r--r--passes/pmgen/ice40_dsp.cc29
1 files changed, 17 insertions, 12 deletions
diff --git a/passes/pmgen/ice40_dsp.cc b/passes/pmgen/ice40_dsp.cc
index 049ef6c0e..a8f63ebfe 100644
--- a/passes/pmgen/ice40_dsp.cc
+++ b/passes/pmgen/ice40_dsp.cc
@@ -24,17 +24,6 @@
USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN
-void ice40_dsp_accept(ice40_dsp_pm *pm)
-{
- log("\n");
- log("mul: %s\n", pm->st.mul ? log_id(pm->st.mul) : "--");
- log("ffA: %s\n", pm->st.ffA ? log_id(pm->st.ffA) : "--");
- log("ffB: %s\n", pm->st.ffB ? log_id(pm->st.ffB) : "--");
- log("ffY: %s\n", pm->st.ffY ? log_id(pm->st.ffY) : "--");
-
- pm->blacklist(pm->st.mul);
-}
-
struct Ice40DspPass : public Pass {
Ice40DspPass() : Pass("ice40_dsp", "iCE40: map multipliers") { }
void help() YS_OVERRIDE
@@ -64,7 +53,23 @@ struct Ice40DspPass : public Pass {
for (auto module : design->selected_modules())
{
ice40_dsp_pm pm(module, module->cells());
- pm.run(ice40_dsp_accept);
+ pm.match([&]()
+ {
+ log("\n");
+ log("ffA: %s\n", log_id(pm.st.ffA, "--"));
+ log("ffB: %s\n", log_id(pm.st.ffB, "--"));
+ log("mul: %s\n", log_id(pm.st.mul, "--"));
+ log("ffY: %s\n", log_id(pm.st.ffY, "--"));
+ log("addAB: %s\n", log_id(pm.st.addAB, "--"));
+ log("muxAB: %s\n", log_id(pm.st.muxAB, "--"));
+ log("ffS: %s\n", log_id(pm.st.ffS, "--"));
+
+ pm.blacklist(pm.st.mul);
+ pm.blacklist(pm.st.ffA);
+ pm.blacklist(pm.st.ffB);
+ pm.blacklist(pm.st.ffY);
+ pm.blacklist(pm.st.ffS);
+ });
}
}
} Ice40DspPass;