update README

This commit is contained in:
WangXuan95 2021-01-27 21:58:17 +08:00
parent f5d5819e09
commit 20407b22e2

View File

@ -40,8 +40,8 @@ FPGA DDR-SDRAM
* [模块参数](#模块参数)
* [模块接口:驱动时钟和复位](#模块接口:驱动时钟和复位)
* [时钟频率的选取](#时钟频率的选取)
* [模块接口DDR1 接口](#模块接口DDR1 接口)
* [模块接口AXI4 从接口](#模块接口AXI4 从接口)
* [模块接口DDR1接口](#模块接口DDR1接口)
* [模块接口AXI4从接口](#模块接口AXI4从接口)
* [位宽参数的确定](#位宽参数的确定)
* [时序参数的确定](#时序参数的确定)
* [示例程序](#示例程序)
@ -143,7 +143,7 @@ rstn 是低电平复位信号正常工作时应该置高。clk 是驱动时
另外,时钟频率的上限还受限于 FPGA 的速度,太高的时钟频率容易导致时序不收敛。该控制器充分考虑时序安全设计,大多数寄存器工作在频率较低用户时钟域;个别寄存器工作在用户时钟的 2 倍频率的时钟下,且输入端口的组合逻辑非常短;还有一个寄存器工作在高频的 clk 下,但输入端口直接来自于上一级的寄存器输出(没有组合逻辑)。因此,即使在速度级别很低的 EP4CE6E22C8N 上,在 300MHz 的驱动时钟下也能保证模块正确运行。在速度等级更高的 FPGA (例如 EP4CE22F17C6N驱动时钟的频率可以更高例如400MHz
## 模块接口DDR1 接口
## 模块接口DDR1接口
以下是该模块的 DDR1 接口。这些接口应该直接从 FPGA 引出,连接到 DDR1 芯片上。
@ -165,7 +165,7 @@ rstn 是低电平复位信号正常工作时应该置高。clk 是驱动时
想了解 DDR1 接口在初始化、读写、刷新时的波形,请进行 [Verilog仿真](#Verilog仿真)。
## 模块接口AXI4 从接口
## 模块接口AXI4从接口
DDR1 控制器对外提供 AXI4 从接口AXI4 slave的时钟和复位信号如下。AXI4 主机应该用它们作为自己的时钟和复位。
@ -273,7 +273,7 @@ AXI4 总线的地址awaddr和araddr统一是字节地址模块会根据
本节讲述如何确定 **BA_BITS**、**ROW_BITS**、**COL_BITS** 和 **DQ_LEVEL** 这 4 个参数。
从[模块接口DDR1 接口](#模块接口DDR1 接口)一节可以看出 DDR1 接口的一些信号的位宽是和参数有关的,用户需要根据 DDR1 的芯片选型来确定模块参数。
从[模块接口DDR1接口](#模块接口DDR1接口)一节可以看出 DDR1 接口的一些信号的位宽是和参数有关的,用户需要根据 DDR1 的芯片选型来确定模块参数。
以 [MICRON 公司的 DDR-SDRAM](https://www.micron.com/products/dram/ddr-sdram) 系列芯片为例,不同芯片有不同的 ROW ADDRESS BITS (行地址宽度、COL ADDRESS BITS列地址宽度、DATA BITS数据宽度决定了他们的位宽参数也不同如下表这些参数都能从芯片datasheet中查到