diff --git a/periscope/src/backend/periscopex/protocol_catalog.py b/periscope/src/backend/periscopex/protocol_catalog.py index cbb9239..b9e49f6 100644 --- a/periscope/src/backend/periscopex/protocol_catalog.py +++ b/periscope/src/backend/periscopex/protocol_catalog.py @@ -622,6 +622,15 @@ DOC_HDMI_ADOPTER = ( DOC_HDMI_13 = "High-Definition Multimedia Interface Specification" REV_HDMI_13 = "Version 1.3, June 22, 2006" ORG_HDMI = "HDMI Licensing, LLC" +DOC_TMDS1204 = ( + "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver" +) +REV_TMDS1204 = "SLLSF57A – AUGUST 2022 – REVISED APRIL 2024" +ORG_TI = "Texas Instruments" +DOC_SLLA633 = ( + "TMDS_CLOCK/FRL_Data Detection Design in HDMI Sink Applications TMDS1204" +) +REV_SLLA633 = "SLLA633 – MAY 2024" DDR_CHECKS = [ "byte_lane_mapping", "dq_to_dqs_skew", @@ -745,6 +754,8 @@ def build_m0_catalog() -> dict[str, Any]: L("hdmi-2.0", "HDMI 2.0 TMDS", "SERIAL", "HDMI") L("hdmi-frl", "HDMI FRL mode", "SERIAL", "HDMI", "FRL is distinct from TMDS. Do not copy TMDS numbers onto FRL.") + L("tmds1204", "TI TMDS1204 HDMI hybrid redriver (vendor PHY)", "SERIAL", "HDMI", + "Vendor PHY implementation. Not HDMI Forum STANDARD. Not generic hdmi-1.4/2.0/FRL.") L("dvi", "DVI 1.0 TMDS", "SERIAL", "DVI", "DVI is not HDMI. Numbers from DDWG DVI Revision 1.0 only.") L("ddr-family", "DDR family (abstract)", "MEMORY", "DDR") @@ -1553,6 +1564,171 @@ def build_m0_catalog() -> dict[str, Any]: )) return out + def _tmds1204_cons(pid: str, role: str) -> list[dict[str, Any]]: + """TI TMDS1204 layout/electrical. VENDOR/PHY only — not HDMI Forum STANDARD.""" + kw = dict( + document=DOC_TMDS1204, organization=ORG_TI, revision=REV_TMDS1204, + source_type="PHY", source_class="VENDOR", mandatory="RECOMMENDED", + ) + out = [ + _c( + pid, p, "PHY_DEPENDENT", + source_type="PHY", source_class="VENDOR", mandatory="RECOMMENDED", + needed_document=( + "TI TMDS1204 datasheet SLLSF57A (vendor PHY). " + "Not HDMI Forum Adopter STANDARD." + ), + ) + for p in HDMI_CHECKS + if p not in { + "differential_impedance", "intra_pair_skew", "inter_lane_skew", + "data_rate", "vias", "ac_coupling", "crosstalk", + } + ] + out.append(_num( + pid, "data_rate", 12.0, "Gbps", + section="5.5", page="10", + conditions=[ + "TMDS1204 DR_RX_DATA / DR_RX_CLK maximum", + "chip TMDS1204", + "not HDMI Forum Adopter data-rate table", + ], + **kw, + )) + if role == "sink": + out.append(_num( + pid, "differential_impedance", 90.0, "ohm", + section="8.3.1", table="Table 8-6", page="63", + conditions=[ + "ZPCB_AB and ZPCB_CD min 90 Ω max 110 Ω", + "TMDS1204 sink layout LAB/LCD", + "not HDMI Forum Adopter Zdiff", + "not generic hdmi-* STANDARD", + ], + **kw, + )) + out.append(_num( + pid, "intra_pair_skew", 2.0, "mil", + section="8.3.1", table="Table 8-6", page="63", + conditions=["LINTRA-AB / LINTRA-CD maximum", "receptacle to TMDS1204 and TMDS1204 to sink"], + **kw, + )) + out.append(_num( + pid, "inter_lane_skew", 0.10, "inch", + section="8.3.1", table="Table 8-6", page="63", + conditions=["LINTER-PAIR maximum among D0, D1, D2, CLK"], + **kw, + )) + out.append(_num( + pid, "vias", 1.0, "count", + section="8.3.1", table="Table 8-6", page="63", + conditions=["VIAAB maximum between receptacle and TMDS1204"], + **kw, + )) + out.append(_num( + pid, "lab_length_max", 2.0, "inch", + section="8.3.1", table="Table 8-6", page="63", + conditions=["LAB PCB trace receptacle to TMDS1204 max (min 0.75 in) at ILPCB"], + **kw, + )) + out.append(_num( + pid, "lcd_length_max", 6.0, "inch", + section="8.3.1", table="Table 8-6", page="63", + conditions=["LCD PCB trace TMDS1204 to sink max (min 1 in) at ILPCB"], + **kw, + )) + else: + out.append(_num( + pid, "differential_impedance", 75.0, "ohm", + section="8.2.1", table="Table 8-2", page="58", + conditions=[ + "ZPCB_AB min 75 Ω max 110 Ω (GPU to TMDS1204)", + "ZPCB_CD is min 90 Ω max 110 Ω (TMDS1204 to receptacle)", + "not HDMI Forum Adopter Zdiff", + "not generic hdmi-* STANDARD", + ], + **kw, + )) + out.append(_num( + pid, "zpcb_cd_min", 90.0, "ohm", + section="8.2.1", table="Table 8-2", page="58", + conditions=["ZPCB_CD min 90 Ω max 110 Ω", "TMDS1204 source post-channel"], + **kw, + )) + out.append(_num( + pid, "intra_pair_skew", 5.0, "mil", + section="8.2.1", table="Table 8-2", page="58", + conditions=["LINTRA-AB / LINTRA-CD maximum"], + **kw, + )) + out.append(_num( + pid, "inter_lane_skew", 1.0, "inch", + section="8.2.1", table="Table 8-2", page="58", + conditions=["LINTER-PAIR maximum among D0, D1, D2, CLK"], + **kw, + )) + out.append(_num( + pid, "vias", 2.0, "count", + section="8.2.1", table="Table 8-2", page="58", + conditions=["VIAAB maximum between GPU and TMDS1204"], + **kw, + )) + out.append(_num( + pid, "lab_length_max", 10.0, "inch", + section="8.2.1", table="Table 8-2", page="58", + conditions=["LAB GPU to TMDS1204 max at 12 Gbps (min 1 in) at ILPCB"], + **kw, + )) + out.append(_num( + pid, "lcd_length_max", 2.0, "inch", + section="8.2.1", table="Table 8-2", page="58", + conditions=["LCD TMDS1204 to receptacle max (min 0.75 in) at ILPCB"], + **kw, + )) + out.append(_num( + pid, "crosstalk", -24.0, "dB", + section="8.3.1" if role == "sink" else "8.2.1", + table="Table 8-6" if role == "sink" else "Table 8-2", + page="63" if role == "sink" else "58", + conditions=["XTALK maximum, ≤ 3 GHz", "adjacent differential pairs on PCB"], + **kw, + )) + out.append(_num( + pid, "rint_min", 90.0, "ohm", + section="5.5", page="10", + conditions=[ + "RINT input differential impedance when termination enabled", + "min 90 Ω typ 100 Ω max 110 Ω at 0–70 °C (wider at –20–85 °C)", + "chip pin termination, not PCB trace Zdiff, not HDMI Forum", + ], + **kw, + )) + out.append(_num( + pid, "ac_coupling", 8.0, "nF", + section="5.5", page="13", + conditions=["CTX_AC required external AC capacitor min 8 nF (typ 10, max 12)"], + **kw, + )) + out.append(_num( + pid, "pair_spacing_min_widths", 5.0, "trace_width", + section="8.5.1", page="65", + conditions=[ + "distance between differential pairs at least 5× trace width (5W)", + "clock pair 8W or 10W", + "TI layout guideline, not HDMI Forum STANDARD", + ], + **kw, + )) + out.append(_c( + pid, "sigdet_wakeup", "PHY_DEPENDENT", + source_type="PHY", source_class="VENDOR", mandatory="RECOMMENDED", + needed_document=( + f"{DOC_SLLA633} {REV_SLLA633} §3 p.4 SIGDET_OUT; " + "vendor detection method, not HDMI Forum STANDARD" + ), + )) + return out + def _dvi_cons(pid: str) -> list[dict[str, Any]]: out = [] for p in DVI_CHECKS: @@ -1789,6 +1965,28 @@ def build_m0_catalog() -> dict[str, Any]: notes="HDMI FRL is distinct from TMDS. Do not apply TMDS rules. UNKNOWN until Adopter spec.", incomplete=True, )) + physical.append(_iface( + "tmds1204-hdmi-sink", "tmds1204", "SERIAL", "SERIAL_DIFFERENTIAL", "YES", + HDMI_CHECKS, _tmds1204_cons("tmds1204-hdmi-sink", "sink"), + connector="HDMI-A", + hints=["TMDS1204"], + notes=( + "TI TMDS1204 sink redriver layout (Table 8-6). VENDOR/PHY. " + "Not HDMI Forum STANDARD. Do not copy onto generic hdmi-*." + ), + incomplete=True, + )) + physical.append(_iface( + "tmds1204-hdmi-source", "tmds1204", "SERIAL", "SERIAL_DIFFERENTIAL", "YES", + HDMI_CHECKS, _tmds1204_cons("tmds1204-hdmi-source", "source"), + connector="HDMI-A", + hints=["TMDS1204"], + notes=( + "TI TMDS1204 source redriver layout (Table 8-2). VENDOR/PHY. " + "Not HDMI Forum STANDARD. Do not copy onto generic hdmi-*." + ), + incomplete=True, + )) physical.append(_iface( "dvi-1.0-tmds", "dvi", "SERIAL", "SERIAL_DIFFERENTIAL", "YES", DVI_CHECKS, _dvi_cons("dvi-1.0-tmds"), diff --git a/periscope/src/backend/periscopex/protocol_data/catalog.json b/periscope/src/backend/periscopex/protocol_data/catalog.json index fbf6e07..6a00f90 100644 --- a/periscope/src/backend/periscopex/protocol_data/catalog.json +++ b/periscope/src/backend/periscopex/protocol_data/catalog.json @@ -162,6 +162,13 @@ "family": "HDMI", "notes": "FRL is distinct from TMDS. Do not copy TMDS numbers onto FRL." }, + { + "id": "tmds1204", + "name": "TI TMDS1204 HDMI hybrid redriver (vendor PHY)", + "bus_type": "SERIAL", + "family": "HDMI", + "notes": "Vendor PHY implementation. Not HDMI Forum STANDARD. Not generic hdmi-1.4/2.0/FRL." + }, { "id": "dvi", "name": "DVI 1.0 TMDS", @@ -10156,6 +10163,1083 @@ "notes": "HDMI FRL is distinct from TMDS. Do not apply TMDS rules. UNKNOWN until Adopter spec.", "incomplete": true }, + { + "id": "tmds1204-hdmi-sink", + "logical_protocol_id": "tmds1204", + "bus_type": "SERIAL", + "physical_layer": "SERIAL_DIFFERENTIAL", + "pcb_relevant": "YES", + "connector": "HDMI-A", + "recognition_hints": [ + "TMDS1204" + ], + "required_checks": [ + "differential_impedance", + "impedance_tolerance", + "intra_pair_skew", + "inter_lane_skew", + "clock_data_relationship", + "data_rate", + "transition_rate", + "channel_loss", + "insertion_loss", + "return_loss", + "crosstalk", + "vias", + "stubs", + "connector_contribution", + "topology", + "return_path", + "ac_coupling", + "esd", + "ddc", + "cec", + "hpd" + ], + "constraints": [ + { + "id": "tmds1204-hdmi-sink-impedance_tolerance", + "parameter": "impedance_tolerance", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-clock_data_relationship", + "parameter": "clock_data_relationship", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-transition_rate", + "parameter": "transition_rate", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-channel_loss", + "parameter": "channel_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-insertion_loss", + "parameter": "insertion_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-return_loss", + "parameter": "return_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-stubs", + "parameter": "stubs", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-connector_contribution", + "parameter": "connector_contribution", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-topology", + "parameter": "topology", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-return_path", + "parameter": "return_path", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-esd", + "parameter": "esd", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-ddc", + "parameter": "ddc", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-cec", + "parameter": "cec", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-hpd", + "parameter": "hpd", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-sink-data_rate", + "parameter": "data_rate", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 12.0, + "unit": "Gbps", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "10" + }, + "conditions": [ + "TMDS1204 DR_RX_DATA / DR_RX_CLK maximum", + "chip TMDS1204", + "not HDMI Forum Adopter data-rate table" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-differential_impedance", + "parameter": "differential_impedance", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "ZPCB_AB and ZPCB_CD min 90 \u03a9 max 110 \u03a9", + "TMDS1204 sink layout LAB/LCD", + "not HDMI Forum Adopter Zdiff", + "not generic hdmi-* STANDARD" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-intra_pair_skew", + "parameter": "intra_pair_skew", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 2.0, + "unit": "mil", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "LINTRA-AB / LINTRA-CD maximum", + "receptacle to TMDS1204 and TMDS1204 to sink" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-inter_lane_skew", + "parameter": "inter_lane_skew", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 0.1, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "LINTER-PAIR maximum among D0, D1, D2, CLK" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-vias", + "parameter": "vias", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 1.0, + "unit": "count", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "VIAAB maximum between receptacle and TMDS1204" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-lab_length_max", + "parameter": "lab_length_max", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 2.0, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "LAB PCB trace receptacle to TMDS1204 max (min 0.75 in) at ILPCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-lcd_length_max", + "parameter": "lcd_length_max", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 6.0, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "LCD PCB trace TMDS1204 to sink max (min 1 in) at ILPCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-crosstalk", + "parameter": "crosstalk", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": -24.0, + "unit": "dB", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.3.1", + "table": "Table 8-6", + "page": "63" + }, + "conditions": [ + "XTALK maximum, \u2264 3 GHz", + "adjacent differential pairs on PCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-rint_min", + "parameter": "rint_min", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "10" + }, + "conditions": [ + "RINT input differential impedance when termination enabled", + "min 90 \u03a9 typ 100 \u03a9 max 110 \u03a9 at 0\u201370 \u00b0C (wider at \u201320\u201385 \u00b0C)", + "chip pin termination, not PCB trace Zdiff, not HDMI Forum" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-ac_coupling", + "parameter": "ac_coupling", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 8.0, + "unit": "nF", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "13" + }, + "conditions": [ + "CTX_AC required external AC capacitor min 8 nF (typ 10, max 12)" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-pair_spacing_min_widths", + "parameter": "pair_spacing_min_widths", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 5.0, + "unit": "trace_width", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.5.1", + "table": null, + "page": "65" + }, + "conditions": [ + "distance between differential pairs at least 5\u00d7 trace width (5W)", + "clock pair 8W or 10W", + "TI layout guideline, not HDMI Forum STANDARD" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-sink-sigdet_wakeup", + "parameter": "sigdet_wakeup", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TMDS_CLOCK/FRL_Data Detection Design in HDMI Sink Applications TMDS1204 SLLA633 \u2013 MAY 2024 \u00a73 p.4 SIGDET_OUT; vendor detection method, not HDMI Forum STANDARD" + } + ], + "notes": "TI TMDS1204 sink redriver layout (Table 8-6). VENDOR/PHY. Not HDMI Forum STANDARD. Do not copy onto generic hdmi-*.", + "incomplete": true + }, + { + "id": "tmds1204-hdmi-source", + "logical_protocol_id": "tmds1204", + "bus_type": "SERIAL", + "physical_layer": "SERIAL_DIFFERENTIAL", + "pcb_relevant": "YES", + "connector": "HDMI-A", + "recognition_hints": [ + "TMDS1204" + ], + "required_checks": [ + "differential_impedance", + "impedance_tolerance", + "intra_pair_skew", + "inter_lane_skew", + "clock_data_relationship", + "data_rate", + "transition_rate", + "channel_loss", + "insertion_loss", + "return_loss", + "crosstalk", + "vias", + "stubs", + "connector_contribution", + "topology", + "return_path", + "ac_coupling", + "esd", + "ddc", + "cec", + "hpd" + ], + "constraints": [ + { + "id": "tmds1204-hdmi-source-impedance_tolerance", + "parameter": "impedance_tolerance", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-clock_data_relationship", + "parameter": "clock_data_relationship", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-transition_rate", + "parameter": "transition_rate", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-channel_loss", + "parameter": "channel_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-insertion_loss", + "parameter": "insertion_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-return_loss", + "parameter": "return_loss", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-stubs", + "parameter": "stubs", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-connector_contribution", + "parameter": "connector_contribution", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-topology", + "parameter": "topology", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-return_path", + "parameter": "return_path", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-esd", + "parameter": "esd", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-ddc", + "parameter": "ddc", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-cec", + "parameter": "cec", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-hpd", + "parameter": "hpd", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TI TMDS1204 datasheet SLLSF57A (vendor PHY). Not HDMI Forum Adopter STANDARD." + }, + { + "id": "tmds1204-hdmi-source-data_rate", + "parameter": "data_rate", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 12.0, + "unit": "Gbps", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "10" + }, + "conditions": [ + "TMDS1204 DR_RX_DATA / DR_RX_CLK maximum", + "chip TMDS1204", + "not HDMI Forum Adopter data-rate table" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-differential_impedance", + "parameter": "differential_impedance", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 75.0, + "unit": "ohm", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "ZPCB_AB min 75 \u03a9 max 110 \u03a9 (GPU to TMDS1204)", + "ZPCB_CD is min 90 \u03a9 max 110 \u03a9 (TMDS1204 to receptacle)", + "not HDMI Forum Adopter Zdiff", + "not generic hdmi-* STANDARD" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-zpcb_cd_min", + "parameter": "zpcb_cd_min", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "ZPCB_CD min 90 \u03a9 max 110 \u03a9", + "TMDS1204 source post-channel" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-intra_pair_skew", + "parameter": "intra_pair_skew", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 5.0, + "unit": "mil", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "LINTRA-AB / LINTRA-CD maximum" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-inter_lane_skew", + "parameter": "inter_lane_skew", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 1.0, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "LINTER-PAIR maximum among D0, D1, D2, CLK" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-vias", + "parameter": "vias", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 2.0, + "unit": "count", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "VIAAB maximum between GPU and TMDS1204" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-lab_length_max", + "parameter": "lab_length_max", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 10.0, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "LAB GPU to TMDS1204 max at 12 Gbps (min 1 in) at ILPCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-lcd_length_max", + "parameter": "lcd_length_max", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 2.0, + "unit": "inch", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "LCD TMDS1204 to receptacle max (min 0.75 in) at ILPCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-crosstalk", + "parameter": "crosstalk", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": -24.0, + "unit": "dB", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.2.1", + "table": "Table 8-2", + "page": "58" + }, + "conditions": [ + "XTALK maximum, \u2264 3 GHz", + "adjacent differential pairs on PCB" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-rint_min", + "parameter": "rint_min", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "10" + }, + "conditions": [ + "RINT input differential impedance when termination enabled", + "min 90 \u03a9 typ 100 \u03a9 max 110 \u03a9 at 0\u201370 \u00b0C (wider at \u201320\u201385 \u00b0C)", + "chip pin termination, not PCB trace Zdiff, not HDMI Forum" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-ac_coupling", + "parameter": "ac_coupling", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 8.0, + "unit": "nF", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "5.5", + "table": null, + "page": "13" + }, + "conditions": [ + "CTX_AC required external AC capacitor min 8 nF (typ 10, max 12)" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-pair_spacing_min_widths", + "parameter": "pair_spacing_min_widths", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": 5.0, + "unit": "trace_width", + "source": { + "document": "TMDS1204 12Gbps, DC or AC-Coupled to TMDS and FRL HDMI Hybrid Redriver", + "organization": "Texas Instruments", + "revision": "SLLSF57A \u2013 AUGUST 2022 \u2013 REVISED APRIL 2024", + "section": "8.5.1", + "table": null, + "page": "65" + }, + "conditions": [ + "distance between differential pairs at least 5\u00d7 trace width (5W)", + "clock pair 8W or 10W", + "TI layout guideline, not HDMI Forum STANDARD" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "tmds1204-hdmi-source-sigdet_wakeup", + "parameter": "sigdet_wakeup", + "value_kind": "PHY_DEPENDENT", + "mandatory": "RECOMMENDED", + "source_type": "PHY", + "source_class": "VENDOR", + "value": null, + "unit": null, + "source": null, + "conditions": [], + "value_origin": "SPEC", + "typical": false, + "needed_document": "TMDS_CLOCK/FRL_Data Detection Design in HDMI Sink Applications TMDS1204 SLLA633 \u2013 MAY 2024 \u00a73 p.4 SIGDET_OUT; vendor detection method, not HDMI Forum STANDARD" + } + ], + "notes": "TI TMDS1204 source redriver layout (Table 8-2). VENDOR/PHY. Not HDMI Forum STANDARD. Do not copy onto generic hdmi-*.", + "incomplete": true + }, { "id": "dvi-1.0-tmds", "logical_protocol_id": "dvi", diff --git a/periscope/src/frontend/content/changelog.md b/periscope/src/frontend/content/changelog.md index 07fe504..3d465bf 100644 --- a/periscope/src/frontend/content/changelog.md +++ b/periscope/src/frontend/content/changelog.md @@ -2,6 +2,13 @@ What's new in Periscope. +## 2.80.0 — 2026-09-22 — TI TMDS1204 HDMI layout as VENDOR/PHY only + +TMDS1204 datasheet SLLSF57A fills sink/source PCB layout (ZPCB 90 Ω / 75 Ω ranges, skew, length, vias, XTALK −24 dB, 5W spacing, RINT, AC cap) on physical ids `tmds1204-hdmi-sink` / `tmds1204-hdmi-source`. source_type PHY, source_class VENDOR, RECOMMENDED. Generic `hdmi-*` TMDS/FRL Zdiff stays UNKNOWN. SLLA633 is SIGDET wakeup (PHY_DEPENDENT), no layout ohms. pcbsync.com blog not packed. + +- [Changed] `protocol_catalog.py` + `catalog.json`. +- [Changed] pytest `tests/pcb/test_protocol_pdf_pack.py`, `test_protocol_catalog_m0.py`. + ## 2.79.0 — 2026-09-22 — HDMI CEC electrical from HDMI Specification 1.3 `CEC_HDMI_Specification.pdf` is High-Definition Multimedia Interface Specification Version 1.3 (22 June 2006), not a CEC-only pamphlet. CEC pull-up 27 kΩ, VOL 0.6 V, VOH 2.5 V, device 200 pF / cable 700 pF, interconnect 5 Ω are packed. TMDS/FRL Zdiff/skew stay UNKNOWN (Adopter spec still required). DDC/HPD not packed. diff --git a/periscope/src/frontend/package.json b/periscope/src/frontend/package.json index 74482d4..d520c0e 100644 --- a/periscope/src/frontend/package.json +++ b/periscope/src/frontend/package.json @@ -1,6 +1,6 @@ { "name": "periscope-web", - "version": "2.79.0", + "version": "2.80.0", "private": true, "scripts": { "sync-version": "node scripts/sync-version.mjs", diff --git a/tests/pcb/test_protocol_catalog_m0.py b/tests/pcb/test_protocol_catalog_m0.py index 5fa4582..bb33f42 100644 --- a/tests/pcb/test_protocol_catalog_m0.py +++ b/tests/pcb/test_protocol_catalog_m0.py @@ -25,7 +25,7 @@ from backend.periscopex.protocol_catalog import ( REQUIRED_LOGICAL = { "usb2-ls-fs", "usb2-ls", "usb2-fs", "usb2-hs", "usb-c", "usb-c-usb2", "usb3-x", "usb4", "100base-tx", "10base-t", "1000base-t", - "hdmi-1.4", "hdmi-2.0", "hdmi-frl", + "hdmi-1.4", "hdmi-2.0", "hdmi-frl", "tmds1204", "dvi", "ddr-family", "ddr4", "lpddr-family", "lpddr4", "hbm-family", "hbm3", "hyperbus", "qspi", "octal-spi", "emmc", "ufs", diff --git a/tests/pcb/test_protocol_pdf_pack.py b/tests/pcb/test_protocol_pdf_pack.py index fef8ec6..ba55680 100644 --- a/tests/pcb/test_protocol_pdf_pack.py +++ b/tests/pcb/test_protocol_pdf_pack.py @@ -175,6 +175,23 @@ def test_dvi_not_hdmi_numeric_from_dvi_10(): fz = next(c for c in frl.constraints if c.parameter == "differential_impedance") assert fz.value_kind == "UNKNOWN" assert fz.value is None + sink = next(p for p in cat.physical_interfaces if p.id == "tmds1204-hdmi-sink") + assert sink.logical_protocol_id == "tmds1204" + sby = {c.parameter: c for c in sink.constraints} + _cite_ok(sby["differential_impedance"]) + assert sby["differential_impedance"].value == 90.0 + assert sby["differential_impedance"].source_type == "PHY" + assert sby["differential_impedance"].source_class == "VENDOR" + assert sby["differential_impedance"].mandatory == "RECOMMENDED" + assert sby["differential_impedance"].source.table == "Table 8-6" + assert sby["differential_impedance"].source.organization == "Texas Instruments" + assert "SLLSF57A" in sby["differential_impedance"].source.revision + assert sby["differential_impedance"].source_class != "NORMATIVE" + src = next(p for p in cat.physical_interfaces if p.id == "tmds1204-hdmi-source") + rby = {c.parameter: c for c in src.constraints} + assert rby["differential_impedance"].value == 75.0 + assert rby["differential_impedance"].source.table == "Table 8-2" + assert rby["differential_impedance"].source_class == "VENDOR" g = DesignGraph( components={ "J3": Component(