1、 1 ASIC 和 FPGA 的混合系统 FPGA是英文 Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在 PAL、 GAL、 EPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点 。 FPGA 采用了逻辑单元阵列 LCA( Logic Cell Array)这样一个新概念, 我们知道它的 内部包括可配置逻辑模块CLB( Configurable Logic Block) 、输出输入模块 IOB( Input Output B
2、lock)和内部连线( Interconnect)三个部分。 FPGA 的基本特点主要有: 1.采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片 2.FPGA。可做其它全定制或半定制 ASIC 电路的中试样片 3.FPGA 内部有丰富的触发器和 I O 引脚。 4.FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 5.FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、 TTL 电平兼容。 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM 进行编程。用户可以根据不同的配置模式,采
3、用不同的编程方式。 加电时, FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,配置完成后, FPGA 进入工作状态。掉电后, FPGA 恢复成白片,内部逻辑关系消失,因此, FPGA 能够反复使用。 FPGA 的编程无须专用的 FPGA 编程器,只须用通用的 EPROM、 PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。 因此, FPGA 的使用非常灵活。 FPGA 有多种配置模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM 编程多片 FP
4、GA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可以将 FPGA 作为微处理器的外设,由微处理器对其编程。 实践证明:用 FPGA 设计 DDS 电路较采用专用 DDS 芯片更为灵活。因为,只要改变 FPGA 中的 ROM 数据, DDS 就可以产生任意波形,因而具有相当大的灵活性。相比之下: FPGA 的功能完全取决于设计需求,可以复杂也可以简单,而且 FPGA 芯片还支2 持在系统现场升 级,虽然在精度和速度上略有不足,但也能基本满足绝大多数系统的使用要求。另外,将 DDS 设计嵌入到 FPGA 芯片所构成的系统中,其系统成本并不会增加多少,而购买专用芯片的价格则是前者的很多
5、倍。因此,采用 FPGA 来设计 DDS系统具有很高的性价比。 1混合设计应用的出现 通常专用集成电路 ASIC( Application Specific Integrated Circuit)方法设计的电路在速度、尺寸及功能等方面优于用现场可编程门阵列 FPGA(Field Programmable Gate Array)方法设计的电 路。随着市场上对设计灵活性的要求日渐增强, ASIC 和 FPGA 混合系统变得十分必要。电路实现要求具有如下能力:可实时更改硬件配置,能支持单套掩膜下的多种设计方案,并能延长产品使用寿命,所有这些促使设计人员寻找一种可以将具有集成度特性的 ASIC 电路与
6、具有良好适应性的 FPGA电路结合起来的混合系统。 设计人员可以设计一个基本的方案,并在后续的设计中再利用该方案,而使改动最小,这种设计思想能够缩短设计时间、提高标准化程度。由于消费类和办公类产品从低端到高端覆盖范围很广,可以有效地运用这种基础设计方法 每个系列的产 品都可以加上不同的特性。打印机、传真机、计算机和数字成像装置都是利用这种设计思想的实例。 由于 FPGA 处理乘法与加法的速度很快,它也适合于 DSP 应用的设计。在构建 DSP系统时,可采用并行结构和运算算法来减少资源的使用,且其性能优于单用途或多用途 DSP 芯片的性能。同时采用 ASIC 和 FPGA 优化系统性能的 DSP
7、 设计人员将获得比单独使用两者中任何一种器件更好的性能。 ASIC/FPGA 混合系统适用于其他支持多种标准的设计,比如在单个芯片上设计支持 USB 接口、 1394 接口和相机接口的器件。与此类似,除没有定义的特性 或新标准外,其他都已成形,这种设计特别适合用 ASIC/FPGA 混合方法实现。如果不使用可编程逻辑,设计者必须在下列两种方法之间做出抉择:一是在明知 PCI 逻辑单元很可能会发生改变的情况下进行芯片流片;二是待到设计要求非常稳定时再行流片 这样很可能会影响最终产品的进度。如果同一个器件上既有可编程逻辑模块又有 ASIC 芯片,上述情形就可以避免。其他类似的问题,比如说不同尺寸或
8、是输入 /输出方面的要求都可以在 FPGA 设计部分予以解决,而不是一有改动就要改变掩膜或制版。 在电气测控系统中,常常需要采集各种模拟量信号、数 字量信号,并对它们进行相应的处理。一般情况下,测控系统中用普通 MCU(如 51、 96 等单片机或控制型 DSP)是可以完成系统任务的。但当系统中要采集的信号量特别多时(特别是各种信号量、状态量),仅仅靠用普通 MCU 的资源就往往难以完成任务。此时,一般只能采取多MCU 联机处理模式,或者靠其它芯片扩展系统资源来完成系统的监测任务。这样做不3 仅增加了大量的外部电路和系统成本,而且大大增加了系统的复杂性,因而系统的可靠性就会受一定影响,这显然不
9、是设计者所愿意看到的。本文所提出的一种基于 FPGA技术的模拟量、数字量采集与处理 系统,利用 FPGA 的 I/O 端口多,且可以自由编程支配、定义其功能的特点,配以 VHDL 编写的 FPGA 内部执行软件,能很好地解决采集的信号路数多的问题。因为用 VHDL 编写的执行软件内部对各组数字量是按并行处理的,而且 FPGA 硬件的速度是 ns 级的,这是当前任何 MCU 都难以达到的速度,因此本系统比其它系统更能实时地快速地监测信号量的 变化 2经济因素影响混合系统的使用 尽管从技术上可以将 ASIC与 FPGA相结合形成混合系统,但除非它在经济上合算,否则也不可能获得设计人员的青睐。现在我
10、们就来研究这个混合系统背后的经济 因素。 要利用 ASIC 的性能与密度优势,设计人员必须接收比 FPGA 设计更高的 NRE(非经常性工程成本)和更长的 TAT(周转时间)。与现成的 FPGA 不同,每个 ASIC 设计都需要定制的用于硅晶制版的掩膜。自定义的掩膜能使得线路和内部连接,以使其更适于特定应用的需要,应而具有性能好、密度高的优点。然而,掩膜的成本随节点数的增加从而增长很快(几乎每增加一个节点就翻倍),因此,多数情况下掩膜成本占芯片成本的很大一部分。 举例来说,假设一组掩膜的花费为 1 百万美元,对于只需用 1000 片这种芯片的应用系统而言,单个芯片的成 本远远超过 1000 美
11、元,因为掩膜的成本(包括许多其他的费用)必须由所售芯片分摊,所以只有该类 ASIC 芯片的需求量越大,单个芯片的成本才会下降。 相反, FPGA 是标准化产品,对于少量的设计过程,它的掩膜费用由大量的用户和芯片分摊,所以所售出的单个芯片上的掩膜费用很小。结果,对于每个技术节点都有一个用量门限,低于这个数值时采用 FPGA 芯片比用更小的 ASIC 芯片更为划 算。周转时间 TAT 是另一主要的价格因素,直接影响到许多设计的面市时间。通常 ASIC 设计从布线到最终形成产品大概需要 2-5 个月,而如果采用 FPGA,一旦顾客的 RTL(寄存器传输级)描述方式确定下来,通常 1-4 周就能完成。
12、 有时,客户需要采用多种设计流程,这使得有关 NRE 和 TAT 方面的问题更为复杂。由于每个 ASIC 设计都需要一套不同的掩膜,所以如果客户发现完成的设计存在逻辑错误或是想再增加一些功能的话,那就必须从头开始另外一次 ASIC 设计过程,这需要额外的 NRE 和硅晶制版时间。随着硅制作技术的不断提高及芯片设计 日趋复杂,设计校验往往变得更为困难,出现逻辑错误的可能性也大大增加。多数情况下,设计人员迫于产品上市时间的压力会在布线时进行设计校验,有时会超出芯片流片的范围,这样就很有可能要对芯片进行逻辑更新,使单片芯片的成本增加。 4 总而言之,与 FPGA 设计相比,如今的 ASIC 设计能使
13、芯片具有更好的性能和更小的体积。但是,过高的 NER 使得对非大批量生产,尤其对要求进行多种设计流程的产品而言,价格非常昂贵。 3混合 ASIC/FPGA 解决方案 说到混合 ASIC/FPGA 系统,与 ASIC 系统一样,必须购买原始掩膜。但是当将 FPGA芯片与 ASIC 想结合时,就可使用可编程电路使单片芯片同时满足多种应用。这就有可能放弃原来的多重设计,某些情况下避免了费用高昂的重新设计。如果客户要求用相似的 ASIC 芯片来制造同一系列产品,就可以将 FPGA 线路与基础 ASIC 逻辑单元想结合,并根据需要进行配置以满足多种应用要求。类似地,在后续校验过程中用于纠正错误或者是为适
14、应市场变化所需要的逻辑更新,均可以采取适当的嵌入 FPGA 内核的办法加以解决。问题是如果使用 FPGA 和 ASIC 两片芯片能达到同样的结果,为什么还要把 FPGA嵌入 ASIC呢?答案还得从技术 和经济两方面因素说起。从技术层面来看,对于某些特定的应用,嵌入法能以更低的功耗获得更高的系统性能。在 ASIC 芯片中嵌入 FPGA,信号必须从 ASIC 传到 FPGA,然后再返回 ASIC,这样就避免了四次芯片边界延迟,两次卡交叉,以及由此引起的功耗。由于采用了 ASIC 和 FPGA 的片上连接,节省了 ASIC 输入 /输出端口。 从经济层面来看,嵌入法应该是更为廉价的选择。正如我们即将
15、讨论的那样, FPGA结构并不需要在基础 ASIC(与嵌入式快闪存储器和嵌入式 DRAM)之上或者之外添加任何半导体处理流程。 ASIC 成本的增加与嵌 入式 FPGA 内核所占据的面积有关,但是却节省了第二个芯片的组装、测试和封装费用。 在某些情况下,如果在 ASIC 上嵌入 FPGA 并不需要重新设计系统,采用混合结构会非常有利。例如,如果芯片的用量高达 250000 片, 5 万个门的嵌入式 FPGA 具有较高的性价比。类似地,如果芯片的用量高达 100000 片, 1 万个门的嵌入式 FPGA 比双通路 ASIC 设计流程,那么相比 ASIC 方法,采用嵌入 FPGA 方案就更为划算。
16、这是因为需求量小时,附加设计过程所需的掩膜费用(和 NRE)占有单位芯片成本较大的比例,该附加成本比采用嵌入式 FPGA 电路所需要的较大面积的母片所产生的额外费用要多。由以上分析可知技术与市场趋势两方面的要求是混合型 ASIC/FPGA 系统得以发展的主要原因。随着科技的发展,掩膜成本越来越高,这使得在许多应用中多重设计流程成本过于高昂。尽管如此,让我们倍感幸运的是,技术的发展同时使得将大量的FPGA 逻辑门嵌入 ASIC 电路成为可能,足以解决某些设计更新问题;否则,就需要采用额外的设计流程。 4混合系统产品总览 IBM 的 Cu-08( 90nm) ASIC 产品是 IBM/Xilinx
17、 最早的混合产品(集成 Xilinx 公司的 FPGA 技术) 。它由具有不同尺寸的三种 FPGA 模块组成。在同一芯片上可以嵌入5 多个模块,各个模块的尺寸可以相互混合和匹配。 具体来说,要将 FPGA 内核移植到与 ASIC 产品所采用的半导体加工相同的半导体加工工艺上。移植过程中所遇到的问题与那些第三方 IP 移植的情形相类似。最大难点之一就是芯片的全面物理验证。通用的设计规则和晶体管设计要点多不同厂商间的IP 兼容性要求相当严格。如果检测平台和验证软件能够处理不同的设计规则,那么微小的差异是可以接受的。随着越来越多的厂商共享 IP,很可能需要设计这类具有较大灵活性的工具软件。 为了确保
18、 FPGA 的嵌入能与 ASIC 的其余部分相兼容。必须在金属层数的选择上相一致。例如 Cu-08 混合系统, FPGA 模块中配置了 5 层金属层,这就需要对 FPGA 内核重新布线,它原来是为拥有 9 层金属层的标准产品而设计的。 作为重新布线工作的一部分,设计 FPGA 模块的功率分配时应使其能与 ASIC 模块的功率分配方案融为一体。注意要确保 FPGA 模块需要的功率密度在 ASIC 模块所供应的范围之内。由于广泛采用传输门结构, FPGA 模块要求用 1 .2V 标准电压下,而系统中其他的部分则工作在更低的电源电压。 嵌入式 FPGA 模块由可编程逻 辑块、配置逻辑、测试接口逻辑和
19、与芯片内网络控制相关的简化 I/O 缓冲构成,同时支持多种终端用户配置模式,包括 JTAG 调试端口、串行和并行模式。每个 FPGA 内核可在不同时间配置,所以可以对所以 FPGA 内核即时重配置。 为设计新型混合芯片,人们正研制一种改进的设计方法,见表 10.1,其设计流程包含两种成熟的设计方法: IBM 的 ASIC 设计流程和 XILINX 和 FPGA 流程,还包括几个第三方销售商的合成工具。采用 ASIC 技术可将嵌入式 FPGA 与 ASIC 某层模型融合成一体。利用 XILINX 工具,可设计 FPGA 流,包括设计 FPGA 的时序收敛。设计者选择使用约束条件或者是从 XILI
20、NX 工具流中详细的时序方法使 FPGA 内核接口处的ASIC 系统时序收敛。如果先于 ASIC 设计就已知 FPGA 的配置,那么实际的时序信息就可以从 FPGA 工具传至 ASIC 工具。如果嵌入式 FPGA 的配置未知,那么可利用时序信息完成 ASIC 设计,进而完成嵌入式 FPGA 设计。如果在 ASIC 模块制作过程中突然要改变嵌入式 FPGA 的设计方案,那么最终的时序信息将由先完成的 ASIC 模块传递给FPGA 工具,使新的 FPGA 模块设计满足时序闭合要求。 芯片的逻辑设计必须先分割 再进行最后的合成。用做 FPGA 的逻辑设计必须与用做 ASIC 的逻辑设计分开处理。当采
21、用多个 FPGA 模块时,各个模块的设计与优化都必须独立完成。 ASIC 设计流程中处理 FPGA 模块与处理其他大的可配置模块相似,只是在端口分配上有所不同。在 ASIC 设计的初始阶段,各个嵌入式 FPGA 模块的端口分配可以调整以满足布局规划或时序要求。一旦 ASIC 的最终设计完成,那么接下来 FPGA模块配置时的端口分配就固定下来。 6 IBM 的 ASIC 设计方案和 XILINX的 FPGA 设计方法都已经有相关的书目可以参考。正如所预料的那样,混合系统 设计方法的大部分问题都体现在这两种方法的结合处。两种系统之间的通信机制可以通过创建数据转换器来完成,然而,由于传统的 ASIC和 FPGA 设计流程存在明显的结构性差异,怎样在两个系统之间达到最优确是个难题。7