xSPI 支持的协议模式
- S:SDR 模式
- D:DDR 模式
- 数字 1 / 2 / 4/ 8:输出 IO 的数量,即分别输出 1 / 2 / 4 / 8 个 IO。
举例说明如下:
- 8D-8D-8D:CMD-ADD-DATA 都以 8 个 IO 输入输出且为 DDR 模式。
- 1S-1S-8D:CMD-ADD 都以 1 个 IO 输出且为 SDR 模式,DATA 则 8 个 IO 输入输出且为 DDR 模式。
为了灵活配置各协议,在 CMD-ADD-DATA 单个完整传输中,各部分结构都可为 SDR/ DDR 以及 IO 独立配置,协议配置数据以查找表的方式存储,详细见查找表 (LUT) 功能。
Xccela 协议
- Host 发起 CMD-ADD。注: 下列 CMD 占两个采样沿,ADD 占一个采样沿,之后接着可配的 Dummy Cycles。
- Dummy 期间 Memory Device 获得 DQS 线权,在约定的 Dummy Cycles 后,接着的 CK 触发 Memory Device
读数据输出。此时 Host 以 DQS 为采样时钟。注: CK 与 DQS 存在一定的延时,DQS 与 DATA 边沿对齐。
Hyperbus 协议
- Hyperbus 中 CA 存在两个 bytes 的 CMD,第二个 byte 的 CMD 定义为 Command-Extension (CMD-Ex),用于填充高位地址,具体实现见 Hyperbus 行为配置。
- 在 Host 发起 CA 期间,Host 检测 RWDS 的电平状态。
- 若 RWDS 电平为低,则等待配置好的 Dummy Cycles。
- 若 RWDS 电平为高,则等待 2 倍的已配置 Dummy Cycle 数,接下来的 CK 触发 Memory Device 读数据输出,此时 Host 以 RWDS 为采样时钟。
注: CK 与 RWDS 存在一定的延时,RWDS 与 DATA 边沿对齐,也会存在跨行边界读取数据 RWDS 等待过程。
- CA 与读操作一致,在 Dummy Cycles 期间占据 RWDS 线权。注: 写操作中 CK 与 DATA 中心对齐,RWDS 与 DATA 边沿对齐。
- 其中 RWDS 也作为 Data Mask,图示 D0,D3 被屏蔽,不作为有效数据写进 Memory Device。
- Host 发起 CA(Command-Address),其中 CA 各 Bit 的定义如Command-Address所示。
CA bit | Defined | Function |
---|---|---|
47 | R/W | 指示该命令为读或者写操作
|
46 | Address space | 指示该命令为内存或者寄存器访问
|
45 | Burst type | 指示该命令的突发类型
|
44-16 | Row and upper column address | 32 位地址系统中的 A31-A3 |
15-3 | reserved | 预留未来行地址扩展,补 0 |
2-0 | Lower column address | 32 位地址系统中的 A2-A0 |
OPI 协议
- Host 发起 CMD-ADD,之后接着可配的 Dummy Cycles,Dummy 期间 Memory Device 获得 DQS 线权。
- 在约定的 Dummy Cycles 后,接着的 CK 触发 Memory Device 读数据输出,此时 Host 以 DQS 为采样时钟。注: CK 与 DQS 存在一定的延时,DQS 与 DATA 边沿对齐。
另外,在 Memory Device 进行跨行边界读取数据时,也会存在跨行边界读取数据 DQS 等待过程。
- CMD-ADD 以及 Dummy Cycles 与读操作一致,DQS 由 Host 占据线权,作为采样时钟。DM 作为 Data Mask。注: DQS 与 DATA 中心对齐,DM 与 DATA 边沿对齐。
- 写操作中,D3 以及 D5 被屏蔽,不作为有效数据写进 Memory Device。
Octal SPI 协议
Octal SPI 读写操作图中以 1S-1S-8S 为例进行说明。
DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[7:0] 进行数据输入输出传输。Octal SPI 协议也存在 1S-8S-8S,1D-1D-8D 等格式,此部分不列举图示。
Quad SPI 协议
Quad SPI 读写操作以 1S-1S-4S 为例进行说明。
DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[3:0] 进行数据输入输出传输。Quad SPI 协议也存在 1S-4S-4S,1D-1D-4D 等格式,此部分不列举图示。
双线 SPI 协议
Dual SPI 读写操作以 1S-1S-2S 为例进行说明。
DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[1:0] 进行数据输入输出传输。双线 SPI 协议也存在 1S-2S-2S,1D-2D-2D 等格式,此部分不列举图示。
单线 SPI 协议
Single SPI 读写操作图中以 1S-1S-2S 为例进行说明。
DQ[0] 输出 CMD-ADDR,等待约定的 Dummy Cycles 后,DQ[1] 进行数据输入传输。