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

网友投稿 311 2022-11-07

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

1 引言

2基于SRAM的设计与实现

2.1 SRAM结构芯片HY64UD16322A

2.2系统硬件设计

图1是HY64UD16322A内部结构以及与CPLD接口设计的系统连接图。可以看出,HY64UD16322A由地址译码、逻辑控制模块以及大容量存储阵列组成。CPLD接收到FIFO控制信号.按照该SRAM读写时序要求完成相应的读写操作.再通过所构造FIFO的数据输入输出和状态控制接口返回。

2.3指针算法程序设计

2.4时序控制

同理.CPLD接收到nREN(读使能,低有效)和RLCK(读时钟,上升沿有效)时。将最先写入的数据读出。这里.CPLD首先按照读数据流程计算出当前读出数据存放地址.然后控制nOE信号(低电平有效),数据自动读出RAM。然后再进行下一位数据读出操作。

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

3 基于DRAM的设计与实现

3.1 DRAM结构芯片HY57V281620E

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实验结果和分析

还需要注意:由于所采用的RAM只采用一个数据总线作为输入输出,因此在写数据的时候不能进行读操作。而常用FIFO器件可以同时读写。所以.如果要在同一时间内进行读和写操作,那么需要在一个FIFO读写时钟周期内对RAM进行读写等多个操作,这时所构建的FIFO速率将降低。

此外.在与DRAM构建高速FIFO时,由于存储块选择需要一定时间操作,因此跨块存储操作在频率较高时会影响正常的数据读写,出现个别数据丢失情况。而且当某段时间进行刷新操作时,有突发数据需要读或写,这时不允许中断。解决这种问题的办法是用一个I/O引脚(nREADY)标识出当前所构建的FIFO是否可读写,如果有上述情况发生,则nREADY为高,可以读写时为低。

常用的FIFO器件还有半满、接近满、接近空等状态指示,可以在上述构建FIFO的基础上加上简单的逻辑控制,计算StartPos和EndPos之间的差值,根据当前是写操作还是读操作来指示。其他状态信号也可以通过CPLD经由逻辑运算很方便地实现。同时,读和写同步时钟可以不一致。这样就可以很方便地构成同步或者异步两种FIFO,具有很好的可扩展性。

5 结束语

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:体验有奖 | 1 分钟 Serverless 部署掌上游戏机,“一行命令”找回小时候的乐趣!
下一篇:二维数组每行最大值 (分别每行进行比较)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~