e10gbase_kr module#

10GBASE-KR Protocol

10GBASE-KR is a ethernet communication supporting high speed data links in copper for backplane connections. See 10 Gigabit Ethernet <https://en.wikipedia.org/wiki/10_Gigabit_Ethernet#10GBASE-KR>

This functions and definitions in this file support defining 10GBASE-KR connections between components and/or connectors in a board design.

## 10GBASE-KR Blocking Capacitors

The 10GBASE-KR specification calls for AC coupling for the data lanes. This is typically achieved using a blocking capacitor. When connecting two active components, this typically means blocking caps from Tx -> Rx on both sides of the link. When connecting an active component to a passive component, this typically means adding the blocking caps only on the Tx -> Rx side of the link.

The functions in this module allow you to pass a blocking capacitor as an instantiable. This component will get instantiated for each leg of the diff-pair. These functions handle the topology configuration, but the user needs to set a jitx.si.BridgingPinModel on the capacitor component.

class LanePair[source]#

Bases: Port

TX = DiffPair()#
RX = DiffPair()#
class E10GBaseKR(lanes)[source]#

Bases: Port

Parameters:

lanes (int)

class Standard[source]#

Curated values for skew and loss of 10GBASE-KR Channel

This is a helper class that returns the bounds on the intra-pair skew timing and maximum loss as expected by the particular standard targeted by the user.The values returned are a toleranced value with upper/lower limits for the intra-pair skew and the maximum loss as a double representing dB. Some defaults in the table are derived from the reference listed below. https://www.ieee802.org/3/ba/public/jul08/balasubramanian_01_0708.pdf

Calculating the intra-pair skew distance to time correspondence depends on the material. see http://pdf.cloud.opensystemsmedia.com/advancedtca-systems.com/Simclar.Feb08.pdf Table 3 where the intra-pair skew is set to 0.0625e-12 and the inter-pair skew is set to 0.625e-12. This corresponds roughly to 0.01mm skew intra-pair and 0.100mm skew inter-pair (or lane).

skew = Toleranced(0, 6.25e-14, 6.25e-14)#

Allowed intra-pair skew in seconds

pair_to_pair_skew = Toleranced(0, 6.25e-14, 6.25e-14)#

Allowed inter-pair skew in seconds

loss = 15.0#

Maximum loss in dB

impedance = Toleranced(100, 10, 10)#

Differential impedance specified by the e10GBASE-KR standard

class Constraint(standard=None, structure=None)[source]#

Bases: SignalConstraint[E10GBaseKR]

Parameters:
constrain(src, dst)[source]#

Called to apply implementation specific constraints. Note that all constraints should be added to the container by calling add() on self. It is valid to just set member attributes as well, as with everything in JITX, but be aware that your constraint may be used multiple times with different topologies, and thus be careful with overwriting values (e.g. some constraints may use a single DiffPairConstraint to constrain all its diff pairs).

Parameters: