位置:51电子网 » 技术资料 » 接口电路

基于SRAMDRAM的大容量FIFO的设计与实现

发布时间:2008/5/28 0:00:00 访问次数:928

1 引言

  fifo(first in first out)是一种具有先进先出存储功能的部件。在高速数字系统当中通常用作数据缓存。在高速数据采集、传输和实时显示控制领域中.往往需要对大量数据进行快速存储和读取,而这种先进先出的结构特点很好地适应了这些要求,是传统ram无法达到的。

  许多系统都需要大容量fifo作为缓存,但是由于成本和容量限制,常采用多个fifo芯片级联扩展,这往往导致系统结构复杂,成本高。本文分别针对hynix公司的两款sram和dram器件,介绍了使用cpld进行接口连接和编程控制,来构成低成本、大容量、高速度fifo的方法。该方法具有通用性,可以方便地移植到与其他ram器件相连的应用中去[1]。

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引脚。

  可以看出,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.4时序控制

  写入数据的时候,cpld需要模拟fifo基本的写操作时序:cpld接收到nwen(写使能,低有效)和wclk(写时钟,上升沿有效),即当nwen为低,wclk为上升沿时,将当前i/o上的数据写入。在数据写入ram的时候.cpld应按照hy64ud16322a的写时序来控制写操作。这里,cpld首先按照上述流程计算出当前数据应存放的地址,然后控制nwe信号,nwe为低时,数据自动写入ram。然后再写下一位数据。
  同理.cpld接收到nren(读使能,低有效)和rlck(读时钟,上升沿有效)时。将最先写入的数据读出。这里.cpld首先按照读数据流程计算出当前读出数据存放地址.然后控制noe信号(低电平有效),数据自动读出ram。然后再进行下一位数据读出操作。

  可以看出,影响所构建fifo读写速度的关键因素是twc,该参数也是决定hy64ud16322a速度的主要因素,因此.所构建fifo的理论速率应该接近hy64ud16322a的速率。

3 基于dram的设计与实现

3.1 dram结构芯片hy57v281620e

  一般来说。动态随机存取存储器dram(dynamic random access memory)是由大的矩形存储单元阵列与用来对阵列读和写的支持性逻辑电路,以及维持存储数据完整性的刷新电路组成。尽管操作较sram

1 引言

  fifo(first in first out)是一种具有先进先出存储功能的部件。在高速数字系统当中通常用作数据缓存。在高速数据采集、传输和实时显示控制领域中.往往需要对大量数据进行快速存储和读取,而这种先进先出的结构特点很好地适应了这些要求,是传统ram无法达到的。

  许多系统都需要大容量fifo作为缓存,但是由于成本和容量限制,常采用多个fifo芯片级联扩展,这往往导致系统结构复杂,成本高。本文分别针对hynix公司的两款sram和dram器件,介绍了使用cpld进行接口连接和编程控制,来构成低成本、大容量、高速度fifo的方法。该方法具有通用性,可以方便地移植到与其他ram器件相连的应用中去[1]。

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引脚。

  可以看出,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.4时序控制

  写入数据的时候,cpld需要模拟fifo基本的写操作时序:cpld接收到nwen(写使能,低有效)和wclk(写时钟,上升沿有效),即当nwen为低,wclk为上升沿时,将当前i/o上的数据写入。在数据写入ram的时候.cpld应按照hy64ud16322a的写时序来控制写操作。这里,cpld首先按照上述流程计算出当前数据应存放的地址,然后控制nwe信号,nwe为低时,数据自动写入ram。然后再写下一位数据。
  同理.cpld接收到nren(读使能,低有效)和rlck(读时钟,上升沿有效)时。将最先写入的数据读出。这里.cpld首先按照读数据流程计算出当前读出数据存放地址.然后控制noe信号(低电平有效),数据自动读出ram。然后再进行下一位数据读出操作。

  可以看出,影响所构建fifo读写速度的关键因素是twc,该参数也是决定hy64ud16322a速度的主要因素,因此.所构建fifo的理论速率应该接近hy64ud16322a的速率。

3 基于dram的设计与实现

3.1 dram结构芯片hy57v281620e

  一般来说。动态随机存取存储器dram(dynamic random access memory)是由大的矩形存储单元阵列与用来对阵列读和写的支持性逻辑电路,以及维持存储数据完整性的刷新电路组成。尽管操作较sram

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!