SICI · 天机门 · 第三章

时序逻辑电路:记忆的诞生 · 炼气三层

门接起来就能算一切——这句话,亚稳态之影说对了一半。

门楣刻字:「状态加输入,输出与次态」
序章

记忆之门

组合逻辑算完即忘——哪件里没有时序?

时序殿的灯是冷的。你把 ch02 的组合逻辑阵列铺满整面石台——加法器、ALU、多路选择器,金光流转,像一件得意之作。

时序之钟,时钟信号在电路中传播

诺依曼老祖立在台边,只问一句:"让它数到三就停。"你按下时钟,它数:一、二、三……四、五。停不住。你松手,它归零,连"刚才数到几"都忘了。

亚稳态之影 亚稳态之影

「你算得对,但你记不住。一个记不住的东西,算得再快也是空。你押上"组合逻辑万能"的全部自信——赌一把:哪一件里没有时序逻辑?」

诺依曼老祖 诺依曼老祖

「先下注。猜错,亚稳态账本记一笔。」

反直觉下注 · 哪件里没有时序逻辑电路?

先下注,指认一件。猜错,亚稳态账本记一笔。👆 点击下方按钮下注

组合逻辑的输出只取决于当前输入,没有"过去"。"记忆"必须来自某种能把状态留住的回路——这就是时序逻辑:状态+输入→输出+次态。
第一幕 · 第一崩塌

双环之锁 · SR 锁存器

S 与 R,谁能同时按下?

诺依曼老祖把两个或非门推到你面前,让你把它们尾对尾交叉耦合。你按下 S,Q 亮了;按下 R,Q 灭了。松手,它居然还记着。你几乎要笑出声。

诺依曼老祖 诺依曼老祖

「同时按呢?」

亚稳态之影 亚稳态之影

「它记住了——可你敢同时按 S 和 R 吗?记忆说谎的瞬间,我就在那里。」

SR 双环之锁非法态探索器 · 踩出 S=R=1 禁区

点 S/R 旋钮切换 0/1,逐行试真值表。亲手同时按 S=1, R=1,看记忆"说谎"。

NOR10
NOR20
Q
⚠ S=R=1 是禁区!Q 与 Q̄ 同时为 0,违反互补约束。松手后随机落定——记忆"说谎"。
SR 锁存器用交叉耦合解决了"留住状态",但 S=R=1 是禁区——记忆不能被同时"设又清",否则它就不再是确定的记忆。释放后对称破坏让电路随机翻向 0 或 1——亚稳态的初级形态。
第一幕 · 边沿之约

边沿之刃 · D 触发器

快门只开一瞬,违时则颤

老祖给你主从双联:两个 D 锁存串联,主从时钟相反。上升沿一到,从锁存器把主锁存器上一瞬的值"咔"地冻结。你第一次得到一个稳稳的 1 位记忆。

正欣慰,老祖却在上升沿前最后一纳秒猛拨 D。Q 颤了半拍,停在 0 和 1 之间,像一缕不肯落定的灰雾。半秒后它才随机落下。

诺依曼老祖 诺依曼老祖

「快门按下前,数据得摆好姿势;按下后,还得再 hold 一会儿。」

亚稳态之影 亚稳态之影

「你管得了自己的数据,管不了异步的外部输入——它想什么时候来就什么时候来。」

D 触发器 · 主从边沿快门 + Tsu/Th 违例触发余烬

按"拨时钟"看边沿采样;在上升沿前极短窗口翻转 D(违反建立时间),看输出颤动——亚稳态余烬一闪。

主锁存0
从锁存0
D = 0
建立时间 Tsu满足
保持时间 Th满足
采样结果0
紫灰色余烬一闪——Q 停在中间电平,半秒后随机落下。亚稳态的初级显形。
边沿触发=瞬间快门。但快门按下前数据须"摆好姿势"够久(建立时间 Tsu),按下后须"保持"一会儿(保持时间 Th)——否则触发器在 0 与 1 之间徘徊。透明期漏刺,边沿非万能。
第二幕 · 成列

记忆之墙 · 寄存器

8 个 D 触发器并排,一键并行写入

你把 8 个 D 触发器并排,共用一个时钟,一键并行写入 8 位——寄存器。数据像一面墙上的灯,齐刷刷亮起。

诺依曼老祖 诺依曼老祖

「能存 8 位了。可你骄矜中没注意——并排靠的是共同时钟,一旦时钟歪了整列就错位。这是后面崩塌的火药。」

8 位并行寄存器 · 共时钟并行写入

逐位点击输入开关设定 8 位数据,按"写入"看寄存器整列同步更新。

寄存器值00000000
十进制0
并行写入=一次写 8 位。所有触发器共时钟统一步伐——时钟一歪,全列错位。
寄存器=并行存储。它靠共同时钟统一步伐——时钟一歪,全列错位。你埋下的火药,迟早会炸。
第二幕 · 自走

自走之轮 · 计数器

异步简单生刺,同步干净吃路径

你把 T 触发器级联:第一级翻两次,第二级进一位——异步二进制计数器成了。简单。但每一级的翻转要等上一级传过来,毛刺在中间一闪,记进了亚稳态账本。

亚稳态之影 亚稳态之影

「行波延迟的毛刺,是我派去的探子。你以为级联即计数?刺会传遍下级。」

诺依曼老祖 诺依曼老祖

「改同步:所有触发器共时钟,用组合逻辑算'该不该翻'。同步干净,可逻辑越绕越慢。」

计数器对比 · 异步行波 vs 同步共时钟

选择计数器类型,按"来一个时钟"看计数过程。异步会生毛刺,同步吃关键路径。

当前计数值0
毛刺
异步:逐级翻转,进位延迟产生毛刺。同步:共时钟齐翻,干净但关键路径变长。
异步简单但有 glitch(行波延迟),同步干净但吃关键路径。毛刺是亚稳态之影的探子——它会传遍下级。
第二幕 · 流水

流水之渠 · 移位寄存器

串入并出、并入串出——时间换空间

老祖又让你把前一级的 Q 接下一级的 D,首尾相连——移位寄存器。你试四种接法:串进串出、串进并出、并进串出、并进并出。数据像一串光点,在 8 格之间一格一格地搬。

诺依曼老祖 诺依曼老祖

「串并转换,是时间换空间。8 位串入 8 次→并出,你用时间换了 8 根线。」

8 位移位寄存器 · 四模式切换

选一种模式,按"移一位"看数据在 8 格间流动。

输入 0
SISO 串入串出 · SIPO 串入并出 · PISO 并入串出 · PIPO 并入并出。串并转换=时间换空间。
寄存器=并行存储,移位寄存器=串并转换的桥梁。它们都靠共同时钟统一步伐——时钟一歪,全列错位。
第三幕 · 第二崩塌

时钟之裂 · 时钟偏移

同步的前提是同源同时到达——物理做不到

你把同步计数器挂上一块大电路,时钟线拉得太长。到末端的触发器时,时钟已经歪了一截。末端在错误的时间采样,整个计数乱套。你画时序图一行行对,约束方程一行行被违反。

亚稳态之影 亚稳态之影

「你以为同步就稳?'同步'的前提是时钟同源同时到达——而物理世界,做不到绝对同时。信号总要时间。」

时钟偏移模拟器 · 末端采样错位

拖动"时钟线长度"滑块,看末端触发器时钟延迟、采样错位。违例窗口染赤红。

时钟源 CLK
skew = 0.5 ns
末端到达延迟0.5 ns
采样状态正常
⚠ 时钟偏移过大:末端在错误时间采样,数据未稳定就被读走。同步约束被违反。
同步设计核心是"共同时钟同源同时到达"。时钟偏移、关键路径过长都违反时序约束。时序分析就是用约束方程丈量这条路一拍内能不能走完。
第三幕 · 约束

约束方程求解器

T_clk ≥ T_cq + T_logic + T_setup + T_skew

诺依曼老祖递来一张方程石板:"写下同步的契约。"你刻下:T_clk ≥ T_cq + T_logic + T_setup + T_skew。四项相加,不能超过一拍。

诺依曼老祖 诺依曼老祖

「调参数。让它满足,再让它违反。亲手感受契约的边界。」

亚稳态之影 亚稳态之影

「约束能算清的,都不算绝路。算不清的,在边沿上等着你。」

约束方程求解器 · 四参数实时代入

拖动四个滑块,看约束满足(翠绿)或违反(赤红)。亲手经历"满足→违反→满足→违反"。

T_clk ≥ T_cq + T_logic + T_setup + T_skew
10.0 ≥ 2.0 + 3.0 + 1.0 + 0.5 = 6.5 ns
✓ 约束满足 · 最小时钟周期 6.5 ns · f_max = 153.8 MHz
⚠ 约束违反:四项之和超过时钟周期,数据来不及在建立时间前到达,采样到错误值。
同步时序分析就是用约束方程丈量这条路一拍内能不能走完。时钟偏移是"物理世界做不到绝对同时到达"的体现。但调低频率能救同步,却救不了亚稳态。
第三幕 · 显形

亚稳态之兆 · MTBF

它不住在错误里,住在"还没决定"的瞬间

你把一个异步外部信号直接送进触发器的 D 端。信号恰好在时钟上升沿附近翻转——Q 既不是 0 也不是 1,停在一个中间电平上,久久不落。你查 MTBF:平均故障时间随"决断时间"指数增长。

亚稳态之影 亚稳态之影

「这不是 bug。这是物理。我在两个稳态的山脊上,需要时间滚下来。你算得清约束,算不清我。」

亚稳态示波器 + MTBF 公式组装

①按"对齐边沿"触发亚稳态,Q 停在中间电平;②拖"决断时间"滑块看 Q 最终落定;③拖公式碎片组装 MTBF 公式;④拖 T_res 看 MTBF 指数变化。

T_res = 1.0 ns
输出 Q稳定
当前 MTBF

MTBF 公式组装 · 拖碎片到空槽

MTBF = e^(...) T_res/T₀ ÷ f_clk · f_data · C
把碎片拖(点)入正确的空槽。
紫灰色的雾从示波器里渗出来,开始凝聚成人形……"你算得清约束,算不清我。"
亚稳态=触发器在两稳态间的山脊上,需"决断时间"滚落。建立/保持时间违例是诱因,根因是物理——你不能消灭它,只能等它过去或躲开它。MTBF 随 T_res 指数增长。
终幕 · 对决

亚稳态之影 · 三问收网

从"战胜不确定"到"与不确定共处"

亚稳态之影从每一次违时采样中渗出,凝成 neither-0-nor-1 的影子。它不攻击,它只是"不决定"——让每一级触发器在山脊上多停一拍,错误像涟漪传遍全电路。

亚稳态之影 亚稳态之影

「我是亚稳态之影。我不在错误里——我在'还没决定'的瞬间。建立/保持时间违例只是入口,根因是物理世界做不到瞬时决断。三问。答不出,天机门归于不确定。」

诺依曼老祖 诺依曼老祖

「你的刻痕,够用了。三问:驯服、立基、收网。」

渊账累计 0 笔 · 三问全对后清零

尾声

记忆之生 · 时序生忆

炼气三层 · 记忆觉醒 · 圆满

之影散去,石台清朗。诺依曼老祖让你综合一个序列检测器:认出输入里的"1011"。你画状态图、列状态表、化简、分配编码、推导方程、画出电路。你输入 1、0、1、1——检测灯亮了。一列触发器同步亮起,像一段被点亮的记忆。

诺依曼老祖 诺依曼老祖

「记忆,诞生了。不是某个元件,是这套'状态+输入→输出+次态'的语言。你能记事了。但记得越多,丢得起吗?」

知识图谱点亮 · 十六碎片排认知链 + 1011 序列检测

点击下方碎片,按因果顺序点亮认知链。再切换编码、输入"1011"看检测灯亮。

排错处会闪烁红光,提示该知识点依赖的前置知识。

1011 序列检测器 · 状态综合

二进制:3 触发器,译码复杂;格雷:相邻态只变 1 位,毛刺少;独热:5 触发器,次态逻辑最简。

输入序列 · 逐位点击

逐位输入,凑出"1011"看检测灯亮。
时序电路综合=状态图→状态表→化简→分配→方程→电路。状态分配是工程权衡的舞台:触发器数量 vs 译码复杂度 vs 毛刺风险。记忆不是单个元件,是这套"状态语言"。
ch04 有限状态机:状态之舞 🔒(点亮全部图谱 + 检测成功后开启)