当前位置: 首页 > article >正文

FPGA 基础了解

在这里插入图片描述

前言

前期一直在做关于FPGA方面的开发,从开始认真玩FPGA到参考原子、野火、黑金、米联客的教学资料再到参与做项目中,中途也参加了两个比赛整也都获得不错的成绩,整个阶段持续了大概快一年半的时间,学习了乱七八糟的知识,虽然做了很多的笔记(安利一个好用切开源的笔记、绘图软件Obsidian,里面有很多的大佬开发的插件—这是一个重点我用的几乎是我师兄二次开发的插件,又好看又好用满足强迫症患者),但是总感觉知识零零碎碎,为了总结一年来的工作,分享一些从小白开始学习FPGA的过程中得到的收获,把本地的笔记同步到博客上,同时在此期间的开发的源码进行在github开源(新建仓库待完善),这样做的目的也是为了能得到更多人的指导与建议,同时建立一个交流合作平台也邀请FPGA爱好者(学生)一起交流讨论,有兴趣的可以加QQ群(新建群聊,希望是一个友好交流的平台)。

  • github仓库:https://github.com/ggTest-star/FPGA-BASIC
  • QQ群:973766938

FPGA 中LUT知识

1. 什么是LUT?

  • LUT:其实就是我们常说的查找表,就是字面的意思就是一个“表”,这也是FPGA用来实现逻辑的关键组件,通过查表的方式来实现逻辑计算(与/或/非等…),比如c = a & b,在进行综合的时候会将a & b的几种结果写入LUT中,通过寻址的方式找到对应结果。
  • 四输入LUT:其实就是最多支持四个输入的查找表,比如a & b & c & d,输入的就是不同情况编码的地址,存储的就是不同情况计算的结果,如图1
  • 六输入LUT:其实就是最多支持六个输入的查找表,比如a & b & c & d & e & f, 输入的就是不同情况编码的地址,存储的就是不同情况计算的结果
  • 四输入查找表可以组成六输入的查找表,六输入的查找表也可以实现四输入的查找表
  • 有时候相同的设计放到不同型号的FPGA进行综合后的结果使用的LUT不一样,可能就是FPGA芯片支持的四输入LUT或六输入的LUT数量不一样导致的,也有可能和综合选项有关系

四输入LUT在这里插入图片描述四输入实现六输入在这里插入图片描述
六输入转实现四输入在这里插入图片描述

2. 为什么介绍LUT

LUT的使用的方法会对资源消耗以及时序优化有一定的影响,主要表现以下几个方面:

  • 如果FPGA资源是四输入的查找表,而在设计中大多为六输入或者更多输入的设计,这样会受限于输入到输出路径中LUT的位置以及连线长度
  • 如果FPGA资源是六输入的查找表,而在设计中大多为四输入或者更少输入的设计,这样会造成资源浪费
  • 在一些简单的运算中我们只需要写代码其他的交给EDA,但是在一些复杂的运算中可以手动构造查找表的方式去近似计算(后面会说)
  • 这也许就是大家说的要真正了解硬件的原因

3. 最后

这次记录不是为了狠狠地去科普LUT的原理,主要是为了总结一下几点:

  • LUT:中文名是查找表,就是通过地址找到对应的数据输出
  • FPGA中的逻辑计算和算术运算,主要就是通过LUT来进行的,不像ASIC设计那样会综合出门电路,与门、非门…
  • 可以手动构造查找表,去近似实现复杂的算术运算
  • 合理利用LUT的资源

http://www.kler.cn/a/445399.html

相关文章:

  • 猫头虎分享:读孙凝晖院士《人工智能与智能计算的发展》有感
  • 【网络云计算】2024第51周-每日【2024/12/17】小测-理论-解析
  • 【机器学习】机器学习的基本分类-强化学习(Reinforcement Learning, RL)
  • 整合 Knife4j 于 Spring Cloud 网关:实现跨服务的 API 文档统一展示
  • 对BG兼并点的理解-不断刷新版
  • JS设计模式之中介者模式
  • js日期时区问题
  • 初学stm32 --- PWM输出
  • 网络视频监控平台/安防监控/视频综合管理Liveweb视频汇聚平台解决方案
  • 鸿蒙项目云捐助第十一讲鸿蒙App应用的捐助成功自定义对话框组件实现
  • ubuntu 24.04-无域名创建本机和局域网和同网段局域网机器可访问的https网页服务
  • JAVA:组合模式(Composite Pattern)的技术指南
  • Nginx负载均衡(upstream)
  • SM2 算法介绍
  • UG NX二次开发(C#)-机电概念设计-UIStyler中selection块选择信号等对象的过滤器设置
  • Python语法之列表(包含检测练习)
  • 第十七章:反射+设计模式
  • facebook商业管理平台有什么作用?
  • 计算机网络 八股青春版
  • Spring Boot 2.1.7 数据源自动加载过程详解
  • 计算机图形学与虚拟现实(VR):相关学点、图形学、虚拟现实、未来发展
  • 细粒度生物医学多模态对比学习
  • OpenSSL 心脏滴血漏洞(CVE-2014-0160)
  • 番外篇 Git 的原理与使用
  • 【AIGC】结构化的力量:ChatGPT 如何实现高效信息管理
  • 【进阶编程】MVVM的物理架构目录