title: MDI: Media Dependent Interface tags: []
MDI: Media Dependent Interface¶
Package name: jsl/protocols/ethernet/MDI/MDI-1000Base-T
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¶
require eth-0 : MDI-1000Base-T from ethernet-jack[0]
require eth-1 : MDI-1000Base-T from ethernet-jack[1]
val mdi-constraint = MDI-1000Base-T-Constraint(
route-struct = diff-routing-struct(substrate, 100)
)
topo-net(eth-0, eth-1)
constrain(mdi-constraint, eth-1, eth-0)
Create a 1000Base-T MDI Constraint and apply it to a complex topology¶
val esd = diodes/ESD224DQAR/create-esd-pool(2, GND)
val mdi-constraint = MDI-1000Base-T-Constraint(
route-struct = diff-routing-struct(substrate, 100)
)
within [src, dst] = constrain-topology(eth-0 => eth-1, mdi-constraint):
require protected-pairs:dual-pair[4] from esd
for p in 0 to 4:
topo-pair(src.TP[p] => protected-pairs[p].A => protected-pairs[p].B => dst.TP[p])
Summary¶
MDI-1000Base-T-Constraint¶
Functions¶
Function | Description |
---|---|
MDI-1000Base-T-Constraint (+ 1) | SI Constraint For 1000Base-T MDI |
General Definitions¶
Function | Description |
---|---|
MDI-1000Base-T-get-trace-impedance | Retrieve the expected differential impedance for the differential pairs |
MDI-1000Base-T | 1000Base-T MDI Bundle |
make-1000Base-T-supports (+ 2) | Construct supports statements for a 1000Base-T connection. |
MDI-1000Base-T-get-pair-to-pair-skew | Retrieve expected Inter-pair skew |
MDI-1000Base-T-get-skew-loss | Retrieve the expected Intra-pair skew and diff-pair loss limits |
Variable | Description |
---|---|
NUM_PAIRS_1000Base-T |
Definitions¶
MDI-1000Base-T-Constraint¶
public defstruct MDI-1000Base-T-Constraint <: DiffPair-Constraint :
inter-skew: Toleranced
inter-skew: Toleranced
- Max skew between diff-pairs (not between P/N)
Functions¶
MDI-1000Base-T-Constraint¶
SI Constraint For 1000Base-T MDI
public defn MDI-1000Base-T-Constraint ( -- skew:Toleranced, loss:Double, route-struct:DifferentialRoutingStructure, inter-skew:Toleranced) -> MDI-1000Base-T-Constraint
skew: Toleranced
- Intra-pair skew for the P/N of the diff-pairloss: Double
- Max Loss for any of the diff-pairsroute-struct: DifferentialRoutingStructure
- User provided routing structure for each of the diff-pair bundles of the MDI.inter-skew: Toleranced
- Inter-pair skew betweenTP
diff-pairs.- Returns
MDI-1000Base-T-Constraint
This constraint assumes the endpoints are MDI-1000Base-T bundles. The code will construct the necessary skew and loss constraints for this bundle according to the pass configurations.
MDI-1000Base-T-Constraint¶
Construct a Constraint for 1000Base-T MDI with default specs (800fs intra-pair skew, 12dB loss, 330fs inter-pair skew)
public defn MDI-1000Base-T-Constraint ( -- route-struct:DifferentialRoutingStructure) -> MDI-1000Base-T-Constraint
route-struct: DifferentialRoutingStructure
- User provided routing structure for each of the diff-pair bundles of the MDI.- Returns
MDI-1000Base-T-Constraint
General Definitions¶
MDI-1000Base-T-get-trace-impedance¶
Retrieve the expected differential impedance for the differential pairs
public defn MDI-1000Base-T-get-trace-impedance () -> Toleranced
- Returns
Toleranced
- Toleranced in ohms.
MDI-1000Base-T¶
1000Base-T MDI Bundle
public pcb-bundle MDI-1000Base-T
TP
- : diff-pair[NUM_PAIRS_1000Base-T]. Array of 4 diff-pairs for the 4 twisted pairs that make up the 1000Base-T medium. The pairs are zero indexed and the mapping from index to pair identifiers is 0 => A 1 => B 2 => C 3 => D
make-1000Base-T-supports¶
Construct supports
statements for a 1000Base-T connection.
public defn make-1000Base-T-supports (b-type:Bundle, dps:[JITXObject, JITXObject] ...)
b-type: Bundle
- Bundle type for mapping. This bundle must define a portTP
that is aPortArray
of 4diff-pair
Bundle type. See MDI-1000Base-T as an example.dps: [JITXObject, JITXObject]
- Tuple of [P,N] of twisted-pair sets from a component or module. This list must be ordered in A, B, C, D pair ordering.
This constructs a supports
statement for a 1000Base-T (Gigabit)
MDI interface. This includes creating the appropriate option
mappings for each differential pair.
The b-type
Bundle is present so that the user can customize which
bundle type to construct a support statement for. This is often useful
when constructing a "Network Switch" like chip where there are auxiliary
functions like LED drivers, etc associated with that port.
Example Support Declaration¶
; From 'JITx-Inc/microchip-networking'
make-1000Base-T-supports(
MDI-1000Base-T,
[C.TXRX1P_A, C.TXRX1M_A]
[C.TXRX1P_B, C.TXRX1M_B]
[C.TXRX1P_C, C.TXRX1M_C]
[C.TXRX1P_D, C.TXRX1M_D]
)
make-1000Base-T-supports¶
Construct a 1000Base-T Supports Statement
public defn make-1000Base-T-supports (dps:[JITXObject, JITXObject] ...)
dps: [JITXObject, JITXObject]
- Tuple of [P, N] ports that make up each of the differential pairs that make up the A, B, C, D twisted pairs of the MDI. Note that these arguments are expected to be passed in the right order - otherwise, we may setup the wrong pin assignment constraints. This argument is expected to be length 4.
By default - this function uses MDI-1000Base-T as
the bundle type for the constructed supports
statement.
Otherwise, it is the same as the other implementation.
make-1000Base-T-supports¶
Construct a 1000Base-T Supports Statement
public defn make-1000Base-T-supports (dps:JITXObject ...)
dps: JITXObject
- Diff-Pairs that make up the A, B, C, D twisted pairs of the MDI. Note that these arguments are expected to be passed in the right order - otherwise, we may setup the wrong pin assignment constraints.
MDI-1000Base-T-get-pair-to-pair-skew¶
Retrieve expected Inter-pair skew
public defn MDI-1000Base-T-get-pair-to-pair-skew () -> Toleranced
- Returns
Toleranced
- Allowable delay difference as aToleranced
value in Seconds.
MDI-1000Base-T-get-skew-loss¶
Retrieve the expected Intra-pair skew and diff-pair loss limits
public defn MDI-1000Base-T-get-skew-loss () -> [Toleranced, Double]
-
Returns
[Toleranced, Double]
- Tuple of [Skew, Loss] where -
Skew - Allowable delay difference as a
Toleranced
value in Seconds. - Loss - Max allowable power loss limit in dB.
NUM_PAIRS_1000Base-T¶
public val NUM_PAIRS_1000Base-T
Related Packages¶
Forwarded by packages: jsl/protocols/ethernet, jsl/protocols