summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2015-10-24 13:44:35 +0200
committerClifford Wolf <clifford@clifford.at>2015-10-24 13:44:35 +0200
commit2a0f577f839bc43a5045ddf5a2b580bba8cabeab (patch)
tree11dcfe50c8a777f66a6bf52c620b0fb3959ea6f1 /kernel
parent4cec1c058d5cef6960e12bc4d5371aa853cb72d9 (diff)
Fixed handling of driver-driver conflicts in wreduce
Diffstat (limited to 'kernel')
-rw-r--r--kernel/modtools.h23
-rw-r--r--kernel/rtlil.cc4
2 files changed, 26 insertions, 1 deletions
diff --git a/kernel/modtools.h b/kernel/modtools.h
index 44c1bde1..1480ec71 100644
--- a/kernel/modtools.h
+++ b/kernel/modtools.h
@@ -226,7 +226,7 @@ struct ModIndex : public RTLIL::Monitor
auto_reload_module = true;
}
- ModIndex(RTLIL::Module *_m) : module(_m)
+ ModIndex(RTLIL::Module *_m) : sigmap(_m), module(_m)
{
auto_reload_counter = 0;
auto_reload_module = true;
@@ -274,6 +274,27 @@ struct ModIndex : public RTLIL::Monitor
return empty_result_set;
return info->ports;
}
+
+ void dump_db()
+ {
+ log("--- ModIndex Dump ---\n");
+
+ if (auto_reload_module) {
+ log("AUTO-RELOAD\n");
+ reload_module();
+ }
+
+ for (auto &it : database) {
+ log("BIT %s:\n", log_signal(it.first));
+ if (it.second.is_input)
+ log(" PRIMARY INPUT\n");
+ if (it.second.is_output)
+ log(" PRIMARY OUTPUT\n");
+ for (auto &port : it.second.ports)
+ log(" PORT: %s.%s[%d] (%s)\n", log_id(port.cell),
+ log_id(port.port), port.offset, log_id(port.cell->type));
+ }
+ }
};
struct ModWalker
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index 7090fe91..8332219a 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -1448,6 +1448,10 @@ void RTLIL::Module::connect(const RTLIL::SigSig &conn)
for (auto mon : design->monitors)
mon->notify_connect(this, conn);
+#ifndef NDEBUG
+ log_assert(!conn.first.has_const());
+#endif
+
if (yosys_xtrace) {
log("#X# Connect (SigSig) in %s: %s = %s (%d bits)\n", log_id(this), log_signal(conn.first), log_signal(conn.second), GetSize(conn.first));
log_backtrace("-X- ", yosys_xtrace-1);