文章目录
FPGA 和 ASIC 概述
FPGA(Field-Programmable Gate Array)
FPGA 是一种可重构逻辑器件,用于在硬件级别实现各种逻辑功能。以下是 FPGA 的一些关键特点:
- 可重构性:FPGA 能够在现场(即部署后)通过编程多次重新配置。这意味着设计人员可以根据需要多次修改其逻辑功能。
- 灵活性:FPGA 提供了高度的设计灵活性,适用于原型设计和需要频繁更新的产品。
- 快速开发周期:由于其可编程性,FPGA 设计的开发周期通常比 ASIC 短,适合快速迭代和测试。
- 应用广泛:广泛应用于通信、军事、工业控制、消费电子等领域,尤其适合需要高性能并行处理的任务。
ASIC(Application-Specific Integrated Circuit)
ASIC 是一种专用集成电路,用于在制造时固定特定的功能。以下是 ASIC 的一些关键特点:
- 专用性:ASIC 设计用于执行特定任务,不能像 FPGA 那样重新配置。这使得 ASIC 在目标任务上具有更高的性能和效率。
- 高性能:由于其专用性,ASIC 通常在功耗、速度和面积方面比 FPGA 更具优势,非常适合大型量产产品。
- 长开发周期:ASIC 设计和制造需要更长的时间和更高的成本,一旦制造完成,无法更改其功能。
- 应用场景:广泛用于消费电子、通信设备、汽车电子等需要高性能、低功耗的领域。
FPGA 与 ASIC 的对比
特性 | FPGA | ASIC |
---|---|---|
可重构性 | 是 | 否 |
灵活性 | 高 | 低 |
开发周期 | 短 | 长 |
开发成本 | 较低 | 较高 |
性能 | 通常不如 ASIC | 高 |
功耗 | 通常较高 | 低 |
适用场景 | 原型设计、频繁更新的产品、小批量生产 | 大批量生产、对性能和功耗要求高的产品 |
总结
- FPGA:是一种可重构逻辑器件,具有高灵活性和快速开发周期,适用于原型设计和需要频繁修改的应用场景,先制造的芯片,再次设计时“重新配置”。
- ASIC:是一种专用集成电路,具有高性能和低功耗的优势,适用于大批量生产和对性能要求高的应用场景,ASIC 不需要“重新配置”。你先设计,把它交给代工厂,然后制造芯片。
现在让我们看看这些芯片的结构是什么样的,以及它们的不同之处。
逻辑单元(FPGA的基础模块)
在可编程逻辑器件(PLD)中,各个厂商对其基本构建单元有不同的命名。在 Xilinx FPGA 中,这个基本单元被称为 Logic Cell(LC)。以下是 Xilinx Logic Cell 的组成及其功能:
-
4-input LUT(查找表):
- 一个 4 输入的查找表,用于实现任意 4 输入的逻辑函数。
- 查找表(LUT)是 FPGA 中的基本构建模块,可以通过编程实现不同的逻辑操作。
-
MUX(多路复用器):
- 用于选择 LUT 的输出或者其他输入信号。
- MUX 可以增强逻辑单元的灵活性,使其能够实现更复杂的逻辑功能。
-
Register(寄存器):
- 一个寄存器,用于存储数据。
- 寄存器可以配置为触发器(Flip-Flop, FF)或者锁存器(Latch)。
-
Clock(时钟):
- 时钟信号可以配置为上升沿触发或下降沿触发。
- 时钟配置使得 Logic Cell 能够在不同的时钟边沿捕获数据。
它是最小的逻辑块,LUT 充当组合逻辑。在DFF的帮助下,可以形成时序逻辑。它可以构建逻辑门、多路复用器、编码器、加法器; 任何真值表都可以作为布尔表达式存储在 LUT 中。
一个 LUT 可以保存有限数量的数据。逻辑单元的 LUT 也是有限的。
具有许多项的布尔表达式需要更多的内存空间,工具在布局布线的时候会将剩余项放入另一个逻辑单元中。这就需要在两个逻辑单元之间有路由信号。
FPGA路由信号
白线是从一个逻辑单元路由到另一个逻辑单元的信号。可以想象如果实现更大逻辑时候这个导线长度会增加多大。这增加了额外的延迟,降低了时钟频率,消耗了更多的面积和功耗。
所有这一切都只是为了“重构”。
即使设计不需要其他单元或路由信号,它们仍然存在于FPGA芯片路由区域和静态功率中,从而降低了效率。
标准单元:ASIC的构建模块
标准单元库可以具有小至 NAND 门的组件和 IP,例如加法器、FF、BRAM、多路复用器等。
所有标准单元库都针对面积和功率进行了优化。
ASIC布局
单个单元彼此紧密连接,形成更大的逻辑功能。位置也针对信号传播进行了优化。与FPGA相比,ASIC没有不必要的逻辑和路由开销。这样可以节省更少的面积和功率。还可以实现更快的时钟。
以上这些ASIC会比FPGA具有更高的效率。