FPGA vs ASIC对比

来源:半导纵横发布时间:2024-09-06 14:09
设备
生成海报
FPGA,现场可编程门阵列是一种集成电路,其中加载了固件,该固件定义了芯片的功能。

现场可编程门阵列 (FPGA) 是一种可编程逻辑设备,其内部配置可以通过软件或所谓的“固件”设置。

这使得 FPGA 功能可以根据需要进行更新甚至完全改变,因为 FPGA 固件在电路中更新。

FPGA 可编程逻辑组件(或称逻辑块)可以由逻辑门、存储器元件或存储器块等几乎任何元素组成。

这提供了相当程度的灵活性。

FPGA 应用

FPGA 的可重构特性意味着它可用于多种不同的应用。

FPGA 用于需要复杂逻辑电路和系统的许多不同领域—从各种逻辑电路到高性能处理器。

ASIC 原型设计:ASIC 或专用集成电路通常用于大批量生产,但开发成本非常高,而且更改非常昂贵且耗时。一旦制造出 ASIC 芯片,其功能就固定了。此外,ASIC 芯片通常非常复杂,为了确保功能正确,通常在开发甚至早期生产期间使用 FPGA 代替 ASIC 芯片,直到所有问题都得到解决。

软件定义设备:如今,设备越来越倾向于软件定义,例如软件定义无线电,这一概念已广泛应用于许多技术领域。软件定义测试设备也正得到越来越广泛的应用—测试仪器的功能可以根据需要进行修改。

数字信号处理 (DSP):FPGA 能够高效地实现复杂算法,因此非常适合信号滤波、调制和数据压缩等应用。与其他形式的逻辑相比,FPGA 的速度非常快,因此非常适合此类应用。FPGA 还具有可重新配置性,因此非常适合用于软件定义无线电,可以根据不断变化的需求进行重新配置。

高性能计算 (HPC):FPGA 可用作 HPC 系统内的加速器来卸载特定任务,从而提高整体性能。

嵌入式系统:由于体积小、功耗低,FPGA 可以集成到嵌入式系统中,满足定制逻辑和实时处理需求。

医学成像:FPGA 内的可重构逻辑支持医学成像应用中的实时图像处理和数据分析。

网络:FPGA 可用于网络设备,执行数据包处理和流量管理等任务。

FPGA 与 ASIC

通常可以看到 FPGA 和 ASIC 具有比较相似的功能,即在电路内提供大量特定的逻辑功能。

然而,ASIC 和 FPG 之间存在显著差异,这意味着它们用于不同的领域。

虽然 FPGA 具有许多优点,但自然也存在一些缺点。它们比同等的 ASIC(专用集成电路)或其他同等 IC 速度慢,而且价格更昂贵。(然而,相比之下,ASIC 的开发成本非常高)。

这意味着是否使用基于 FPGA 的设计应在设计周期的早期做出选择,并且取决于芯片是否需要重新编程、是否可以在其他地方获得同等功能以及当然允许的成本等因素。有时制造商可能会选择 FPGA 设计早期产品,因为那时可能仍会发现错误,然后在设计完全稳定时使用 ASIC。

FPGA 在许多应用中都有使用。考虑到成本,它们不用于廉价的大批量产品,而是用于可能需要复杂逻辑电路且可能发生变化的各种领域。FPGA 应用范围广泛,从视频和成像设备到航空航天和军事应用电路,以及用于专业处理的电子设备等等。

FPGA固件开发

由于FPGA和ASIC各自的特点,FPGA往往用于开发和小批量生产,而ASIC往往用于性能较高、大批量时总体成本较低、性能较快。

FPGA 的一大优势是芯片完全可编程,并且可以重新编程。这样,它就变成了一个大型逻辑电路,可以根据设计进行配置,但如果需要更改,可以通过更新重新编程。

因此,如果制造了电路板并且包含 FPGA 作为电路的一部分,则会在制造过程中对其进行编程,但稍后可以重新编程以反映任何变化。

FPGA 内部结构

FPGA 的内部架构是其灵活性的关键,也是其成功的关键。FPGA 本质上由两个基本元素组成:

通用逻辑块 (CLB):这些是 FPGA 内的基本逻辑单元。它们包含逻辑门阵列(AND、OR、NOT 等)和触发器(存储元件),可以以各种配置互连。

FPGA 中的逻辑块可以以多种方式实现。实际实现取决于制造商以及所使用的 FPGA 系列。变化包括输入和输出的数量、逻辑块在电路方面的一般复杂性以及使用的晶体管数量。这自然会影响芯片上占用的面积,从而影响使用的硅片尺寸。

FPGA 内部路由和可编程互连:FPGA 内的路由通道由可使用电配置开关互连的线路组成。这样,可以将芯片上的不同点连接在一起,从而以所需的任何方式连接不同的公共逻辑块。

输入/输出 (I/O) 块:这些接口将 FPGA 连接到外部世界,允许其接收数据并发送处理后的信息。

FPGA固件开发

由于 FPGA 是可配置逻辑阵列,因此需要设置逻辑以满足系统的要求。

鉴于FPGA的复杂性,通常使用软件来设计FPGA的功能。FPGA设计过程由用户提供硬件描述语言(HDL)定义或原理图设计开始。

常见的HDL有VHDL(其中VHDL代表V HSIC H ardware D escription Language)和Verilog。

完成此操作后,FPGA 设计流程中的下一个任务是针对所使用的特定 FPGA 系列生成网络表。该网络表描述了 FPGA 内所需的连接性,并使用电子设计自动化工具生成。

然后可以使用称为布局布线的过程将网表安装到实际的 FPGA 架构中,该过程通常由 FPGA 公司的专有布局布线软件执行。

最后,将设计提交给 FPGA,并可用于其所需的电子电路板。

FPGA 测试

鉴于其复杂性,必须对 FPGA 设计进行严格的测试。这种测试通常在 FPGA 开发过程的每个阶段进行。

它包括功能模拟和其他验证方法,但其中一个关键问题可能是时序问题,因为基本逻辑的大小和复杂性可能意味着出现时序问题。

一旦设计和验证过程完成,生成的二进制文件(也使用 FPGA 公司的专有软件)用于配置 FPGA 设备。

FPGA 工具

用于开发和测试 FPGA 的工具有多种来源。显然,制造商能够提供许多 FPGA 开发工具,但还有许多其他来源提供第三方 FPGA HDL 综合、FPGA 物理综合和验证工具。这些包括实际开发和 FPGA 测试的各个阶段。

本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。

评论
暂无用户评论