mdi1000base_t module#

MDI - Media Dependent Interface

This module defines the MDI bundle and associated constraint functions for the 1000Base-T Ethernet standard.

Create a 1000Base-T MDI Constraint and apply it to a simple topology >>> class EthernetCircuit(Circuit): … def __init__(self): … self.ethernet_jack = EthernetJack(), EthernetJack() … eth0 = ethernet_jack[0].require(MDI1000BaseT) … eth1 = ethernet_jack[1].require(MDI1000BaseT) … self.mdiconstraint = MDI1000BaseT.Constraint() … with self.mdiconstraint.constrain_topology(eth0, eth1) as (src, dst): … self += src >> dst

Create a 1000Base-T MDI Constraint and apply it to a complex topology >>> class EthernetCircuit(Circuit): … def __init__(self): … self.ethernet_jack = EthernetJack(), EthernetJack() … eth0 = ethernet_jack[0].require(MDI1000BaseT) … eth1 = ethernet_jack[1].require(MDI1000BaseT) … self.mdiconstraint = MDI1000BaseT.Constraint() … self.esd_pool = ESDPool(2) … with self.mdiconstraint.constrain_topology(eth0, eth1) as (src, dst): … for p in range(4): … protected = self.esd_pool.require(DualPair) … self += src.TP[p] >> protected.A >> protected.B >> dst.TP[p]

class MDI1000BaseT[source]#

Bases: Port

TP = (DiffPair(), DiffPair(), DiffPair(), DiffPair())#
class Standard[source]#
skew = Toleranced(0, 8e-13, 8e-13)#

Intra pair skew - Allowable delay difference as a Toleranced value in Seconds.

loss = 12#

Max allowable power loss limit in dB.

impedance = Toleranced(95, 14.25, 14.25)#

The expected differential impedance for the differential pairs in Ohms

pair_to_pair_skew = Toleranced(0, 1.65e-10, 1.65e-10)#

Allowable inter-pair delay difference as a Toleranced value in Seconds.

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

Bases: SignalConstraint[MDI1000BaseT]

Parameters:
diffpair_constraint: DiffPairConstraint#
inter_skew: Toleranced#
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:
class Provide(diffpairs)[source]#

Bases: Container

Construct provider for a 1000Base-T connection.

This constructs a provider for a 1000Base-T (Gigabit) MDI interface. This includes creating the appropriate option mappings for swapping the differential pairs.

>>> self += MDI1000BaseT.Provide(
...     [self.C.TXRX1A, self.C.TXRX1B, self.C.TXRX1C, self.C.TXRX1D]
... )
Parameters:

diffpairs (Sequence[DiffPair] | Sequence[tuple[Port, Port]])