mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
fix(precheck): improve error messages for connectivity checks
This commit is contained in:
@@ -228,19 +228,19 @@ def analog_pin_check(
|
|||||||
|
|
||||||
if connected and not expected_pc:
|
if connected and not expected_pc:
|
||||||
raise PrecheckFailure(
|
raise PrecheckFailure(
|
||||||
f"Analog pin {pin} connected but `analog_pins` is {analog_pins}"
|
f"Analog pin `ua[{pin}]` is connected to some metal but `analog_pins` is set to {analog_pins} in `info.yaml`. Either increase `analog_pins` to at least {pin+1}, or remove any metal4 or via3 adjacent to `ua[{pin}]`."
|
||||||
)
|
)
|
||||||
elif connected and not expected_pd:
|
elif connected and not expected_pd:
|
||||||
raise PrecheckFailure(
|
raise PrecheckFailure(
|
||||||
f"Analog pin {pin} connected but `pinout.ua[{pin}]` is falsy"
|
f"Analog pin `ua[{pin}]` is connected to some metal but the description of `ua[{pin}]` in the pinout section of `info.yaml` is empty. Either add a description or remove any metal4 or via3 adjacent to `ua[{pin}]`."
|
||||||
)
|
)
|
||||||
elif not connected and expected_pc:
|
elif not connected and expected_pc:
|
||||||
raise PrecheckFailure(
|
raise PrecheckFailure(
|
||||||
f"Analog pin {pin} not connected but `analog_pins` is {analog_pins}"
|
f"Analog pin `ua[{pin}]` is not connected to any adjacent metal but `analog_pins` is set to {analog_pins} in `info.yaml`. Either wire up `ua[{pin}]` to your design using metal4 or via3, or decrease `analog_pins` to {pin}."
|
||||||
)
|
)
|
||||||
elif not connected and expected_pd:
|
elif not connected and expected_pd:
|
||||||
raise PrecheckFailure(
|
raise PrecheckFailure(
|
||||||
f"Analog pin {pin} not connected but `pinout.ua[{pin}]` is truthy"
|
f"Analog pin `ua[{pin}]` is not connected to any adjacent metal but the description of `ua[{pin}]` in the pinout section of `info.yaml` is non-empty. Either wire up `ua[{pin}]` to your design using metal4 or via3, or remove the description for the disconnected pin."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -664,7 +664,8 @@ def test_analog_exact_pins(gds_lef_analog_pin_example: tuple[str, str]):
|
|||||||
def test_analog_less_pins(gds_lef_analog_pin_example: tuple[str, str]):
|
def test_analog_less_pins(gds_lef_analog_pin_example: tuple[str, str]):
|
||||||
gds_file, lef_file = gds_lef_analog_pin_example
|
gds_file, lef_file = gds_lef_analog_pin_example
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
precheck.PrecheckFailure, match="Analog pin 1 connected but `analog_pins` is 1"
|
precheck.PrecheckFailure,
|
||||||
|
match="Analog pin `ua\\[1\\]` is connected to some metal but `analog_pins` is set to 1 .*",
|
||||||
):
|
):
|
||||||
precheck.analog_pin_check(
|
precheck.analog_pin_check(
|
||||||
gds_file, "sky130", True, False, 1, {"ua[0]": "x", "ua[1]": "x"}
|
gds_file, "sky130", True, False, 1, {"ua[0]": "x", "ua[1]": "x"}
|
||||||
@@ -675,7 +676,7 @@ def test_analog_more_pins(gds_lef_analog_pin_example: tuple[str, str]):
|
|||||||
gds_file, lef_file = gds_lef_analog_pin_example
|
gds_file, lef_file = gds_lef_analog_pin_example
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
precheck.PrecheckFailure,
|
precheck.PrecheckFailure,
|
||||||
match="Analog pin 2 not connected but `analog_pins` is 3",
|
match="Analog pin `ua\\[2\\]` is not connected to any adjacent metal but `analog_pins` is set to 3 .*",
|
||||||
):
|
):
|
||||||
precheck.analog_pin_check(
|
precheck.analog_pin_check(
|
||||||
gds_file, "sky130", True, False, 3, {"ua[0]": "x", "ua[1]": "x"}
|
gds_file, "sky130", True, False, 3, {"ua[0]": "x", "ua[1]": "x"}
|
||||||
@@ -686,7 +687,7 @@ def test_analog_less_ua_entries(gds_lef_analog_pin_example: tuple[str, str]):
|
|||||||
gds_file, lef_file = gds_lef_analog_pin_example
|
gds_file, lef_file = gds_lef_analog_pin_example
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
precheck.PrecheckFailure,
|
precheck.PrecheckFailure,
|
||||||
match="Analog pin 1 connected but `pinout\\.ua\\[1\\]` is falsy",
|
match="Analog pin `ua\\[1\\]` is connected to some metal but the description of `ua\\[1\\]` .*",
|
||||||
):
|
):
|
||||||
precheck.analog_pin_check(gds_file, "sky130", True, False, 2, {"ua[0]": "x"})
|
precheck.analog_pin_check(gds_file, "sky130", True, False, 2, {"ua[0]": "x"})
|
||||||
|
|
||||||
@@ -695,7 +696,7 @@ def test_analog_more_ua_entries(gds_lef_analog_pin_example: tuple[str, str]):
|
|||||||
gds_file, lef_file = gds_lef_analog_pin_example
|
gds_file, lef_file = gds_lef_analog_pin_example
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
precheck.PrecheckFailure,
|
precheck.PrecheckFailure,
|
||||||
match="Analog pin 2 not connected but `pinout\\.ua\\[2\\]` is truthy",
|
match="Analog pin `ua\\[2\\]` is not connected to any adjacent metal but the description of `ua\\[2\\]` .*",
|
||||||
):
|
):
|
||||||
precheck.analog_pin_check(
|
precheck.analog_pin_check(
|
||||||
gds_file,
|
gds_file,
|
||||||
|
|||||||
Reference in New Issue
Block a user