jsl/protocols/memory/lpddr4¶
Package name: jsl/protocols/memory/lpddr4
LPDDR4
LPDDR4 is a point-to-point high speed memory protocol
References¶
- https://en.wikipedia.org/wiki/LPDDR
This file contains functions and definitions for supporting LPDDR4 connections between microprocessors and memories in a board design.
Summary¶
Data Types¶
LPDDR4-Rank¶
LPDDR4 Rank enums This is a fixed list of possible ranks for LPDDR4
Functions¶
Function | Description |
---|---|
connect-LPDDR4 | Connect and constrain a LPDDR4 link |
LPDDR4-Constraint | |
lpddr4 | |
lpddr4-x16 | |
rank-to-int |
LPDDR4-Constraint¶
LPDDR4 SI Constraint Type
Constructors¶
Function | Description |
---|---|
LPDDR4-Constraint (+ 1) | Constructor for defstruct LPDDR4-Constraint |
Functions¶
Function | Description |
---|---|
LPDDR4-Constraint |
LPDDR4-Width¶
LPDDR4 Width enums This is a fixed list of possible channel widths for LPDDR4
Functions¶
Function | Description |
---|---|
num-x16-lanes | |
connect-LPDDR4 | Connect and constrain a LPDDR4 link |
width-to-int | |
LPDDR4-Constraint | |
lpddr4 |
General Definitions¶
Function | Description |
---|---|
lpddr4-lane |
Definitions¶
LPDDR4-Rank¶
LPDDR4 Rank enums This is a fixed list of possible ranks for LPDDR4
public defenum LPDDR4-Rank <: Equalable & Hashable & JITXValue
Functions¶
connect-LPDDR4¶
Connect and constrain a LPDDR4 link
public defn connect-LPDDR4 (src:JITXObject, dst:JITXObject, width:LPDDR4-Width, rank:LPDDR4-Rank, diff-rs:DifferentialRoutingStructure, rs:RoutingStructure)
src: JITXObject
- Source End Point - must be oflpddr4
type with width 'width' and rank 'rank'dst: JITXObject
- Destination End Point - must be oflpddr4
type with width 'width' and rank 'rank'width: LPDDR4-Width
- Channel Bit Widthrank: LPDDR4-Rank
- Channel Rankdiff-rs: DifferentialRoutingStructure
- Differential Routing Structurers: RoutingStructure
- Single-ended Routing Structure
LPDDR4-Constraint¶
public defn LPDDR4-Constraint (width:LPDDR4-Width, rank:LPDDR4-Rank, diff-st:DifferentialRoutingStructure, se-st:RoutingStructure) -> LPDDR4-Constraint
- Returns
LPDDR4-Constraint
lpddr4¶
public defn lpddr4 (width:LPDDR4-Width, rank:LPDDR4-Rank)
lpddr4-x16¶
public defn lpddr4-x16 (rank:LPDDR4-Rank)
rank-to-int¶
public defn rank-to-int (rank:LPDDR4-Rank) -> Int
- Returns
Int
LPDDR4-Constraint¶
LPDDR4 SI Constraint Type
public defstruct LPDDR4-Constraint <: SI-Constraint
diff-route-struct: DifferentialRoutingStructure
loss: Double
rank: LPDDR4-Rank
se-route-struct: RoutingStructure
skew-ck: Toleranced
skew-ck-ca: Toleranced
skew-ck-cke: Toleranced
skew-ck-cs: Toleranced
skew-ck-dqs: Toleranced
skew-dq-dq: Toleranced
skew-dqs: Toleranced
skew-dqs-dq: Toleranced
width: LPDDR4-Width
-
diff-route-struct: DifferentialRoutingStructure
- Differential Pair Routing Structure -
loss: Double
- Maximum Signal Loss -
rank: LPDDR4-Rank
- Channel Rank -
se-route-struct: RoutingStructure
- Single-Ended Routing Structure -
skew-ck: Toleranced
- CK Intra-pair Skew Limit -
skew-ck-ca: Toleranced
- CK to CA Skew Limit -
skew-ck-cke: Toleranced
- CK to CKE Skew Limit -
skew-ck-cs: Toleranced
- CK to CS Skew Limit -
skew-ck-dqs: Toleranced
- CK to DQS Skew Limit -
skew-dq-dq: Toleranced
- DQ/DMI to DQ/DMI Skew Limit -
skew-dqs: Toleranced
- DQS Intra-pair Skew Limit -
skew-dqs-dq: Toleranced
- DQS to DQ/DMI Skew Limit -
width: LPDDR4-Width
- Channel Bit Width
Values based on the LPDDR4 section of chapter 2 of https://docs.amd.com/v/u/en-US/ug583-ultrascale-pcb-design
Constraints: CK Intra-pair Skew => 0.0 ± 2.0e-12 seconds CK to CKE Skew => 0.0 ± 8.0e-12 seconds CK to CS Skew => 0.0 ± 8.0e-12 seconds CK to CA Skew => 0.0 ± 8.0e-12 seconds CK to DQS Skew => -500.0e-12 to 2500.0e-12 seconds DQS Intra-pair Skew => 0.0 ± 2.0e-12 seconds DQS to DQ/DMI Skew => 0.0 ± 5.0e-12 seconds DQ/DMI to DQ/DMI Skew => 0.0 ± 5.0e-12 seconds Maximum Signal Loss => 5.0 dB
Constructors¶
LPDDR4-Constraint¶
Constructor for defstruct LPDDR4-Constraint
public defn LPDDR4-Constraint (skew-ck:Toleranced, skew-ck-cke:Toleranced = ?, skew-ck-cs:Toleranced = ?, skew-ck-ca:Toleranced = ?, skew-ck-dqs:Toleranced = ?, skew-dqs:Toleranced = ?, skew-dqs-dq:Toleranced = ?, skew-dq-dq:Toleranced = ?, loss:Double = ?, width:LPDDR4-Width, rank:LPDDR4-Rank, diff-route-struct:DifferentialRoutingStructure, se-route-struct:RoutingStructure)
LPDDR4-Constraint¶
Constructor for defstruct LPDDR4-Constraint
public defn LPDDR4-Constraint ( -- skew-ck:Toleranced = ?, skew-ck-cke:Toleranced = ?, skew-ck-cs:Toleranced = ?, skew-ck-ca:Toleranced = ?, skew-ck-dqs:Toleranced = ?, skew-dqs:Toleranced = ?, skew-dqs-dq:Toleranced = ?, skew-dq-dq:Toleranced = ?, loss:Double = ?, width:LPDDR4-Width, rank:LPDDR4-Rank, diff-route-struct:DifferentialRoutingStructure, se-route-struct:RoutingStructure)
Methods¶
constrain¶
Add constraints to a LPDDR4 link
defmethod constrain (cst:LPDDR4-Constraint, src:JITXObject, dst:JITXObject) -> False
cst: LPDDR4-Constraint
- Constraint Object.src: JITXObject
- Source End Point - must be oflpddr4
type and meet the constraintsdst: JITXObject
- Destination End Point - must be oflpddr4
type and meet the constraints- Returns
False
Channel bit width and channel rank of 'src' and 'dst' must match width and rank of 'cst'
Functions¶
LPDDR4-Constraint¶
public defn LPDDR4-Constraint (width:LPDDR4-Width, rank:LPDDR4-Rank, diff-st:DifferentialRoutingStructure, se-st:RoutingStructure) -> LPDDR4-Constraint
- Returns
LPDDR4-Constraint
LPDDR4-Width¶
LPDDR4 Width enums This is a fixed list of possible channel widths for LPDDR4
public defenum LPDDR4-Width <: Equalable & Hashable & JITXValue
Functions¶
num-x16-lanes¶
public defn num-x16-lanes (width:LPDDR4-Width) -> Int
- Returns
Int
connect-LPDDR4¶
Connect and constrain a LPDDR4 link
public defn connect-LPDDR4 (src:JITXObject, dst:JITXObject, width:LPDDR4-Width, rank:LPDDR4-Rank, diff-rs:DifferentialRoutingStructure, rs:RoutingStructure)
src: JITXObject
- Source End Point - must be oflpddr4
type with width 'width' and rank 'rank'dst: JITXObject
- Destination End Point - must be oflpddr4
type with width 'width' and rank 'rank'width: LPDDR4-Width
- Channel Bit Widthrank: LPDDR4-Rank
- Channel Rankdiff-rs: DifferentialRoutingStructure
- Differential Routing Structurers: RoutingStructure
- Single-ended Routing Structure
width-to-int¶
public defn width-to-int (width:LPDDR4-Width) -> Int
- Returns
Int
LPDDR4-Constraint¶
public defn LPDDR4-Constraint (width:LPDDR4-Width, rank:LPDDR4-Rank, diff-st:DifferentialRoutingStructure, se-st:RoutingStructure) -> LPDDR4-Constraint
- Returns
LPDDR4-Constraint
lpddr4¶
public defn lpddr4 (width:LPDDR4-Width, rank:LPDDR4-Rank)
General Definitions¶
lpddr4-lane¶
public pcb-bundle lpddr4-lane