当前位置:首页 期刊杂志

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

时间:2024-08-31

王艳春, 祖静, 崔春生

(中北大学 电子测试技术国家重点实验室 仪器科学与动态测试教育部重点实验室 山西 太原 030051)

0 引言

本文提出了使用可编程逻辑器件FPGA和硬件描述语言,既节省系统资源,又可以最大限度地发挥SDRAM的优势,提高系统的性能。SDRAM控制器一般有两种实现方法:一种是采用专用的控制芯片,一种是用FPGA控制。目前FPGA在市场上应用很成熟,编程方便、控制灵活,而且可以通过软件仿真各种接口功能,故高速采集系统通过FPGA控制SDRAM有着很强的优势。

1 SDRAM控制器实现

1.1 SDRAM控制器总体结构

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

图1 SDRAM控制器总体逻辑框图

1.2 SDRAM初始化

A3V64S40ETP-G6型SDRAM单片构成为4-bank,每个bank由4096行256列的16位存储阵列构成。64ms的刷新间隔,因此刷新方式为每64ms一次的4096行全局刷新,或者是64/4096=15.625μs一行的间歇刷新。芯片上电以后需要200μs的稳定时间,然后需要对所有bank进行一次预充电,之后经过8个周期的刷新,进入模式寄存器设置(MRS)。对模式寄存器设置完后进入正常工作模式,如图2所示。

图2 SDRAM初始化过程

1.3 SDRAM正常工作模式

SDRAM控制模块在接收到系统命令后,发出读/写操作控制信号。需要指出的是,当收到读/写命令时,它不但指示了下一步将要完成的功能是读或写,同时在进行读写状态之前实际隐含了一个必须执行激活指令,当收到读/写命令后,都会进行激活动作,经过初始化设置的CAS时间后,再向读写状态跳转,在激活状态下,给SDRAM控制器发送行地址,在读/写状态下给SDRAM发送列地址。当进行换行操作时,都要将状态跳转到预充电状态,关闭当前行,然后重新进入激活状态,取出新的行地址,进入新一行的读/写操作。当暂时不进行读/写操作时,一般将状态挂在空闲状态,需要工作时直接跳入激活状态准备读/写。所以内部主要包含一个控制状态转换的状态机,如图3所示。

图3 SDRAM控制转换状态机

2 系统功能验证

本文用Verilog语言在Quartus9.1的开发环境中进行了设计输入与综合仿真并下载到Cyclone 3 EP3C16F484C6N的FPGA上,通过Signal Tap 工具对SDRAM的工作状况进行仿真验证,图4与图5分别为SDRAM在选择突发写/读全页时的时序。从时序图中可以看出,发送到SDRAM的各种控制信号完全满足时序要求,各种状态有效的进行跳转,并最终在数据位DQ上实现了正确的写/读操作。

图4 SDRAM写时序

图5 SDRAM读时序

3 SDRAM性能分析

在对SDRAM的控制中,如何将其性能发挥到最优是个关键问题。在内存的工作周期内,不可能总处于数据传输状态,因为要有命令和寻址等必要的过程。这些操作占用的时间越短,内存工作的效率就越高,性能也就越好。非数据传输时间的主要组成部分包括各种延迟和潜伏期。通过时序仿真,我们知道行选通周期(tRCD),读取潜伏期(CL),相同L-Bank中不同工作行转换的速度(tRP)这3个参数对SDRAM性能的影响至关重要。

以读取为例(分析写时序时不用考虑CL),可能遇到以下3种情况:

(a)要寻址的行与L-Bank是空闲的。也就是说L-Bank的所有行是关闭的,此时可以直接发送行有效命令,数据读取有效总耗时为tRCD+ CL。

(b)要寻址的行已经处于行选通状态,此时可直接发送列寻址命令,数据读取前的总耗时只有CL。

(c)要寻址的行所在的L-Bank中已经有一个行处于激活状态,此时必须要进行预充电来关闭工作行,再发送激活新行的命令,到数据有效读出总耗时为tRCD+ CL+ tRP。

要想达到提高SDRAM工作效率的目的,就要尽量提高第二种状态的发生的几率,那么就要尽量让一个工作行在进行预充电前尽可能多地接收多个工作命令,此时就只有CL造成的读取延迟,从而达到缩短不必要的延迟,达到系统性能最优。

[1]范继.数字系统中SDRAM控制器的FPGA实现[J].火炮发射与控制学报,2009.

[2]张文栋.存储测试系统的设计理论及其应用[M].北京:高等教育出版社,2004.

[3]A3V64S40ETP Data Sheet

[4]Altera Corp.QuartusII Version 9.1Hardbook.Altera,2009.

[5]Altera Corp.SDR SDRAM Controller White Paper.2000.

[6]Hadimioglu H, Kaeli D, Lombardi F.Introduction to the Special Issue on High Performance Memory Systems [J]. IEEE Transactions on Computers, 2001, 50(11)

[7]Pozzo M,Bottin A,etal.Sixty-four channel wearable acquisition system for long-term surface electromyogram recording with electrode arrays[J]. Medical and Biological Engineering and Computing,2004,42(4):455-466.

[8]曹华.使用Verilog实现基于FPGA的SDRAM控制器.今日电子,2010.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!