mirror of
https://github.com/WangXuan95/FPGA-DDR-SDRAM.git
synced 2025-01-30 02:32:53 +08:00
update README
This commit is contained in:
parent
f5d5819e09
commit
20407b22e2
10
README.md
10
README.md
@ -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中查到)。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user