跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
汇编算法

FPGA 底层资源解析:查找表 LUT 原理与应用

讲解 FPGA 中的查找表(LUT)概念、与传统逻辑门对比及应用。LUT 作为基本逻辑单元,通过存储真值表实现组合逻辑,具有低延时和可配置优势。主要用途包括实现组合逻辑、搭建分布式 RAM 及移位寄存器。SLICEM 型 LUT 支持时钟输入,功能更强。

极客工坊发布于 2026/4/6更新于 2026/9/1092 浏览

1. 什么是 LUT?

LUT(look-up table)即查找表,是 FPGA 中实现组合逻辑功能的基本单元。可视为小型 SRAM,存储逻辑真值表,输入作为地址线,读取对应逻辑输出结果。

LUT 分为 LUT1 至 LUT6,数字代表输入口数量。例如 LUT4 有 4 个输入地址位,可读写 0~15 共 16 个地址的 bit 数据。

不同 LUT 之间可以级联,一般建议层级不超过 6,否则可能引发时序问题。若超过 6 层,需插入寄存器或降低频率改善时序。

通过设置 LUT 的初始值可实现特定逻辑。例如实现 2bit A、B 是否相等,将 I3=A[1]、I2=A[0]、I1=B[1]、I0=B[0] 映射到输入。当 A=B 时(0000 或 1111),在对应地址写入 1。

Verilog 例化代码:

LUT4 #(
    .INIT(16'b1000000000000001) // Logic function
)
LUT4_inst (
    .O(O),      // 1-bit output: LUT
    .I0(B[0]),  // 1-bit input: LUT
    .I1(B[1]),  // 1-bit input: LUT
    .I2(A[0]),  // 1-bit input: LUT
    .I3(A[1])   // 1-bit input: LUT
);

当输入为 0000/1111 时输出为 1,表示 A=B。

2. LUT 与传统逻辑门的对比

传统逻辑门基于与或非等门电路,EDA 工具先将 RTL 综合为门级电路,再综合为 LUT。FPGA 选择 LUT 而非直接门电路的原因如下:

  1. 性能角度:门电路存在不同时延,组合逻辑中门越多延时越长,易成系统瓶颈。LUT 内部已预置逻辑输出,给定输入即可直接读取结果,有效解决延时问题。
  2. 底层原理:FPGA 为现场可编程门阵列,属于半定制电路。其基本结构无法像 ASIC 那样固定,只能采用易于反复配置的结构。LUT 本质是 SRAM,初始值可包含各种门级逻辑,支持不改变电路的情况下重复修改逻辑。

3. LUT 可以怎么用?

LUT 主要有 SLICEL 和 SLICEM 两种类型。SLICEL 的 LUT 仅用于组合逻辑;SLICEM 的 LUT 有时钟输入口,可实现数据存储和组合逻辑,内部结构更复杂。

3.1 实现组合逻辑

通过改变初始值实现特定组合逻辑功能。

3.2 搭建 LUT_RAM(分布式 RAM)

FPGA 中 LUT 资源丰富,在小数据量存储需求下可直接使用 LUT 搭建分布式 RAM,节省 BRAM 资源。BRAM 最小容量通常为 18Kbit,少量存储需求占用一个 BRAM 较为浪费。此外,LUT 搭建的分布式 RAM 读写周期为 0,可节省时间。

LUT_RAM 通常提供 IP 核直接使用,具体参考板卡 IP 手册。

3.3 移位寄存器

除寄存器外,通过级联多个 LUT(SLICEM)可实现多位宽移位寄存器。SLICEM 里的 LUT 带 CLK 时钟输入口,一个 LUT6 可作为 32 位移位寄存器使用。

目录

  1. 1. 什么是 LUT?
  2. 2. LUT 与传统逻辑门的对比
  3. 3. LUT 可以怎么用?
  4. 3.1 实现组合逻辑
  5. 3.2 搭建 LUT_RAM(分布式 RAM)
  6. 3.3 移位寄存器

更多推荐文章

查看全部
  • UniHttp 中 Xml 及 JavaBean 序列化的多种实现方式
  • 纯 Java 个人所得税计算模拟器
  • 【笔记】Windows 上安装 OpenCode AI 编码助理:从踩坑到成功的简单记录
  • Mac mini M4 部署 OpenClaw + Ollama 本地大模型接入飞书机器人
  • Python 实现智能 PDF 文档助手 AI 工具开发指南
  • VSCode 集成 GitHub Copilot 使用指南
  • 具身智能年度报告:RoboChallenge 4 万次真机评测显示最强模型成功率仅 51%
  • 笔记本 CPU 环境下 Faster-Whisper 模型选型建议
  • 解决 Java 源发行版 17 与目标发行版不匹配问题
  • OpenClaw是什么:一文看懂AI智能体的能力与风险
  • C++ 红黑树详解:原理、插入与验证
  • Java 开发者利用 Spring AI Alibaba 构建 AI Agent
  • ChatGPT vs. 文心一言 vs. 通义千问:中文创作能力深度评测
  • OpenClaw 安装与飞书机器人接入教程
  • 使用 Trae IDE 将 Figma 设计稿转化为前端代码的实践指南
  • TK X-Gnarly:基于 AI 辅助的 JSVMP 纯算还原方案
  • 基于 FPGA 的深度强化学习框架实现超音速闭环智能流动控制实验
  • MySQL 内置函数实战指南:日期、字符串与数学运算
  • CentOS 7.9 Docker 安装、配置与实战指南
  • 数据库迁移 TCO 拆解:MySQL 替代隐性成本与工具链实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online