通过CPLD进行接口连接和编程控制的大容量、高速度FIFO设计

1 引言 fifo(first in first out)是一种具有先进先出存储功能的部件。在高速数字系统当中通常用作数据缓存。在高速数据采集、传输和实时显示控制领域中.往往需要对大量数据进行快速存储和读取,而这种先进先出的结构特点很好地适应了这些要求,是传统ram无法达到的。
许多系统都需要大容量fifo作为缓存,但是由于成本和容量限制,常采用多个fifo芯片级联扩展,这往往导致系统结构复杂,成本高。本文分别针对hynix公司的两款sram和dram器件,介绍了使用cpld进行接口连接和编程控制,来构成低成本、大容量、高速度fifo的方法。该方法具有通用性,可以方便地移植到与其他ram器件相连的应用中去。
2基于sram的设计与实现 2.1 sram结构芯片hy64ud16322a 静态随机存取存储器sram(static random access memory)是一种非常重要的易失性存储器,它的速度非常快,并且能在快速读取和刷新时保持数据完整性。本系统sram器件采用hynix公司的hy64ud16322a[2]。hy64ud16322a是高速、超低功耗32 mbit sram,内部具有2 097 152个16 bit字容量。采用了cmos制造工艺、ttl电平接口以及三态输出,具有较大的输入电压和温度范围。同时hy64ud16322a支持dpd(deep power down)模式,保证其在待机模式下功耗进一步降低。
2.2系统硬件设计 整个系统采用cpld作为控制核心器件。cpld选用altera公司的max7128aetc100-5[3]。max7128基于altera公司第二代max乘积项结构,是采用cmos eeprom技术制造的epld,它集成了2 500个可用门,128个宏单元以及100个i/o引脚。
图1是hy64ud16322a内部结构以及与cpld接口设计的系统连接图。可以看出,hy64ud16322a由地址译码、逻辑控制模块以及大容量存储阵列组成。cpld接收到fifo控制信号.按照该sram读写时序要求完成相应的读写操作.再通过所构造fifo的数据输入输出和状态控制接口返回。
2.3指针算法程序设计 系统采用cpld作为总控制器件。根据fifo的特点,需要将sram按地址存储用程序控制成先进先出的结构。这里采用指针算法来实现这种结构设计:设置两个指针变量startpos和endpos.分别作为进入数据头尾指针。当有新数据写入时,数据从上一次存储最后位置的下一个位置开始存放.存入一个数据.endpos就自动加1,保持与最后数据位置同步。当endpos超过整个ram的最大容量(ram_size)时,就需要循环返回,从0x000位置存放,一直到endpos与startpos重合。这时可以认为ram已经存满。同理,读出数据时。起始位置startpos自动加1。当startpos超过整个ram的最大容量时,就从0x000位置读取。一直到startpos与endpos重合,这时可以认为ram已经读空。在这两个过程当中,cpld需要对地址线进行控制.不难发现,写数据的时候address与endpos一致,读数据的时候address与startpos一致。图2是整个系统写和读时序控制的流程图。
2.4时序控制 写入数据的时候,cpld需要模拟fifo基本的写操作时序:cpld接收到nwen(写使能,低有效)和wclk(写时钟,上升沿有效),即当nwen为低,wclk为上升沿时,将当前i/o上的数据写入。在数据写入ram的时候.cpld应按照hy64ud16322a的写时序来控制写操作。这里,cpld首先按照上述流程计算出当前数据应存放的地址,然后控制nwe信号,nwe为低时,数据自动写入ram。然后再写下一位数据。整个写时序如图3所示。
同理.cpld接收到nren(读使能,低有效)和rlck(读时钟,上升沿有效)时。将最先写入的数据读出。这里.cpld首先按照读数据流程计算出当前读出数据存放地址.然后控制noe信号(低电平有效),数据自动读出ram。然后再进行下一位数据读出操作。
可以看出,影响所构建fifo读写速度的关键因素是twc,该参数也是决定hy64ud16322a速度的主要因素,因此.所构建fifo的理论速率应该接近hy64ud16322a的速率。
3 基于dram的设计与实现 3.1 dram结构芯片hy57v281620e 一般来说。动态随机存取存储器dram(dynamic random access memory)是由大的矩形存储单元阵列与用来对阵列读和写的支持性逻辑电路,以及维持存储数据完整性的刷新电路组成。尽管操作较sram复杂,但由于dram具有每存储位单元低成本和高密度的优点,使得它们成为商业领域最广泛使用的半导体存储器。本系统的dram芯片采用hynix公司的134 217 728 bit同步dhy57v281620e[4]。它由4块2 097 152x16 bit组成。采用了cmos制造工艺.lvttl电平接口。
3.2系统硬件设计 同样采用max7128aetc100-5完成系统控制。hy57v281620e内部结构以及与cpld接口的系统连接图。接口控制原理类似2.2所述。不同的是,hy57v281620e内部由行列地址译码、多块大容量存储单元阵列和一些逻辑控制模块组成。
3.3程序设计 这里,主要采用2.3中设立头尾两个指针的思想。与sram不同的是,dram采用的矩形存储单元阵列是由行线和列线来控制,并且内部采用分块结构.这里hy57v281620e由4块存储单元组成.通过ba1和ba0来控制。在写数据操作的时候,当存放数据长度超过当前存储单元容量时,需要cpld切换至下一存储块进行存储,同样,读操作的时候也存在这种操作,即如果startpos或者endpos超过了存储块容量.这里是2 097 152,则通过一个模4计数器控制切换至下一个存储块。
3.4时序控制 写入(或读出)数据的时候,cpld需要模拟fifo基本的写(或读)操作时序:cpld接收到nwen(nren)和wclk(rclk),即当。nwen(nren)为低,wclk(rclk)为上升沿时,将当前i/o上的数据写入(读出)。在数据写入(读出)ram的时候,cpld应按照hy57v281620e器件的写(读)时序来控制写(读)操作:cpld首先控制nras从高电平变至低电平,选择行地址。再通过控制ncas选择列地址。这里,当写入(或读出)数据在同一块当中进行,可以保持nras低电平,连续选择多列数据操作(也称作快页模式读写)。当数据地址超过块容量,则需要重新选择行地址,然后再进行连续多列数据读写操作。读写使能控制和sram类似,通过noe和nwe(低有效)来控制。
图5是dram主要读写控制时序。可以看出,影响所构建fifo读写速度的主要因素是tpc,这也是决定dram速率的关键所在,因此,所构建fifo的理论速度也应该接近dram最高频率。同时,还必须考虑dram的刷新操作。这里,系统采用ncas先于nras的方式(cbr),即控制ncs、ncas、nras,并保持nwe为高电平,利用芯片内部计数器决定要被刷新的行。hy57v281620e提供了这种自刷新模式,刷新速率由tref来决定,通常为64 ms。在系统或某存储块长时间无操作的情况下,需要定时刷新,以保持数据完整。
4实验结果和分析 图6是用quartusil4.0根据2.3中设立的头尾指针算法设计仿真出来的时序波形。可以看出.系统从0x000底开始写数据,当写入3个数据时。endpos增加到0x003,再进行3个数据读操作,即startpos增加到0x003,此时,所构建的fifo是读空状态,可以看到读空信号empty在这时变为高电平,达到fifo设计所需要求。
还需要注意:由于所采用的ram只采用一个数据总线作为输入输出,因此在写数据的时候不能进行读操作。而常用fifo器件可以同时读写。所以.如果要在同一时间内进行读和写操作,那么需要在一个fifo读写时钟周期内对ram进行读写等多个操作,这时所构建的fifo速率将降低。
此外.在与dram构建高速fifo时,由于存储块选择需要一定时间操作,因此跨块存储操作在频率较高时会影响正常的数据读写,出现个别数据丢失情况。而且当某段时间进行刷新操作时,有突发数据需要读或写,这时不允许中断。解决这种问题的办法是用一个i/o引脚(nready)标识出当前所构建的fifo是否可读写,如果有上述情况发生,则nready为高,可以读写时为低。
常用的fifo器件还有半满、接近满、接近空等状态指示,可以在上述构建fifo的基础上加上简单的逻辑控制,计算startpos和endpos之间的差值,根据当前是写操作还是读操作来指示。其他状态信号也可以通过cpld经由逻辑运算很方便地实现。同时,读和写同步时钟可以不一致。这样就可以很方便地构成同步或者异步两种fifo,具有很好的可扩展性。
5 结束语 现在,sram的数据传输速率可以达到10 ns以内,dram要比sram稍慢一些。因此。sram通常用于高速缓冲存储.而dram则通常用来存储较大的数据。从成本来考虑,dram比sram成本要低得多。采用本文给出的结构和设计思想,避免了以往主cpu接管ram时的一系列复杂读写操作,而直接类似fifo使用,接口简单方便,而且避开了传统fifo器件容量和成本的限制。本文通过理论分析,实际电路设计调试,已成功实现用两种不同结构的ram构建fifo,并应用于多个实时高速信号采集系统中。

如何实现PLC透传上报及下发数据
IE3D的十八个特点介绍
7805典型应用电路
基于555时基芯片的高频逆变电源电路设计
索尼KV-K29MF重型有伴音无光栅
通过CPLD进行接口连接和编程控制的大容量、高速度FIFO设计
外星人发布新款掌机,搭载Win10系统可玩PC游戏
华南赛区项目微纳感知、箴石医疗斩获深圳创新创业大赛决赛优秀奖
什么是防水连接器的CCC认证?
ESD静电二极管布局设计是如何发展而来的?-优恩半导体
电流速断保护和过电流保护的区别
福能东方半年与孚能科技签署4.03亿元的日常经营合同
混频器的工作原理、种类和结构组成分析
适用于应用系统的单片机选型原则分析
35KV接地电阻柜生产工艺
我们正在进入“活产品”时代,产品价值构成的巨变
苹果13充电接口会改吗,苹果13充电接口是什么样的
罕王微电子8英寸MEMS后端生产线举行建成投产启动仪式 预计全年生产2000万颗实现2亿元销售额
一文了解几种常见的RTC器件
Pixcir可望成windows 7全新上市最大受益者