verify: model-driven pin checks (contention / undriven / NC-wired)
New bsdl_check.{hpp,cpp}: check_pin_specs(System*) walks the nets and uses
each pin's PinSpec direction/function to flag DriveContention (>=2 push-pull
output drivers), UndrivenNet (a multi-pin net with input(s) but no driver),
and NcWired (a no-connect pin wired onto a multi-pin net). Added as a pass in
`verify`; AnomalyKind extended accordingly. Nets with no direction data are
skipped, so un-modelled parts produce no noise. Covered by test_bsdl_check.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
19
src/system/bsdl_check.hpp
Normal file
19
src/system/bsdl_check.hpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef _BSDL_CHECK_HPP_
|
||||
#define _BSDL_CHECK_HPP_
|
||||
|
||||
#include "analysis.hpp" // Anomaly, AnomalyKind
|
||||
|
||||
#include <vector>
|
||||
|
||||
class System;
|
||||
|
||||
// Model-driven pin checks over the system's nets, using the PinSpec
|
||||
// direction/function populated by connector or BSDL models. Emits:
|
||||
// - DriveContention : a net with ≥2 push-pull output drivers;
|
||||
// - UndrivenNet : a multi-pin net with input(s) but no driver;
|
||||
// - NcWired : a no-connect pin wired onto a multi-pin net.
|
||||
// Read-only; nets with no direction data are skipped (no false positives on
|
||||
// un-modelled parts).
|
||||
std::vector<Anomaly> check_pin_specs(System *sys);
|
||||
|
||||
#endif // _BSDL_CHECK_HPP_
|
||||
Reference in New Issue
Block a user