首页 > 技术 > 内容

FPGA中的逻辑运算是如何实现的?

时间:2025-12-01  作者:Diven  阅读:0

**1. **可编程逻辑功能块

可编程逻辑功能块(Configurable LogIC Blocks, CLB),顾名思义就是可编程的数字逻辑电路,可以实现各种逻辑功能。

CLB是FPGA根据用户需求构建各种数字电路的核心模块,是FPGA实现组合逻辑和时序逻辑电路的主要逻辑资源。CLB也是FPGA芯片中利用率最高,占用面积最大的逻辑资源模块,作用犹如人体中最基本的细胞单元。

LUT也即我们常说的查找表,是CLB的主要功能模块,这点由CLB名字的全称(可配置逻辑功能块)就可以知道了。通过一个N输入的LUT可以实现任意N个变量的组合逻辑。为方便理解,我们以3输入LUT为例加以说明。Fig1. LUT3原理图

图中M0-M7为查找表的配置存储器(即存储单元),通过编程下载将数据写入这个8个存储单元;输出OUT则根据A、B、C的值选择M0-M7的值。CBA=000时选择M0的值,CBA=001时选择M1的值,以此类推,CBA=111时就选择M7,这样就构成了一个Look up table,也就可以通过写入M0-M7适当的值来实现ABC的任意逻辑。

例如想要实现函数OUT1=C⊕B⊕A或函数OUT2=A&B+C,真值表如下表1所示,所以只需要使M0-M7的值为01101001就可以实现函数OUT1的功能;只需要使M0-M7的值为00011111就可以实现函数OUT2的功能。6输入查找表原理一样。

表1 函数OUT1和OUT2的真值表**2. **工程验证

1 建立Vivado****工程

用Vivado软件编写verilog代码实现y = a & b + c,如下:生成的bitstream(文件路径:工程名路径/工程名/工程名.runs/impl_1/工程名.rbt),如下(部分):上述bitstream绝大部分会存储到FPGA的Memory Cell中,也就是图1中M7-M0的数据源。图1中的A、B、C和OUT来自FPGA的IO,由用户指定。其中A、B、C和OUT对应代码中的a、b、c和y。图2是Vivado自动布局布线出来的y = a & b + c,可以看出仅占用了FPGA的一个LUT6资源。Fig2. y = a & b + c 软件视图

2解析bitstream

下载到图2中LUT6的Memory值是否是我们想要的呢?这就需要我们对bit流进程解析。

我们直接给出此LUT6占用的Memory Cell值及位置,如下:其中FRAMe表示一帧数据,共101个word,一个word表示32个Memory Cell,因此一个fRAMe表示101 x 32 = 3232个Memory Cell。

由第1章知识,可知一个LUT6需要2^6=64个Memory Cell,即上图灰色部分(16 x 4 = 64)。

**2.3 **分析验证

为便于分析我们把2.2节中FRAMe:104/105/106/107 word:0的低16位取出放到表格里构成16x4的一个矩阵,如下:转换成64x1矩阵(转换关系由内部电路决定,这里直接给出),如下:这里与表1呼应,至此我们工程化验证了y = a & b + c,你理解了吗?

**3. **思考与讨论

bitstream是如何烧写到FPGA芯片中的?如何利用CLB实现时序逻辑?FPGA内部时钟架构是什么样的?FPGA电源是如何划分的?

猜您喜欢


贴片电阻,这种小型电子元件在各种电路中是很重要的配件。要准确识别和使用,了解阻值代码很重要。对于20kΩ的贴片电阻,其代码通常采用三位数字或四位数字表示。三位数...
2024-11-29 10:26:18
贴片电阻阻值「100」代表100欧姆(Ω),这是一个常见的电阻值。欧姆是电阻的单位,表示电阻器对电流的阻碍程度。阻值越大,对电流的阻碍作用就越强。100Ω的贴片...
2024-11-26 11:29:49
安全警示灯是保障人们生命安全的重要设备,根据其功能和应用场景的不同,可以分为几种主要类型。交通警示灯是最常见的,主要用于道路交通管理。这类灯具通常采用红、黄、绿...
2009-04-03 00:00:00
现代化的显示技术中,LED显示屏以其亮度高、色彩丰富和低能耗的优势,被应用于各类场合。作为LED显示屏的核心部件,电源的性能直接关系到显示效果和设备寿命。因此,...
2024-05-13 00:00:00
VOC传感器是高精度的气体传感器,主要用于检测空气中的挥发性有机化合物(VOCs)。这些化合物存在于日常生活中,如清洁剂、油漆、香水等,其浓度过高可能对人体健康...
2015-06-20 00:00:00
贴片电阻上的「01B」标记并非直接表示阻值大小,而是代表其阻值代码。要确定01B贴片电阻的具体阻值,需要将其代码进行解码。「01B」采用的是三位数代码标注法。其...
2024-11-26 11:30:02
电子设计中,TL3842是一款常用的PWM控制芯片,应用于开关电源和电机驱动等领域。其3脚通常用于限流电阻的连接,合理选择限流电阻的大小对电路的稳定性和性能非常...
2025-10-31 23:00:36
PTC热敏电阻作为重要的温度保护元件,应用于电路保护、温度补偿以及过流保护等领域。ROHM(罗姆)作为全球知名的半导体制造商,其生产的PTC热敏电阻凭借优异的性...
2017-11-25 11:55:30
SIP-7(StellarImprovementProposal7)是Stellar网络中的一个重要提案,旨在提升该区块链的功能和效率。随着区块链技术的不断发展...
2025-02-24 12:17:53