查找表(LUT)

对于一个有n输入的逻辑运算,则最终有2n个不同的组合方式。为了便于理解,下面给出一个例子:

上面是一个2输入的例子,该例子对应的组合逻辑电路如下:

该组合逻辑的真值表:

如果使用传统的数字电路的方法,则要实现该组合逻辑电路,需要经过下面几个过程:

  1. 通过真值表得到输入和输出之间的逻辑关系;
  2. 通过化简卡诺图得到描述输入输出变量关系的逻辑表达式;
  3. 通过逻辑电路实现逻辑表达式。

众所周知,在设计时序电路时,时序电路的工作性能极为重要。然而,采用传统逻辑门电路实现逻辑关系的方法存在一些严重的缺点:

  1. 输入变量从通过逻辑电路到输出变量,存在一定的延迟,该延迟的大小和逻辑电路的复杂程度密切相关。逻辑电路越复杂,延迟越大,因此,延迟是不确定的;
  2. 延时的倒数是频率,频率和时序电路的工作速率密切相关。因为延迟不确定,所以频率也不确定,这将严重影响整个电路的工作性能;
  3. 逻辑电路的复杂程度和输入逻辑变量的个数、逻辑门的个数有关。因此输入逻辑变量越多,逻辑电路就越复杂。

LUT

为了解决传统逻辑电路的的问题,在FPGA中,使用LUT来实现组合逻辑电路的功能。

LUT 本质上是一个SRAM,里面存储的数据类似于真值表,它将上例中的逻辑与门和或门分别使用两张类似于真值表的东西代替,LUT中保存着输入变量和经过逻辑门后输出变量的所有结果。在实现上,它将输入数据作为SRAM的地址,然后通过该地址找到对应的值,将该值作为结果输出。比如上例中的与门,在该与门对应的LUT中,地址为0、0的存储单元中保存着0,地址为0、1的存储单元中保存着0,地址为1、0的存储单元中保存着0,地址为1、1的存储单元中保存着1;当输入变量为0、1时,就会直接将LUT中地址为0、1的存储单元中的0输出。

上例中查找表构成的电路:

其中x_OBUF_inst_i_1和y_OBUF_inst_i_1分别为与门和或门对应的LUT,I0和I1表示输入变量,O表示输出的值,IBUF表示输入缓冲区,OBUF表示输出缓冲区。

使用LUT代替传统的逻辑门实现组合逻辑的优点:

  1. 通过LUT代替组合逻辑,而LUT中的值只和输入有关,因此组合逻辑的功能由输入决定,不在和复杂度有关;
  2. LUT实现的组合逻辑的延迟是固定的。

FPGA基础之LUT详解相关推荐

  1. FPGA网口实现与详解(3)

    在这一篇之前,建议大家先看网口实现的上两篇: 这一篇讲解了网口的基础知识 FPGA网口实现与详解(1)_居安士的博客-CSDN博客 这一篇讲解了网口的UDP,IP,以太网3种协议的单独实现方法 FPG ...

  2. 基础排序算法详解与优化

    文章图片存储在GitHub,网速不佳的朋友,请看<基础排序算法详解与优化> 或者 来我的技术小站 godbmw.com 1. 谈谈基础排序 常见的基础排序有选择排序.冒泡排序和插入排序.众 ...

  3. 基础拾遗------委托详解

    基础拾遗: 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗---- ...

  4. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  5. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. 基础拾遗------泛型详解

     基础拾遗: 前言: 1.泛型的约束 2.泛型继承 3.关键字default 4.泛型方法 5.泛型接口 6.泛型数组 7.泛型委托 基础拾遗: 基础拾遗------特性详解 基础拾遗------ ...

  8. python 3.x 爬虫基础---http headers详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---Requer ...

  9. 基础拾遗------webservice详解

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

最新文章

  1. 1.14 java内部类是什么鬼东西
  2. 评论:中国企业向Faceook学习什么
  3. 服务器显卡驱动修复,AMD发布2020年首个显卡驱动:一口气修复27个Bug
  4. 13.SpringMVC核心技术-异常处理
  5. c语言下列循环的循环次数,在C语言中,若i=3,则语句 while (i) { i--; break;}的循环次数为 答案:1...
  6. PyTorch实战福利从入门到精通之一——PyTorch框架安装
  7. 机器学习实战 - 读书笔记(05) - Logistic回归
  8. Photoshop 2021安装教程附PS安装包下载
  9. 硬件设计40之什么是I2S、PCM、MP3?
  10. 深入浅出 NXLog (一)
  11. 武汉大学信息学部到计算机学院,武汉大学信息科学学部
  12. 语音识别入门课——week5(GMM-HMM)
  13. fatal: Could not set SSL backend to ‘schannel‘:already set
  14. Latex 参考文献格式
  15. 明治维新VS洋务运动-同途殊归的变革by高铭君儿
  16. DeviceIoControl使用说明
  17. 1884 COW(递推、状态机dp)
  18. GitHub上下载量突破100000+阿里巴巴的开源项目
  19. 与人交往总是能学到一些东西的
  20. u盘装机出现蓝屏A5错误

热门文章

  1. SAP CRM Fiori note header
  2. why jQuery.clone does not work as expected
  3. 在nodejs websocket回调函数中没法用this
  4. kyma上service catalog的安装部署方法
  5. FioriLaunchpad.html的三个round-trip
  6. SAP UI5的support Assistant
  7. deletion in request load scenario
  8. SAP云平台上应用的HTTPS证书
  9. SAP收购的coresystem app的使用截图
  10. 使用SAP OData服务创建销售订单