Expand description
The hardware constraint solver.
Takes a parsed Config and a Database and produces a list of
Conflicts. Phase 2 detects exactly the four conflict classes from the
README roadmap:
- Pin collision — two peripheral signals on one physical pin.
- AF mismatch — a pin assigned to a peripheral it doesn’t connect to.
- Missing required pin — a peripheral declared without a required pin.
- Clock domain disabled — a peripheral whose bus clock is turned off.
Per the scope rules there is no DMA-collision or full clock-tree analysis.
Structs§
- Signal
Ref - A
(peripheral, signal)pair identifying one use of a pin.
Enums§
- Conflict
- A single resolved conflict. Every variant is an error (it makes the config
un-buildable);
nucleus checkexits non-zero if any are present.
Functions§
- solve
- Run the solver over
configagainstdb, returning all conflicts in a deterministic order (so output and tests are stable across runs).