关键词:SRAM 同步 流通模式 流水线模式
1 引言
随着科技的发展和高速设备的不断涌现,数据传输率也越来越高。而由于传输方式的不同,各种高速设备在连接时能否实现可靠的数据交换就显得十分重要。高速双口SRAM的出现为解决这一问题提供了一种有效途径。IDT70V9289是IDT公司新推出的高速同步双口静态存储器,其容量为64k×16bit,具有设计简单,应用灵活等特点。
2 IDT70V9289的结构及功能
2.1 内部结构
图1示出IDT70V9289的结构框图,它主要由I/O控制器、存储器阵列、计数器/地址寄存器和一些逻辑电路组成。
图1
2.2 功能特点
·真正的双端口存储器,完全同步操作
3.5ns时钟建立时间,0ns保持时间(所有控制、数据和地址输入)
具有数据输入、地址和控制寄存器
·存储容量达1024kbit(64k×16bit);
·高速数据存取,其TCD(时钟上升沿与数据输入/输出的时延)为
商业级:6/7.5/9/12ns(最大)
工业级:9ns(最大)
·应用IDT公司的高性能CMOS技术,所耗低
工作时:500mW(典型值)
待机时:1.5mw(典型值)
·计数使能和重置功能
·通过FT/PIPE引脚选择任意端口的流通(folw-through)或流水线输出模式
·可对多路传输总线中的独立高位字节和低位字节进行控制
·LVTTL接口电平,3.3V(±0.3V)单电源供电
2.3 引脚功能(以左边端口引脚为例)
VDD:电源输入端,起滤波作用的旁路电容器应尽可能靠近电源引脚,并直接连接到地;
VSS:接地引脚;
CE0L,CE1L:使能端,当CE0L为低电平且CE1L为高电平时,电路工作。该引脚可允许每个端口的片上电路进入低功耗的待机模式;
R/WL:读/写使能,此端为高电平时读出,为低电平时写入;
OEL:异步输出使能;
A0L-A15L:地址同步输入端;
I/O0L-I/O15L:数据输入/输出端;
CLK::存储器工作时钟,所以输入信号在该时钟上升沿有效;
UBL:高位字节选择,低电平有效;
LBL:低位字节选择,低电平有效;
CNTENL:计数器使能,当时钟上升沿到来时,如果该引脚为低电平,则地址计数器工作,优先级高于其它引脚;
CNTRSTL:计数器重置,低电平有效,优先级高于其他引脚;
FT/PIPEL:流通(flow-through)和流水线模式选择,高电平有时为流水线模式,此时输出有效发生在CE0L为低电平且CE1L为高电平的二个周期。
ADSL:地址选通使能,低电平有效,优先级高于其他引脚。
3 应用举例
以IDT70V9289为核心,配以适当的控制信号,即可使不同传输方式的双路高速数据流实现无损传输。下面以某高速误码仪与CY7C68013型高速USB单片机的连接为例,介绍IDT70V9289的应用及应注意的问题。
3.1 读模式选择
在设计中,高速误码仪的Virtex_II XC2V250与CY7C68013进行数据交换,由于CY7C68013采用突发方式传输且传输速度高达300Mbit/s,而Virtex-II XC2V250只能检测连续数据流的误码,因此正好可以应用IDT70V9289实现高速数据流的无损传输。IDT70V9289提供二种读数据模式(流通模式和流水线模式)。为了实现高速传输和降低时序设计的复杂度,设计选择了流水线模式。下面简述二种模式的区别。
(1)结构差别
二者在写入过程中完全一样,都是通过输入寄存器缓冲数据,但在读出过程中,流水线模式通过输出寄存器缓冲数据而流通模式则没有。如图2所示,在流水线模式中输入寄存器和输出寄存器工作在同一时钟边沿。
(2)时序差别
结构差别反映在时序关系上就是流通模式的数据输出比流水线模式提前一周期,并与存储器阵列的读数据同在一个时钟周期,并与存储器阵列的读数据同在一个时钟周期,如图3所示,这样,可以实现地址输入和数据输出的同步,从而满足一些电路的时序要求;而流水线模式由于有输出寄存器,其输出引脚上的读数据在几乎整个时钟周期内都是可用的,因而为器件取数据提供最佳的建立时间,并允许在更高的时钟频率下进行操作,同时设计者也无需担心电路设计技巧和定时通路。更要注意的是:由于存在这种时序差别,设计者在选择读模式时,要考虑到相应的时序变化,以免造成读取数据错误。
3.2 电路设计
由于本设计的数据传输率高达300Mbit/s,而IDT70V9289的容量仅有1024kbit,所以必须采取边读边写的方式缓冲数据。但是,IDT70V9289并不允许双端口对同一地址同时进行读和写,也没有像以前的SRAM(如IDT7024)那样设计操作忙逻辑,而是制定了一套读写规则。由于这套读写规则比较复杂,为了降低时序关系的复杂度,本设计将IDT70V9289分成容量相等的二个区域,把地址预存入Virtex-II XC2V250和CY7C68013的RAM中。
当CY7C68013向Virtex-II XC2V250传输数据时,将Virtex-II XC2V250和IDT70V9289的片选端置低电平以启动这二个电路,然后再向IDT70V9289发送数据,同时通过CLKOUT端向Virtex-II XC2V250的CLKIN发送时钟,以使Virtex-II XC2V250定时读取数据;当CY7C68013发送512kbit后,即改变A0R-A15R引脚的值,同时Virtex-II XC2V250也通过内置计数器定时改变A0L-A15L引脚的值,从而将CY7C68013的二个存储区域交换过来,然后再按上述方式进行读写,如此循环下去。只要读和写的平均速率保持一致,就可以保证数据可靠传输。应用电路框图如图4所示。这样做不但充分利用了二个端口可同时进行存取操作的特点,而且巧妙地避免了同时对同一地址进行读写操作的冲突,从而达到了设计要求。
当Virtex-II XC2V250向CY7C68013传输数据时,也可以通过片选端启动CY7C68013和IDT70D9289,其余过程与上面所述类似,不过由于CY7C68013有内置时钟,为了保持时间一致,此时的时钟仍由CY7C68013提供。