diff --git a/src/system/bsdl_check.cpp b/src/system/bsdl_check.cpp index 16d07b1..9d88599 100644 --- a/src/system/bsdl_check.cpp +++ b/src/system/bsdl_check.cpp @@ -104,7 +104,10 @@ std::vector check_pin_specs(System *sys) out.push_back(std::move(a)); } - if (ins >= 1 && drivers == 0) { + // Only conclude "undriven" when the whole net is modelled (every pin + // has a known direction). Otherwise the driver may sit on an + // un-modelled part (direction Unknown) and we must not flag it. + if (ins >= 1 && drivers == 0 && known == (int)pins.size()) { Anomaly a; a.kind = AnomalyKind::UndrivenNet; a.module = mod;