但是 Singh 称他的小组使用 FPGA 主要有两个原因。首先是 FPGA 能使他的小组将大量功能从 PCB 上拿掉,集成到一片 FPGA 中,增加速度性能和节省 PCB 空间。第二个也是最有说服力的理由,Singh 说使用 FPGA 只是因为 ASIC 的单位批量有时无法分担掩膜、设计与工具的成本,并且最重要的还有风险(图 2)。Singh 说:“FPGA 已得到发展,在很多情况下,它们可以满足你对性能和密度的要求。如果你正在设计一款中等规模的中等级别 ASIC,你就该问问自己:‘我要花费 2 百万到 3 百万美元去做一个 90 nm 或 65 nm 的 ASIC 吗?或者我用 90 nm 或 65 nm FPGA 技术能否得到相同的好处。’”
Singh 指出,对于采用新架构、不需要像以往那样使用大量块的设计,他的小组更倾向于 FPGA 而不是 ASIC。由于 FPGA 可以重新编程,小组就可以尝试新的架构,当要修改时只需简单地重编程 FPGA。
与 Singh 的小组类似,Rozario 的小组亦更爱用 FPGA而不是ASIC,
主要是出于成本因素。Rozario 说:“当你是一家新兴公司并且资金紧张时,首先要做的事就是寻找一种 FPGA,因为它的开发成本低得多,并且没有掩膜费用。”
Rozario 称,他的公司希望在下一代产品中,用单片 FPGA 硬件实现很多软件功能,以实现功能的集成和提速。他说:“我们开始时确实不清楚要将哪些功能移到芯片中,哪些功能需要加速。”他青睐 FPGA 的原因是小组在进程后期需要加快速度时,能够在 FPGA 上增加或减少功能。“FPGA 最棒的地方是你一直有改变的选择权。”
尽管选择转用 FPGA 相当简单,但 Rozario 和 Singh 也指出用 FPGA 作设计需要经过一些学习。两个工程师都认为,你在决定采用 FPGA 后,下一步就是选择一款正确的型号。
确定 FPGA 需求
设计者需要从多个供应商那里查看有哪些可用的 FPGA 系列产品,找到性能、功耗与密度的正确组合。但购买时要记住:当从 ASIC 转向 FPGA 时,设计者需要了解的第一件事是确定一个性能等级指标,你购买的器件密度应比自己需要的高 20%。
对于 Singh 迄今使用最多的 10 种 FPGA,他表示大多数选择的因素是要符合公司对批量与性能的要求。他解释说:“在所有这些情况下,我们都必须从频率、I/O 时间和使用率各个方面对设计作全面分析”。他的小组使用了一种经验法则,即如果你正在使用设计总资源的 60% 至 75%,则从一种编译到另一种编译之间的小变动就会给你一个满足性能需求并在实验室中完成的好机会。不过他也指出,如果你跨越了 85% 的使用界线,就可能无法获得需要的性能。

Singh 称他的小组设计出使用率高达 95% 的 FPGA,并达到了性能目标,但花费了大量工作。Singh 说:“你必须非常熟悉 FPGA 及其工作原理。在 ASIC 领域,你可以编写 TCL(工具指令语言)原程序,并查询数据库以获得你想要的东西,但在 FPGA 中,没有这么成熟的工具。它们通常是基于 GUI (图形用户界面)的。”
Rozario 说,当他第一次在市场上寻找 FPGA 时,打动他的是供应商已经为满足多数性能和密度要求而改进了器件。然而,FPGA 仍然没有达到与 ASIC 相同的顶级速度或密度水平。如采用基于 SRAM 的最高级 FPGA,当按比例缩减功能,达到完全优化时,最高速度为 550 MHz,而 ASIC 的最高速度可以达到该性能的两倍。据 Xilinx 说,Xilinx Virtex-5 是现有最大的商用 65 nm FPGA,它有 33 万个逻辑单元,或大约等效于 1200 万个 ASIC 门。
Rozario 最初担心 FPGA 的性能局限。但 FPGA 的速度与密度都令他吃惊。他警告说:“如果你过去习惯于设计 ASIC,那么在 FPGA 上肯定必须降低对性能的期望。”Rozario 指出,在第一次设计时,他的小组使用了 80% 的 Virtex-5 LX 220 资源,并达到了设计项目的性能目标。
FPGA 供应商今天通常会提供自己器件的专用型。一个额定的 FPGA 产品系列通常有一种传统的门海 FPGA,以及一些面向特定市场的变型。有些器件面向网络应用,包括有硬接线的 SERDES(串行器/解串器)核;其它器件面向通信应用,带有硬接线的 DSP 块。所有这些都含有相当大数量的内存。例如,Xilinx 为高性能逻辑提供 Virtex-5 LX,为带串行连接的高性能逻辑提供 Virtex-5 LXT,而为带串行连接的高性能 DSP 提供 Virtex-5 SXT,为带串行连接的嵌入式处理提供 Virtex-5 FXT。