1. FPGA概述
1) 什么是FPGA?
现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)是被设计为可以重新配置编程的集成电路。通过重新配置编程,FPGA可以实现不同的功能,从而实现多样化的功能,减少二次开发成本。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点[1]。
通常FPGA都用硬件描述语言(Verilog或VHDL)来实现对其内部逻辑结构的描述,通过逻辑综合和布局、布线工具软件,可以将所描述的的逻辑电路结构烧录至FPGA上进行验证,从而加速开发进度。FPGA内部包括大量的逻辑结构,设计者可以根据需要,通过可编程的连接,将FPGA内部的逻辑结构连接起来,从而实现特定的功能。
FPGA一般来说比专用集成电路(ASIC)的速度要慢,无法完成更复杂的设计,并且会消耗更多的电能。但是,FPGA具有很多优点,比如可以快速成品,而且其内部逻辑可以被设计者反复修改,从而改正程序中的错误,此外,使用FPGA进行除错的成本较低。厂商也可能会提供便宜、但是编辑能力有限的FPGA产品。因为这些芯片有的可编辑能力较差,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于专用集成电路的芯片上。在一些技术更新比较快的行业,FPGA几乎是电子系统中的必要部件,因为在大批量供货前,必须迅速抢占市场,这时FPGA方便灵活的优势就显得很重要[1]。
2) FPGA的开发流程
通常FPGA需要经过以下步骤来实现FPGA的产品化:
i. 逻辑设计,可以使用硬件描述语言或者电路图方式
ii. 约束编写,包括时序约束、引脚约束等
iii. 综合与布局布线,该步骤由软件工具完成
iv. 烧写调试,调试时的烧写时断电丢失的
v. 固化,将调试完成后的设计固化到FPGA芯片内,这种固化通常存储于FLASH芯片内,断电不丢失