FPGA的基本历史、基本结构、应用领域

描述

本系列文章主要介绍 FPGA 的基本历史、基本结构、应用领域及其最新进展,从FPGA与 ASIC、CPLD的区别,Altera与Xilinx的区别,Verilog与VHDL等方面对FPGA 进行简要介绍,使初学者对 FPGA 能够有基本的了解。

1. FPGA

FPGA 是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,主要特点是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可反复擦写。在修改和升级时,不需要额外改变 PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短系统设计的周期,提高实现的灵活性并降低成本。

FPGA 的特点:加电时,FPGA 芯片将 EPROM 中的数据读入片内编程 RAM 中,配置完成后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。

理论上,FPGA 允许无限次的编程。

FPGA 的编程无须专用的 FPGA 编程器,只需用通用的 EPROM、PROM 编程器即可。FPGA内部有丰富的触发器和 I/O 引脚,能够快速成品,不需要用户介入芯片的布局布线和工艺问题,而且可以随时改变逻辑功能,使用灵活。

2. ASIC

ASIC 是应特定用户要求和特定电子系统的需要而设计、制造的集成电路。用一句话总结就是市场上买不到的芯片。苹果的 A 系列处理器就是典型的 ASIC。

ASIC 是定制的,具体分为全定制和半定制。

ASIC 的特点:面向特定用户的需求,量身定制,执行速度较快。ASIC 在批量生产时与通用集成电路相比具有体积小、功耗低、可靠性高、性能高、保密性强、成本低等优点。ASIC 需要较长的开发周期,风险较大,一旦有问题,就会导致成片全部作废,所以小公司已经玩不起了。

FPGA

近年来人工智能受到的关注越来越多,许多公司正在积极开发能实现移动端人工智能的硬件,尤其是能够结合未来的物联网应用。移动端人工智能的实现方法有两大流派:FPGA 流派和 ASIC流派。FPGA 流派的代表有 Xilinx 主推的 Zynq 平台,而 ASIC 流派的代表有 Movidius。下面来分析 FPGA 与 ASIC 的具体区别在哪里。

3. FPGA 和 ASIC 的区别

(1)设计流程

FPGA:完整的 FPGA 设计流程包括功能描述、电路设计与输入、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与验证、调试与加载配置。

ASIC:ASIC 的设计流程(数字芯片)包括功能描述、模块划分、模块编码输入、模块级仿真验证、系统集成和系统仿真验证、综合、STA(静态时序分析)、形式验证。

从设计成本来考虑:小批量时,FPGA 占优;大批量时,ASIC 占优。

FPGA 本身就是一个芯片,只是我们可以通过编程的方式修改内部逻辑连接和配置实现自己想要的功能。实现 ASIC 就如从一张白纸开始,必须得有代码,之后综合,然后布局、布线,最后得到 GDSII(一种时序提供格式)后去流片。

(2)速度

相同的工艺和设计,在 FPGA 上的速度应该比 ASIC 慢。因为 FPGA 内部基于通用的结构,也就是 LUT(Look Up Table),可以实现加法器、组合逻辑等。而 ASIC,一般加法器就是加法器,比较器就是比较器,FPGA 结构上的通用性必然导致冗余。另外,FPGA 的基本单元是 LUT(LUT 组成 Slice,Slice 组成 CLB,这是 Xilinx 的结构),为此,大的设计假如一个 LUT 实现不了,就得用两个 LUT,一个 Slice 实现不了,就要用 CLB,不同结构处于特定的位置,信号之间的互联导致的 wire delay 是不可忽略的一部分。而对于 ASIC 来说没有结构上的限制,而且对于特定的线路布局来说可以在空间上靠得很近,相对来说 wire delay 和 cell delay 都应该比FPGA 小。当然,LUT 中也有 DFF,作为高速的设计,一般都会在一个简单的组合逻辑操作之 后打一拍,再做下一步的处理。

(3)体积

如果结构完全相同,那么 FPGA 会被 ASIC 远远踢飞。FPGA 要规模大得多才能实现 ASIC相同的功能,主频还只有几分之一。

(4)功耗

在相同工艺条件下,FPGA 的功耗要大于 ASIC。尤其是基于占用大量硅面积的、每个单元6 个晶体管的静态存储器(SRAM)的查寻表(LUT)和配置元件技术的 FPGA,其功耗要比对等的 ASIC 大得多。

(5)成本

FPGA 贵在单片,开发工具费用和硬件损耗风险基本不存在。ASIC 贵在流片的费用和开发工具。NRE(Non-Recurring Engineering,一次性工程)费用随着工艺的提高变得相当贵,除非芯片一次成功后即可量产,否则单片费用将奇贵无比!

(6)其他方面

ASIC 用于大型项目,而对于需要快速投放市场且支持远程升级的小型项目,FPGA 则更为适合。FPGA 技术的主要优势仍是产品投放市场的时间较短。

ASIC 的优势在于加电后可立即运行,就单位逻辑大小而言,封装选择更多,还可以包括某些模拟逻辑。与此相对比,FPGA 加载配置进入存储器需要时间,因此不能立即工作。此外,FPGA的封装也较复杂。

FPGA 内部还包括接口 I/O。I/O 分为普通 I/O 和高速 I/O。高速 I/O 支持高速的 SERDES 等,用于实现 XAUI、PCI-e 等高速接口,这些接口动辄几 Gbps。此外,种类多种多样的硬核 IP 也是各 FPGA 厂商差异化竞争的利器,例如 POWERPC、ARM 等硬核 IP,从而构成 CPU+FPGA于一体的集可编程性和可重构的处理平台。

(7)两者的定位

FPGA 和 ASIC 产品的使用要根据产品的定位和设计需要来选择。ASIC 产品适用于设计规模特别大(如 CPU、DSP 或多层交换芯片等)或者应用于技术非常成熟且利润率非常低的产品(如家用电器和其他消费类电器)以及大量应用的通用器件(如 RAM、PHY 等)。FPGA 产品适用于设计规模适中、产品要求快速占领市场或产品需要灵活变动的特性设计等方面的产品,如 PDH、2.5GB 以下的 SDH 设备和大部分的接口转换芯片等。当然,具体选择哪种产品来设计还要设计者充分考虑自己的产品定位来决定。

(8)两者在互相融合

最明显的莫过于处理器中开始集成 FPGA,而可编程的 ASIC 也开始兴起。随着 SoC(系统级芯片或系统)成为主流,两者的边界也就不那么明显了。

4、总结

总的来说,就如同 GPU和 CPU 一样:GPU 可以非常快速地处理图像,但是要处理其他的东西,GPU 则有些困难。CPU 能处理很多的运算,也能处理图像,只是慢而已。一旦你是冲着某个目的去的(ASIC),最快速的实现方式就可以。如果想要多方面兼顾(FPGA),就不可能在每一个方面都做到最好。在使用时,你必须权衡利弊。

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分