Ship remaining PCB plan slices: BOM chain, SPOF, EMI FACT, gated Tj.

Package/pinout/ratings mismatches, SPOF as REVIEW, EMI only with a
datasheet quote, and Tj from copper+vias+θJA when every parameter exists.
Re-extract SI layout_rules from 1.12.0; ImpedenceFinder license stays UNKNOWN.
This commit is contained in:
2026-09-20 12:29:27 +02:00
parent 65a91419a2
commit 1b3529501f
20 changed files with 1337 additions and 30 deletions
+1
View File
@@ -68,6 +68,7 @@ You **must** look for layout guidance. Emit `layout_rules` as a list. Use `[]` o
| `layer` | Required copper layer / topology |
| `series_resistor` | Series R on the HS net (`value_ohms`) |
| `return_path` | GND return via next to the pair |
| `emi` / `common_mode` / `shield` | Common-mode choke, ferrite bead, shield, or EMI filter **quoted from this datasheet** (no IEC 61000 invention) |
Do **not** emit impedance/50 Ω rules for I2C, GPIO, EN, analog REGN, or USB CC. Do **not** invent USB 90 Ω unless **this** datasheet states a number.
+4 -1
View File
@@ -75,7 +75,10 @@
"layer",
"series_resistor",
"return_path",
"si"
"si",
"emi",
"common_mode",
"shield"
]
},
"pin": {"type": ["string", "null"]},
+1
View File
@@ -89,6 +89,7 @@ def validate(data: dict) -> list[str]:
"decoupling_proximity", "thermal_via", "keepout", "length_match",
"impedance", "max_length", "spacing", "ref_plane", "si_via",
"layer", "series_resistor", "return_path", "si",
"emi", "common_mode", "shield",
}
for i, row in enumerate(data["layout_rules"]):
if not isinstance(row, dict):