USER GUIDE / MEMORY / PSRAM / SYSTEM INTEGRATION

系统集成

适用内存类型

当前 XSY_PSRAM_CTRL 支持下列内存类型:

表 1 适用内存类型
生产厂家内存类型
AP MemoryAPS3208K-OTx / APS3208K-OKUD
APS6408L-OBx / APS6408L-OBx9 /APS6408L-OBM / APS6408L-OBMx
APS12808L-OBx
APS128XXO-OBx9 / SCB18X 128XX0AF
APS256XXN-OBRx / APS256yyN-OBx
APS51208N-OBRx
APS03208E-8OE9Nx
WinbondW955D8MKY
W956D8MBYA/ W956A8MBYAW956D8NKR
W957D8NKR/ W957D6NKR/W957D8NBR
W958D8NKY / W958D6NKY /W958D8NBY / W958D6NBY
W959D8NFYA

Verilog 参数/宏配置

宏定义文件中提供的 Verilog 宏需根据具体应用需求配置;带具体赋值的宏可替换默认值,注释定义行控制的宏可按需启用或禁用。

表 2 Verilog 参数/宏
名称说明
PSRAM_CTRL_BUS_DATA_WIDTHAXI/AHB 总线数据位宽,有效值为 128, 64 and 32。
PSRAM_CTRL_BUS_ADDR_WIDTHAXI/AHB总线地址位宽,应大于PSRAM地址位宽。AXI/AHB地址直接映射到PSRAM地址。
PSRAM_CTRL_AXI_ID_WIDTHAXI ID 位宽。
PSRAM_CTRL_OST_CMD_DEPTH命令缓存深度 对于AXI该参数可配。对于AHB该参数为1。
PSRAM_CTRL_AXI_LEN_DEFINE定义AXI突发长度位宽。如果该宏被定义,AXI突发长度位宽为5,否则为4。
PSRAM_CTRL_AXI_LEN_WIDTHAXI突发长度位宽,有效值为4和5。
PSRAM_DIGITAL_PHY定义该宏以使用内部数字物理层。
DIGITAL_PHY_STAGE64DIGITAL_PHY_STAGE128DIGITAL_PHY_STAGE256延迟链长度,有效长度如下:64阶、128阶和256阶。
RTL_SIM用于RTL级仿真,不能用于门电路级仿真。
PSRAM_CTRL_USE_AXI定义该宏以使用AXI接口。
PSRAM_CTRL_USE_EXT_SRAM定义该宏以使用外部SRAM来存储总线接口数据,否则使用内部寄存器。
DIGITAL_PHY_X16MODE定义该宏以使用x16模式。
PSRAM_CTRL_FPGA用于FPGA仿真。
PSRAM_CTRL_FPGA_SIM_SPEED_UP用于FPGA仿真。
PSRAM_CTRL_A_SYNC1:使用ctrl_clk作为总线时钟。 0:不使用ctrl_clk作为总线时钟。
PSRAM_CTRL_P_SYNC1:使用ctrl_clk作为APB时钟。 0:不使用ctrl_clk作为APB时钟。
PSRAM_CTRL_INTR_COMB定义该宏以使接口中断合并为两个信号。
PSRAM_CTRL_INTR_POL1:接口中断高有效。 0:接口中断低有效。
PSRAM_CTRL_PER_IMP用于内部设置,必须用于AXI接口。
PSRAM_CTRL_TOKEN_WIDTH用于内部命令执行。
PSRAM_CTRL_DUAL_X8用于双x8模式。
PSRAM_CTRL_AHB_HLEN_INCR_USE用于AHB附带信号hlen_incr.
PSRAM_CTRL_AHB_RAM_USE_MAXAHB外部SRAM使用,必须用于AHB外部SRAM。
PSRAM_CTRL_CMD_FIFO_DEPTH内部AHB从机FIFO深度。
PSRAM_CTRL_AHB_RAM_DEPTHAHB外部SRAM深度。
PSRAM_AP3_64MB未使用,不要开启。
DPHY_CLK_800_SRC未使用,不要开启。
PSRAM_CTRL_FPGA_DEBUG未使用,不要开启。
USE_CNT_DIV未使用,不要开启。
HIGH_SPEED_PSRAM未使用,不要开启。
PSRAM_CTRL_AXI_REG_OUT未使用,不要开启。

信号描述

本节详述了控制器所有可能的 I/O 信号,按功能组别划分如下:

  • APB 接口信号
  • AHB 接口信号
  • AXI 接口信号
  • PSRAM 控制器接口信号
  • 外部 SRAM 接口信号
  • 中断接口信号
  • 扫描接口信号

信号命名遵循以下约定规则:

  • "W" 表示总线地址位宽 - 对应参数 "PSRAM_CTRL_BUS_ADDR_WIDTH"
  • "D" 表示总线数据位宽 - 对应参数 "PSRAM_CTRL_BUS_DATA_WIDTH"
  • "B" 表示 AXI ID 标识位宽 - 对应参数 "PSRAM_CTRL_AXI_ID_WIDTH"
  • "L" 表示 AXI 突发传输长度位宽 - 对应参数 "PSRAM_CTRL_AXI_LEN_WIDTH"
  • "RW" 表示 AXI 接口使用的外部 SRAM 地址位宽
  • "RD" 表示 AXI 接口使用的外部 SRAM 数据位宽
  • "ARW" 表示 AHB 接口使用的外部 SRAM 地址位宽

APB 接口信号

表 3 APB 接口信号
信号名称I/O说明备注
pclkIAPB时钟
prst_nIAPB复位低有效
pselIAPB选择
penableIAPB使能
pwriteIAPB数据传输方向0:读;1:写
paddr[31:0]IAPB地址
pwdata[31:0]IAPB写数据
prdata[31:0]OAPB 读数据
preadyOAPB从设备就绪

AHB 接口信号

表 4 AHB 接口信号
信号名称I/O说明备注
hclkIAHB时钟
hresetnIAHB复位低有效
haddr[W-1:0]IAHB地址
htrans[1:0]IAHB传输类型
hwriteIAHB传输方向0:读;1:写
hsize[2:0]IAHB传输尺寸
hburst[2:0]IAHB突发类型
hwdata[D-1:0]IAHB写数据
hselIAHB选择
hprot[3:0]IAHB保护控制未使用
hlockIAHB 锁类型未使用
hmaster[3:0]IAHB 主机标识未使用
hmasterlockIAHB 锁定序列未使用
hrdata[D-1:0]OAHB 读数据
hreadyOAHB 就绪
hresp[1:0]OAHB 传输响应
hlen_incrIAHB附带信号仅用于自定义AHB INCR功能

AXI 接口信号

表 5 AXI 接口信号
信号名称I/O说明备注
axi_clkIAXI时钟
axi_rst_nIAXI 复位低有效
awid[B-1:0]IAXI 写地址ID
awaddr[31:0]IAXI 写地址
awlen[L-1:0]IAXI 写突发长度
awsize[2:0]IAXI 写突发尺寸
awburst[1:0]IAXI 写突发类型
awlock[1:0]IAXI 写锁定类型未使用
awcache[3:0]IAXI 写缓存类型未使用
awprot[2:0]IAXI 写保护类型未使用
awvalidIAXI 写地址有效
awreadyOAXI 写地址就绪
wid[B-1:0]IAXI 写ID标签
wdata[D-1:0]IAXI 写数据
wstrb[D/8-1:0]IAXI 写选通
wlastIAXI 写结束
wvalidIAXI 写有效
wreadyOAXI 写就绪
bid[B-1:0]OAXI 响应 ID
bresp[1:0]OAXI 写响应
bvalidOAXI 写响应有效
breadyIAXI 响应就绪
arid[B-1:0]IAXI 读地址 ID
araddr[31:0]IAXI 读地址
arlen[L-1:0]IAXI 读突发长度
arsize[2:0]IAXI 读突发尺寸
arburst[1:0]IAXI 读突发类型
arlock[1:0]IAXI 读锁定类型未使用
arcache[3:0]IAXI 读缓存类型未使用
arprot[2:0]IAXI 读保护类型未使用
arvalidIAXI 读地址有效
arreadyOAXI 读地址就绪
rid[B-1:0]OAXI 读ID标签
rdata[D-1:0]OAXI 读数据
rresp[1:0]OAXI 读响应
rlastOAXI 读结束
rvalidOAXI 读有效

PSRAM 控制器接口信号

表 6 PSRAM 控制器接口信号
信号名称I/O说明备注
ctrl_clkI主时钟
ctrl_rst_nI复位低有效
dqs_i_0IDQS0 , 来 自 PSRAM 的 输 入 , dq_i[7:0]的数据选通信号,连接到 DQS0引脚
dqs_i_1I来自PSRAM的输入,dq_i[15:8]的数 据选通信号,连接到DQS1引脚仅用于x16模式
dq_i[15:0]I从PSRAM读取的数据,dqi[0]连接到 DQ0引脚,dqi[1]连接到DQ1引脚, 依此类推dq_i[15:8]仅用于x16模式
ck_oO时钟输出到 PSRAM,连接到 CK 引 脚
ck_n_oOcko 的反相信号,连接到 CKN 引脚不用于APS6408L/APS12808L/ APS128XXO/APS256XXN/APS51208N
cs_n_oOPSRAM 选择信号,连接到 CSN 引 脚低有效
dq_o[15:0]O写数据到 PSRAM。dqo[0] 连接到 DQ0 引脚,dqo[1] 连接到 DQ1 引 脚,依此类推dq_o[15:8]仅用于x16模式
dm_o[1:0]O数据掩码。输出到 PSRAM,连接到 DM 引脚仅用于APS3208K
dm_oeODM 引脚输出使能,连接到 DM 引脚仅用于APS3208K
dqs_o[1:0]ODQS 输出到 PSRAM dqso[0] 连 接 到 DQS0 引 脚 , dqso[1] 连接到 DQS1 引脚。dqs_o[1]仅用于x16模式
dqs_oeODQS 引脚输出使能,连接到 DQS0 和 DQS1 引脚
dqs_adl_oeODQS 额外输出使能未使用
dq_oe[15:0]ODQ 引脚输出使能。dq_oe[0] 连接到dq_oe[15:8] 仅用于x16模式
DQ0 引脚,dq_oe[1] 连接到 DQ1 引脚,以此类推
ck_adl_oeOCK 额外输出使能未使用
cs_n_adl_oeOCS_N 额外输出使能未使用
reset_oO连接到 PSRAM 复位引脚如果PSRAM没有复位引脚则不使用

外部 SRAM 接口信号

如果启用「PSRAM_CTRL_USE_EXT_SRAM」,则外部 SRAM 接口信号有效。注意:对于 AXI 使用,外部 SRAM 位于 ctrl_clk 域,而对于 AHB 使用,位于 hclk 域。

表 7 外部 SRAM 需求
类型宽度深度
写SRAMAXI:36 AHB: PSRAM_CTRL_BUS_DATA_WIDTH+1AXI: (PSRAM_CTRL_BUS_DATA_WIDTH/4)* (2^PSRAM_CTRL_AXI_LEN_WIDTH) AHB:PSRAM_CTRL_AHB_RAM_DEPTH
读 SRAMAXI: PSRAM_CTRL_BUS_DATA_WIDTH AHB:notusedAXI: (2^PSRAM_CTRL_AXI_LEN_WIDTH)*8 AHB:notused
表 8 外部 SRAM 接口信号
信号名称I/O说明
SRAM forAXI
wdata_sram_wr_enO写数据SRAM写使能
wdata_sram_rd_enO写数据SRAM读使能
wdata_sram_wr_addr[RW-1:0]O写数据SRAM写地址
wdata_sram_rd_addr[RW-1:0]O写数据SRAM读地址
wdata_sram_wdata[RD-1:0]O写数据SRAM写数据
wdata_sram_rdata[RD-1:0]I写数据SRAM读数据
rdata_sram_wr_enO读数据SRAM写使能
rdata_sram_rd_enO读数据SRAM读使能
rdata_sram_wr_addr[RW-1:0]O读数据SRAM写地址
rdata_sram_rd_addr[RW-1:0]O读数据SRAM读地址
rdata_sram_wdata[D-1:0]O读数据SRAM写数据
rdata_sram_rdata[D-1:0]I读数据SRAM读数据
SRAM forAHB
data_sram_wr_enOSRAM写使能
data_sram_rd_enOSRAM读使能
data_sram_wr_addr[ARW-1:0]OSRAM写地址
data_sram_rd_addr[ARW-1:0]OSRAM读地址
data_sram_wdata[36-1:0]OSRAM写数据
data_sram_rdata[36-1:0]ISRAM读数据

中断接口信号

表 9 中断接口信号
信号名称I/O说明
合并中断
psram_ctrl_normal_irqO正常中断 (psram_ctrl_ctrl_init_intr 或 psram_ctrl_memory_init_intr 或 psram_ctrl_phy_init_intr)
psram_ctrl_abnormal_irqO异常中断 (psram_ctrl_memory_read_timeout_intr 或 psram_ctrl_mr_read_illegal_intr)
独立中断
psram_ctrl_memory_read_timeout_intrO内存阵列读超时
psram_ctrl_mr_read_illegal_intrO内存模式寄存器读非法
psram_ctrl_bus_read_done_intrO总线读完成(目前不使用)
psram_ctrl_bus_write_done_intrO总线写完成(目前不使用)
psram_ctrl_ctrl_init_intrO控制器初始化完成
psram_ctrl_memory_init_intrO内存初始化完成
psram_ctrl_phy_init_intrOPHY初始化完成

扫描接口信号

表 10 扫描接口信号
信号名称I/O说明
scan_modeI扫描模式
scan_enableI扫描使能
scan_en_cgI扫描使能时钟门控