莱迪思半导体公司不久前刚刚推出一款最新的针对网络接口卡的FPGA产品,其中特别设置了一个高速QDR II SRAM存储控制器接口,意在帮助缓解系统设计工程师在和高速QDR II存储器打交道时可能面临的时钟问题。不过市场上为QDR II定时问题专门考虑的FPGA还不是很普遍,同时 ASIC面临和QDR II接口又该这么办?这就要求系统设计工程师对问题的本质有一个比较全面的了解。

  当然,本文并不打算手把手教你具体处理特定的定时问题,但想提醒你有哪些可能的“陷阱”隐藏在节奏日益加快的时钟信号里,使你的系统达不到预想的性能,甚至更糟:在处理关键任务时突然死掉。如果你是igmaRAM的拥护者,你也不妨看一下,因为类似“心律不齐”等问题造成的伤害其实是无处不在的,尤其是当网络处理速度在向10GHz以上挺进时,时钟问题会让每一个系统设计师常常感到心绞痛!

  QDR II定时问题为什么变得重要?当然首先是QDR IISRAM在网络产品应用上的前景看来非常光明。尽管有SigmaRAM阵营的挑战,但QDR阵营现在似乎非常稳固,连Xilinx这样SigmaRAM阵营的伙伴也开始推出支持QDR的FPGA产品。“2004年以后,网络基础设施产品中的SRAM将以QDR II/DDRII占主导,带宽将向72Mb/管脚宽展,时钟速度接近300MHz。在经历2001以来的衰退后,市场容量有望在今后一两年里回升到4亿美元以上。” 赛普拉斯半导体公司存储器产品部高级应用经理Mathew Arcoleo介绍说。

  QDR II同步静态储存器被认为非常适合用来搭建网络接口设备中的各种硬件链表、查询表以及数据缓冲器等诸如此类的玩意。工程师们承认,在网络通讯设备中,储存器并非关键芯片,但如果没有使用好它,再先进的网络处理器也无法把其性能发挥到极至。Mathew Arcoleo则进一步指出:“每一代新的存储器技术架构的推出都对系统设计工程师提出某种新的挑战,例如,对于NoBL(无总线延时)架构的产品,设计中的挑战是总线竞争,对于QDR和QDR-II来说,时钟信号的定时是新的挑战。”

  为此,他在最近一系列有关存储技术及其应用的国际研讨会上,一再不厌其烦的强调这一点,他认为这是摆在世界上所有通讯系统设计工程师面前的重大挑战-不单纯是印度或中国这样国家的设计师的问题,他们接触最新技术和产品的时间实际上已经和他们的欧美同行接近同步。Mathew Arcoleo指出,解决这些挑战除了QDR产品的供应商必须和网络处理器和FPGA供应商等加强合作以外、供应商还必须为系统开发厂商提供更细致的参考设计。此外,系统设计师还必须从 “单一时钟控制全局”这样传统的思维习惯中解脱出来,而QDR是目前最为成功的采用读-写时钟定时信号分离的产品,同时QDR II更要求在接近10皮秒的数量级、精确控制时钟信号的通道偏移、相位抖动和时钟信号占空比等。

  QDR同步静态储存器专门针对患“带宽饥饿症”的应用而设计,不过系统设计师必须克服它和FPGA、ASIC之间的一系列可能的接口问题。基本要点是QDR较之以前使用的SRAM其数据有效窗口更窄,结果留给存储器接口逻辑电路的“建立时间”和“保持时间”的可调余地就很小,因此,当操作频率增加时,锁存有效数据也就变得更加困难。QDR II在保持和QDR功能和架构一致的前提下,还想进一步提高性能。原则上,写操作和QDR没有什么两样,但读操作却有所区别。在执行读操作时,地址线和控制线的处理还是老样子,但在QDR II上,从读时钟的上升开始,第一个有效数据稳定在数据线上要多加半个时钟周期的等待时间。之所以这样,是为了缩短Tco参数(时钟变化沿口到数据有效沿口的时间差),以便系统时钟频率可以被进一步得到提升。

  QDR II还提供一对位相相反的所谓的“反射时钟”信号,系统设计师可以利用它们来更好地锁存读出的数据。在某些系统中,存储器和主控单元之间的信号线长度可能相当长,在高频下,要在准确的时间“捕捉”到输出数据有时变得相当头痛。“反射时钟”信号总是和到达存储器的时钟信号形影不离,同时提前数据有效0.2纳秒发出一个正脉冲并持续保持这个信号直到数据输出完成后的0.2纳秒才结束。“反射时钟”信号就好比是“消息树”、在“鬼子进村”以前就通知人们做好迎接的准备,系统设计师可以很好地利用QDR II上的这颗“消息树”来克服高频时、因信号线长度不一致性等造成的读取问题。

  还有一件事需要设计师们引起注意的就是尽可能让你系统中的定时信号保持精确和完美!例如,你馈送给QDR II芯片的反相定时信号最好严格保持180度的相位差,同时每一路信号也请严格采用50%的占空比。你如果不能在这些方面做得尽善尽美,上面提到的“消息树”将不再那么管用,输出数据也可能变得飘忽不定。这时你如果还不致力于改善定时信号的质量,反而拼命调试诸如“建立时间”和“保持时间”这样细枝末节的东西,你可能永远是在数据线上“捕风捉影”、最后无功而返。

  最后提一下QDR II上的DLL(Delay Locked Loop)电路,这是QDR II相对于QDR的一个改进,它把数据有效窗口的宽度拉长了30%,有助于系统更稳定的读出数据。当然这不是没有代价的。撇开DLL的机制和其在芯片上的实现不谈,DLL电路要很稳定的工作就要求定时信号的相位抖动控制在很小的范围内。相位抖动反过来看就是定时信号周期的稳定性,例如一个4纳秒周期的信号(相当于250MHz的频率),我们要求其相邻两个周期的周期误差小于0.2纳秒。如若不然,DLL电路可能时不时地被锁住。另外,DLL还要求为芯片和时钟电路供电的直流电源有相当的稳定性(低波纹)。

  你可以不理会这里提醒你的一切,在2脉冲突发数据模式下,采用一组时钟把QDR II当作普通的SRAM来使用,不过这看上去不和潮流也不合逻辑,因此你要考虑在4脉冲突发数据模式下,把QDR II的性能发挥到极致。这时你将更多体会到Mathew Arcoleo所说的“挑战”这两个字的正真含义。