- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGADDR控制器设计
基于FPGADDR控制器设计摘 要 在分析DDR SDRAM基本操作特性的基础上,本文根据DDR的时序要求,提出了一种基于VerilogHDL语言的控制器实现方案。并且根据具体的应用环境给出了不同的读写方案,以提高时钟效率。控制器逻辑的RTL在FPGA板卡上实现,仿真在modelsim中进行,硬件的验证利用quartusII的逻辑分析仪(signaltapII)完成,以保证存储器的读写高效性与可靠性。
关键词 DDR SDRAM VerilogHDL FPGA
DDR SDRAM是Double Data Rate Synchronous Dynamic Random Access Memory(双倍速率随机存储器)的简称,它采用2.5V的工作电压,在核心时钟的上升沿和下降沿传输数据,具有比SDR(single data rate) SDRAM多一倍的传输速率的优点。FPGA(Field-Programmable Gate Array)是一种可编程器件,在FPGA上可以实现任意数字电路功能。在电子通讯领域,数据量越来越大,对存储器的需求也越来越大;FPGA具有并行性、可编程等优点,它的应用场合也越来越广,在FPGA板卡上嵌入SDRAM已经应用在很多系统中,因此研究在FPGA平台上来实现DDR读写控制的方法具有重要的实际意义。本文第1、2节介绍基于FPGA的DDR SDRAM控制器的设计过程,第3节主要讲述控制器的调试。FPGA为Altera公司的cycloneIII, DDR为Hynix公司的16Mx16的DDR。
1 DDR SDRAM 的基本操作
本文采用的DDR具有四个BANK(就是被分为四个块);15根地址总线(其中包括2根BANK地址线和13根行列地址线;BANK地址标为BA1~BA0,行列地址线标为A12~A0);16根数据总线(DQ15~DQ0);两根数据捕获探针(DQS,双向信号线);两根写掩码信号(DM1~DM0,可一直设置为0);一对相位相反的主控时钟线(CLK_P,CLK_N);一根时钟使能信号(CKE);四根命令信号线:CS_N(片选信号),RAS_N(行地址使能信号),CAS_N(列地址使能信号)和WE_N(写使能信号)。
1.1 DDR SDRAM的指令
DDR的指令与SDR的指令基本一致,主要由CS_N,RAS_N,CAS_N和WE_N四个信号控制,它们的真值表如表1所示。命令是在主时钟的上升沿捕获。
1.2 DDR常见读写延时参数
CL:CAS latency,列地址有效到读出数据的延时,是在读数据的时候的读命令到数据输出的时间长度,它由厂商确定,主要有2,2.5,3(时钟周期个数)三个数值,可以通过寄存器配置。
tRCD:RAS to CAS latency,行地址(ACT命令)有效到列地址有效的最小延时,芯片属性,不可配置。
tRAS:行有效(ACT命令)到预充电命令的最小时延。
tRP:预充电命令到行有效的最小时延。
1.3 DDR的读写时序
DDR的读写数据是在DQS信号下捕捉的,数据的位数决定了DQS的位数,一位DQS信号负责捕捉八位数据信号。写操作时,DQS在数据信号DQ的中心捕获数据;读操作时,DQS在数据信号的边沿捕获数据[1]。在数据读写之前,需要先进行行有效操作,即ACT命令,然后经过tRCD的时间,执行读或写操作命令。在读操作中,读命令后还要经过CL(CAS latency)时间才开始读取数据。
2 控制器的设计方案
实现DDR的控制,重点需要解决:时钟体系问题,状态转换与指令操作三个方面。本文设计的DDR控制器主要有三个模块,分别是状态转换控制模块,指令译码模块和时钟模块,如图1所示。控制器的用户控制信号有CMD(用户发送的指令)与ADDR(用户地址)、DATAIN(DDR的输入数据)和DATAOUT(DDR的输出数据)。时钟模块提供DDR主时钟和控制器系统内部的数据时钟(CLK_X2)。在使用时,用户首先发送一个CMD到状态转换模块进行状态转换,然后控制器返回一个CMDACK响应用户,在第二个时钟周期将这个命令状态标志输入到指令译码模块进行指令译码,控制指令信号,完成相应的操作。伴随着状态的转换,相应的地址信号也锁存进DDR。
REF_CLK与RESET_N是系统时钟和全局复位信号,除了这两个信号与前述的用户控制信号外,图1中剩下的接口信号就是DDR的接口信号了。
2.1 时钟设计
根据DDR的时序要求,本文一共采用了三个时钟,分别是DDR的一对反相时钟(DDR_CLK_P,DDR_CLK_N)和数据控制时钟(CLK_X2,由时钟模块产生)。根据DDR的要求,指令信号要在DDR_CLK_P的上升沿采样
文档评论(0)