FPGA资源之LUT

这篇具有很好参考价值的文章主要介绍了FPGA资源之LUT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、CLB资源简介

  Xilinx 7的FPGA可编程逻辑资源为CLB(Configurable Logic Block)
  下图白色高亮为CLB资源:
  在Xilinx的FPGA中,这样的CLB资源有很多个,组成可编程逻辑阵列;
lut资源,基于Vivado的硬件设计,fpga开发
  我们看到在CLB资源中,还有两个区域如下图:
  这些资源统称为SLICE,一个CLB中有两个SLICE,当然这两个SLICE片在名字与功能上也是有区别的;
  绿色(SLICEM),黄色(SLICEL)
  SLICEM的功能更偏向与组成DRAM(Distributed RAM,分布式RAM),SLICEL更偏向实现组合逻辑;
lut资源,基于Vivado的硬件设计,fpga开发
  每一个SLICE中,有以下的资源,4个LUT(Look Up Table,查找表)、3个MUX(多路选择器)、1个CARRY(进位单元)和8个DFF(触发器);
  其中一个SLICE中的MUX共3个,有2个是F7MUX(7输入多路选择器)1个是F8MUX(8输入多路选择器);
lut资源,基于Vivado的硬件设计,fpga开发lut资源,基于Vivado的硬件设计,fpga开发
  通过SLICE片中各个单元的组合、SLICE与SLICE之间的组合和CLB之间的组合,我们就能实现各种功能;

二、LUT查找表资源(SLICEM、SLICEL)

  LUT(Look Up Table)资源是FPGA中比较重要的一个资源,LUT资源也是构建组合逻辑的基本单元,可以说LUT资源越多,我们能够实现的功能就越复杂;
  在FPGA中的LUT分为两种,分别是SLICEM中的LUT和SLICEL中的LUT;
SLICEM中的LUT资源如下:
lut资源,基于Vivado的硬件设计,fpga开发
SLICEL中的LUT资源如下:
lut资源,基于Vivado的硬件设计,fpga开发
  这两种LUT资源之间最直观的区别是前者比后者多出了更多信号线;
  这是因为SLICEM中的LUT资源多了移位逻辑,它既可以当作普通的LUT使用,也可以通过多块LUT组合成分布式RAM或ROM(Distributed RAM/ROM);

三、LUT资源

3.1 LUT资源工作原理

  通过LUT资源我们可以实现不同组合逻辑,这是因为LUT本质上就是一个小RAM,我们以查找表资源来讲,这里的表其实就是实现的组合逻辑的真值表,而这个真值表则存储于LUT中;
  例:通过LUT2实现A&B逻辑
真值表:
lut资源,基于Vivado的硬件设计,fpga开发
  我们将上面真值表中的A与B看做地址线,O看做RAM中的初值;
  则LUT2资源如下:
lut资源,基于Vivado的硬件设计,fpga开发
  LUT2的初始化值为4’b1000(十六进制:0x08)
  当A = 1’b1 B = 1’b1 时,则此时寻址的是RAM的最高位,也就是1;

3.2 LUT资源内部结构

  在3.1节中,我们提到LUT本身就是一个RAM,以3.1节中LUT2的例子,其内部结构的简化图如下:
lut资源,基于Vivado的硬件设计,fpga开发

  最左侧为提前写入LUT资源的数据配置;
  通过上述例子,我们还能拓展出LUT4、LUT6的结构图;

3.3 LUT功能的拓展

  在FPGA中,若仅通过配置LUT资源的配置,是很难实现更多复杂应用的,因为LUT资源的功能有限,此时就需要一些其他资源来与LUT配合,拓展LUT资源的功能;
lut资源,基于Vivado的硬件设计,fpga开发

  上图是Xilinx家FPGA的SLICE内部结构,我们主要观察上图中,LUT6的输出,其分别接到了MUX、CARRY上,当然也可以将LUT资源直接输出;
  这些信号最终在CLICE输出的MUX上汇总;
lut资源,基于Vivado的硬件设计,fpga开发

  通过这一操作,我们可以拓展LUT6的功能,如通过两个LUT6与一个MUX实现LUT7,或者LUT6与CARRY组合,实现计算等等;
  以下给出在工具进行综合后,MUX8与LUT6组合的实现(绿色)lut资源,基于Vivado的硬件设计,fpga开发

3.4 LUT硬件原语

  在大多数情况下,我们只需用Verilog描述好电路逻辑,然后将其丢给编译器,进行分析综合,编译器就能自动将电路转换好,我们无需关注LUT资源的分配;但在某些情况下,我们需要直接例化LUT资源时,需要用到硬件原语;
  以Xilinx的FPGA中LUT6资源为例,其原语如下:

LUT6 #(
   .INIT(64'h0000000000000000)  // Logic function
)
LUT6_inst (
   .O(O),   // 1-bit output: LUT
   .I0(I0), // 1-bit input: LUT
   .I1(I1), // 1-bit input: LUT
   .I2(I2), // 1-bit input: LUT
   .I3(I3), // 1-bit input: LUT
   .I4(I4), // 1-bit input: LUT
   .I5(I5)  // 1-bit input: LUT
);

INIT: 提前写入LUT6的值;
I0~I5: LUT6寻址线;
O: LUT6寻址输出;
真值表:
lut资源,基于Vivado的硬件设计,fpga开发
lut资源,基于Vivado的硬件设计,fpga开发
lut资源,基于Vivado的硬件设计,fpga开发
lut资源,基于Vivado的硬件设计,fpga开发
例:例化LUT6实现与非门(~(a&b))
  根据与非门,我们得到以下真值表
lut资源,基于Vivado的硬件设计,fpga开发
  假设我们把LUT6的I0作为信号b,I1作为信号a,I2~I5作为保留位(默认为1),则真值表可以拓展为;
lut资源,基于Vivado的硬件设计,fpga开发
则需要初始化的值为
  第60位:1’b1
  第61位:1’b1
  第62位:1’b1
  第63位:1’b0
最终INIT值为64’h7000000000000000
则Verilog如下:文章来源地址https://www.toymoban.com/news/detail-801336.html

module nand(
    input  wire   a,
    input  wire   b,
    output wire   o
);

LUT6 #(
   .INIT(64'h7000000000000000)  // Logic function
)
LUT6_inst0 (
   .O(o),   // 1-bit output: LUT
   .I0(b), // 1-bit input: LUT
   .I1(a), // 1-bit input: LUT
   .I2(1'b1), // 1-bit input: LUT
   .I3(1'b1), // 1-bit input: LUT
   .I4(1'b1), // 1-bit input: LUT
   .I5(1'b1)  // 1-bit input: LUT
);

endmodule

到了这里,关于FPGA资源之LUT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于STM32 ARM+FPGA的电能质量分析仪方案(一)硬件设计

    本章主要给出了本系统的设计目标和硬件设计方案,后面详细介绍了硬件电路的设计 过程,包括数据采集板、 FPGA+ARM 控制板。 3.1系统设计目标 本系统的主要目的是实现电能质量指标的高精度测量和数据分析,其具体技术指标如 下所示: 1.电能质量指标测量精度: (1) 电压:

    2024年02月10日
    浏览(52)
  • 基于FPGA的相控阵雷达波束控制系统设计(3)第3章子阵运算处理模块硬件电路设计

    第3章子阵运算处理模块硬件电路设计 确定使用查表法实现波控系统方案以后,需要对它的硬件电路进行设计。波控系统的硬件电路主要由波控主机和子阵模块两部分组成。 波控主机在一般情况下都会使用通用成熟的模块,不需要我们进行设计。子阵模块的硬件电路的设计是

    2024年01月17日
    浏览(55)
  • 基于FPGA的数据采集、编码、通讯和存储系统设计(即FPGA+RTL8211千兆以太网+SD卡存储+RTC+Uart+AD7606数模转换+电流放大采集等硬件设计与程序验证)

    介绍一个小项目,加强对FPGA相关接口的整体把握。 硬件及软件代码梳理: 硬件系统的主要功能框图,其中FPGA作为处理单元,实现了包括电流和电压的采集、千兆以太网通讯、SD卡本地数据存储和串口通讯等。已经过板级测试,测试包含:千兆网通讯收发测试、AD采集的数据

    2024年04月13日
    浏览(52)
  • FPGA用vhdl语言设计简单硬件电子琴设计

    硬件电子琴设计 目录 一、 设计内容简介 二、系统框图 三、代码说明 四、 管脚及管脚对应图 一、设计 内容简介 当按下琴键时,扬声器发出该琴键对应的音阶,同时数码管显示音阶数字。设置了一个模式切换键可选择低、中低、中高、高音4档音阶,每按下一次则可切换不

    2024年02月04日
    浏览(37)
  • 数字电路硬件设计系列(六)之FPGA配置引脚的设计

    不同的FPGA种类,配置的方式可能有稍许的差别。此处我们主要以7系列中 XC7A200TFBG676 为例,讲解FPGA的主要配置引脚。 工具制程工艺的不同,FPGA主要可以分为16nm、20nm、28nm。不停的制程工艺下,有不同的产品,详细将下: 在FPGA的设计过程中,将FPGA的IO口划分为不同的BANK,常见

    2024年02月06日
    浏览(66)
  • FPGA通信—千兆网(RTL8211EG)硬件设计

    创造一个低噪音、功率稳定的环境 降低EMI/EMC的程度及其对RTL8211E/RTL8211EG的影响 简化信号跟踪的路由任务 RTL8211EG 必须尽可能靠近MAC( 小于2.5英寸=6.35cm ) 连接到RSET引脚的电阻器应靠近RTL8211E/RTL8211EG( 小于800mils ),并尽可能远离信号迹线(例如,VRRREG、REG_OUT、MDI0+/-、MD

    2024年02月11日
    浏览(38)
  • 全定制FPGA硬件电路设计实现最大公约数求取算法(Quartus II)

    目录 一、设计需求 二、设计工具及版本 三、设计原理及结构方案 四、电路设计描述 1. 32位D触发器 2. 32位多路选择器 3. 32位减法器 4. 32位求余电路 5. GCDOUT信号产生电路 6. DONE_L信号产生电路 五、仿真激励设计方案及电路仿真结构 六、设计总结 当前,FPGA设计在很多场合得到

    2024年02月20日
    浏览(46)
  • 基于verilog设计一个硬件看门狗

       看门狗 :也称看门狗定时器,是常见于系统的一种外设; 看门狗似乎就是一条看门的狗,如果系统一切正常则看门狗不叫,如果程序不正常,则看门狗则会将程序咬死(即程序强制复位)。    看门狗的作用 :当一段程序跑飞,卡死或不受控制时,能使得系统强制重

    2024年02月16日
    浏览(33)
  • 毕业设计 基于单片机的导盲拐杖设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(76)
  • 毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包