ShiboSoftwareDev/am625sip-linux-board
This code defines the physical footprint and pin layout for an AM625 System-in-Package (SIP) component, detailing pad positions, pin labels, and package outline for hardware integration.
- Version
- 1.0.24
- License
- unset
- Stars
- 0
subcircuits/hdmi.tsx
import { Fragment } from "react"
import { Tfp410 } from "../components/tfp410"
import { BLM18AG601SN1D } from "../imports/BLM18AG601SN1D"
import { HDMI_001_19PCBTP } from "../imports/HDMI_001_19PCBTP"
import { TPD12S521DBTR } from "../imports/TPD12S521DBTR"
const SIGNAL_LAYERS = ["top", "inner1", "inner2", "bottom"] as const
const ACTIVE_HDMI_OUTPUT_STAGE = 6
const VOUT_BOUNDARIES = [
{ name: "VOUT0_PCLK", pin: "IDCK_P", pcbY: -13 },
{ name: "VOUT0_DE", pin: "DE", pcbY: -11 },
{ name: "VOUT0_HSYNC", pin: "HSYNC", pcbY: 6.5 },
{ name: "VOUT0_DATA0", pin: "DATA3", pcbY: 2.5 },
{ name: "VOUT0_DATA1", pin: "DATA4", pcbY: 1.3 },
{ name: "VOUT0_DATA2", pin: "DATA5", pcbY: 0.1 },
{ name: "VOUT0_DATA3", pin: "DATA6", pcbY: -1.1 },
{ name: "VOUT0_DATA4", pin: "DATA7", pcbY: -2.3 },
] as const
const TMDS_ESCAPES = [
{ pin: "TXC_N", pcbY: 1.75 },
{ pin: "TXC_P", pcbY: 1.25 },
{ pin: "TX0_N", pcbY: 0.25 },
{ pin: "TX0_P", pcbY: -0.25 },
{ pin: "TX1_N", pcbY: -1.25 },
{ pin: "TX1_P", pcbY: -1.75 },
{ pin: "TX2_N", pcbY: -2.75 },
{ pin: "TX2_P", pcbY: -3.25 },
] as const
const BoundaryPad = ({
name,
pcbX,
pcbY,
}: {
name: string
pcbX: number
pcbY: number
}) => (
<chip
name={name}
pcbX={pcbX}
pcbY={pcbY}
noSchematicRepresentation
footprint={
<footprint>
<smtpad
portHints={["pin1"]}
shape="rect"
width="0.8mm"
height="0.8mm"
/>
</footprint>
}
/>
)
const TmdsEscapePad = ({ name, pcbY }: { name: string; pcbY: number }) => (
<chip
name={name}
pcbX={-34.2}
pcbY={pcbY}
noSchematicRepresentation
footprint={
<footprint>
<smtpad
portHints={["pin1"]}
shape="rect"
width="0.3mm"
height="0.3mm"
/>
</footprint>
}
/>
)
export const HdmiSubcircuit = () => (
<subcircuit
name="HDMI"
autorouter="default"
exposedNets={["GND"]}
defaultTraceWidth="0.08128mm"
minTraceWidth="0.08128mm"
minTraceToPadEdgeClearance="0.05mm"
minPadEdgeToPadEdgeClearance="0.08128mm"
minViaEdgeToPadEdgeClearance="0.08128mm"
minViaHoleEdgeToViaHoleEdgeClearance="0.1016mm"
minViaHoleDiameter="0.1mm"
minViaPadDiameter="0.24mm"
>
<autoroutingphase
name="HDMI_LOCAL_GROUND_DROPS"
phaseIndex={16}
autorouter="fanout"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
fanoutPourNetMap={{ inner1: ["GND"] }}
/>
<autoroutingphase
name="HDMI_LOCAL_SIGNAL_ROUTES"
phaseIndex={18}
autorouter="default"
/>
<autoroutingphase
name="HDMI_POWER_FEEDS"
phaseIndex={19}
autorouter="default"
/>
<autoroutingphase
name="HDMI_LOCAL_POWER_ROUTES"
phaseIndex={20}
autorouter="default"
/>
<autoroutingphase
name="HDMI_CONNECTOR_GROUND_ROUTES_A"
phaseIndex={20.1}
autorouter="fanout"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
fanoutPourNetMap={{ inner1: ["GND"] }}
/>
<autoroutingphase
name="HDMI_CONNECTOR_GROUND_ROUTES_B"
phaseIndex={20.2}
autorouter="fanout"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
fanoutPourNetMap={{ inner1: ["GND"] }}
/>
<autoroutingphase
name="HDMI_TMDS_QFP_ESCAPES"
phaseIndex={20.28}
autorouter="default"
/>
<autoroutingphase
name="HDMI_TMDS_SOURCE_DATA0_PAIR"
phaseIndex={20.29}
autorouter="default"
/>
<autoroutingphase
name="HDMI_TMDS_SOURCE_DATA1_PAIR"
phaseIndex={20.3}
autorouter="default"
/>
<autoroutingphase
name="HDMI_TMDS_SOURCE_CLOCK_PAIR"
phaseIndex={20.32}
autorouter="default"
/>
<autoroutingphase
name="HDMI_TMDS_SOURCE_DATA2_PAIR"
phaseIndex={20.33}
autorouter="default"
/>
<autoroutingphase
name="HDMI_TGND32_POST_DATA2_FANOUT"
phaseIndex={20.34}
autorouter="fanout"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
fanoutPourNetMap={{ inner1: ["GND"] }}
/>
<autoroutingphase
name="HDMI_TMDS_CONNECTOR_ROUTES"
phaseIndex={20.4}
autorouter="default"
/>
<autoroutingphase
name="HDMI_DVDD_SUPPLY_NET"
phaseIndex={20.5}
autorouter="default"
/>
<autoroutingphase
name="HDMI_VOUT_INPUT_ROUTES"
phaseIndex={20.6}
autorouter="default"
/>
<net name="GND" />
<net name="HDMI_DVDD_3V3" routingPhaseIndex={20.5} />
<net name="HDMI_VREF_0V825" routingPhaseIndex={18} />
<BoundaryPad name="X_3V3" pcbX={-17} pcbY={13} />
{VOUT_BOUNDARIES.map(({ name, pin, pcbY }) => (
<Fragment key={name}>
<BoundaryPad name={`X_${name}`} pcbX={-17} pcbY={pcbY} />
<trace
name={`HDMI_INPUT_${name}`}
from={`.X_${name} > .pin1`}
to={`.U3 > .${pin}`}
routingPhaseIndex={20.6}
/>
</Fragment>
))}
<bus
name="HDMI_VOUT_INPUT_BUS"
connections={VOUT_BOUNDARIES.map(({ name }) => `HDMI_INPUT_${name}`)}
routingPhaseIndex={20.6}
pcbTraceWidth="0.08128mm"
preferredLayers={[...SIGNAL_LAYERS]}
/>
<Tfp410
name="U3"
pcbX={-27}
pcbY={0}
pcbRotation={180}
noSchematicRepresentation
/>
{TMDS_ESCAPES.map(({ pin, pcbY }) => (
<Fragment key={`U3_ESCAPE_${pin}`}>
<TmdsEscapePad name={`X_${pin}`} pcbY={pcbY} />
<trace
name={`U3_${pin}_ESCAPE`}
from={`.U3 > .${pin}`}
to={`.X_${pin} > .pin1`}
width="0.15mm"
routingPhaseIndex={20.28}
/>
</Fragment>
))}
<capacitor
name="C53"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-23.25}
pcbY={7.8}
pcbRotation={270}
/>
<capacitor
name="C54"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-28.25}
pcbY={9.6}
pcbRotation={90}
/>
<capacitor
name="C55"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-30.25}
pcbY={-7.8}
pcbRotation={90}
/>
{[
{ name: "U3_DVDD1", from: ".U3 > .DVDD_1" },
{ name: "U3_DVDD12", from: ".U3 > .DVDD_12" },
{ name: "U3_DVDD33", from: ".U3 > .DVDD_33" },
{ name: "U3_DVDD_C53", from: ".C53 > .pin1" },
{ name: "U3_DVDD_C54", from: ".C54 > .pin1" },
{ name: "U3_DVDD_C55", from: ".C55 > .pin1" },
].map(({ name, from }) => (
<trace
key={name}
name={name}
from={from}
to="net.HDMI_DVDD_3V3"
routingPhaseIndex={20}
/>
))}
<trace name="U3_C53_GND" from=".C53 > .pin2" to="net.GND" width="0.2mm" routingPhaseIndex={16} />
<trace name="U3_C54_GND" from=".C54 > .pin2" to="net.GND" width="0.2mm" routingPhaseIndex={16} />
<trace name="U3_C55_GND" from=".C55 > .pin2" to="net.GND" width="0.2mm" routingPhaseIndex={16} />
{[
"DGND_16",
"PGND",
"TGND_20",
"TGND_26",
"TGND_32",
"DGND_48",
"DGND_64",
"THERMAL_PAD",
].map((pin) => (
<trace
key={`U3_GND_${pin}`}
name={`U3_GND_${pin}`}
from={`.U3 > .${pin}`}
to="net.GND"
width="0.2mm"
routingPhaseIndex={pin === "TGND_32" ? 20.34 : 16}
/>
))}
<capacitor
name="C56"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-34.5}
pcbY={8}
/>
<capacitor
name="C57"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-37}
pcbY={8}
/>
<capacitor
name="C58"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-35}
pcbY={5.2}
/>
<capacitor
name="C59"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-37}
pcbY={6.2}
/>
<capacitor
name="C60"
capacitance="10nF"
maxVoltageRating="10V"
footprint="0402"
pcbX={-39.5}
pcbY={6.2}
/>
<resistor
name="R15"
resistance="30k"
footprint="0402"
pcbX={-25}
pcbY={11.5}
/>
<resistor
name="R16"
resistance="10k"
footprint="0402"
pcbX={-27}
pcbY={11.5}
/>
<resistor
name="R17"
resistance="510"
footprint="0402"
pcbX={-42}
pcbY={8}
/>
<resistor
name="R18"
resistance="10k"
footprint="0201"
supplierPartNumbers={{ jlcpcb: ["C473048"] }}
pcbX={-27.25}
pcbY={8.2}
pcbRotation={90}
/>
<resistor
name="R19"
resistance="10k"
footprint="0201"
supplierPartNumbers={{ jlcpcb: ["C473048"] }}
pcbX={-30.75}
pcbY={8.2}
pcbRotation={90}
/>
<resistor
name="R20"
resistance="10k"
footprint="0201"
supplierPartNumbers={{ jlcpcb: ["C473048"] }}
pcbX={-29.25}
pcbY={8.2}
pcbRotation={90}
/>
<resistor
name="R21"
resistance="10k"
footprint="0201"
supplierPartNumbers={{ jlcpcb: ["C473048"] }}
pcbX={-40}
pcbY={8.2}
pcbRotation={90}
/>
<resistor
name="R22"
resistance="10k"
footprint="0201"
supplierPartNumbers={{ jlcpcb: ["C473048"] }}
pcbX={-25.75}
pcbY={8.2}
pcbRotation={90}
/>
{[
{
name: "U3_TVDD23_TO_C56",
from: ".U3 > .TVDD_23",
to: ".C56 > .pin1",
},
{
name: "U3_TVDD29_TO_C57",
from: ".U3 > .TVDD_29",
to: ".C57 > .pin1",
},
{
name: "U3_TVDD_C56_TO_C57",
from: ".C56 > .pin1",
to: ".C57 > .pin1",
},
{
name: "U3_PVDD_TO_C58",
from: ".U3 > .PVDD",
to: ".C58 > .pin1",
},
{
name: "U3_PVDD_C58_TO_C59",
from: ".C58 > .pin1",
to: ".C59 > .pin1",
},
{
name: "U3_PVDD_C59_TO_C60",
from: ".C59 > .pin1",
to: ".C60 > .pin1",
},
].map(({ name, from, to }) => (
<trace
key={name}
name={name}
from={from}
to={to}
routingPhaseIndex={20}
/>
))}
{["C56", "C57", "C58", "C59", "C60"].map((name) => (
<trace
key={`U3_${name}_GND`}
name={`U3_${name}_GND`}
from={`.${name} > .pin2`}
to="net.GND"
width="0.2mm"
routingPhaseIndex={16}
/>
))}
<trace
name="U3_VREF_DIVIDER_TOP"
from=".R15 > .pin1"
to="net.HDMI_DVDD_3V3"
routingPhaseIndex={18}
/>
<trace
name="U3_VREF_DIVIDER_MID"
from=".R15 > .pin2"
to="net.HDMI_VREF_0V825"
routingPhaseIndex={18}
/>
<trace
name="U3_VREF_DIVIDER_BOTTOM"
from=".R16 > .pin1"
to="net.HDMI_VREF_0V825"
routingPhaseIndex={18}
/>
<trace
name="U3_VREF"
from=".U3 > .VREF"
to="net.HDMI_VREF_0V825"
routingPhaseIndex={18}
/>
<trace
name="U3_VREF_GND"
from=".R16 > .pin2"
to="net.GND"
routingPhaseIndex={16}
/>
<trace
name="U3_TFADJ"
from=".U3 > .TFADJ"
to=".R17 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_TFADJ_TVDD"
from=".R17 > .pin2"
to=".C56 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_EDGE_STRAP"
from=".U3 > .EDGE_HTPLG"
to=".R18 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_EDGE_PULLUP"
from=".R18 > .pin2"
to=".C54 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_BSEL_STRAP"
from=".U3 > .BSEL_SCL"
to=".R19 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_BSEL_PULLUP"
from=".R19 > .pin2"
to=".C54 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_ISEL_STRAP"
from=".U3 > .ISEL_RST"
to=".R20 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_ISEL_PULLDOWN"
from=".R20 > .pin2"
to="net.GND"
routingPhaseIndex={16}
/>
<trace
name="U3_DSEL_STRAP"
from=".U3 > .DSEL_SDA"
to=".R21 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_DSEL_PULLDOWN"
from=".R21 > .pin2"
to="net.GND"
routingPhaseIndex={16}
/>
<trace
name="U3_PD_STRAP"
from=".U3 > .PD"
to=".R22 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_PD_PULLUP"
from=".R22 > .pin2"
to=".C53 > .pin1"
routingPhaseIndex={18}
/>
<trace
name="U3_DKEN_FIXED_LOW"
from=".U3 > .DKEN"
to="net.GND"
routingPhaseIndex={16}
/>
<trace
name="U3_RESERVED_FIXED_LOW"
from=".U3 > .RESERVED"
to="net.GND"
routingPhaseIndex={16}
/>
<trace
name="U3_IDCK_N_SINGLE_ENDED_LOW"
from=".U3 > .IDCK_N"
to="net.GND"
routingPhaseIndex={16}
/>
{["DATA0", "DATA1", "DATA2", "DATA8", "DATA9", "DATA16", "DATA17", "DATA18"].map(
(pin) => (
<trace
key={`U3_${pin}_RGB565_LOW`}
name={`U3_${pin}_RGB565_LOW`}
from={`.U3 > .${pin}`}
to="net.GND"
routingPhaseIndex={16}
/>
),
)}
{[
{
bead: "FB1",
capacitor: "C61",
x: -22,
target: ".C53 > .pin1",
},
{
bead: "FB2",
capacitor: "C62",
x: -32,
target: ".C56 > .pin1",
},
{
bead: "FB3",
capacitor: "C63",
x: -40,
target: ".C60 > .pin1",
},
].map(({ bead, capacitor, x, target }) => (
<Fragment key={`${bead}-${capacitor}-filter`}>
<BLM18AG601SN1D
name={bead}
pcbX={x}
pcbY={13}
pcbRotation={90}
noSchematicRepresentation
/>
<capacitor
name={capacitor}
capacitance="1uF"
maxVoltageRating="10V"
footprint="0402"
supplierPartNumbers={{ jlcpcb: ["C52923"] }}
pcbX={x}
pcbY={10.25}
pcbRotation={90}
/>
<trace
name={`${bead}_FILTER_OUTPUT`}
from={`.${bead} > .pin1`}
to={`.${capacitor} > .pin1`}
width="0.2mm"
routingPhaseIndex={20}
/>
<trace
name={`${bead}_FILTERED_RAIL`}
from={`.${capacitor} > .pin1`}
to={target}
width="0.2mm"
routingPhaseIndex={20}
/>
<trace
name={`${capacitor}_GND`}
from={`.${capacitor} > .pin2`}
to="net.GND"
width="0.3mm"
routingPhaseIndex={16}
/>
</Fragment>
))}
<trace
name="HDMI_3V3_FEED_DAISY_1"
from=".FB1 > .pin2"
to=".FB2 > .pin2"
width="0.3mm"
routingPhaseIndex={19}
/>
<trace
name="HDMI_3V3_FEED_DAISY_2"
from=".FB2 > .pin2"
to=".FB3 > .pin2"
width="0.3mm"
routingPhaseIndex={19}
/>
<HDMI_001_19PCBTP
name="J3"
pcbX={-61}
pcbY={0}
pcbRotation={270}
/>
<TPD12S521DBTR
name="U4"
pcbX={-48}
pcbY={-0.5}
pcbRotation={90}
/>
{[
"GND1",
"TMDS_GND1",
"TMDS_GND2",
"TMDS_GND3",
"TMDS_GND4",
"TMDS_GND5",
"TMDS_GND6",
"TMDS_GND7",
"TMDS_GND8",
"GND2",
].map((pin) => (
<trace
key={`U4_${pin}_GND`}
name={`U4_${pin}_GND`}
from={`.U4 > .${pin}`}
to="net.GND"
width="0.2mm"
routingPhaseIndex={16}
/>
))}
{ACTIVE_HDMI_OUTPUT_STAGE >= 1 && (
<Fragment>
<trace
name="HDMI_TMDS_CLOCK_SOURCE_P"
from=".X_TXC_P > .pin1"
to=".U4 > .TMDS_CK_POS1"
width="0.15mm"
routingPhaseIndex={20.32}
/>
<trace
name="HDMI_TMDS_CLOCK_SOURCE_N"
from=".X_TXC_N > .pin1"
to=".U4 > .TMDS_CK_NEG1"
width="0.15mm"
routingPhaseIndex={20.32}
/>
<bus
name="HDMI_TMDS_CLOCK_SOURCE_BUS"
connections={[
"HDMI_TMDS_CLOCK_SOURCE_P",
"HDMI_TMDS_CLOCK_SOURCE_N",
]}
routingPhaseIndex={20.32}
maxLengthSkew="0.2mm"
targetImpedance="50ohm"
pcbTraceWidth="0.15mm"
preferredLayers={[...SIGNAL_LAYERS]}
/>
<trace
name="HDMI_TMDS_CLOCK_CONNECTOR_P"
from=".U4 > .TMDS_CK_POS2"
to=".J3 > .pin10"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<trace
name="HDMI_TMDS_CLOCK_CONNECTOR_N"
from=".U4 > .TMDS_CK_NEG2"
to=".J3 > .pin12"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<differentialpair
name="HDMI_TMDS_CLOCK_CONNECTOR"
positiveConnection="HDMI_TMDS_CLOCK_CONNECTOR_P"
negativeConnection="HDMI_TMDS_CLOCK_CONNECTOR_N"
maxLengthSkew="0.2mm"
targetDifferentialImpedance="100ohm"
pcbTraceGap="0.15mm"
maxUncoupledLength="3mm"
/>
</Fragment>
)}
{ACTIVE_HDMI_OUTPUT_STAGE >= 2 && (
<Fragment>
<trace
name="HDMI_TMDS_DATA2_SOURCE_P"
from=".X_TX2_P > .pin1"
to=".U4 > .TMDS_D2_POS1"
width="0.15mm"
routingPhaseIndex={20.33}
/>
<trace
name="HDMI_TMDS_DATA2_SOURCE_N"
from=".X_TX2_N > .pin1"
to=".U4 > .TMDS_D2_NEG1"
width="0.15mm"
routingPhaseIndex={20.33}
/>
<bus
name="HDMI_TMDS_DATA2_SOURCE_BUS"
connections={[
"HDMI_TMDS_DATA2_SOURCE_P",
"HDMI_TMDS_DATA2_SOURCE_N",
]}
routingPhaseIndex={20.33}
maxLengthSkew="0.2mm"
targetImpedance="50ohm"
pcbTraceWidth="0.15mm"
preferredLayers={[...SIGNAL_LAYERS]}
/>
<trace
name="HDMI_TMDS_DATA2_CONNECTOR_P"
from=".U4 > .TMDS_D2_POS2"
to=".J3 > .pin1"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<trace
name="HDMI_TMDS_DATA2_CONNECTOR_N"
from=".U4 > .TMDS_D2_NEG2"
to=".J3 > .pin3"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<differentialpair
name="HDMI_TMDS_DATA2_CONNECTOR"
positiveConnection="HDMI_TMDS_DATA2_CONNECTOR_P"
negativeConnection="HDMI_TMDS_DATA2_CONNECTOR_N"
maxLengthSkew="0.2mm"
targetDifferentialImpedance="100ohm"
pcbTraceGap="0.15mm"
maxUncoupledLength="3mm"
/>
</Fragment>
)}
{ACTIVE_HDMI_OUTPUT_STAGE >= 3 && (
<Fragment>
<trace
name="HDMI_TMDS_DATA1_SOURCE_P"
from=".X_TX1_P > .pin1"
to=".U4 > .TMDS_D1_POS1"
width="0.15mm"
routingPhaseIndex={20.3}
/>
<trace
name="HDMI_TMDS_DATA1_SOURCE_N"
from=".X_TX1_N > .pin1"
to=".U4 > .TMDS_D1_NEG1"
width="0.15mm"
routingPhaseIndex={20.3}
/>
<bus
name="HDMI_TMDS_DATA1_SOURCE_BUS"
connections={[
"HDMI_TMDS_DATA1_SOURCE_P",
"HDMI_TMDS_DATA1_SOURCE_N",
]}
routingPhaseIndex={20.3}
maxLengthSkew="0.2mm"
targetImpedance="50ohm"
pcbTraceWidth="0.15mm"
preferredLayers={[...SIGNAL_LAYERS]}
/>
<trace
name="HDMI_TMDS_DATA1_CONNECTOR_P"
from=".U4 > .TMDS_D1_POS2"
to=".J3 > .pin4"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<trace
name="HDMI_TMDS_DATA1_CONNECTOR_N"
from=".U4 > .TMDS_D1_NEG2"
to=".J3 > .pin6"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<differentialpair
name="HDMI_TMDS_DATA1_CONNECTOR"
positiveConnection="HDMI_TMDS_DATA1_CONNECTOR_P"
negativeConnection="HDMI_TMDS_DATA1_CONNECTOR_N"
maxLengthSkew="0.2mm"
targetDifferentialImpedance="100ohm"
pcbTraceGap="0.15mm"
maxUncoupledLength="3mm"
/>
</Fragment>
)}
{ACTIVE_HDMI_OUTPUT_STAGE >= 4 && (
<Fragment>
<trace
name="HDMI_TMDS_DATA0_SOURCE_P"
from=".X_TX0_P > .pin1"
to=".U4 > .TMDS_D0_POS1"
width="0.15mm"
routingPhaseIndex={20.29}
/>
<trace
name="HDMI_TMDS_DATA0_SOURCE_N"
from=".X_TX0_N > .pin1"
to=".U4 > .TMDS_D0_NEG1"
width="0.15mm"
routingPhaseIndex={20.29}
/>
<bus
name="HDMI_TMDS_DATA0_SOURCE_BUS"
connections={[
"HDMI_TMDS_DATA0_SOURCE_P",
"HDMI_TMDS_DATA0_SOURCE_N",
]}
routingPhaseIndex={20.29}
maxLengthSkew="0.2mm"
targetImpedance="50ohm"
pcbTraceWidth="0.15mm"
preferredLayers={[...SIGNAL_LAYERS]}
/>
<trace
name="HDMI_TMDS_DATA0_CONNECTOR_P"
from=".U4 > .TMDS_D0_POS2"
to=".J3 > .pin7"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<trace
name="HDMI_TMDS_DATA0_CONNECTOR_N"
from=".U4 > .TMDS_D0_NEG2"
to=".J3 > .pin9"
width="0.15mm"
routingPhaseIndex={20.4}
/>
<differentialpair
name="HDMI_TMDS_DATA0_CONNECTOR"
positiveConnection="HDMI_TMDS_DATA0_CONNECTOR_P"
negativeConnection="HDMI_TMDS_DATA0_CONNECTOR_N"
maxLengthSkew="0.2mm"
targetDifferentialImpedance="100ohm"
pcbTraceGap="0.15mm"
maxUncoupledLength="3mm"
/>
</Fragment>
)}
{ACTIVE_HDMI_OUTPUT_STAGE >= 5 && (
<Fragment>
<trace
name="HDMI_DATA2_SHIELD_GND"
from=".J3 > .pin2"
to="net.GND"
width="0.3mm"
routingPhaseIndex={20.1}
/>
<trace
name="HDMI_DATA1_SHIELD_GND"
from=".J3 > .pin5"
to="net.GND"
width="0.3mm"
routingPhaseIndex={20.1}
/>
<trace
name="HDMI_DATA0_SHIELD_GND"
from=".J3 > .pin8"
to="net.GND"
width="0.3mm"
routingPhaseIndex={20.2}
/>
<trace
name="HDMI_CLOCK_SHIELD_GND"
from=".J3 > .pin11"
to="net.GND"
width="0.3mm"
routingPhaseIndex={20.2}
/>
</Fragment>
)}
{ACTIVE_HDMI_OUTPUT_STAGE >= 6 && (
<Fragment>
<trace
name="HDMI_DDC_CEC_GND"
from=".J3 > .pin17"
to="net.GND"
width="0.3mm"
routingPhaseIndex={16}
/>
<trace
name="HDMI_SHELL_GND_20"
from=".J3 > .pin20"
to="net.GND"
width="0.6mm"
routingPhaseIndex={16}
/>
<trace
name="HDMI_SHELL_GND_21"
from=".J3 > .pin21"
to="net.GND"
width="0.6mm"
routingPhaseIndex={16}
/>
<trace
name="HDMI_SHELL_GND_22"
from=".J3 > .pin22"
to="net.GND"
width="0.6mm"
routingPhaseIndex={16}
/>
<trace
name="HDMI_SHELL_GND_23"
from=".J3 > .pin23"
to="net.GND"
width="0.6mm"
routingPhaseIndex={16}
/>
</Fragment>
)}
<silkscreentext
text="HDMI OUT"
pcbX={-64}
pcbY={11}
pcbRotation={90}
fontSize="0.9mm"
anchorAlignment="center"
/>
<trace
name="HDMI_3V3_BOUNDARY_FEED"
from=".X_3V3 > .pin1"
to=".FB1 > .pin2"
width="0.3mm"
routingPhaseIndex={19}
/>
</subcircuit>
)