微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > DDR SDRAM在高速数据采集系统中的应用

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

时间:05-11 来源:互联网 点击:

在数据处理中为了更好地对被测对象进行处理和分析,研究人员们把重点更多的放在高速、高精度、高存储深度的数据采集系统的研究上

由于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 b的DDR,并且单位存储成本和SDR SDRAM相比并没有提高因而,对于高速数据采集系统,无论从成本还是性能方面考虑,采用DDR作为系统的存储器件是合适的但DDR却带来了相对复杂的控制工作,不仅需要与SDRSDRAM一样进行定时刷新,而且较SDRAM增加了新的控制信号和使用了新的电平标准

2 DDR的基本工作原理

所谓DDR的双倍速率结构,即在数据随路时钟的上升沿和下升沿各发送一次数据,这样在一个时钟周期内可完成双倍速率的数据传输由于DDR的控制逻辑比较复杂,这里只对其写模式下的工作原理进行介绍,如图1所示

从图中可知对DDR进行写操作时,首先通过外部控制模块(如FPGA)对DDR送写命令和操作地址,然后第1个正确的数据将在随路时钟DQS的上升沿进行存储,接下来的数据将在DQS的连续时钟沿上进行存储其中根据DDR的时序要求在写模式下,写命令和随路时钟的第1个上升沿要有一个固定的时间间隔tDQSS为了在对DDR进行读写时能够正确地存储和读取数据,应该严格地按照厂家提供的芯片手册上的时序要求进行逻辑控制设计下面对DDR的逻辑控制的设计和实现流程进行简单的介绍

3 DDR控制模块的设计

根据DDR芯片控制要求,在设计中将DDR主控制模块分为5个子模块,分别是初始化模块、外部刷新模块、主状态机模块、地址模块和命令输出模块其具体组成如图2所示

由于DDR必须以一个预先定义好的模式进行启动并初始化,如果操作过程不按照这个特定的模式进行初始化,将导致错误操作并且不能对数据进行正常的读写初始化模块在系统启动之后马上对DDR进行配置,使其达到正确的时序和配置要求DDR初始化的流程图如图3所示

(1)主状态机模块则是根据接收到的命令控制状态

机的动作,通过翻译控制信号控制内部状态机产生控制DDR的正确时序信号,这一部分是主控制模块的关键和难点,能否正确控制DDR的操作完全集中在此模块

(2)外部刷新模块是辅助主状态机模块控制DDR处于空闲状态时的定时刷新

(3)地址发生模块的作用是根据所接收由主控状态机发送来的内部命令产生所对应的地址,然后将命令和对应的地址同步发送给命令发送模块

(4)命令发生模块是与DDR芯片的接口部分,其将从地址模块发送来的具体命令解释成DDR所需的命令信号和控制信号以及所需的地址信号(AO~A12,BA0,BAl)

4 高速数据采集系统的结构设计

为了能更清楚地了解DDR在高速数据采集系统中的应用,这里将对基于CPCI总线的高速数据采集系统结构进行描述高速数据采集系统的设计框图如图3所示

外部信号首先经过模拟通道的调理达到A/D芯片的输入要求,再通过A/D芯片将模拟信号转换成数字信号送人FPGA处理当处理器发出写命令时,把数字信号在FIFO内部进行缓存再送入DDR进行存储.如果A/D的采样速率为200 MSa/s,则可以使用133 MHz时钟速率的DDR芯片即可达到要求但是在内部进行缓存时存在一个问题,就是写入F1F()的时钟速率大于读取FIFO的时钟速率,这样就会导致从A/D采样过来的信号不能完整地存储

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top