文章目录

  • 一、CLB资源简介
  • 二、LUT查找表资源(SLICEM、SLICEL)
  • 三、LUT资源
    • 3.1 LUT资源工作原理
    • 3.2 LUT资源内部结构
    • 3.3 LUT功能的拓展
    • 3.4 LUT硬件原语

一、CLB资源简介

  Xilinx 7的FPGA可编程逻辑资源为CLB(Configurable Logic Block)
  下图白色高亮为CLB资源:
  在Xilinx的FPGA中,这样的CLB资源有很多个,组成可编程逻辑阵列;

  我们看到在CLB资源中,还有两个区域如下图:
  这些资源统称为SLICE,一个CLB中有两个SLICE,当然这两个SLICE片在名字与功能上也是有区别的;
  绿色(SLICEM),黄色(SLICEL)
  SLICEM的功能更偏向与组成DRAM(Distributed RAM,分布式RAM),SLICEL更偏向实现组合逻辑;

  每一个SLICE中,有以下的资源,4个LUT(Look Up Table,查找表)、3个MUX(多路选择器)、1个CARRY(进位单元)和8个DFF(触发器);
  其中一个SLICE中的MUX共3个,有2个是F7MUX(7输入多路选择器)1个是F8MUX(8输入多路选择器);

  通过SLICE片中各个单元的组合、SLICE与SLICE之间的组合和CLB之间的组合,我们就能实现各种功能;

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

  LUT(Look Up Table)资源是FPGA中比较重要的一个资源,LUT资源也是构建组合逻辑的基本单元,可以说LUT资源越多,我们能够实现的功能就越复杂;
  在FPGA中的LUT分为两种,分别是SLICEM中的LUT和SLICEL中的LUT;
SLICEM中的LUT资源如下:

SLICEL中的LUT资源如下:

  这两种LUT资源之间最直观的区别是前者比后者多出了更多信号线;
  这是因为SLICEM中的LUT资源多了移位逻辑,它既可以当作普通的LUT使用,也可以通过多块LUT组合成分布式RAM或ROM(Distributed RAM/ROM);

三、LUT资源

3.1 LUT资源工作原理

  通过LUT资源我们可以实现不同组合逻辑,这是因为LUT本质上就是一个小RAM,我们以查找表资源来讲,这里的表其实就是实现的组合逻辑的真值表,而这个真值表则存储于LUT中;
  例:通过LUT2实现A&B逻辑
真值表:

  我们将上面真值表中的A与B看做地址线,O看做RAM中的初值;
  则LUT2资源如下:

  LUT2的初始化值为4’b1000(十六进制:0x08)
  当A = 1’b1 B = 1’b1 时,则此时寻址的是RAM的最高位,也就是1;

3.2 LUT资源内部结构

  在3.1节中,我们提到LUT本身就是一个RAM,以3.1节中LUT2的例子,其内部结构的简化图如下:

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

3.3 LUT功能的拓展

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

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

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

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寻址输出;
真值表:




例:例化LUT6实现与非门(~(a&b))
  根据与非门,我们得到以下真值表

  假设我们把LUT6的I0作为信号b,I1作为信号a,I2~I5作为保留位(默认为1),则真值表可以拓展为;

则需要初始化的值为
  第60位:1’b1
  第61位:1’b1
  第62位:1’b1
  第63位:1’b0
最终INIT值为64’h7000000000000000
则Verilog如下:

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相关推荐

  1. FPGA资源利用率报告中的LUT和LUTRAM有什么区别

    通过Report Utilization查看资源利用率报告时,会生成如下图所示的一个表格.在这个表格中Resource对应的列会有LUT和LUTRAM,那么两者到底有什么区别呢?是包含关系吗?不过,可 ...

  2. FPGA经验谈系列文章——FPGA资源评估

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章--FPGA资源评估 前言 如何评估 哪些资源需要评估 怎么快速的进行资源统计 评估结果 前言 大家在项目中一般 ...

  3. Xilinx FPGA资源解析与使用系列——CLB

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA资源解析与使用系列--CLB 前言 CLB Overview Device Resources Recommen ...

  4. 初识FPGA CLB之LUT实现逻辑函数

    一.概述 LUT中文名字叫查找表.以7系列的FPGA为例,每一个Slice里面有四个LUT.FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift Regi ...

  5. 如何将FPGA资源平民化?阿里工程师有了新突破

    阿里妹导读:FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩.一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部 ...

  6. FPGA资源平民化的新晋- F3 技术解析

    摘要: FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩.一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保 ...

  7. (220)FPGA内部组成LUT介绍

    (220)FPGA内部组成&LUT介绍 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA内部组成&LUT介绍 5)技术交流 6)参考资料 2 ...

  8. (70)FPGA资源优化有哪些方法?手写FIFO代替BRAM

    1.1 FPGA资源优化有哪些方法?手写FIFO代替BRAM 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA资源优化有哪些方法?手写FIFO代替BRAM: 5) ...

  9. (113)FPGA面试题-LUT计算问题

    1.1 FPGA面试题-LUT计算问题 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-LUT计算问题: 5)结束语. 1.1.2 本节引言 " ...

最新文章

  1. spring boot里面的三种配置文件。
  2. 函数式编程与REST的思考
  3. Mybatis if test 中int integer判断非空的坑
  4. Android之如何判断设备是平板还是手机
  5. qt退出 整个应用程序_为什么要对整个应用程序使用功能组合
  6. linux crontab 详解
  7. 数据库查询性能优化之利器—索引(一)
  8. JavaScript代码混淆加密 JS不可逆加密 JavaScript在线加密 免费JS代码加密工具
  9. 【行业专题报告】城市、智慧城市-专题资料
  10. 双线服务器托管的三大优势
  11. 【节日快乐】圣诞元旦在即,你准备好怎么营销了吗?
  12. u盘无法格式化不在计算机中,u盘无法格式化,教您怎么解决u盘无法格式化?
  13. ★追风的牛★添翼圈Moto Droid玩家手册(感谢原作者,只是做个备份而已,如果牵扯到越劝,我会立即删掉)
  14. 电脑误删wps文件怎么恢复?介绍4个解决方法
  15. 移植实时操作系统到 risc-v 架构芯片时上下文切换的实现
  16. C++-FFmpeg-(5)-2-h264-概念与名词:宏块-I-P-B帧;参数设置:ABR、CQP、CBR、CRF;码流:SPS-PPS
  17. 关于五笔输入法与EXCEL不兼容解决方法
  18. java.exe点击无反应_win7系统双击JeR安装包没有任何反应的解决方法
  19. 各大AI研究院共35场NLP算法岗面经奉上
  20. 关于docker容器启动后修改或添加端口

热门文章

  1. 开源项目 ——API接口管理平台数据库原型设计(三)
  2. office 2007 word中无法显示嵌入的图片
  3. OSChina 愚人节乱弹 —— 开个小电影专栏放一天
  4. 剑指offer面试题2:实现单例模式
  5. Selenium中的隐式等待和显式等待
  6. 截止2017年5月19日小虎软考粉丝有798人
  7. 笔记本固态硬盘温度测试软件,台式电脑ssd固态硬盘温度多少算正常?查看ssd固态硬盘温度的方法...
  8. 液晶面板价格继续下跌,32英寸平板电视或跌破500元
  9. 看黑客如何在Black Hat 2016上5秒干掉 macOS 系统,“催吐”ATM机| 宅客周刊
  10. 3653: 谈笑风生