FPGA工作原理、架构及底层资源
文章目录
前言
随着数字电路设计和嵌入式系统应用的不断发展,FPGA(Field-Programmable Gate Array)作为一种灵活、可重构的可编程逻辑器件,受到了越来越广泛的关注和应用。本篇博客将探讨FPGA的原理、架构及底层资源,旨在为读者深入了解FPGA提供全面的专业知识。
一、FPGA工作原理
FPGA的原理基于可编程逻辑块和可编程互连网络。逻辑块是FPGA的基本组成单元,通常由查找表(Look-up Table,LUT)和寄存器组成。查找表是FPGA的关键组件之一,它是一种存储逻辑功能的表格结构,可以实现2输入至6输入的逻辑运算。随着技术的发展和FPGA的进化,FPGA芯片中的逻辑块和查找表的规模不断增加,以满足更复杂的逻辑功能和应用需求。较高输入数量的查找表能够支持更多复杂的逻辑运算,提供更大的灵活性和性能优化。通过编程或配置查找表的值,可以改变逻辑功能的实现。寄存器用于存储状态或临时计算结果,在时钟信号的控制下进行数据的存储和传输。
FPGA的可编程互连网络负责将逻辑块连接在一起以形成所需的电路拓扑。它由全局连线和局部连线两部分组成。全局连线是一组专用的高速互联通道,用于实现逻辑块之间的远距离连接,例如跨时钟域的连接。局部连线则是邻近的逻辑块之间的连线,用于实现邻近互连关系。FPGA的互连网络可通过编程开关(Programmable Switch)的控制以实现连线的通断,使得逻辑块之间的连接变得灵活可变。
深入浅出的理解:如果把FPGA理解为一块电路板,作为设计师就是要去利用这块电路板去通过选用器件和选通布线的方式设计自己要用的电路。这个板子上有很多器件,且各种类器件的位置已经固定,器件之间存在丰富的布线资源,器件和布线都是可以通过编程决定是否选用。设计的过程就是根据功能选用不同的器件,再选通设计中的布线。最后形成目标电路。
二、FPGA架构及底层资源
1.FPGA架构
目前主流的FPGA仍以查找表技术为基础,主要由六部分组成:可编程输入输出单元(IOB)、可编程逻辑单元(CLB)、完整的时钟管理(DCM)、嵌入块状RAM(BRAM)、布线资源、内嵌的底层功能单元(soft core,软核,区别于软IP核)和内嵌专用硬件模块(hard core,硬核,区别于硬IP核)。其中最为主要的是可编程输出输出单元、可编程逻辑单元和布线资源。
IP核一般分为软IP核,硬IP核和固IP核。和上述的软硬核并不是同一个定义范畴。软核(soft core)和硬核(hard core)是FPGA中的两种不同类型的处理器核心或其他复杂的数字逻辑功能的实现方式。
软核(soft core)通常是指通过FPGA中的逻辑资源进行编程实现的处理器核心或其他复杂的数字逻辑功能,它们的实现是通过FPGA内部的逻辑单元和存储单元来完成的。一个常见的软核是Xilinx(现在被AMD收购)的MicroBlaze,它是一款可在Xilinx