第一章:数字电路基础回顾——从晶体管到逻辑门,组合逻辑与时序逻辑的核心区别,为什么我们需要可编程逻辑?

1.1 从晶体管到逻辑门:数字世界的基石

说实话,很多人一上来就学Verilog、学FPGA,却忽略了最底层的晶体管。我个人觉得,这就像盖楼不打地基。你想想看,一个逻辑门是怎么工作的?

晶体管,说白了就是一个开关。MOS管有源极、漏极、栅极。栅极加电压,源漏就导通;不加电压,就断开。就这么简单。

我在项目中遇到过一件事:有个同事写代码时,总觉得组合逻辑的延迟无所谓。结果板子跑起来,信号毛刺满天飞。后来一查,就是几个晶体管级的传播延迟没算清楚。嗯,这里要注意——晶体管不是理想开关,它有导通电阻、有寄生电容。

两个晶体管组合,就能搭出一个反相器(NOT门)。三个、四个晶体管,就能搭出NAND、NOR门。再往上,就是AND、OR、XOR。你看,从晶体管到逻辑门,其实就两步:

  • NMOS + PMOS 组成互补对,实现逻辑取反
  • 多个互补对并联/串联,实现与、或、异或

我习惯把逻辑门看作「数字电路的最小功能单元」。一个芯片里动辄几亿个晶体管,但抽象成逻辑门之后,我们就不用管那些物理细节了。这就是抽象的力量。

核心要点:晶体管是开关,逻辑门是开关的组合。从晶体管到逻辑门,是数字电路设计的第一层抽象。

1.2 组合逻辑 vs 时序逻辑:核心区别在哪?

这个问题,我面试过不下50个候选人。能说清楚的人,真不多。

组合逻辑:输出只取决于当前输入。没有记忆,没有状态。比如一个加法器,输入A和B,输出就是A+B。输入变了,输出立刻变(当然有微小延迟)。

时序逻辑:输出不仅取决于当前输入,还取决于过去的状态。说白了,它有记忆。比如一个计数器,当前输出是多少,取决于之前计了多少个数。

为什么会这样?因为时序逻辑里有个关键元件——触发器(Flip-Flop)。触发器能存储1位数据,在时钟边沿采样输入,然后保持住。

我曾经犯过一个低级错误:在设计一个状态机时,把组合逻辑和时序逻辑混在一起写。结果状态跳转完全乱套,仿真能过,上板就挂。后来花了整整两天才定位到问题——一个组合反馈环路。

避坑指南:我曾经见过有人把组合逻辑的输出直接反馈到自己的输入,形成组合环路。这在FPGA里是绝对禁止的!组合环路会导致时序不可预测,甚至烧毁芯片。

我建议你记住这张对比表:

特性 组合逻辑 时序逻辑
输出依赖 仅当前输入 当前输入 + 历史状态
存储能力 有(触发器)
时钟 不需要 需要时钟驱动
典型电路 加法器、多路选择器、译码器 计数器、寄存器、状态机
延迟特性 传播延迟(门延迟) 时钟到输出延迟(Tco)

1.3 为什么我们需要可编程逻辑?

这个问题,说白了就是:为什么不用固定的芯片,非要搞个能编程的?

你想想看,如果每个项目都去流片做ASIC,成本有多高?一次流片几十万到上百万,周期3-6个月。万一设计有bug,直接报废。我经历过一次流片失败,那感觉……嗯,不想再提了。

可编程逻辑(FPGA)的出现,解决了三个核心痛点:

  1. 灵活性:同一块芯片,今天做通信协议,明天做图像处理,后天做AI加速。改代码就行,不用换硬件。
  2. 快速迭代:从设计到验证,几个小时就能完成。ASIC得等几个月。
  3. 低成本小批量:几十片、几百片的需求,用FPGA比ASIC划算太多。

我记得2018年做一个项目,客户需求变了好几次。要是用ASIC,早就破产了。但用FPGA,每次改完代码,重新综合、布局布线,第二天就能跑新版本。这就是可编程逻辑的价值。

个人经验:FPGA内部其实就是大量的查找表(LUT)+ 触发器(FF)+ 布线资源。LUT本质上是一个小RAM,用查表的方式实现任意组合逻辑。触发器实现时序逻辑。再加上可编程的连线,就构成了一个万能数字电路平台。

1.4 本章知识体系

下面这张图,是我自己总结的本章知识结构。从晶体管到逻辑门,再到组合逻辑和时序逻辑的区别,最后落到可编程逻辑的必要性。你看一遍,应该就能串起来了。

数字电路基础回顾:知识体系 晶体管(MOSFET) 逻辑门(AND/OR/NOT) 组合逻辑(无记忆) 时序逻辑(有记忆) 加法器、多路选择器、译码器 计数器、寄存器、状态机 可编程逻辑(FPGA)

从这张图你能看到,整个数字电路的发展脉络:从最底层的晶体管,到逻辑门,再到组合逻辑和时序逻辑两大分支,最后汇聚到可编程逻辑。FPGA就是站在这些基础之上,把灵活性发挥到了极致。

本章小结:

  • 晶体管是开关,逻辑门是开关的组合
  • 组合逻辑无记忆,时序逻辑有记忆
  • 可编程逻辑解决了灵活性、迭代速度、成本三大问题
  • FPGA = LUT(实现组合逻辑)+ FF(实现时序逻辑)+ 可编程布线

好了,这一章就到这里。记住这些基础,后面学Verilog、学时序约束,你会觉得顺很多。毕竟,地基打牢了,楼才能盖得高。


公众号:蓝海资料掘金营,微信deep3321