displayport module#

DisplayPort Protocol

DisplayPort is a serial protocol supporting high speed links for video+audio https://en.wikipedia.org/wiki/DisplayPort

The functions and definitions in this file support defining DisplayPort connections between sources and receivers on a printed circuit board.

## DisplayPort Blocking Capacitors

The DisplayPort specification calls for AC coupling for the data lanes. This is typically achieved using a blocking capacitor.

The best way to achieve this is to use the constrain_topology() mechanism.

class DisplayPort[source]#

Bases: Port

aux = DiffPair()#

Auxiliary channel pair

lane = (DiffPair(), DiffPair(), DiffPair(), DiffPair())#

Four data transfer pairs

hpd = Port()#

Hot-Plug Detect

class Standard(pair_to_pair_skew)[source]#
Parameters:

pair_to_pair_skew (Toleranced)

skew = Toleranced(0, 2e-11, 2e-11)#

Allowed intra-pair skew

loss = 15.0#

Allowed loss

pair_to_pair_skew: Toleranced#

Allowed inter-pair skew

impedance = Toleranced(100, 10, 10)#
class Version(pair_to_pair_skew)[source]#

Bases: Standard, Enum

Different DP versions and accompanying standard values. To tweak, use py:func:dataclasses.replace.

>>> tweak_DP1p0 = dataclasses.replace(DisplayPort.Version.DP1p0, impedance=Toleranced.percent(100, 5))
DP1p0 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 8e-10, 8e-10))#

10.80 Gbit/s / 4 lanes => 2.7 Gbit/s / 10 UI => 270 MHz clk

DP1p1 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 7.42e-10, 7.42e-10))#

10.80 Gbit/s / 4 lanes => 2.7 Gbit/s / 10 UI => 270 MHz clk

DP1p2 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 6.74e-10, 6.74e-10))#

21.60 Gbit/s / 4 lanes => 5.4 Gbit/s / 10 UI => 540 MHz clk

DP1p2a = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 6.74e-10, 6.74e-10))#

21.60 Gbit/s / 4 lanes => 5.4 Gbit/s / 10 UI => 540 MHz clk

DP1p3 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 4.62e-10, 4.62e-10))#

32.40 Gbit/s / 4 lanes => 8.1 Gbit/s / 10 UI => 810 MHz clk

DP1p4 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 4.62e-10, 4.62e-10))#

32.40 Gbit/s / 4 lanes => 8.1 Gbit/s / 10 UI => 810 MHz clk

DP1p4a = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 4.62e-10, 4.62e-10))#

32.40 Gbit/s / 4 lanes => 8.1 Gbit/s / 10 UI => 810 MHz clk

DP2p0 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 2e-10, 2e-10))#

80.00 Gbit/s / 4 lanes => 20.0 Gbit/s / 10 UI => 2000 MHz clk

DP2p1 = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 2e-10, 2e-10))#

80.00 Gbit/s / 4 lanes => 20.0 Gbit/s / 10 UI => 2000 MHz clk

DP2p1a = DisplayPort.Standard(pair_to_pair_skew=Toleranced(0, 2e-10, 2e-10))#

80.00 Gbit/s / 4 lanes => 20.0 Gbit/s / 10 UI => 2000 MHz clk

Constraint(structure: DifferentialRoutingStructure | None = None)[source]#
Parameters:
class DisplayPortConnector[source]#

Bases: Port

dp = DisplayPort()#

DisplayPort bundle for data communication

gnd = Port()#

Ground connection

There are five ground signals in the connector, but for simplicity we only have one in the bundle. Once on the board, there’s no need for separated ground signals.

power = Power()#
config = (Port(), Port())#

Two configuration pins