FPGA的内部组成结构
FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。每个单元简介如下:
1.可编程输入/输出单元(I/O单元)
目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。
2.基本可编程逻辑单元
FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。
学习底层配置单元的LUT和Register比率的一个重要意义在于器件选型和规模估算。由于FPGA内部除了基本可编程逻辑单元外,还有嵌入式的RAM、PLL或者是DLL,专用的Hard IP Core等,这些模块也能等效出一定规模的系统门,所以简单科学的方法是用器件的Register或LUT的数量衡量。
3.嵌入式块RAM
目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。
CAM,即为内容地址存储器。写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。简单的说,RAM是一种写地址,读数据的存储单元;CAM与RAM恰恰相反。
除了块RAM,Xilinx和Lattice的FPGA还可以灵活地将LUT配置成RAM、ROM、FIFO等存储结构。
4.丰富的布线资源
布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源的划分:
1)全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线;
2)长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线(这里不懂什么是“第二全局时钟信号”);
3)短线资源:用来完成基本逻辑单元间的逻辑互连与布线;
4)其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。
由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。其实布线资源的优化与使用和实现结果有直接关系。
5.底层嵌入功能单元(书上举了很多例子,不过这些东东要看具体哪个厂商的哪种型号的芯片上嵌有什么资源决定)
6.内嵌专用硬核
与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含硬核。
1、总体结构
FPGA内部最主要的、最需要关注的部件是CLB(Configurable Logic Block,可配置逻辑块)、Input/Output Block(输入/输出块)和BlockRAM(块RAM)。
CLB是FPGA具有可编程能力的主要承担者。通过配置这些CLB可以让FPGA实现各种不同的逻辑功能。Input/Output Block分布在FPGA的周边,也具有可编程特性,可以配置支持各种不同的接口标准,如LVTTL、LVCMOS、PCI和LVDS等。BlockRAM是成块的RAM,可以在设计中用于存储数据,是设计的重要资源。在大规模设计选择FPGA时,RAM资源是否够用是重要的考虑因素。
除了CLB、Input/Output Block和BlockRAM以外,FPGA还有很多其他的功能单元,例如布线资源、DCM(Digital Clock Manager,数字时钟管理器)和Multiplier(乘法器)等。布线资源在FPGA内部占用硅片面积很大,为FPGA部件提供灵活可配的连接;DCM模块提供各种时钟资源,包括多种分频、移相后的时钟;Multiplier为18bit×18bit硬件乘法器,可以在一个时钟周期内完成乘法运算。
在高级的FPGA中,还包含了嵌入式处理器、DSP模块、以太网MAC、高速串行IO收发器等。
1.1 可配置逻辑块CLB
Xilinx Virtex-5 FPGA的一个CLB包含两个Slice。Slice内部包含4个LUT(查找表)、4个触发器、多路开关及进位链等资源。部分Slice还包括分布式RAM和32bit移位寄存器,这种Slice称为SLICEM,其他Slice称为SLICEL。
CLB内部的两个Slice是相互独立的,各自分别连接开关阵列(Switch Matrix),以便与通用布线阵列(General routing Matrix)相连。
在Xilinx FPGA设计工具中,Slice的位置用“XmYn”表示,其中m为Slice所在横坐标,一个CLB的两个Slice的横坐标分别是m和m+1;n为CLB的纵坐标,一个CLB的两个Slice有相同的n。Virtex-5左下角的Slice编号为X0Y0。
实际上,查找表类似于一个ROM,容量是64bit,6个输入作为地址输入,存储的内容作为布尔运算的结果。查找表中的内容由ISE生成并在FPGA配置时加载进去。
Slice中的触发器可以配置成多种工作方式,例如是FF或Latch,同步复位或异步复位、复位高有效或低有效等。
CLB内部包含多个选择器。CLB的选择器与一般的选择器不同,它们没有选择端。通路的选择在FPGA配置后固定下来。
CLB内部还包含了一个重要的资源——进位链,其作用是方便加法器的实现。
SLICEM的结构与SLICEL的结构类似,最大的区别是使用了一个新的单元代替SLICE中的查找表。这个新的单元可以配置为LUT、RAM、ROM或移位寄存器(SRL16/SRL32),从而可以实现LUT的逻辑功能,也能做存储单元(多个单元组合起来可以提供更大的容量)和移位寄存器(提供延迟等功能)
CLB内部查找表、触发器、多路器等基本单元的配置是由ISE自动完成,一般情况下不需要设计者干预。但是,如果认为有必要,设计者可以通过ISE中集成的FPGA底层编辑器——FPGA Editor直接编辑CLB内部触发器和多路器的配置。
1.2 输入输出模块(Input/Output Block)
Input/Output Block 作用是为FPGA提供内部资源与外围电路之间的接口,提供输入缓冲、输出驱动、接口电平转换、阻抗匹配、延迟控制等功能。高端FPGA的输入/输出模块还提供了DDR输入/输出接口、高速串行接口(SERDES)(见注1)等功能。
Xilinx FPGA 的输入/输出模块采用SelectIO技术(SelectIO是Xilinx公司的注册商标),提供多达960个用户IO,支持20多个单端和差分电平I/O标准;还支持DDR、DDR-2、SDRAM、QDR-II和RLDRAM-II等Memory接口标准。SelectIO经验DCI(Digitally Controlled Imepedence,数字控制阻抗),提供有源I/O终端以实现阻抗匹配。
Virtex-5的Input/Output Block以Tile为单位,IO Tile的概念与CLB有相似之处,同样是一个较大的组成单元,内部包含多个相同单元。一个Tile包含两个IOB、两个ILOGIC/ISERDES单元和两个OLOGIC/OSERDES单元。
IOB内部的主要组成部分是输入/输出Buffer和PAD(焊盘,在集成电路版图上由金属焊点和静电防护二极管组成),提供输入信号缓冲、输出信号驱动等功能。
在Input/Output Block 中,每个ILOGIC/ISERDES 单元都可以配置为ILOGIC或ISERDES。配置为ILOGIC时,可以作为常见的输入逻辑单元,或作为DDR接口的输入端;配置为ISERDES时,可以完成1到6的串并转换,两个ISERDES单元相连可以完成1到10的串并转换。
类似地,每个OLOGIC/OSERDES 单元可以配置为OLOGIC,实现常见的输入逻辑单元,或作为DDR接口的输出端。也可以配置为OSERDES,完成6到1的并串转换,经过IOB和PAD驱动高速串行总线。两个OSERDES单元相连可以完成10到1的并串转换。
Input/Output Block中有IDELAY单元,可以提供精确的延迟,这个延迟不受工艺和温度的影响。延迟共有64个抽头,每个抽头提供75ps的延迟,因此延迟的数值可以在0~4800ps之间进行选择。
部分IO接口标准需要特定的Vcco和Vref电压,这些电压由FPGA外部电路提供,并连接到FPGA管脚,供多个I/O Tile共享。连接到同一组Vcco和Vref电压的I/O Tile组成一个Bank(中文意思是“组”,但是通常直接用Bank表示更方便)。
1.3 块RAM(BlockRAM)
Xilinx FPGA 内部成块的RAM资源称为BlockRAM;根据器件系列不同,BlockRAM大小有4096bit(Virtex、VirtexE和Spartan系列)、18Kbit(Virtex-II、Spartan-3和Virtex-4系列)和38Kbit等3种(Virtex-5)。BlockRAM是真正的双口RAM结构,有两套读写数据、地址和控制总线。两套总线的操作是完全独立的,共享同一组存储单元。BlockRAM的双口RAM结构对于逻辑设计至关重要,它有两套独立的接口,可以方便地连接两个其他设计单元,允许一个端口写入数据的同时,另一个端口读出数据,提高了数据吞吐率(Throughput)。
BlockRAM的内容除了在电路运行中重写以外,也可以通过配置文件在FPGA上电配置时清零或初始化为特定值。写BlockRAM时,数据输出端可以输出新写入的数据、被覆盖的数据或保持不变。FIFO是逻辑设计中常用的功能单元,Virtex-5的BlockRAM具有FIFO专用逻辑,因此实现FIFO时将不需要额外的CLB资源,也不需要设计者自行设计FIFO逻辑控制电路,对BlockRAM进行配置即可。
BlockRAM的调用,一般通过CORE Generator进行,在CORE Generator的图形界面中指定所需要RAM的数据宽度和深度、设置控制信号和初值,就可以生成设计者所需要的RAM(这些RAM通过调用BlockRAM实现),然后在项目RTL代码中优化,即可进行仿真、综合、布局布线。
点赞
1
评论
1
分享
收藏
28
举报
关注
一键三连
FPGA内部详细结构原理图
07-27
本资料详细介绍了 XILINX公司中FPGA其中型号为Spartan 3E 芯片的内部结构的详细资料
优质评论可以帮助作者获得更高权重
表情包
baowxz
baowxz:“Input/Output Block中有IDELAY单元,可以提供精确的延迟,这个延迟不受工艺和温度的影响。延迟共有64个抽头,每个抽头提供75ps的延迟,因此延迟的数值可以在0~4800ps之间进行选择。”,,这个延迟“不受工艺和温度的影响”,,真假????在哪看到的?1 年前回复
点赞
相关推荐
FPGA很有价值的27个实例
05-29
对初学FPGA的人来说比较有用,好东西大家一起分享。
FPGA基本内部结构
07-19
FPGA内部比较复杂,根据Datasheet上的分类,主要包括以下几个部分: l 输入/输出模块 Input/Output Blocks (IOB) l 可配置逻辑单元 Configurable Logic Blocks (CLB) l Bram Block SelectRAM l 18 x 18 乘法器 (18-Bit x 18-Bit Multipliers) l 全局时钟网络 (Global Clock Mux) l 数字时钟管理模块 (DCM) l 布线资源 Routing Resources
FPGA底层原理结构及内部资源_Mr.zhang的博客
5-4
后续又自学了verilg,从此就迈上了这条不归路,经过几年学习总感觉没啥进步,当初以为自己会用verilog就代表懂了FPGA,对于FPGA结构了解很少。本博文主要介绍FPGA内部组成以及资源。 FPGA内部主要有CLB(可配置逻辑块),IOB(输入输出单元),...
FPGA的基本结构:六大组成部分简介(转)_peng08303的专栏
5-5
FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。 每个单元简介如下: 1.可编程输入/输出单元(I/O单元) ...
FPGA原理结构以及内部资源
qq_32164245的博客
1万+
一、FPGA原理FPGA中的基本逻辑单元是CLB模块,一个CLB模块一般包含若干个基本的查找表、寄存器和多路选择器资源,因此FPGA中的逻辑表达式基于LUT的。FPGA内部的编程信息一般存储在SRAM单元中,因此通常的FPGA都是基于SRAM的,所以掉电后信息会丢失,下次上电需要先配置才能使用。着重介绍Xilinx FPGA,二、FPGA产品的速度等级速度等级一般反映一款芯片的性能,速度等级越高,...
FPGA的基本组成结构
weixin_43070186的博客
7546
目前主流的FPGA芯片仍是基于查找表。FPGA芯片主要由以下6部分组成: (1)可编程输入输出单元(IOB) (2)基本可编程逻辑单元(CLB) (3)完整的时钟管理模块 (4)丰富的布线资源 (5)嵌入式块RAM (6)内嵌的底层功能单元和嵌入式专用硬核 通过配置以上6个不同的部分,基本可以让FPGA实现任何你想要实现的功能。 一、FPGA的结构解析 对于一款芯片,我们肉眼看到...
FPGA - 内部组成单元与资源分布_理论结合实践,开启你的...
4-7
FPGA由6部分组成,分别为可编程输入/输出单元(IOB)、基本可编程逻辑单元(SLENCE)、嵌入式块RAM(block ram)、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。 整个FPGA的资源分布图如下: ...
FPGA开发全攻略——FPGA内部结构
weixin_30325793的博客
229
原文链接: FPGA开发全攻略连载之五:FPGA主要功能模块介绍(1) FPGA开发全攻略连载之六:数字时钟管理模块与嵌入式块RAM FPGA开发全攻略连载之七:底层内嵌功能单元与软核、硬核以及固核 1. 可编程输入输出单元(IOB) 可编程输入/ 输出单元简称I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/ 输出信号的驱动与匹配要求,其示意结构如图2-4 所示...
FPGA内部硬件结构简介
相量子的博客
5850
当我们对FPGA内部结构了解透彻后,就可以把FPGA的设计了如指掌,才能有助于进一步优化我们的设计,优化好的设计能使我们设计的整个系统跑的更快、更加节省资源、功耗更低,稳定性更好。
【FPGA】FPGA的内部构造
多喝hot水的博客
6399
FPGA由6部分组成,分别为可编程输入/输出单元(IOB)、基本可编程逻辑单元(SLENCE)、嵌入式块RAM(block ram)、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。整个FPGA的资源分布图如下:上图的分块按照时钟域分的块,前面有文章介绍FPGA的时钟中有详细介绍分块的规则。 ---------------------------------------------...
FPGA内部结构和工作原理
轩蒂梦之恋
2308
FPGA内部结构和工作原理 FPGA(Field Programmable Gate Array),即现场可编程逻辑门阵列,它是作为专用集成电路(ASIC)领域中一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA优势 (1)运行速度快 (2)FPGA引脚多,适合大规模的系统设计 (3)FPGA内部程序并行执行,工作效率高 (4)FPGA包含大量的I...
FPGA的基本结构
wangyanchao151的专栏
5695
FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。 FPGA的基本结构 每个单元简介如下: 1.可编程输入/输出单元(I/O单元) 目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可...
FPGA结构与原理
08-26
FPGA 可编程是指三个方面的可编程,一个是可编程逻辑块,一个是可编程 IO,还有一个就是可编程布线资源。可编程逻辑块是 FPGA 可编程的核心,这一节里我们着重就这个方面可编程进行讨论。三种 FPGA 分别是基于 SRAM 技术、基于反熔丝技术、基于E2PROM/FLASH技术。
FPGA内部结构
风雨无阻
5303
逻辑块(Logic Block),Altera称之为逻辑阵列块(LAB),Xilinx称之为可配置逻辑课(CLB) 逻辑单元在ALTERA叫作(Logic Element,LE)LE,在XILNX中叫作LC(LOGIC CELL) 基于查找表的FPGA 一个LE包含一个4输入的查找表,同时加上一个寄存器 基于查找表技术(Look-Up-Table LUT),S
FPGA硬件构成详解
坚持
1万+
OFweek电子工程网讯 我的许多朋友都是经验丰富的嵌入式设计工程师,但他们都是微控制器(MCU)背景,因此对于FPGA是什么以及FPGA能做什么只有一个模糊的概念。如果问急了,他们会说“你可以通过配置FPGA让它做不同的事情”诸如此类的话,但他们真的不是很清楚FPGA里面有什么,或者如何在设计中使用FPGA。 事实上,MCU对有些任务来说是很适合的,但对其它一些任务来说可能做的并不好。
深亚微米FPGA结构与CAD设计
11-06
《深亚微米FPGA结构与CAD设计》译自加拿大Vaughn Betz所著的《Architecture and CAD for Deepsubmicron FPGAs》,《深亚微米FPGA结构与CAD设计》是FPGA硬件结构设计和软件算法开发的经典之作。《深亚微米FPGA结构与CAD设计》详细论述了在高性能FPGA结构设计和CAD软件开发中的要点,着重探讨了对深亚微米FPGA至关重要的技术和学术问题。《深亚微米FPGA结构与CAD设计》不讨论如何使用商用的FPGA器件,而是侧重于自主研究设计FPGA芯片结构和软件算法。通过分析和比较不同的可编程硬件结构、优化算法,得出提高FPGA芯片结构效率和算法性能的基本方法。
FPGA基础知识1(FPGA芯片结构)
时间的诗
1万+
目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理 和DSP)的硬核(ASIC型)模块。如图1-1所示(注:图1-1只是一个示意图,实际上每一个系列的FPGA都有其相应的内部结构),FPGA芯片主 要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用
详解FPGA典型结构图
wusuowei1010的博客
1091
基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与逻辑组合的逻辑电路功能,因此其适用于高速、高密度的高端数字逻辑电路设计领域。其组成部分主要有可编程输入/输出单元、基本可编程逻辑单元、内嵌SRAM、丰富的布线资源、底层嵌入功能单元、内嵌专用单元等。FPGA的主要设计和生产厂家有赛灵思、Altera、Lattice、Actel、Atmel和QuickLo...
FPGA内部结构、配置模式
吉大秦少游
188
1 FPGA的内部结构 主要包括以下5个方面: 可编程逻辑门阵列:由最小的逻辑单元LE组成; 可编程输入输出单元 IOE:input output element; 嵌入式SRAM块:为M4K块,每个SRAM大小为4k,掉电丢失; 布线网络; PLL锁相环:最大可倍频至250Mhz 基于查找表的FPGA 逻辑单元是FPGA的重要组成部分。一个逻辑单元(LE,Logic Element )包含一个4输入的查找表,同时加上一个寄存器。 那么它们是如何工作的呢? 基于LUT(Look Up Table)和SR
FPGA内部结构原理
m0_38012497的博客
450
1,该芯片是ALTERA公司ACEX®1K系列下的FPGA芯片,但不推荐在新的设计中。 2,内部资源。 对比cyclone系列 3,FPGA介绍 1 FPGA的基本结构由以下单元组成: 查找表(LUT):执行逻辑运算; 触发器(FF):该寄存器存储LUT的结果; 乘加器(DSP48等):乘加计算单元; 线路(Wires):连接不同的单元; 输入/输出(I/O)...
【FPGA学习笔记】fpga的内部结构
FPGA的内部组成结构 FPGA的内部组成结构 FPGA的内部组成结构 FPGA的内部组成结构
页:
[1]