aboutsummaryrefslogtreecommitdiffstats
path: root/common/kernel/timing.cc
diff options
context:
space:
mode:
Diffstat (limited to 'common/kernel/timing.cc')
-rw-r--r--common/kernel/timing.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/kernel/timing.cc b/common/kernel/timing.cc
index df0c3b5e..f046ba7d 100644
--- a/common/kernel/timing.cc
+++ b/common/kernel/timing.cc
@@ -299,7 +299,10 @@ void TimingAnalyser::identify_related_domains()
std::function<void(const NetInfo *, dict<IdString, delay_t> &, delay_t)> find_net_drivers =
[&](const NetInfo *ni, dict<IdString, delay_t> &drivers, delay_t delay_acc) {
// Get driving cell and port
+ if (ni == nullptr) return;
const CellInfo *cell = ni->driver.cell;
+ if (cell == nullptr) return;
+
const IdString port = ni->driver.port;
bool didGoUpstream = false;
@@ -360,6 +363,9 @@ void TimingAnalyser::identify_related_domains()
for (const auto &domain : domains) {
const NetInfo *ni = ctx->nets.at(domain.key.clock).get();
+ if (ni == nullptr) continue;
+ if (ni->driver.cell == nullptr) continue;
+
dict<IdString, delay_t> drivers;
find_net_drivers(ni, drivers, 0);