如何选择数据缓冲器设计?
作者:市场工程师 Casey Springer 时间:2006-10-15 00:25 来源:IDT 公司
自从 80 年代中期FPGA 面世以来,就为工程师提供了一个创建硬件原型平台。可重复编程,擦写的功能使设计者有能力来不断完善设计.
这些同样的特性也引起了教育机构的广泛关注。采用FPGA,学生们能快速建立基本的系统构造和研究基本逻辑和存储器的操作。此外,FPGA 固有的可重新编程特性可以让学生们快速学习不同的设计选项和演示“假设分析”。同时也使教授们能够应对技术方面的持续变化,并采用适当的结构和课程保持与行业趋势的一致。最重要的是,学生们采用FPGA 可以节省大量在电路板上为芯片布线的时间,把更多的精力投入到设计方面而不是构建方面。
在这些课程中,该技术被广泛地使用在系统和计算机架构中,许多年轻的工程师在工作中,考虑潜在设计选项时首先想到可编程逻辑是不足为怪的。然而,随着对可编程逻辑的日益依赖也给教授电路设计带来了经常被忽略的一些问题。这使许多年轻的工程师在创建系统的时候,没有意识到现在有许多可选择的技术能够解决他们在设计方面的挑战。在许多情况下,这种行业选择的知识缺乏与实践设置经验的缺乏是有关系的,这种专门技术的缺乏直接影响到他们设计高性能、低成本产品的能力。
内嵌的缓冲在线编程的数据缓冲应用趋势出的一个最好的例子。多年来,FIFO 和多端口存储器一直是资深设计者创建高性价比的数据缓冲子系统的事实上的标准。然而,随着FPGA 存储器密度的增加,设计者们已经选择使用片上存储器替代分立的FIFO 或多端口存储器的功能。
对高级系统来说,把分立的FIFO 或多端口存储器功能集成到FPGA 似乎很有道理。将多个数据缓冲器和数据控制功能集成一个芯片中,提供了一个更为优秀的解决方案。其吸引力在于能使设计者减少元件数量和最大限度地缩小电路板的空间需求。为了帮助设计者,FPGA 供应商提供了一系列标准化的设计构建模块来加速开发进程。
但是,优秀的解决方案需要一定的成本。高密度的FPGA 并不便宜。当数据总线100 MHz 以上,同时需要更高密度的缓冲器时,那就要更加昂贵的FPGA。性能也可能成为一个问题。当工程师把FIFO 或多端口存储器功能集成到可编程逻辑单元时,一些性能局限并不是显而易见的。在许多情况下,采用分立元件或结合小型FPGA 可以提供更为理想的解决方案。
在没有意识的情况下问题产生了。假定教育机构过分依赖可编程逻辑,那么今天的许多工程师就失去了对分立的专用存储器最新发展的认识,例如FIFO 和多端口存储器。现在,半导体供应商可提供密度范围高达18 Mbits 的FIFO 器件。读写端口能够完全独立地以高达250 MHz 的速度运行,而且DDR 选项能使每个端口性能提高达20Gbps。众多的的可选择端口特性使用户可选择总线的宽度、I/O 电压、数据速率和同步或异步操作。集成标记操作增强了器件的功能。最重要的是,整个产品线的引脚兼容性使设计者很容易提高密度和速度。
多端口存储器有类似的发展过程。设计者可选择每个端口不同总线宽度,支持8 到72 位之间的器件。这些器件在同步模式下速度高达200 MHz 或在异步模式访问速率达10 ns,同时密度高达36 Mbits。目前的器件可支持的内核电压范围为5V、3.3V、2.5V 或 1.8V,I/O 电压为5V、3.3V、2.5V、可选择3.3V 或 2.5V、或 1.8V。还有许多特殊功能可供使用,包括全边界计数器、独立字节能力、冲突检测、中断、信号和忙仲裁。与FIFO 一样,许多的不同容量的多端口存储器使用相同封装引脚。
性能局限性当一直被教育使用FPGA 的工程师设计数据缓冲子系统时,他们自然地倾向于把FIFO 设计成FPGA。然而许多人没有意识到,因为他们设计中的FIFO 数量的增加使他们面临着性能局限性的问题。通常,这些工程师使用来自领导供应商的工具,自动地将多FIFO 映射到单个物理存储器区块中,在多特定用户FIFO 之间产生时间域所需的多工逻辑。因为每个独立的FIFO 端口必须一起进行多工化,所以每个FIFO 端口的最高工作频率与映射到设计中的FIFO 的数量成反比。
当每个FIFO 器件利用其时钟独立运行时,数据、控制输入和状态标记,FIFO之间总的存储带宽是共享的。当一个FIFO 器件的读写操作启动时,时序器电路会在快速的TDM 时钟区域存取物理数据。之后,时序器电路快速访问时分多工(TDM)时钟域的物理存储器。然后,时序器把信息传回到FIFO 端口的时钟域完成存储存取。因为时钟域的传输,FIFO 器件的性能受到时序器电路的速度和使用的FIFO 数量固有的限制。实际上,一些领先FPGA 供应商推荐需要在高性能设计中把他们器件的 FIFO 数量控制在10 个之内。

图1:由于嵌入的双端口存储器尺寸的增加,系统必须增加额外的存储器区块。这意味着一些存储器将会更加远离输入/输出(I/O)和逻辑门,从而延长了启动时间,并降低了性能。
在把一个FPGA 配置成具有双端口能力时,也会有同样的性能问题出现。在许多这种类型的应用中,FPGA 往往和ASIC 连接在一起。性能由三个主要因素控制:内在速度或从双端口写入和读取信息的速度、建立时间或数据在ASIC 输入变得稳定需要的时间,以及最高速度或外部ASIC 获得双端口信息的速度。
因为在输入的数据稳定之前ASIC 不能运行,建立时间就直接影响到速度的提升。由于设计者在FPGA 中使用了大量的存储器,所以某些存储器会离I/O 和逻辑门很远。结果,内部写脉冲的长度就会变化,并导致建立时间延长,最后使性能降低。在一些情况下,由于减少了建立时间,一个内部速度超过200 MHz的FPGA 将只会表现出最高120 MHz 的速度或者更低。相反,建立时间和最高速度为200 MHz 的双端口存储器则会保持恒定,并明显快于整个存储器密度范围的FPGA。如果设计者选择小型FPGA 和外部多端口,性能就只会受FPGA 的I/O 的限制。

图2:内部 FPGA 双端口存储器的模拟启动时间
面积和成本的考虑封装面积是另一个有时带有欺骗性的需要考虑的问题。如前所述,在许多情况下,把一个数据缓冲器设计集成到一个单FPGA 可以在低密度情况下显著节省占板面积。然而,随着密度的增加,空间节省并不明显。在许多情况下,元件数量越多,却可出乎意料占用更小的空间。
例如,随着设计者将小型40K 门 FPGA 转向大型 8M 门阵列器件,封装的尺寸几乎以6 倍的速度从256 引脚球栅阵列封装(BGA)增长到 1152 引脚 BGA 封装。相反,FIFO 和多端口存储器在忽略密度的情况下,可以提供相同的 256 引脚的BGA 封装。在这些情况下,使用一个非常大的FPGA 增加存储器容量不会实现最小的占板面积。在频谱的高密度方面,设计者可以通过结合小些的FPGA 和足够的门,采用外部FIFO 或多端口存储器来实现所需的逻辑功能,以达到更为有效的结果。
在许多设计中成本是至关重要的,经常迫使设计者折衷其性能。数据缓冲器设计也不例外。不过,对FPGA 存储器和分立存储器仔细的成本分析可以带来最具成本效益的选择。
FPGA 和FIFO 存储器每比特成本之间的比较说明了分立存储器器件和FPGA之间主要的区别。如同任何分立存储器器件一样,FIFO 和多端口的每比特成本随着密度增加都会按合理比例持续减少。当存储器嵌入到一个FPGA 里时,价格就会比一个分立器件高,其比例类似于FIFO 和多端口达到大约256K 的比例。如果密度高于256K,FPGA 每比特成本就会以一个快速的比例增长。在高密度的情况下,FPGA 存储器就会变得很昂贵。

图3:FPGA 与 FIFO 增加的成本对比
这个区别对于设计者重要的暗示就是,它迫使他们在设计中不断增加存储器的数量。当设计者已经超了过一个 FPGA 的存储器容量时,他们必须转移到下一个更高密度的器件。更高容量的FPGA 不仅迫使设计者为额外的存储器付费,也迫使他们购买额外的逻辑嵌入在更高密度的FPGA 里。此外,高密度的FPGA 也要求大的封装来处理额外的 I/O,所以也要牺牲电路板空间。使用分立的FIFO 或多端口器件的设计能够利用引脚兼容封装的下一代高密度器件,来增加额外的存储器IC或替代现有的存储器,从而简便地扩展容量。因此,使用分立器件增加存储器的成本实际上保持不变,使用FPGA 增加存储器的成本却以逐步上升的比例增加。

图4:Virtext-II 与 IDT 密度/成本比较 - L5 速级
引脚兼容的分立FIFO 和多端口存储器系列的可用性也在很大程度上影响设计的灵活性。它使设计者能够升级性能或推出另一个有不同性能的终端产品。改变FPGA 里的设计实现,通常需要重新编辑、改变计时和进行其他调节。
可靠性是设计中需要考虑的另一个问题。缩小工艺尺寸和降低工作电压有助于增加存储器的密度。但是,降低容量和降低电压也会增加SRAM 单元里的软错误比例。由于FPGA 比FIFO 和多端口更趋向采用更小更低电压和尺寸,也会出现高比例的软错误。工作在高电压下的使用FIFO 和多端口的存储器将很少受到软错误的影响,而且可以提供更高的性能。

图5:用于高性能路由器的40 Gbps 解决方案 —— 单数据率/双数据率TeraSync FIFO 器件可提供高速路由器入口接口所需的功能

图6:低功耗双端口器件是多媒体智能电话的理想之选,可提供4K×16 和8K×16的配置,实现高达290 Mbps 的每端口数据率
结论在工程设计教育课程中使用FPGA 的最新趋势为学生们和教育者带来了许多重要的好处。然而,那些一直接受使用可编程逻辑培训的工程师们应该意识到,他们所受的教育并没有揭示出所有潜在的设计选择。由于数据缓冲器应用需要低于512K 的比较低的存储器密度,时钟频率也低于100 MHz,将该设计集成到一个单FPGA 中常常能够提供最理想的解决方案。然而,随着缓冲存储器的需求增长和时钟频率的增加,设计者会发现分立FIFO 和多端口存储器高性能和低成本的特性将会提供独特的优势。