FPGA内部资源介绍(1)-逻辑资源块

近期有许多小伙伴私信小编,希望小编出一些FPGA基础知识,能对FPGA有初步的认识。小编立马奋笔疾书,熬夜整理了一些学习FPGA必备的基础知识,双手呈上~~,每天一个干货,一星期带你入门FPGA!

敲黑板!都是干货!

逻辑资源块是FPGA中最重要的资源,它在FPGA芯片中占的比重最大。Xilinx公司称它为时B.即ConffgurabeLogic Bock:而Altera公司称它为AM即 Adapive logic Module。Xilinx把一个CLB划分为若干个slice,每个slice中一般又包含若干个LUT、寄存器、异或门和复用器等;Altera把一个ALM划分为若干个ALUT 和寄存器等,而每个ALUT 中一般又可包含若干个LUT,全加器和复用器等。因此虽然逻辑资源块在不同的器件中叫法不一样(当然结构上也会有略微的差别),但它们的本质是类似的。在FPGA芯片中,逻辑资源块是均匀分布的,不过在列的方向上,它们的排列一般更加紧密些,这估计是为了减少加法进位链的延迟和实现高性能的寄存器链吧。

下面,我们给出 Xilinx公司 Virtex-5系列芯片中的基本slice结构图(图1)和Altera公司StratixN系列芯片中的基本ALM结构图(图2)供大家对比。

对比图1和图2可以看出,无论是CLB还是ALM,它们包含的基本元素都是相似的。下面我们详细介绍一下这些基本元素。

1.LUT

LUT 即查找表的意思,它是FPGA芯片与其他可编程逻辑芯片之间最大的区别。LUT可以有多个输入引脚,但只能有一个输出引脚。我们可以用 ROM 的概念来理解 LUT,即,般来说,一个N输人的查找表,它的行为相当于一个地址总线为N位,单位存储量为1bit,总存储量为2bit的单口 ROM。例如,对于一个2输人的查找表,如果按照"逻辑与"的真值表去配置其内部ROM的存储内容,那么它的行为就相当于一个与门;如果按照"逻辑或"的真值表去配置其内部ROM的存储内容,那么它的行为就相当于一个或门;如果固定住一个输人引脚,也可以很方便地模拟非门的行为;如果恰当地组合两个2输人的LUT,也可以很方便地实现任意3输人逻辑:以此类推。因此,只要通过恰当的连接,我们可以用该LUT实现任意的组合逻辑功能。进一步分析,通讨结合【共同语言→数字逻辑电路基础知识→数字锣辑的化简】中关于最小项概念的介绍,我们可以知道,LUT中的每一个存储单位都对应于逻辑表达式中的一个最小项,因此,LUT可以方便地描述任何组合逻辑。目前来说,FPGA中的基本 LUT一般都是4输入,6输人甚至更多输人引脚的,那么它们所能实现的逻辑功能就更加复杂、灵活和多变。

图1

图2

除此以外,LUT不仅仅可以实现灵活、多变的组合逻辑,通过恰当地配置,它甚至可以模拟寄存器的行为,例如图3用LUT完美地模仿了一个寄存器的行为(前提是 LUT中的存储空间被正确配置)。

图3

其中,两个LUT分别模仿了两个锁存器的行为,上面的4输人LUT模拟了一个高电平冼通的latch行为,下面的5输人LUT模拟了一个低电平选通的latch行为而两个LUT中的反馈回路是模拟 latch 在阻止状态下保持原值的关键。

注意,在LUT模仿寄存器的例子中,使用了反馈结构。对于组合逻辑来说,使用反馈结构是很危险的,因为一不小心引入了负反馈就会造成逻辑的混乱。在使用 LUT的时候也是一样,要注意不要引人负反馈。不过LUT 有一个区别于与或非门逻辑的显著特点,那就是 LUT 虽然可以很好地模拟任何组合逻辑,但它实际上不是一个纯粹的组合逻辑,因为组合逻辑的电路是没有记忆的,而LUT是有记忆的,虽然这种记忆一旦建立起来就不会改变直到掉电或下一次电路配置。这是因为LUT有内部存储单元,而它的实现形式可以是ROM、 RAM、寄存器或者MUX加一系列到电源或地的开关等。当然了,由于LUT的实现形式多种多样,因此在 FPGA 中,也可以用 LUT 实现 ROM、RAM甚至移位寄存器。

2.加法器

加法是所有二进制运算的基础,因此它在 FPGA 中的地位非常重要。而二进制加法中最重要的功能元素就是异或操作,因此,为了实现高性能的加法,Xilinx采用了专门的异或门,而 Altera也是引人了专门的全加器。虽然LUT也可以模拟异或门的功能,但是它的延迟相比于专有的异或门来说还是太大,尤其是两个多位数据的相加时,由于级联效应,会导致处理变慢。因此,目前在FPGA的逻辑资源块中,都是留有专门的异或门外加专门的进位链布线资源,再配合相关资源实现全加器的。不过 LUT可以配合异或门实现超前进位加法器,进一步提高加法器的性能。

3.寄存器

FPGA中有丰富的寄存器资源,这也是它区别于CPLD的地方。寄存器是时序逻辑的基础,由于它对电路状态的保持和记忆特性,才使得数字电路具有千变万化的功能。FPGA中的寄存器一般可以被配置为D类型的触发器或者锁存器。配置为D类型的触发器时,根据生产厂商以及型号的不同,可能会有一些其他的功能管脚,例如异步复位、同步复位、时钟使能、同步置位等。FPGA中寄存器的输出一般都会连到附近一个寄存器的输人MUX中,通过配置该 MUX,可以将多个寄存器串联起来形成寄存器链,实现移位寄存器电路。

4.MUX

MUX就是复用器,也叫多路选择器。FPGA的逻辑资源块中,有很多MUX,根据用法可以分为两类:一类是配置MUX,它的选通是在配置FPGA的时候确定的,因此它决定了所处逻辑资源块的功能;另一类是逻辑MUX,它的选通是由此时的内部逻辑决定的,因此它是内部逻辑的一部分。由此可见配置MUX在FPGA中的作用更大一些,通讨改变配置 MUX的选通情况,可以让逻批资源块定现多种名样的功能。例如,通过改变配置MUX的选通情况我们可以只使用逻辑资源块中的组合逻辑部分,也可以只使用其中的寄存器,甚至可以同时使用这两部分,但它们却分别隶属于不同的功能模块。

相关推荐
9527华安2 小时前
FPGA实现MIPI转FPD-Link车载同轴视频传输方案,基于IMX327+FPD953架构,提供工程源码和技术支持
fpga开发·架构·mipi·imx327·fpd-link·fpd953
热爱学习地派大星2 小时前
FPGA远程升级 -- FLASH控制
fpga开发
szxinmai主板定制专家10 小时前
【国产NI替代】基于国产FPGA+兆易创新GD32F450的全国产16振动+2转速(24bits)高精度终端采集板卡
fpga开发
szxinmai主板定制专家12 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
HIZYUAN17 小时前
AGM FPGA如何配置上拉或者下拉电阻
fpga开发
∑狸猫不是猫18 小时前
(13)CT137A- 简易音乐盒设计
fpga开发
ThreeYear_s1 天前
基于FPGA 的4位密码锁 矩阵键盘 数码管显示 报警仿真
fpga开发·矩阵·计算机外设
Anin蓝天(北京太速科技-陈)1 天前
252-8路SATAII 6U VPX高速存储模块
fpga开发
如何学会学习?1 天前
2. FPGA基础了解--全局网络
fpga开发
Anin蓝天(北京太速科技-陈)1 天前
271-基于XC7V690T的12路光纤PCIe接口卡
嵌入式硬件·fpga开发