Edit online

xSPI 支持的协议模式

19 Aug 2024
Read time: 5 minute(s)
xSPI 模块约定了以下缩写描述:
  • S:SDR 模式
  • D:DDR 模式
  • 数字 1 / 2 / 4/ 8:输出 IO 的数量,即分别输出 1 / 2 / 4 / 8 个 IO。

举例说明如下:

xSPI 设备协议均可以看成三个部分组成:CMD + ADD + DATA。CMD 是命令部分,ADD 是地址部分,DATA 是数据部分。
  1. 8D-8D-8D:CMD-ADD-DATA 都以 8 个 IO 输入输出且为 DDR 模式。
  2. 1S-1S-8D:CMD-ADD 都以 1 个 IO 输出且为 SDR 模式,DATA 则 8 个 IO 输入输出且为 DDR 模式。

为了灵活配置各协议,在 CMD-ADD-DATA 单个完整传输中,各部分结构都可为 SDR/ DDR 以及 IO 独立配置,协议配置数据以查找表的方式存储,详细见查找表 (LUT) 功能

Xccela 协议

Xccela 读操作以 8D-8D-8D 为例进行说明,Xccela 协议的工作模式如下所示。
  1. Host 发起 CMD-ADD。
    注: 下列 CMD 占两个采样沿,ADD 占一个采样沿,之后接着可配的 Dummy Cycles。
  2. Dummy 期间 Memory Device 获得 DQS 线权,在约定的 Dummy Cycles 后,接着的 CK 触发 Memory Device 读数据输出。此时 Host 以 DQS 为采样时钟。
    注: CK 与 DQS 存在一定的延时,DQS 与 DATA 边沿对齐。
    1. Xccela 读操作
在 Memory Device 进行跨行边界读取数据时,DQS 会在行尾数据保持状态,如Xccela 协议所示。
2. Xccela 跨行边界读操作
Xccela 写操作以 8D-8D-8D 为例。CMD-ADD 以及 Dummy Cycles 与读操作一致,DQS 由 Host 占据线权,作为 Data Mask。
注: CK 与 DATA 中心对齐,DQS 与 DATA 边沿对齐。其中 D0、D3 以及 D4 被屏蔽,不作为有效数据写进 Memory Device。
3. Xccela 写操作

Hyperbus 协议

Hyperbus 读操作以 8D-8D-8D 为例进行说明。
  1. Hyperbus 中 CA 存在两个 bytes 的 CMD,第二个 byte 的 CMD 定义为 Command-Extension (CMD-Ex),用于填充高位地址,具体实现见 Hyperbus 行为配置
  2. 在 Host 发起 CA 期间,Host 检测 RWDS 的电平状态。
    1. 若 RWDS 电平为低,则等待配置好的 Dummy Cycles。
    2. 若 RWDS 电平为高,则等待 2 倍的已配置 Dummy Cycle 数,接下来的 CK 触发 Memory Device 读数据输出,此时 Host 以 RWDS 为采样时钟。
    注: CK 与 RWDS 存在一定的延时,RWDS 与 DATA 边沿对齐,也会存在跨行边界读取数据 RWDS 等待过程。
4. Hyperbus 读操作
Hyperbus 写操作以 8D-8D-8D 为例进行说明。
  1. CA 与读操作一致,在 Dummy Cycles 期间占据 RWDS 线权。
    注: 写操作中 CK 与 DATA 中心对齐,RWDS 与 DATA 边沿对齐。
  2. 其中 RWDS 也作为 Data Mask,图示 D0,D3 被屏蔽,不作为有效数据写进 Memory Device。
  3. Host 发起 CA(Command-Address),其中 CA 各 Bit 的定义如Command-Address所示。
5. Hyperbus 写操作
1. Command-Address
CA bit Defined Function
47 R/W 指示该命令为读或者写操作
  • 0:指示为写操作
  • 1:指示为读操作
46 Address space 指示该命令为内存或者寄存器访问
  • 0:指示为内存访问
  • 1:指示为寄存器访问
45 Burst type 指示该命令的突发类型
  • 0:wrapped 突发
  • 1:linear 突发
44-16 Row and upper column address 32 位地址系统中的 A31-A3
15-3 reserved 预留未来行地址扩展,补 0
2-0 Lower column address 32 位地址系统中的 A2-A0

OPI 协议

OPI 读操作以 8D-8D-8D 为例进行说明。
  1. Host 发起 CMD-ADD,之后接着可配的 Dummy Cycles,Dummy 期间 Memory Device 获得 DQS 线权。
  2. 在约定的 Dummy Cycles 后,接着的 CK 触发 Memory Device 读数据输出,此时 Host 以 DQS 为采样时钟。
    注: CK 与 DQS 存在一定的延时,DQS 与 DATA 边沿对齐。

    另外,在 Memory Device 进行跨行边界读取数据时,也会存在跨行边界读取数据 DQS 等待过程。

6. OPI 读操作
OPI 写操作 图中以 8D-8D-8D 为例进行说明。
  1. CMD-ADD 以及 Dummy Cycles 与读操作一致,DQS 由 Host 占据线权,作为采样时钟。DM 作为 Data Mask。
    注: DQS 与 DATA 中心对齐,DM 与 DATA 边沿对齐。
  2. 写操作中,D3 以及 D5 被屏蔽,不作为有效数据写进 Memory Device。
7. OPI 写操作

Octal SPI 协议

Octal SPI 读写操作图中以 1S-1S-8S 为例进行说明。

DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[7:0] 进行数据输入输出传输。Octal SPI 协议也存在 1S-8S-8S,1D-1D-8D 等格式,此部分不列举图示。

8. Octal SPI 读写操作

Quad SPI 协议

Quad SPI 读写操作以 1S-1S-4S 为例进行说明。

DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[3:0] 进行数据输入输出传输。Quad SPI 协议也存在 1S-4S-4S,1D-1D-4D 等格式,此部分不列举图示。

9. Quad SPI 读写操作

双线 SPI 协议

Dual SPI 读写操作以 1S-1S-2S 为例进行说明。

DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[1:0] 进行数据输入输出传输。双线 SPI 协议也存在 1S-2S-2S,1D-2D-2D 等格式,此部分不列举图示。

10. Dual SPI 读写操作

单线 SPI 协议

Single SPI 读写操作图中以 1S-1S-2S 为例进行说明。

DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[1] 进行数据输入传输。

11. Single SPI 读写操作