数字电路设计的真值表、逻辑函数化简到电路图,构成了「逻辑设计层」;而 LUT(查找表)则是 FPGA 底层「物理实现层」的载体。理解这两者的差异,能帮你更清晰地把握从传统硬件到可编程逻辑的转变。
回顾经典数电设计流程
以 2 输入与非门为例,传统的数电设计遵循一套固定路径:
- 设计真值表:明确输入 (A/B) 和输出 (Y) 的逻辑关系。
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
- 写逻辑函数:根据真值表推导出布尔表达式。
- 化简:利用卡诺图等方法消去冗余项,得到最简式。
- 画电路图:用分立元件(如与门、非门)拼接出实际电路。
FPGA 如何实现同一功能
在 FPGA 开发中,核心逻辑依然依赖真值表和函数定义,但物理实现方式发生了根本变化。
- 保留核心步骤:你仍需明确「输入输出的逻辑关系」。无论是状态机的跳转条件还是控制信号(CS/RD),这是数电设计的灵魂,FPGA 无法替你思考。
- 工具自动完成映射:不需要手动化简或画图。**综合工具(如 Vivado、Quartus)**会接管后续工作:
- 自动化简 Verilog 代码中的逻辑(消去冗余);
- 将化简后的逻辑直接「烧写」到 LUT 的存储单元中(相当于把真值表的输出值写入 RAM)。
- LUT 承载逻辑:数电里的「门电路拼接」变成了「查表逻辑」。
- FPGA 实现时,将 A/B 作为 LUT 的地址输入,LUT 内部已预存了真值表的输出值(00→1, 01→1, 10→1, 11→0)。输入地址后直接读取输出 Y。

关键对比:数电步骤 vs FPGA LUT
| 数电设计步骤 | FPGA 中的对应操作 | LUT 的角色 |
|---|---|---|
| 设计真值表 | 写 Verilog 定义逻辑(if/else/assign) | 无(这是你的设计工作) |
| 写逻辑函数 | Verilog 代码本质即硬件描述 | 无(工具基于此解析逻辑) |
| 逻辑函数化简 | 综合工具自动化简 | 无(工具输出最简逻辑给 LUT) |
| 画数字电路图 |


