jsl/protocols/sata¶
Package name: jsl/protocols/sata
SATA Protocol
SATA is a serial protocol supporting high speed links for storage applications
References¶
- https://en.wikipedia.org/wiki/SATA
This functions and definitions in this file support defining SATA connections between sources and receivers on a printed circuit board.
SATA Revision 1.0 These devices were widely used in personal desktop and office computers, configured from PATA drives daisy chained together in a primary/secondary configuration. SATA Revision 1 devices reached a top transfer rate of 1.5 Gbps. SATA Revision 2.0 These devices doubled the transfer speed to 3.2 Gbps with the inclusion of port multipliers, port selectors and improved queue depth. SATA Revision 3.0 These interfaces supported drive transfer rates up to 6 Gbps. Revision 3 drives are backward-compatible with SATA Revision 1 and Revision 2 devices, though with lower transfer speeds. SATA Revision 3.1 This intermediate revision added final design requirements for SATA Universal Storage Module for consumer-based portable storage applications. SATA Revision 3.2 This update added the SATA Express specification. It supports the simultaneous use of SATA ports and PCI Express (PCIe) lanes. SATA Revision 3.3 This revision addressed the use of shingled magnetic recording SATA Revision 3.5 This change promoted greater integration and interoperability with PCIe flash and other I/O protocols. - https://sata-io.org/system/files/specifications/SerialATA_Revision_3_1_Gold.pdf
Summary¶
SATAGen¶
SATA Generation enums This is a fixed list of possible generation definitions for SATA
Functions¶
Function | Description |
---|---|
SATA-get-skew-loss-vals | Curated values for skew and loss of SATA connection |
SATA-Constraint | Construct a SATA-Constraints object |
General Definitions¶
Function | Description |
---|---|
SATA-get-trace-impedance | Differential impedance specified by the SATA standard |
SATA | SATA Bundle |
connect-SATA | Construct the SATA Topology and Constraints |
Definitions¶
SATAGen¶
SATA Generation enums This is a fixed list of possible generation definitions for SATA
public defenum SATAGen <: Equalable & Hashable & JITXValue
Functions¶
SATA-get-skew-loss-vals¶
Curated values for skew and loss of SATA connection This is a helper function 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.
Calculating the intra-pair skew distance to time correspondence depends on the material. tpd 147 ps/in 170 ps/in -> 147 fs/mil to 170 fs/mil @ 5 mils spec'ed that is a intra-pair skew of 750 fs to 850 fs @ 10 mils spec'ed that is a intra-pair skew of 1.50 ps to 1.70 ps
public defn SATA-get-skew-loss-vals (gen:SATAGen) -> [Toleranced, Double]
- Returns
[Toleranced, Double]
SATA-Constraint¶
Construct a SATA-Constraints object
public defn SATA-Constraint ( -- route-struct:DifferentialRoutingStructure, gen:SATAGen = ?) -> DiffPair-Constraint
route-struct: DifferentialRoutingStructure
- Differential Pair Routing Structure - Usepcb-differential-routing-structure
to create.- Returns
DiffPair-Constraint
- Diff-Pair Constraint Object
General Definitions¶
SATA-get-trace-impedance¶
Differential impedance specified by the SATA standard This is a helper function that returns the expected differential trace impedance.
public defn SATA-get-trace-impedance () -> Toleranced
- Returns
Toleranced
- Upper/lower limits for the impedance.
SATA¶
SATA Bundle The Data Bundle consists of 1 lane pair (1 RX and TX pair)
public pcb-bundle SATA
lane
- Lane pair for the SATA bundle (consists of a TX and RX diff pair)
connect-SATA¶
Construct the SATA Topology and Constraints
This function constructs the SATA topology and applies constraints to the channel for intra-pair skew and channel loss.
public defn connect-SATA (cons:SI-Constraint, src:JITXObject, dst:JITXObject)
cons: SI-Constraint
- The signal integrity contraints for the differential signals being connected.src: JITXObject
- This is expected to be a port ofBundle
typeSATA
dst: JITXObject
- This is expected to be a port ofBundle
typeSATA
Related Packages¶
Forwarded by package: jsl/protocols