在 Quartus® II 软件和 IP 版本 11.0 中,在基于 UniPHY 的内存控制器中访问控制器和状态寄存器时出现问题。
最新的外部内存接口 (EMIF) 手册显示 UniPHY 寄存器地图和控制器寄存器映射为 9 位地址(0x000处的 UniPHY 和 0x100 控制器处的 UniPHY)。在实际实施中,控制器 CSR 地址宽度为 19 位,EMIF 手册中指定的寄存器映射的地址不正确。下表概述了 11.0 的正确寄存器映射:
UniPHY 寄存器地图
EMIF 手册错误地址 |
正确的地址 |
描述 |
0x001 |
0x0_0004 |
保留 |
0x004 |
0x0_0010 |
UniPHY 状态寄存器 0 |
0x005 |
0x0_0014 |
UniPHY 状态寄存器 1 |
0x006 |
0x0_0018 |
UniPHY 状态寄存器 2 |
0x007 |
0x0_001C |
UniPHY 内存 Init Param Reg 0 |
控制器寄存器映射
EMIF 手册错误地址 |
正确的地址 |
描述 |
0x100 |
0x4_0000 |
ALTMEMPHY 状态/控制寄存器 |
0x110 |
0x4_0040 |
控制器状态/配置寄存器 |
0x120 |
0x4_0080 |
内存地址大小寄存器 0 |
0x121 |
0x4_0084 |
内存地址大小寄存器 1 |
0x122 |
0x4_0088 |
内存地址大小寄存器 2 |
0x123 |
0x4_008C |
内存时序参数寄存器 0 |
0x124 |
0x4_0090 |
内存时序参数寄存器 1 |
0x125 |
0x4_0094 |
内存时序参数寄存器 2 |
0x126 |
0x4_0098 |
内存时序参数寄存器 3 |
0x130 |
0x4_00C0 |
ECC 控制寄存器 |
0x131 |
0x4_00C4 |
ECC 状态寄存器 |
0x132 |
0x4_00C8 |
ECC 错误地址寄存器 |
Quartus® II 软件 11.1 版解决了此问题。