本节摘要:数字电路把连续的世界切成 0 和 1,从此信号获得"可无限再生、可无损加工、可任意编程"的超能力。本节从布尔代数与逻辑门讲到时序逻辑的红线——建立与保持时间,再到数字系统里最危险的两只怪兽(竞争冒险与亚稳态),最后交代模拟与数字共处一板时的地平面纪律。
一个耐人寻味的对比:模拟信号在旅程中每过一级就劣化一点,噪声叠上去再也剥不下来;数字信号却可以在每个中继器处"满血复活"——只要判断出是 0 还是 1,就能重新生成一个完美的新波形。远程通信之所以从模拟全面转向数字,长途光纤之所以能横跨太平洋,靠的就是这一次次判决再生。而这一切超能力的代价,仅仅是本节要讲的"如何可靠地判断 0 和 1"。
一切数字系统的合法性来自布尔代数:与、或、非三种运算构成完备集,任何组合逻辑都能由它们(实际工艺里是与非门 NAND 一家独大)搭出。真值表是设计的起点,卡诺图是化简的利器,但工程上更常用的路径是直接写硬件描述语言让综合器化简——手工卡诺图的意义已从"必做工序"退为"理解底层"。
CMOS 实现的与门内部是互补的 MOS 管网络:p 管网络与 n 管网络互为对偶,一个负责拉高一个负责拉低,稳态时永远只有一边导通——这就是 CMOS 静态功耗近乎为零的原因,也是第一章 1.3 的 MOS 开关身份在系统层面的兑现。动态功耗则与频率、电压平方、负载电容三者成正比,降电压是它最疼的一招,手机芯片"大小核""降频"策略全部源于这条二次方公式。
组合逻辑"输入定输出",加上时钟驱动的触发器后,电路有了记忆与节拍。寄存器在时钟沿采样输入、随后保持,于是系统可以按拍推进状态——计数器、移位寄存器、状态机、乃至第四章的 CPU 流水线,全部由这一种细胞繁殖而成。

建立时间与保持时间是数字世界的法律。静态时序分析工具做的就是穷举所有寄存器到寄存器的路径,验证每条路径在所有工艺角、电压、温度组合下都不越线。第四章 CPU 主频的本质,就是"把上图里那段组合逻辑延迟压到多短"。
竞争冒险:信号经不同长度的路径到达同一门,路径差造成短暂毛刺。组合逻辑的毛刺本身无害,但若它窜进时钟或异步复位端,就是灾难。对策:同步设计——让所有信号只在时钟沿变化,毛刺在两次采样之间自然消散。
亚稳态:触发器采样瞬间若输入恰在翻转,输出可能停在 0 与 1 之间的"半山腰",停留时间随机。它无法根除,只能"等它自己缓过来"。跨时钟域传输的标准对策是两级同步器——连续打两拍,把亚稳态传播概率再压几个数量级。第五章的 RAKE 接收、第七章的异步总线,只要存在两个时钟,就要请出这位保镖。
// 跨时钟域信号的两级同步器:亚稳态的"缓刑室" module sync2 (input clk_dst, input rst_n, input async_in, output reg sync_out); reg meta, stage1; // meta 可能进入亚稳态,但被隔离一级 always @(posedge clk_dst or negedge rst_n) begin if (!rst_n) begin meta <= 1'b0; stage1 <= 1'b0; sync_out <= 1'b0; end else begin meta <= async_in; // 第一拍:可能亚稳 stage1 <= meta; // 第二拍:给它一个周期恢复 sync_out <= stage1; // 输出给下游安全使用 end end endmodule
这段十几行的模块是数字设计里被复制次数最多的代码之一。第一拍触发器宁愿自己"头晕",也要保证第二拍拿到的是确定的 0 或 1——牺牲一拍延迟,换取整系统的确定性。
同一块板上,2.2 节的模拟前端与本节的数字内核必须和平共处。核心纪律三条:大电流回路与小信号回路绝不共享返回路径;模数转换器是两国的唯一口岸,其下方地平面保持完整;采样时钟走线远离任何模拟输入。手机里 WiFi 与调频收音机能同时工作而不互相干扰,靠的就是这套纪律加上第六章 6.3 的射频屏蔽设计。
💡 关键直觉:数字设计的所有麻烦都来自"时间"。组合逻辑的延迟、时钟的偏斜、跨域的异步,本质都是同一句话——事情发生的时刻没有对齐。同步设计就是把一切纠纷交给唯一的裁判:时钟。
问:同步设计既然这么稳,为什么还要异步电路?答:同步设计把一切交给时钟,代价是时钟树的功耗(高端芯片时钟树占功耗可达两成以上)与最坏情况约束(所有路径按最慢工艺角设计)。异步电路按数据到达自行推进,省时钟、平均性能好,但设计与验证复杂度极高,目前只在特殊模块(如高性能互连)落地。多数项目的正确姿势仍是全同步,把精力留给功能。
问:为什么时钟频率不能无限提高?答:频率受三重约束:门延迟与线延迟构成的单周期预算、功耗随频率线性上升的发热墙、以及信号完整性(边沿越快反射与串扰越猛,第六章传输线效应在板级上演)。产业用多核与并行换频率,正是绕开这三堵墙的路线——性能的战争早已从"更快"转向"更宽"。
问:复位策略为什么值得全项目统一?答:异步复位同步释放是主流方案:复位信号随时可以生效(不等时钟),但释放时刻被打两拍同步,避免恰好在时钟沿释放引发亚稳态。各模块若混用不同复位策略,复位顺序与时序便不可控,联调时的"偶发起不来"多半根源于此——复位虽小,纪律最大。
0 和 1 已经就位,但还只是裸的比特。下一章给它们配齐"语言学校":采样、变换、编码,让裸比特变成有结构、能纠错的信息流。