摘 要:开发ASIC日益昂贵,迫切需要一种能确保最少制造次数并获得可正常工作的硅片的设计制造方法。采用大容量和高性能的FPGA设计方法,这种成功性会更高。本文讨论在一般ASIC原型
设计情况下,这种FPGA设计方法的应用。
ASIC设计风险
就在几年前,开发IC几乎是很普遍的工作。逻辑设计者将逻辑实现提供给后端团队进行布局布线,送厂下单(Tape-out)几乎是自动的,基本上都能保证第一或第二轮投片成功。在此期间,ASIC库可以相对简单的一步一步地移植,这样有助于构造自身完整的设计。根据摩尔定律,硅工艺的发展是必然的,因为其在成本(更小的裸片面积)、逻辑集成度、性能和功耗上具有天然的优势。
因为半导体业界已经进入深亚微米时代如0.13 m和更低的CMOS工艺,专家们发现这是对传统物理学的挑战。特征尺寸比可见光的波长更小。为了处理新的波长,光掩膜的成本大大增加。另一个增加很大的部分是设计和验证成本。主要原因很简单――逻辑容量增长很快。开发代码(HDL)需要更多的时间――特征尺寸减半,三极管的数量翻两番。代码的复杂度和逻辑尺寸有着直接的联系。因为验证和逻辑容量呈指数关系,因此其成本尤其在90nm点上核心性能接近300MHz的情况下也呈爆炸性增加。即使采用0.13和以下工艺点上最新的结构化ASIC技术,单次ASIC制造的成本也在数十万美元范围。
图(略)
更快的性能、更快的投片时间、并行软件开发、避免昂贵的ASIC重制造和测试市场的快速现场试验都极大地推动了对使用FPGA进行细致的原型设计的需求。
ASIC和FPGA技术权衡
FPGA比ASIC的面市时间更短。它是标准的现成产品,具有灵活的逻辑结构和互连,实现指定的一组逻辑。这种方式下,经配置后就是一个ASIC,采用了ASIC类型的设计过程。因为FPGA设计需要非常少的验证,
FPGA的设计周期可以缩短很多。这也是现在更多的工程师即使在成品阶段也使用FPGA的原因。因为标准产品能更好地响应市场需求的变化,减小了ASIC所带来的投资风险。
在FPGA中,硬IP核如处理器或嵌入式存储器,采用了和ASIC实现的类似技术,因此具有可比的性能。因为FPGA的可编程性增加了延迟,所以ASIC必然在互连上胜FPGA一筹。由于这个原因,ASIC产品的功率更低。
若不是ASIC设计受I/O限制,ASIC比FPGA有更低的可变成本。另一方面,FPGA缩短了面市时间,有助于捕捉市场机会。推迟面市意味着销售额减少。这使得最新一代的FPGA在中小批量产品上是ASIC的一个替代方案。ASIC的隐性投资和延迟面市的成本通常不明显,亚太的一些客户也没有意识到这一点。不断缩短的产品寿命和终端市场的高度不确定性让客户不得不重新思考BOM成本。
在亚洲,绝大部分的OEM没有完整的ASIC团队,客户必须依赖ASIC设计公司或供应商提供ASIC设计服务。HDL代码开发完成后,客户的绝大部分时间是将设计交给厂商。这种方式的优势是他们不必投入巨大的人力资源和工具,缺点是他们无法对后端进行设计控制。综合至ASIC设计的布局部分成为深亚微米设计的一个关键的组成部分。没有完整的控制是设计完整性的一个致命弱点。
ASIC的主要构造单元是库标准单元。这是在芯片制造期间全定制的和定义的。这些单元是简单或复杂的逻辑功能。库也提供DFF或锁存器完成时序逻辑。在最新一代的FPGA如Altera的Stratix
II系列中,基本单元是自适应逻辑模块(ALM)。任何FPGA的基本单元都是在片内预定义好的。时序逻辑可以在预构建的寄存器中实现。用户不必担心时钟方案。FPGA基本逻辑单元的驱动强度是固定的,因此FPGA中的逻辑实现对扇出更敏感。
最新一代的FPGA是在90nm点上。Altera的Stratix II是采用90nm,1.2V,9层金属和全铜工艺制造的,内核运行速度达到300MHz。它可和ASIC的灵活性相比拟。ALM可以用做单个高扇入的功能,或分解成2个具有不同输入数目的低扇入功能。总之,ALM具有高度灵活的查找表配置,专用乘法器逻辑和共享算术链(非常适合于算术功能),进位链,寄存器链和寄存器反馈(对复杂的时序逻辑)。
Stratix II容量一览,以及它为目标ASIC进行原型设计提供的优势,见图1。
图1(略)
ASIC中是通过例化一个由存储器编译器生成的存储模块来实现存储器。在诸如Stratix II等FPGA中,有嵌入存储块。实际上,Stratix
II提供了TriMatrix存储方案,它有3种尺寸(512b、4Kbit和512Kbit)的存储块供用户选用。这允许在相对有限的环境下具有更多的灵活性,最大化有效存储器吞吐量,提升系统性能。Stratix
II中的存储器和任何90nm点上实现的存储器一样快,高达300MHz。它们可以实现为真双口模式和移位寄存器模式。
I/O是ASIC的重要部分,因此理解在原型设计阶段能用FPGA模拟什么功能是很重要的。在ASIC,I/O管脚用单元库中可用的单元来例化。通常,在FPGA中I/O是成组的,支持多种不同的标准,关键是要符合专用高速I/O的需求。
在FPGA有不同类型的互连进行布线,开发工具中的编译器会在不同情况使用不同的互连,同时也考虑时钟的分布。Stratix II FPGA也有大量的高性能PLL供选用,它们有极好的抖动性能。
Stratix II FPGA具有大量的高性能DSP块,将乘法器和累加器集成在一起形成多用途应用方式。DSP块可配置为9 9,18
18或36 36乘法器,可级联为更大的操作。它也有可选择的输入、输出或流水线寄存器,获得最大的性能。这种类型的硬IP通常在ASIC中也是没有的。因此,如果在原型设计过程中需要最大的实时性能,推荐从最初的ASIC设计开始进行修改。
重要的是要谨记ASIC中实现的组合逻辑通常比FPGA快,主要是因为ASIC精细的架构允许更细致的布线。FPGA可编程走线结构相对于ASIC的细致走线限制了逻辑级数。另一方面,包括I/O、存储器和DSP的关键路径也有相同的性能。因此,如果记住根据FPGA架构开发RTL代码,那么就能够获得最大性能的FPGA。在面积对成本优化中,ASIC的缩放是连续的,而在FPGA中是步进式的。二者之间的优化技术有一些不同:
ASIC
缓冲区大小
微小的布局和布线变化
单元交换
FPGA
复制逻辑
时序平衡
重构路径
即使FPGA在RTL阶段和布局布线阶段之间的时序估计没有很好的相关性,但是验证阶段没有很严格的要求,无需DFT(测试设计)和测试程序生成。这能很容易地满足50%以上的设计时间需求,可以大大改善整个开发进度。
ASIC和FPGA设计流程
不同见图2。
ASIC工具通常是脚本驱动的。在ASIC设计流程的布局布线阶段,需要进行时钟树综合和信号完整性检查。在Sign off送厂下单之前,还要进行布局后的静态时序分析和等效性检查这两个必备的阶段。在FPGA流程中,一旦STA完成后,设计通常可下载到FPGA上,立即进行在系统验证,几个小时内就可以修正错误。ASIC和FPGA在布局布线阶段上有很大的差别。在ASIC中,尤其是亚洲客户,P&R通常由设计公司或ASIC厂商完成。这时设计控制交给第三方。
图2(略)
FPGA的验证可视为简化的ASIC验证。因为基本的功能在仿真中经验证就可以开始在系统验证,所以在FPGA中没有一些子阶段,而ASIC的源码功能要经过细致的验证。片内调试工具如Altera的SignalTap
II(嵌入式逻辑分析仪)和SignalProbe(将内部节点连到未用的I/O管脚)能用来加快调试过程。这个阶段之后,用户能够继续增加DRT到ASIC源码中。
FPGA原型设计的考虑
最初的ASIC设计可根据FPGA架构分成I/O、存储器、IP和逻辑模块。门的数量应该包括IP和逻辑。假定每个LUT/FF平均对应12个ASIC门。
用户需要决定设计中使用的I/O数量,包括一些额外I/O,这样内部接口可以引出来观察。Altera工具套件提供了SignalTap功能,它也可以通过JTAG口进行调试,将逻辑分析仪安装到芯片中,I/O标准和时钟数量的需求也要列出来。因为I/O组的限制,有时需要选择未优化的FPGA器件。和ASIC不同,每个VDD/GND对的数量和SSO的布局对FPGA来讲不是问题。高速I/O应该进行这样的布局,使得PCB上的互连和跨交最少,简化了PCB走线。
FPGA和ASIC之间的存储器大小和类型可以相对容易地对应匹配。FPGA支持同步存储器获得最大的性能。这在编码过程中必须考虑。推荐选用FPGA中最快的速度等级。如果这不可行,那么首先建立一个最差数据通道电路的小型设计进行基准测试,获得对性能的判断。
总结
FPGA有许多ASIC不具备的独特的特性。通过利用FPGA架构通常能增强性能。逻辑和物理综合步骤在整个过程中是很重要的。它控制了最终的原型设计性能。也便于过程中进行细致的调整。
使用FPGA的实时原型设计是快速和成功地进行ASIC设计的重要元素。这种方式不能轻率地进行。尤其在将来的工艺点上ASIC开发费用日益增长情况下,情况更是如此。
|