基于FPGA的DDR_SDRAM控制器在高速数据采集系统中的应用

合集下载

基于FPGA的SDRAM控制器设计方案

基于FPGA的SDRAM控制器设计方案
u i g Ve io a g a e Th sp p r i to u e h p c fc d sg fe c d l n e r a i a i n o e wh l e i n i s n r l g l n u g . i a e n r d c s t e s e i e i n o a h mo u e a d t e l to ft o e d sg n i h z h d t i. e t s e u t h w h tt e c n r le e i n d i fe i l , t b e r l b e l w o t a d c n b s d a P c r n e a l Th e t s l s o t a h o to l rd s g e s l x b e s a l , e i l , o c s , n a e u e sI o e i r s a
现 过 程 。 实验 测试 结 果表 明 :该 控 制 器设计 灵 活 、 工作稳 定 可 靠 ,成本 低 廉 ,可作 为 I P核应 用 于 不 同 S C 的 高速 O
缓存 系统 中 。 关 键 词 :控 制 器 ; S AM ; F GA; V rlg DR P ei o
中图 分类 号 :T 3 2 文 献标 志 码 :A P 3
s tm , e S yse a n w DRAM o to l rb s d o PGA s p o o e . s d o h n l i ft e b s c o e a i n p i c p e o c n r le a e n F wa r p s d Ba e n t e a a yss o h a i p r to rn i l f S DRAM ,t r u h i to u i g t e s a e m a h n n r ir to c a im ,t e p r o e o i h s e d d t a h n h o g n r d c n h t t c i e a d a b t a i n me h n s h u p s fh g -p e aa c c e a d

毕业设计(论文)-基于fpga的sdram控制器的实现(软件部分)[管理资料]

毕业设计(论文)-基于fpga的sdram控制器的实现(软件部分)[管理资料]

毕业设计(论文)机械与电气工程学院电气工程及其自动化专业毕业设计(论文)题目基于FPGA的SDRAM控制器的实现(软件部分)学生姓名班级电气工程及其自动化学号指导教师完成日期2012 年 6 月 6 日基于FPGA的SDRAM控制器的实现(软件部分)The realization of SDRAM controller based on FPGA (software)总计毕业设计(论文) 41 页表格 6 个插图 21 幅摘要文中介绍了FPGA的开发流程、硬件开发语言及其开发环境QuartusII和SDRAM的结构特点和工作原理,根据SDRAM的工作原理、控制时序和指令特点,设计一种基于FPGA的SDRAM控制器的方案。

SDRAM控制器的设计主要由主控制模块、信号产生模块、数据路径模块和参数模块组成。

本设计解决SDRAM控制复杂、不方便的问题,并用Verilog给予仿真结果。

仿真结果表明使用该方法设计实现的控制器能够使系统方便,可靠的对SDRAM进行操作。

关键字:SDRAM控制器FPGA 控制模块软件仿真AbstractThis paper introduces the development process and FPGA hardware development language and the development environment of SDRAM QuartusII and structural characteristics and working principle, according to the working principle of SDRAM, sequence control and instruction characteristics, a scheme based on FPGA SDRAM controller is designed. SDRAM controller design mainly by the master control module, signal module, data path module and parameter module composition. This design solved a problem about the controlling complexity of SDRAM controller, and gives the simulation results by using Verilog. The simulation results show that using this method to design the controller can realize the system is convenient, reliable operation of SDRAM.Key words: SDRAM controller FPGA Control module Software simulation目录摘要 (I)Abstract (II)第一章绪论 (1)课题背景 (1)课题研究的意义 (1)第二章FPGA与Quartus II软件简介 (2)FPGA简介 (2)FPGA背景 (2)FGPA结构原理 (2)Quartus II软件简介 (3)硬件描述语言Verilog (4)FPGA开发过程 (5)第三章SDRAM的技术介绍 (6) (6)SDRAM简介 (6)SRAM和DRAM (6)SDRAM发展过程 (7)SDRAM工作原理和基本操作 (8)SDRAM存储的工作原理 (9)SDRAM 的引脚信号 (9)SDRAM基本命令 (10)SDRAM初始化 (10)SDRAM读、写操作 (11)终止操作 (12)第四章 SDRAM控制器设计 (12)SDRAM控制器 (13)主控制模块 (14)信号产生模块 (16)参数模块 (18)数据通路模块 (19)第五章SDRAM的读、写仿真 (19)SDRAM控制器时序仿真 (20)Quartus II (20)读仿真时序 (20)写仿真时序 (21)仿真结果分析 (22)结论 (24)参考文献 (25)致谢 (26)附录 (27)第一章绪论课题背景伴随着电子信息技术的飞速发展和其在通讯、工业、商业、医疗等方面的广泛应用,人们对信息的需求逐渐向着更快、更多、更准确发展。

基于FPGA的DDR SDRAM控制器的设计

基于FPGA的DDR SDRAM控制器的设计

普通本科毕业设计题目:基于FPGA的DDR SDRAM控制器的设计摘要随着半导体技术的发展,A/D采样的速率越来越高,相应需要越来越大容量的存储器。

存储器是目前数字系统中的关键部件之一,DDR SDRAM(Double Data Rate SDRAM,双倍数据率同步动态随机存储器)以其大容量、高速率和良好的兼容性以及低成本在计算机、消费类电子、通信等领域得到了相当广泛的应用。

DDR控制器实际上就是用户端与DDR存储器之间进行数据传输的一个桥梁,通过DDR控制器,用户端命令被转化成DDR 存储器所支持的命令格式,从而实现用户端对DDR的访问。

本文对DDR SDRAM及其控制器的结构、接口和时序进行了深入研究与分析,得出一些DDR SDRAM控制器的关键技术特性,然后基于Altera公司Cyclone II系列的FPGA芯片EP2C8Q208C8平台,利用Verilog硬件描述语言设计实现了DDR SDRAM存储控制器。

编写自动生成自加数据的模块,将自加数据写入到SDRAM中,再从SDRAM中读回,从UART 发送出去并在串口调试工具上显示。

【关键词】可编程逻辑门阵列DDR SDRAM 存储控制器通用异步收发器AbstractAlong with the development of semiconductor technology, A/D sampling rate is higher and higher, requiring more capacity of corresponding. Storage of memory is one of the crucial devices in the digital system at present, the DDR (Double Data Rate) SDRAM has many advantages for it's large capacity, high speed and the low cost, it has been used in quite a number of fields, such as the Server, the WorkStation, the Personal computer and the consumer electronics, the communication and other areas. DDR controller actually is a bridge between client and DDR memory for data transmission, through the DDR controller, client command was converted into the DDR memory which support command format, so as to realize the visit of DDR clients.The pivotal technologies of DDR SDRAM and memory controller, such as Structure, Interface and Timing are explored in this article, after a research on the main feature inside the DDR controller, several functional modules of the controller are designed out, and then based on FPGA chip Cyclone II Altera company EP2C8Q208C8 platform series used Verilog hardware description language. Write automatic generation and add data modules, with data from the data written to add SDRAM, and again read back from SDRAM, send it out from UART and display on serial port debugging tools.【Key words】FPGA; DDR SDRAM; Memory Controller; UART目录1 绪论 (2)1.1 DDR SDRAM的现状及发展趋势 (2)1.1.1 DDR内存的现状 (2)1.1.2 DDR内存的发展趋势 (3)1.2 课题研究的意义 (3)1.3 课题研究的要求 (2)1.4 本文的安排 (2)2 DDR SDRAM技术介绍 (4)2.1 DDR SDRAM的分类 (4)2.2 DDR SDRAM的基本概念 (4)2.2.1 DRAM存储原理 (5)2.2.2 DDR SDRAM的逻辑BANK与芯片位宽 (5)2.2.3 DDR SDRAM芯片容量 (5)2.2.4 DDR SDRAM内存刷新 (6)2.3 DDR SDRAM的命令 (6)2.3.1 初始化 (6)2.3.2 DDR SDRAM指令 (7)2.4 DDR SDRAM读写操作时序 (8)2.4.1 读操作时序 (8)2.4.2 写操作时序 (8)3 FPGA和Quartus II简介 (10)3.1 FPGA技术简介 (10)3.1.1 FPGA基本结构 (10)3.1.2 FPGA的基本特点 (10)3.1.3 FPGA芯片的选择 (11)3.2 Quartus Ⅱ简介 (11)3.3 Quartus II的设计流程 (11)4 系统硬件设计 (13)4.1 系统整体框架 (13)4.2 自动累加数据产生模块 (13)4.3 DDR SDRAM控制器模块 (14)4.3.1 DDR SDRAM控制器整体状态分析 (14)4.3.2 DDR SDRAM控制器总体架构 (15)4.3.3 输入/输出FIFO模块 (16)4.3.4 控制接口模块设计 (17)4.3.5 控制接口模块设计 (19)4.3.6 数据通路模块设计 (21)4.4 串口读数据模块 (23)5 系统控制器的功能验证 (26)5.1 系统控制器的功能仿真 (26)5.1.1 系统控制器Testbench设计 (26)5.1.2 系统控制器Testbench总体架构 (26)5.1.3 DDR SDRAM Controller Testbench顶层模块设计 (26)5.1.4 DDR SDRAM Controller Testbench仿真波形 (27)5.2 串口读取数据验证 (28)6 总结 (29)参考文献 (30)致谢 (31)1 绪论1.1 DDR SDRAM的现状及发展趋势1.1.1 DDR内存的现状目前DDR内存市场占有量非常大,尤其是近些年随着市场需求的高速增长使得加入该行业和研究该技术的人员也越来越多,DDR控制技术处于高速发展阶段。

DDR SDRAM在高速数据采集系统中的应用

DDR SDRAM在高速数据采集系统中的应用

DDR SDRAM 在高速数据采集系统中的应用在数据处理中为了更好地对被测对象进行处理和分析,研究人员们把重点更多的放在高速、高精度、高存储深度的数据采集系统的研究上由于A/D 芯片及高性能的FPGA 的出现,已经可以实现高速高精度的数据处理,则进行大批量高存储深度的数据处理成为当前要解决的主要问题l 常用存储器的比较现在用于数据采集系统的存储器常见的有先进先出存储器(FIFO)、静态RAM 和SDRAM 等FIFO 由于容量和速度的限制,不是实现大容量存储的首选目前,最为常见的存储器就是静态存储器(SRAM),静态存储器有控制简单、功耗低的优点当前大容量的SRAM 可以达4 MB,存储时钟速率250 MHz 如果要实现单通道32 M 的存储深度和200 M 的数据传输速度,就要由8 乘以1 片SRAM 拼合起来才能实现但由于每片SRAM 都要有独立的地址对应存储的数据,这对设计者进行制版和布线都是一个极大的挑战与静态存储器相比,单数据率动态存储器(SDR SDRAM)具有存储密度高、速度快等特点,数据线位宽可最大可以达到64 b,很适合于高速采样系统标准的SDR SDRAM 可以达到的时钟频率达100 MHz 以上,如果要满足系统存储速率的要求则至少需要有2 乘以12 b 的数据位宽,而目前并没有64 b 或32 b 的SDRSDRAM,则需要使用多片拼合这样,对应于一个通道的存储就至少需要有2 片12 b 的动态存储器才能满足存储的需要,显然成本比较高双速率同步动态随机访问存储器(DDR),是在SDRAM 存储技术上发展而来的一种新型存储器件,在计算机行业得到了广泛的应用其特点是采用了双倍速率结构实现高速操作,其在同一时间内传输的数据量是SDRSDRAM 的2 倍,最大传送数据的时钟速率可达400 MHz,而存储一个通道的数据只需要1 片16。

基于FPGA的DDR SDRAM控制器在高速数据采集系统中的应用

基于FPGA的DDR SDRAM控制器在高速数据采集系统中的应用

基于FPGA的DDR SDRAM控制器在高速数据采集系统中
的应用
门亮;王立欣
【期刊名称】《电子产品世界》
【年(卷),期】2007(000)C00
【摘要】实现数据的高速大容量存储是数据采集系统中的一项关键技术。

本设计采用Altera公司Cyclone系列的FPGA完成了对DDR SDRAM的控制,以状态机来描述对DDR SDRAM的各种时序操作,设计了DDR SDRAM的数据与命令接口。

用控制核来简化对DDR SDRAM的操作,并采用自顶至下模块化的设计方法,将控制核嵌入到整个数据采集系统的控制模块中,完成了数据的高速采集、存储及上传。

使用开发软件QuartusⅡ中内嵌的逻辑分析仪Signal TapⅡ对控制器的工作流程进行了验证和调试。

最终采集到的数据波形表明,完成了对DDR SDRAM的突发读写操作,达到了预期设计的目标。

【总页数】5页(P99-103)
【作者】门亮;王立欣
【作者单位】哈尔滨工业大学电气工程及自动化学院
【正文语种】中文
【中图分类】TP333.8
【相关文献】
1.基于FPGA的DDR3SDRAM控制器的设计与优化 [J], 宋明;赵英潇;林钱强
2.基于FPGA的DDR3 SDRAM控制器设计与实现方法 [J], 丁培培;郑列;李宏
3.基于FPGA的DDR3 SDRAM控制器设计及实现 [J], 韩进;张览;刘锴
4.基于FPGA的DDR2_SDRAM控制器用户接口设计 [J], 韩笑;闫永立;李勇彬;马嘉莉;吴斌
5.基于FPGA的DDR2 SDRAM控制器设计 [J], 钱素琴;刘晶华
因版权原因,仅展示原文概要,查看原文内容请购买。

基于FPGA的SDRAM的控制器实现与性能分析

基于FPGA的SDRAM的控制器实现与性能分析

基于FPGA的SDRAM的控制器实现与性能分析王艳春;祖静;崔春生【摘要】高速数据采集在通信、雷达、引信编程监测和视频图像处理等系统中具有广泛的应用,系统中大量使用SDRAM实现数据缓存.SDRAM以其体积小、容量大、读写速度快、成本低等特点被广泛应用于工业电子设备中.本文在介绍SDRAM工作原理的基础上,提出了一种基于FPGA控制SDRAM控制器的方法,这种控制器以FPGA为基础,将较难控制的SDRAM转化为用硬件描述语言编写其控制器,从而将复杂问题简单化,进而利用Verilog语言在Quartus9.1的开发环境中进行了设计输入与仿真验证,证明系统的正确性并分析SDRAM如何达到最优性能.【期刊名称】《电子测试》【年(卷),期】2010(000)012【总页数】4页(P44-46,57)【关键词】FPGA;SDRAM;Verilog【作者】王艳春;祖静;崔春生【作者单位】中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原,030051;中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原,030051;中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原,030051【正文语种】中文【中图分类】TN4090 引言本文提出了使用可编程逻辑器件FPGA和硬件描述语言,既节省系统资源,又可以最大限度地发挥SDRAM的优势,提高系统的性能。

SDRAM控制器一般有两种实现方法:一种是采用专用的控制芯片,一种是用FPGA控制。

目前FPGA在市场上应用很成熟,编程方便、控制灵活,而且可以通过软件仿真各种接口功能,故高速采集系统通过FPGA控制SDRAM有着很强的优势。

1 SDRAM控制器实现1.1 SDRAM控制器总体结构SDRAM控制器由5个部分组成,分别是初始化与配置模块,地址生成模块,接口控制模块,刷新控制模块,命令控制模块,其总体逻辑关系如图1所示。

用XilinxFPGA实现DDRSDRAM控制器

用XilinxFPGA实现DDRSDRAM控制器

用Xilinx FPGA实现DDR SDRAM控制器用Xilinx FPGA实现DDR SDRAM控制器1引言在高速信号处理系统中,需要缓存高速、大量的数据,存储器的选择与应用已成为系统实现的关键所在。

DDR SDRAM是一种高速CMOS、动态随机访问存储器,它采用双倍数据速率结构来完成高速操作。

SDR SDRAM一个时钟周期只能传输一个数据位宽的数据,因此在相同的数据总线宽度和工作频率下,DDR SDRAM的总线带宽比SDR SDRAM的总线带宽提高了一倍。

Xilinx VirtexTM-4FPGA具备ChipSync源同步技术等优势。

它的输入输出模块(IOB)提供了封装引脚与内部可配置逻辑之间的接口,无论是输入路径还是输出路径都提供了一个可选的SDR和DDR寄存器。

VirtexTM-4的IOB专门针对源同步设计进行了优化,包括每一位的偏移校正、数据的串行化和解串行化、时钟分频以及专用的本地时钟资源等,而且它在每一个I/O模块中都提供了64-阶延迟线。

这些特性使得VirtexTM-4FPGA能够更好的实现DDR SDRAM控制器的逻辑设计,准确可靠的捕获数据。

实验板选择专为DSP应用而优化的Virtex-4SX35作为DDR SDRAM控制器的实现平台,选用Micron MT46V8M16P-75Z DDR SDRAM。

2DDR SDRAM控制器工作原理DDR SDRAM控制器的主要功能就是完成对DDR SDRAM的初始化,将DDR SDRAM复杂的读写时序转化为用户简单的读写时序,以及将DDR SDRAM接口的双时钟沿数据转换为用户的单时钟沿数据,使用户像操作普通的RAM一样控制DDR SDRAM;同时,控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不需要用户的干预。

该控制器的模块化表示。

DDR SDRAM上电后必须按照规定的程序完成初始化的过程。

在初始化过程中一定要注意普通模式寄存器与扩展模式寄存器的值是否正确。

用SDRAM在高速数据采集和存储系统中实现海量缓存

用SDRAM在高速数据采集和存储系统中实现海量缓存

光学
精密工程
D E ;:FG >?H 0IJF:G:K? L? M:?JJI:? M
NKO4 !" AK 4 ( DF; 4 &""&
(&""&) !""#$%&#’ "($"#)&$"#
用 *+,- . 在高速数据采集 和存储系统中实现海量缓存
苏海冰,吴钦章
(中国科学院光电技术研究所,四川 成都 )!"&"%)
在这个结构中, ()%*" 内部由 , 个 89:; 组 成, 每个 89:; 又有 ,<=0 行, 每行拥有的字节数根 据数据输出位数决定, 在数据输出位数是 /0 位 时, 每行有 5/1 列, 也就是每行有 5/1 字节, 一行 的全部字节合称为 “一页” 。 时钟使能; 系统同步时钟; 片 $>?: $.>: $(: 选; : 行地址选择; : 列地址选择; : 读 %*( $*( @? ! 写使能; : 数据端口使能; : 行、 列地 )A " *< B *// 址选 择 线; 8*<, 8*/: 89:; 地 址 选 择 线; )A< B 双向数据端口。 )A/5:
在读 ! 写访问 ()%*" 的访问过程大致如下: 之前, 要先加载模式寄存器, 之后通过预充命令使 先前选中的行地址无效, 再由激活命令、 89:; 和 行地址选中需要访问的数据所在的具体 89:; 块 和行, 而后通过读 ! 写命令选中数据所在行的列地 址, 就能达到读 ! 写具体存储单元的目的。在数据 写入存储单元后, 要想保持住数据不丢失, 必须在 也就是说, 每隔 /5 E 015! 0,MN 内刷新 ,<=0 次, N 要刷新一次, 也可集中进行刷新。 ()%*" 支持 数据猝发传输方式, 但最多一次只能传输完一行 的数据, 称为全页猝发传输 (在我们的系统中实际 就是 5/1 个字节) , 这是因为当存储数据所在的行 不同时, 需要释放当前行并重新激活所需行, 这些 工作都要靠预充命令和激活命令来完成, 因此无
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的DDR SDRAM控制器在高速数据采集系统中的应用作者:哈尔滨工业大学电气工程及自动化学院门亮王立欣引言DDR SDRAM是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。

DDR 内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下达到更高的数据传输率。

本设计中采用Altera公司Cyclone系列型号为EP1C6Q240C8的FPGA实现控制器,以Hynix公司生产的型号为HY5DU121622B(L)TP的DDR SDRAM为存储器,完成了对数据的高速大容量存储。

DDR SDRAM的控制原理及存储功能的实现DDR SDRAM支持的常用命令有7种:空操作(NOP)、激活操作(Active)、突发读(Burst Read)、突发写(Burst Write)、自动刷新(Autorefresh)、预充电(Precharge)、模式寄存器配置(Mode Register Set)。

所有的操作命令都是通过信号线RAS_N、CAS_N、WE_N共同控制来实现的。

在对DDR SDRAM进行存取数据操作之前,首先要对其初始化,即设置DDR SDRAM的普通模式寄存器和扩展模式寄存器,确定DDR SDRAM的工作方式,这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部延迟锁定回路(DLL)的使能与输出驱动能力的设置。

初始化完成之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。

DDR SDRAM在一对差分时钟的控制下工作。

命令(地址和控制信号)在每个时钟的上升沿被触发。

随着数据DQ一起传送的还包括一个双向的数据选通信号DQS,接收方通过该信号来接收数据。

DQS作为选通信号在读周期中由DDR SDRAM产生,在写周期中由存储器的控制器产生。

该选通信号与数据相关,其作用类似于一个独立的时钟,并满足相应的时序要求。

由于DDR SDRAM的数据接口在时钟的两个沿的触发下工作,其数据宽度是存储器数据宽度的一半。

为实现数据的大容量存储,设计时采用的是一个控制核同时对两片DDR SDRAM进行操作,外接数据线的宽度由单片DDR SDRAM的16 位扩展到32位。

对DDR SDRAM的读和写操作是基于突发的,即从一个选定的地址单元开始,连续存取已设置长度的地址单元,该长度就是所谓的突发长度。

DDR SDRAM提供的可编程的读或写的突发长度为2,4或8。

数据的存取以一个激活命令(Active)开始,接着便是读(Burst Read)或写(Burst Write)命令。

与激活命令一起被触发的地址位用来选择将要存取的区和页(或行),与读或写命令一起被触发的地址位用来选择突发存取的起始列单元。

读命令被触发后,数据将在 1.5~3个时钟周期之后出现在数据总线上。

这个延迟就是所谓的CAS潜伏期(CAS latency),即从DDR SDRAM内核读出数据到数据出现在数据总线上所需要的时间。

CAS潜伏期的大小与SDRAM的速度和存储器的时钟频率有关。

当要存取一个不同行的地址单元时,需要通过一个预充电(Precharge)操作关闭当前行。

自动刷新(Autorefresh)命令用来周期性地刷新DDR SDRAM,以保持其内部的数据不丢失。

DDR SDRAM控制器的设计DDR SDRAM控制器的功能包括:(1)初始化DDR SDRAM;(2)简化DDR SDRAM的读写时序;(3)将DDR SDRAM接口的双时钟沿数据转换为单时钟沿数据,使得对DDR SDRAM的操作类似于普通RAM;(4)控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不丢失。

其控制转换图如图1所示。

在对DDR SDRAM初始化完成之后,就可进行读、写或其他操作。

在执行读(写)命令之前,先要激活将要读(写)的行,之后便可对该行进行突发读(写)。

在控制器的设计中,所有的读写命令都是不带预充电的,因此,某一行被激活之后将一直处于激活状态,直到用户发送突发终止命令,此时控制器将自动产生一个预充电命令来关闭当前行。

这样,某一行被激活之后用户便可进行连续的突发读(写)操作,从而节省了每次突发读写所需要的激活时间,提高了系统的数据吞吐率。

DDR SDRAM的读操作流程通过对DDR SDRAM的读时序的分析,将整个读操作过程分解为7个状态,每一个状态都对应着不同的命令(CMD)值,DDR控制核通过对CMD的译码完成对DDR SDRAM的操作。

从整体的控制过程来看,读操作流程如图2所示。

其中实线表示的是读操作的控制流程,虚线表示的读操作的状态转换流程。

控制流程的实现依赖于控制器内部状态转换产生的控制信号。

实现各状态之间切换的控制信号主要有命令应答信号CMDACK,外部控制信号RDREQ 以及程序内部的计数器Count_READ。

当系统的主状态机进入到读数据状态时,控制信号CBE=“010”;控制器内部的状态机进入到读状态。

读流程中另一个重要的信号为RDREQ,它是由控制器后端的缓存(FIFO)产生的,当缓存中数据容量低于设定值时,信号RDREQ被置高,读状态由PRE_NOP进入READA,发起一次读操作,完成8个数据的传送。

程序内部的计数器Count_READ保证控制核在经过设定的CAS潜伏期后从数据总线上读取数据。

DDR SDRAM的写操作流程在对DDR SDRAM的写操作中,同样以状态机完成其时序控制,状态转换图如图3所示。

每发起一次写操作,DDR SDRAM存储8 个16位的数据,其中控制信号FULL由前端数据缓存(FIFO)产生,当前端缓存中存储的数据达到设定的深度时,FULL被置为高,控制核以100MHz的时钟从缓存中读取宽度为32位的数据,当缓存内部的读计数器计数到4时,FULL信号置低,控制器的读操作停止。

读出的4个32位数据经过控制核内部的数据路径模块转换成DDR SDRAM接口的16位数据格式,在DDR控制接口模块产生的时序配合下以双倍速率完成一次突发写。

DDR SDRAM控制器的FPGA实现控制电路主状态机设计控制器上电或复位时进入IDLE 状态,其中LA和LD分别为PCI局部总线的地址线和数据线,上位机的发送的命令通过PCI总线及接口芯片传送到PCI局部总线,其中地址线的变化将引起状态机内部的状态转换,状态转换的同时,相应的配置字将出现在数据线上。

配置完参数之后,转态机进入等待数据状态(WAIT_DATA),当触发信号满足要求之后(TRG=…1‟),自动进入到保存数据状态(SAVE_DATA),在此状态下,控制程序开始进行数据采集。

指定存储深度的数据采集完成后,主状态机自动进入等待读数据状态,在接受到地址线上的状态转换命令后,分别进入读取A通道和B通道数据的状态。

数据读完之后,上位机发送命令使状态返回到IDLE状态。

DDR SDRAM控制器各模块结构图系统的顶层文件DATA_SAMPLE的结构如图5所示,FPGA内置的主要有前端缓存模块DATATO_RAM、后端缓存模块TO_LD和DDR SDRAM的控制模块SDRAM。

从数据流程上看,前端缓存将双路AD采集到的数据合并成64位,当缓存中的数据达到设定的存储深度时,控制模块在100MHz的时钟下将数据读出,并将64位数据拆分成32位分别存储到两片DDR SDRAM中。

进入到读状态时,控制模块同时从两片DDR SDRAM中读出32位的数据,根据用户所选择的数据通道,控制逻辑将相应的数据送入后端缓存中,后端缓存再将数据拆分成16位,通过PCI局部总线传送到上位机中。

从控制流程上看,DATATO_RAM和TO_LD中都设置了数据计数器,当DATATO_RAM中存储的数据量超过设定值时,读使能RDEN有效,控制模块从缓存中一次读取4个数据。

后端缓存的控制方式与此类似。

控制模块SDRAM由两部分组成,其结构如图6所示。

其中A DDR为地址产生模块,给控制核ddr_sdram提供数据操作的行地址和列地址。

控制核ddr_sdram完成的功能包括将内部状态转换产生的CMD控制命令译码成DDR SDRAM所能实现的各种操作并实现以双倍的速率与DDR SDRAM进行数据交换的接口。

ddr_sdram的结构框图如图7所示。

控制核ddr_sdram采用自顶而下模块化的设计方法,由4个模块构成:ddr_sdram顶层模块、控制接口模块、命令模块和数据路径模块。

ddr_sdram顶层模块初始化并把其余三个模块有机地结合起来;控制接口模块接收CMD命令和相关存储器地址,对命令进行译码并将请求发送给命令模块;命令模块接收从控制接口模块译码后的命令和地址,产生相应的命令给DDR SDRAM;数据路径模块在读命令READA和写命令WRITEA期间处理数据交换。

控制接口模块包含1个命令译码器和1 个16 位的刷新减计数器及相应的控制电路。

命令译码器译码并将译码后的命令及相应的地址转送给命令模块。

减计数器和相应的控制电路用来产生刷新命令给命令模块。

其值就是由LOAD_REG2 命令写入到REG2中的值。

当计数器减到0时,控制接口模块就向命令模块发Request 并一直保持到命令模块发Ack来响应该请求。

一旦控制接口模块接收到Ack,减计数器就会重新写入REG2中的值。

命令模块由1个简单的仲裁器、命令发生器及命令时序器组成。

它接收从控制接口模块来的译码后的命令,同时接收刷新控制逻辑发来的刷新请求命令并产生正确的命令给DDR SDRAM。

仲裁器在控制接口发来的命令和刷新控制逻辑发来的刷新请求命令之间进行仲裁。

刷新请求命令的优先级高于控制接口来的命令。

在仲裁器收到命令译码器发来的命令后,该命令就传送到命令发生器,命令时序器即用3个移位寄存器产生正确的命令时序后发给DDR SDRAM。

1个移位寄存器用来控制激活命令时序,1个用来控制READA和WRITEA命令,1个用来计时操作命令的持续时间,为仲裁器确定最后的请求操作是否完成。

数据路径模块提供了DDR SDRAM到FPGA的数据通道。

在和DDR SDRAM接口的一方,数据路径模块将从DDR SDRAM过来的数据总线宽度翻倍,并在200MHz的时钟频率接收DDR SDRAM在100MHz时钟的上下沿送出的数据。

在和FPGA接口的一方,数据路径模块将从FPGA送来的数据宽度减半并以2倍的速率送给DDR SDRAM。

系统实现的功能及结果分析逻辑分析仪SignalTap II是Quartus II软件中集成的一个内部逻辑分析软件,使用它可以观察本设计的内部信号波形。

相关文档
最新文档