Cyclone V 器件包含多达两种支持 DDR3、DDR2 和 LPDDR2 SDRAM 存储设备的物理内存控 制器。每一个控制器支持位宽 8 到 32 位、容量多达 4GB、双芯片选择和可选 ECC 功能的内存 器件。对于 Cyclone V SoC FPGA,HPS 端有一个额外的支持以上器件的硬核内存控制器。所 有的 Cyclone V SoC 对于以上器件都有良好的软核控制器支持[13]。内存工作频率取决于内存 接口标准和器件数据手册列出的延迟锁定环所支持频率,图 2。5 是 SDRAM 存储器接口工作参 数。文献综述
图 2。5 Cyclone V SoC 器件 SDRAM 控制器接口频率
在本数据存储系统中我们选用的是两片 Micron 公司的 MT41K256M16 型号的 DDR3 SDRAM, 每片 DDR3 的存储大小高达 512MB,即 32Meg×16×8banks。工作频率为 800MHz,吞吐量为 1600MT/s,供电电压为 1。5V。它的行地址大小为 32K(A[14:0]),列地址大小为 1K(A[9:0]), 包含了 8 个 bank(BA[2:0])。单片数据宽度为 DQ[15:0]16 位,我们只需将两片 DDR3 SDRAM 并联连接在一起,数据宽度宽度就可以达到 32 位了。
第 8 页 本科毕业设计说明书
通过上一节我们可以看到两片 DDR3 存储器是连接在 ARM 端的 SDRAM 内存控制器上。高达 1GB 大小的存储容量,我们可以任意保存图像、GPS 数据和操作系统等。而且访问该存储器十 分方便,在 FPGA 端只需通过 FPGA-to-HPS slave 接口来访问就可以访问该存储器中的数据信 息,在 ARM 端更是可以直接访问该存储器。
因为 DDR3 存储器模块在本系统中十分重要,因此需对其采用配套的电源。DDR3 需要 3 个精准的电压,分别是 VDDQ、VTT 和 VREF。VTT 是存储器总线端接电压,所需电压值是 VDDQ/2。 DDR3 内核供电需要较高的电流,因此我们选用 VDDQ。VREF=VDD/2,它的作用是和 DDR3 内部 信号进行比较。VDD 是 1。5V 的通用电压大小,负责对器件的通用 IO 口进行供电。在上电顺 序方面也有严格的要求:首先进行 VDDQ 上电然后才是 VTT 进行供电,主要是为了避免栅锁作 用。VTT 通常和 VREF 同步。DDR3 的每根地址线通过串行端接 62 欧姆电阻进行阻抗匹配,并 上拉电阻 1。5V。时钟差分线通过串行端接 100 欧姆电阻进行阻抗匹配。时钟使能信号端接 4。7K 欧姆电阻进行阻抗匹配、Reset 信号端接 2K 欧姆电阻进行阻抗匹配,并上拉 1。5V 电压[13]。 两片 DDR3 存储器的电路原理图如图 2。6 所示:来*自-优=尔,论:文+网www.youerw.com
图 2。6 两片 MT41K256M16 电路原理图
2。2。4 SD 卡存储模块
SD 卡存储模块也是本系统的重要模块,SD 卡(Secure Digital Memory Card)是一种微 型存储卡,因为其体积小,内存容量大,而且携带方便,因此在生活和科学研究中得到广泛
本科毕业设计说明书 第 9 页
应用。近年来,SD 卡技术发展迅速,很多的处理器都可以从 SD 卡中直接引导系统,本系统 采用的 Cyclone V SoC 评估板就支持这种技术。
选用的 5CSXFC6C6U23C8NES 芯片是 FPGA 中内嵌 ARM 的结构,要启动其中的 ARM 则需要一 些启动文件。在数据存储系统中,我们把这些启动文件保存在 SD 卡中,包括 linux 内核镜像
(Linux kernel)、设备树文件(preloader)、U-boot 镜像文件等。cortex A9 ARM 可以直接 读取读取我们事先存储的这些启动文件,进行启动。
SD 卡是一种静电放电(ESD)敏感器件,在插拔 SD 卡过程中我们必须进行静电保护,因 为人体释放的静电可达几千伏甚至上万伏,在插拔过程中接触 SD 卡很有可能烧坏 SD 卡[13]。 在本存储系统中我们使用的是 3 片 ESD5V3U2U 芯片,该芯片是一种超低容量静电放电(ESD) 二极管阵列,它能防止插拔 SD 卡时可能产生的静电,从而可以保护整个电路。在该评估板中 该芯片被放置在靠近 SD 卡的地方,这样极大地减少了电路回路和电感。