verify: only flag undriven-net on a fully-modelled net

Real-data testing (3 BSDL-attached FPGAs in an 8-card system) showed undriven
over-fires when only one side of a net has a known direction: the driver sits
on an un-modelled part (direction Unknown). Require known == net pin count, so
"undriven" is concluded only when every pin on the net is modelled. Drops 216
false positives to 0 on the sample system while the genuine JTAG findings
remain; the unit test is unaffected (its net is fully modelled).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 15:38:54 +02:00
parent 7cec6e1b0c
commit 581028a83d

View File

@@ -104,7 +104,10 @@ std::vector<Anomaly> 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;