QDR SRAM与Spartan3 FPGA的接口设计
扫描二维码
随时随地手机看文章
为了满足当前系统和处理器的生产量需求,更新的静态存储器应运而生。QDR SRAM就是由Cypress、Renesas、IDT、NEC和Samsung为高性能的网络系统应用而共同开发的一种具有创新体系结构的同步静态存储器。
1 QDR SRAM的介绍及其性能描述
1.1 QDR的先进性
现有的大部分SRAM都是在PC时期针对高效传输PC型单精度输入输出数据而设计的。在大多数的网络应用中,SRAM和记忆控制器之间的连续数据传输是必需的。在这些应用中,存储器的读和写操作之间要进行连续不断的变化。在这种情况下标准的同步管道SRAM等单一的输入/输出装置就不能很好地满足要求。零总线变换SRAM就是一种优化了的SRAM类型。它在读周期与写周期切换时不需要变换周期,从而使得总线利用率达到了100%。而对大多数的网络应用来说,零总线变换SRAM在数据吞吐量方面的提高还远远不够。QDR的出现则进一步改进了SRAM结构。
QDR就是指四倍数据速率SRAM,它是静态存储器的一种,是专为应付带宽需求极大的应用而设计的体系结构。它在一个时钟周期内可以高效地传输4个字节的数据。QDR提供了读和写两个分别独立的接口,从而满足了诸如ATM转换和路由器的性能需求。由于QDR SRAM的结构在数据访问时不需要变换周期且数据吞吐量大幅提高,所以保证了可以对同一地址进行同时访问。
QDR又分为两字突发结构(CY7C1302)和四字突发结构(CY7C1304)两种。这两种结构的不同就在于每次读或写请求的传输字数不同。下面就以CY7C1302为例来详细介绍QDR的工作原理及其与Spartan3系列FPGA的接口设计。CY7C1302是赛普拉斯公司生产的一种QDR SRAM。图1示出了CY7C1302的结构图。图中虽然CY7C1302有了分别独立的读写端口,但是地址总线还是为读写端口共用。地址总线的数据传输采用了DDR的传输方式,即:地址总线的前半个时钟周期提供读操作地址,而后半个时钟周期提供写操作地址。也就是在每个时钟周期可以完成4字的传输量。
1.2 QDR SRAM的输入状态描述
QDR SRAM有四个时钟:K,Kn,C和Cn。K和Kn是用来控制输入数据采样的,C和Cn则是用来控制SRAM数据输出的。所有的数据操作都是在K的上升沿进行的。QDR SRAM有一个简单的控制结构。两个控制信号:读控制信号(RPSn)和写控制信号(WPSn)分别用来控制SRAM的读和写操作的进行。这两种信号在K的上升沿时刻被采样。对QDR来说,地址的输入是读端口和写端口所共用的。对于CY7C1302来说,读操作是在K的上升沿时刻开始进行的,写操作是在Kn的上升沿时刻开始进行的。即地址总线的前半个时钟周期提供读操作的地址,后半个时钟周期提供写操作的地址。其数据线是单向的,在每个循环周期内可以传输两个字的数据。
一个时钟的上升沿可以使QDR SRAM在同一个时钟周期内实现对同一地址的读、写访问。这样QDR就会把写数据传输到读端口以确保把有效的数据输出至数据总线。这样就保证了数据的一致性。[!--empirenews.page--]2 低成本解决方案
2.1 用Spartan3作为QDR的存储控制器
Spartan3系列FPGA是由Xilinx公司基于成功的Virtex-II FPGA架构而研发的性价比较高的一种产品。Spartan3器件有如下特点:嵌入式18×18乘法器支持高性能DSP应用;片上数字时钟管理(DCM),无需外部时钟管理器件;分布式的存储器和SRL16移位寄存器逻辑能够更高效执行DSP功能;18KB 块RAM,可以用作缓存或是高速缓存;数字片上终端能够消除对多个外部电阻器的需求;8个独立的I/O阵列支持24种不同的I/O标准;Spartan3系列的FPGA独有的特性可以简化存储控制器的设计。图2是用Spartan3系列FPGA实现的存储控制器结构图。
该存储控制器的设计可以在深度扩展模式下实现对四个SRAM的控制。每个QDR SRAM会收到对各自的读写端口进行控制的相互独立的控制信号,而对所有的SRAM来说,地址和数据端口是共用的。
存储控制器是以QDR SRAM工作在单时钟模式下对其进行控制的,从而可以简化存储器接口。控制器工作在100MHz的时钟频率下,允许7.2Gbps的带宽。存储控制器有独立的读写状态机,存储控制器的控制是基于两位指令输入的形式来实现的。
2.2 QDR SRAM和Xilinx Spartan3系列FPGA的接口连接
Spartan3系列的FPGA独有的特性可以简化存储控制器的设计。Spartan3系列产品是业界成本最低的可编程逻辑电路。在Spartan3系列FPGA中,有DCM(数字时钟管理)模块,可以用来消除内部全局时钟网络的时钟歪斜,或者消除为片外其他系统组成部分提供时钟的过程中所出现的时钟歪斜。DCM中的DLL能够使控制器完成FPGA的片上时钟和QDR SRAM之间的零时钟歪斜。除此之外,DCM还提供其他的功能,如相位调解,分频和倍频。图3所示为DCM在存储控制器设计中的应用。
该设计的难点就在于如何满足CY7C1302的时序要求。所有的CY7C1302信号都被寄存在I/O缓冲器以及HSTL缓冲器中。在写周期的时间里,所有的信号必须满足那些数据建立和保持时间的要求。这就意味着必须应付来自Spartan FPGA(时钟输出)的传输总延迟,板的接线延迟以及QDR的记忆建立时间。所有的延迟总和必须少于写操作的时间周期,即要求:
Tco(FPGA)+Tpd(Board)+Tsu(QDR SRAM)实际:
2.5ns+0.6ns+0.8ns=3.8ns
可见时钟输出时间和QDR的建立时间值分别为2.5ns和0.8ns。因此对板延迟来说有个很充足的时间盈余,QDR存储器要求必须有0.5ns的保持时间。
在读周期时间,数据必须满足FPGA的建立和保持时间。
即:
Tco(QDR SRAM)+Tpd(Board)+Tsu(Spartan3)实际:
2.5ns+0.6ns+1.55ns=4.65ns
Spartan3系列FPGA的建立时间是1.55ns。再加上QDR SRAM的时钟输出时间为2.5ns,这些时间要求使得系统工作在100MHz时钟下就可以有很充足的时间盈余。为确保该控制器的正常工作,必须要求FPGA的可配置逻辑模块数不少于100,至少2个数字时钟管理模块,2个全局时钟缓冲模块以及119个I/O缓冲模块。若使用更快速的Spartan3系列FPGA可以使该设计的接口性能得到进一步的提高。
2.2.2设计的综合
经过综合以后的结果表明:完全控制器的逻辑图显示存储器和它的三路18位总线之间的接口以及主机和双重36位数据总线、18位地址总线的接口。Spartan3系列FPGA的内部时钟工作在200MHz,由于DDR接口在时钟的上升沿和下降沿均传输数据,所以外部总线的时钟只需100MHz。来自主机的36位读数据通路在内部就被分为两个18位的部分并分别设置了寄存器锁存。这两个寄存器工作在200MHz的时钟下,在时钟的上升沿和下降沿都只允许一个寄存器发送或接收数据。
该设计旨在利用低成本的FPGA实现高性能QDR SRAM的接口连接。故选择了具有低成本与丰富性能的结合Spartan-3系列的FPGA,它能够以最高的性价比实现完整的系统功能。该接口设计的实际意义更在于,Spartan-3系列FPGA内部具有的可配置I/O单元。因为通过在实现中配置相应选项,可使不同的I/O单元满足不同的I/O标准,从而使得Spartan-3系列的FPGA在通信领域中应用非常便捷。在该设计中存储器控制器必须工作在HSTL电压以便支持存储器和存储器控制器的输入输出的高速数据操作。
除此之外,在可编程的片上系统SOPC(System On Programmable Chip)中,为了简化系统的结构,提高系统的整体性能,必须接入外部存储器。SOPC技术的目标就是试图将尽可能大而完整的电子系统在单一FPGA中实现。这就必须在FPGA芯片上外接存储器以用来存储FPGA所要处理的数据或者在进行数据交换时用来对数据进行暂存以及辅助完成一些其他功能。SOPC的发展使得该设计的应用进一步推广。