Skip to content

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 - Use pcb-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 of Bundle type SATA
  • dst: JITXObject - This is expected to be a port of Bundle type SATA

Related Packages

Forwarded by package: jsl/protocols