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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user