FPGA内部结构和工作原理

FPGA内部结构和工作原理

FPGA(Field Programmable Gate Array),即现场可编程逻辑门阵列,它是作为专用集成电路(ASIC)领域中一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA优势

(1)运行速度快
(2)FPGA引脚多,适合大规模的系统设计
(3)FPGA内部程序并行执行,工作效率高
(4)FPGA包含大量的IP核,方便开发
(5)FPGA设计灵活

FPGA开发流程

(1)设计规范
(2)设计输入:设计输入可以是原理图、可以是描述电路逻辑的代码(Verilog HDL或者VHDL)
(3)RTL仿真:又称为功能仿真,主要用来检查代码中的错误和代码行为的正确性
(4)综合仿真:将输入的文件转换成具体的门电路
(5)布局和布线
(6)门级仿真:RTL级别的仿真主要用来检查代码的语法错误并验证设计的组合逻辑是不是和理想中的一致,不考虑门电路之间的延时和连线上的延时;但是门级仿真是考虑的,主要用来验证设计的数字逻辑电路的实际工作情况是不是符合设计要求。
(7)时序分析
(8)上系统验证

FPGA内部结构

(1)FPGA的内部结构主要包含六大部分,分别是:可编程的输入输出IO口、可编程的逻辑单元、底层嵌入式功能单元、嵌入式块RAM、布线资源和硬核。以下是具体的介绍。
可编程的输入输出IO口:可以使用软件配置成不用的电气标准和物理特性,比如可以调整上下拉电阻、匹配电阻等特性,使用灵活。
可编程逻辑单元:是可编程逻辑的主体,可以根据设计灵活地改变内部连接与配置,从而完成不同的逻辑功能,FPGA一般都是基于SRAM工艺,可编程逻辑单元基本都是基于查找表LUT(Look-Up-Table)和一些寄存器组成(主要是D触发器)。
底层嵌入功能单元:指的是在FPGA内部集成的一些通用程度较高的嵌入式功能模块,比如锁相环、DSP等。
布线资源:链接FPGA的内部所有单元,在实际FPGA布局布线的时候,布局布线的好坏会对设计的功能产生直接的影响。
硬核:这一部分比较少用,因为硬核的功能比较单一,在实际开发中使用的不多,比如LCD的硬核就只是用来驱动LCD外设,实际开发中比较少用。
补充说明:实际开发中可以从这四个方面认识FPGA的内部结构,分别是:可配置逻辑块(CLB)、输入输出块(IOB)、布线通道(Routing Channels )、可编程开关(PSW)。实际中,主要用CLB用来衡量FPGA的可使用资源数。CLB主要包含查找表(LUT)和D触发器,分别组成FPGA的组合逻辑单元和时序单元,为数字电子系统设计做资源准备。CLB在芯片内部以二维阵列的形式存在,这也是FPGA称之为现场可编程门阵列的原因。CLB在实际生成数字电路的时候,使用布线资源进行连接,当需要输出或者是输入时,可以将CLB连接到输入输出模块(IOB)。

FPGA的工作原理

FPGA的内部结构主要包含可配置的逻辑块(CLB)、输入输出块、布线资源和可编程开关。其中可配置的控制块是FPGA的主要资源指标,在芯片内部以二维阵列的形式排布。在CLB中包含查找表和D触发器,查找表(LUT)负责给芯片提供组合逻辑,D触发器负责提供时序逻辑,为设计数字电子系统提供资源。其中的查找表是一个16*1的RAM,具有RAM的物理结构,但是在作用上是类似ROM,负责存储Quartus II综合生成的逻辑电路的各种可能的运行结果,在FPGA工作的时候,依据端口输入的数据流或者是逻辑流,在RAM中取出对应的数字逻辑运算,配合D触发器可以完成数字电子系统需要的组合逻辑和时序逻辑。设计者在进行软件设计的时候,依据设计目标,将电路功能以代码的形式描述出来,Quartus II负责对代买进行编译和综合,得到设计电路的各种可能结果,下载到FPGA的时候,这些数据都存储在CLB的查找表中。系统开始工作时,在数据流或者是逻辑流的驱动下,在查找表中取出对应的数字逻辑,然后和D触发器配合完成数字电子系统的组合逻辑设计和时序逻辑设计。

文档说明

新手入门FPGA,本文档结合自己做的学习笔记所写,用词不当或者不准确之处望指正。

你可能感兴趣的:(嵌入式)