网站导出链接查询,天津公司建站,win7怎么做网站域名绑定,司瓦图网站Field Programmable Gate Arrays#xff08;FPGA#xff0c;现场可编程逻辑门阵列#xff09;#xff0c;是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物#xff0c; 是作为专用集成电路#xff08;ASIC#xff09;领域中的一种半定制电路而出现的#xff0c… Field Programmable Gate ArraysFPGA现场可编程逻辑门阵列是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物 是作为专用集成电路ASIC领域中的一种半定制电路而出现的既解决了定制电路灵活性的不足又克服了原有可编程器件门电路数有限的缺点。 参考文章 Ⅰ electronicshub Ⅱ IBM 为了实现可编程FPGA通常包括可编程逻辑块Programmable Logic BlocksPLBs/Configurable Logic BlocksCLBs 和逻辑块之间的可配置互连线组成。相比于单片机、CPU等集成电路芯片具有效率高、功耗低的特点同时相较于ASIC具有更短的开发周期与开发难度但成本较高、且在资源的利用率上远不及ASIC。
1.不同类型的PLD 在进一步深入了解FPGA之前我们先引入这样一个概念——Programmable Logic DevicesPLD他是一个更高层面的概念指包含大量逻辑门和触发器的集成电路用户可以对其进行配置以实现各种功能 最简单的可编程逻辑设备通常由一系列的与门和或门组成这些门的逻辑及其互连可以通过编程配置。基本上PLD可以分为三种类型
1.1 简单可编程逻辑器件SPLD
1.1.1 可编程逻辑阵列PLA PLA由一个可编程互连的AND门平面和一个可编程互连的OR门平面组成通过连接水平和垂直互连线每个输入可以连接到任何一个与门然后来自不同与门的输出可以进一步连接到或门以构成更复杂的逻辑 1.1.2 可编程阵列逻辑PAL 在PAL中只有与门是可编程的而或门平面在在制造过程中是固定的其灵活性不如PLA但他们消除了与可编程或门相关的时间延迟 1.1.3 通用数组逻辑GAL 在组成上GAL与PAL类似区别在于其可编程结构PAL使用PROM它是一次性可编程的而GAL使用EEPROM可以重新编程
1.2 复杂可编程逻辑器件CPLD CPLD是在SPLD器件基础上开发的它由多个Logic Block组成其内部由PAL或PLA以及Macrocell组成用于创建更大、更复杂的设计 1.3 现场可编程门阵列FPGA FPGA与CPLD的区别主要在于他们的组合逻辑形成模式不同CPLD是基于基本门电路形成的而FPGA是基于查找表LUT——RAM、MUX形成的 FPGA比CPLD还要复杂它由可编程逻辑单元CLB、可编程互联和可编程IO块组成 FPGA可以通过指定每个CLB的逻辑功能并设置每个可编程逻辑开关的连接来实现任何自定义设计由于设计定制电路的过程是在现场而不是在晶圆厂完成的因此该器件被称为“现场可编程” 2.FPGA的组成 通常FPGA由三个基本组件组成
可编程逻辑单元CLBs——负责实现核心逻辑功能可配置互连线——负责连接逻辑块IO块——通过布线连接到CLB有助于建立外部连接 2.1 Configurable/Programmable Logic Blocks CLB是FPGA的基本组件它同时提供 逻辑基于LUT 和 存储基于FF 功能基本逻辑块可以是晶体管、NAND门、多路选择器、查找表、类似PAL的结构甚至处理器等任何东西Xilinx和Altera都使用基于查找表的逻辑模块来实现逻辑和存储功能 单个CLB模块的内部结构大致如下图所示方框中的部分即为一个四输出的查找表单元 查找表的设计原理 对于下图中真值表对应的控制逻辑如果用查找表实现的话可以先设计4bit的RAMRAM中存储的数据对应为真值表中的逻辑结果然后分别用信号A和B控制双路选择器输出结果为Y这就是一个简单的二输入查找表 具有n个输入的LUT由 2 n 2^n 2n个配置位由SRAM单元实现使用这些SRAM BitsLUT可以配置为实现任何逻辑功能
2.2 Configurable interconnects 如果说逻辑功能由CLB提供则可编程布线则负责将这些CLB互联它提供了一个逻辑块与另一个逻辑块之间以及逻辑块和IO块之间的互连以完全实现自定义电路 基本上布线网络由可编程开关的连接线组成可以使用任何编程技术进行配置基本上有两种类型的互连体系结构他们是
网格布线 在网格布线架构中逻辑模块以二维阵列排列并使用可编程布线网络互连这种布线方式广泛应用于商业FPGA中 分层路由 分层路由架构将逻辑块分成几个组或集群。如果逻辑块位于同一集群中则分层路由会在较低层次上将它们连接起来如果逻辑块在不同的集群中则布线是在更高层次进行的 片上存储器 最早的FPGA仅使用FF将内存集成到逻辑块内部然而随着FPGA功能的增加越来越复杂的设计需要专用的片上存储器来缓冲和重用数据现代FPGA综合使用大型SRAM存储器阵列较小的查找表和传统的FF元件来提供存储 DSP: 在早期的FPGA中唯一可用的算术资源就是简单的加法器任何更复杂的逻辑都是由更原始的CLB模块构成的随着硅技术的进步更加复杂的算术资源被整合到FPGA中最终形成了现代的FPGA DSP模块DSP模块为实现高性能计算提供了高度优化的资源从而避免在CLB中实现这些功能的复杂性 3.FPGA编程技术 FPGA中可编程开关主要利用以下三种方法实现
SRAM SRAM使用晶体管设计静态SStatic意味着SRAM存储单元上加载的值将保持不变直到故意更改或移除电源下图显示了一个典型的六晶体管的SRAM单元用于存储1位二进制数据 基于SRAM对逻辑单元和互连进行编程有着低动态功耗、高速和易于集成的优点得益于CMOS结构 EEPROM/闪存 主要优点是其非易失性但是尽管flash支持可重新编程与SRAM技术相比其可重写次数有限
防熔断剂 防熔丝编程技术是生产一次性可编程器件的技术他们是使用antifuse的链路实现的该链路在未编程状态下具有非常高的电阻可以被视为开路 编程时向输入端提供高电压和电流因此最初以连接两条金属轨道的非晶硅形式形成的反熔丝通过转化为导电多晶硅而焕发生机 与其他两种技术相比反熔丝技术占用的空间最小但只能作为一次性可编程选项
4.FPGA应用 FPGA基本设计流程 利用硬件描述语言进行编程设计–EDA 工具编译、综合、布局布线–转换为可烧录的文件–最终加载到FPGA器件中改变FPGA内部的连线–完成所实现的功能 雷达应用FPGA因其高速、并行处理能力而受到信号处理和数据采集的青睐无人机UAV高速信号处理算法使FPGA非常适合执行无人机中的飞行控制、传感器处理和通信任务工业控制系统ICS用于实现各种自动化和基于硬件的加密功能以实现高效的网络安全ASIC原型设计作为原型验证数据中心高带宽、低延迟