D 触发器 · 交互演示

← 返回 SemiVoice 主站

一句话核心:Q 只在时钟 ↑ 那一瞬间跟着 D 变,其余时间一律保持。 下面几种方式都能看到这件事;想来点有难度的,先挑战「用一位触发器输出 I love U」, 再进阶到「8 个 D 触发器怎么接才能一次并行输出一整个字节」, 然后去 只用与非门 看一种门怎么变出 NOT / AND / OR / XOR, 再用 MOS 管级 把一个门拆成几个晶体管,看下拉网络的串并联 怎么直接变成一条 SOP(一条支路一项、并联即相加), 再到 8×8 行列寻址存储器 看 3 根地址线怎么管 64 个单元, 再到 直接映射 cache 看为什么光有存储器还不够快, 最后到 寄存器堆 看 CPU 为什么需要两个读口和一个写口, 再到 有限状态机 挑战「有记忆的逻辑」, 最后去 读扰动 看一条字线被反复敲的时候,隔壁的电容是怎么漏光的。

时序速览 · D / CLK / Q

D 触发器时序速览 D 变化不会改变 Q,只有时钟上升沿才把 D 的值写入 Q DCLKQ ↑ 采样 D=1 → Q=1↑ 采样 D=0 → Q=0 Q 保持,与 D 的后续变化无关
拓展 · 读扰动

反复敲同一行,邻居的电容会漏光

「8×8 行列寻址」那一关打开过电荷衰减,这一关把「谁在打扰它」也加进来:一条字线被反复 ACT / PRE,上下相邻行通过寄生电容 Cc 被一点点抽干。9×16 共 144 个单元,每颗都有自己的漏电率——工艺波动是乘性的,落成对数正态,右尾那几颗永远是先翻的。可以调 σ、调 hammer 速率,也可以开着 TRR 看格子「回血」;鼠标停在任意单元上能读出它的漏电倍率与剩余电荷。

144 单元阵列 · 工艺波动 σ · 实时电荷分布 · TRR 对抗 · 悬停读数 · 空格 / R 快捷键
第 10 关 · 有记忆的逻辑

有限状态机:在位流里恰好命中目标模式 3 次

这一关输入不再是「要输出的内容」,而是「考题」:状态机每读一位走一步,走满目标模式才点一次灯。反直觉三连:失配不回零,而是回退到最长真前后缀(KMP 在硬件里的样子);重叠命中——1011011 里藏着两个 1011,共享中间那个 1;m 位模式只要 m+1 个状态,与位流多长无关。目标模式可以自定义(4–8 位二进制),状态转移图、转移表、波形与三个反直觉结论全部实时可见,附小红书分享卡片。

自定义模式 · 恰好 3 次命中 · KMP 失配回退 · 重叠命中 · 状态转移图 / 表 / 波形 · 撤销 / 自动演示 · 分享卡片
第 9 关 · 走向 CPU

寄存器堆:两个读口与一个写口

一条 add 指令要同时拿到两个源操作数,所以寄存器堆天生有两个读口;结果要存回去,所以有一个写口。32 个寄存器只要 5 位编号,读口是组合逻辑——改编号当拍就变、不消耗时钟;写口必须等上升沿。同一拍写入的值同一拍读不到,这正是流水线 RAW 冒险的根源。可以自己写一段程序:逐行预览结果、写错当场标红,每条指令一个时钟沿,随时单步后退把寄存器原样滚回去。$0 不是存了 0 的寄存器,而是读口接地、写口不接——白得一个常数 0,算完就丢也不报错。

自定义程序 · 逐行预览 / 单步后退 · 5 位编号 · 组合读 / 沿触发写 · 同拍读写语义 · $0 硬连线 · 端口代价 ≈ 存储本体 · 分享卡片
第 8 关 · 存储层级

直接映射 Cache:为什么还嫌存储器太慢

7 位地址被切成 tag 2 位 / index 2 位 / offset 3 位:index 决定查 4 行里的哪一行,tag 决定这一行装的是不是你要的块,offset 决定取块内哪一位。tag 对上 1 拍拿到数据,对不上就整块从 DRAM 取回来、8 拍。5 组访问流随手跑:块 0 和块 4 抢同一行,命中率可以低到 0%;8 个块抢 4 行,扫第二遍照样全缺失。切到旁路能直接对比同一串访问的周期差。

地址分解 · 冷启动 / 冲突缺失 · 整块取回 · 写直达 · 命中率 / AMAT / 加速比 · 旁路对比 · 分享卡片
第 7 关 · 并行输出

8 个 D 触发器,一次给出一整个字节

并联寄存器:8 路独立 D,一个 ↑ 沿同时锁存 8 位(1 沿 / 字节);级联移位寄存器:右邻 Q 接到左邻 D,8 个 ↑ 沿才凑满一帧(SIPO,8 沿 / 字节)。两种拓扑随时切换对比,共享 CLK 的「先快照再统一写入」、帧同步、并行总线 HEX / DEC / ASCII 读出都看得见。目标可以随意换:左上角改成任何 ASCII 句子(最多 16 字符),目标行与输出行同字号逐格对照,对上变绿、错了变红。

自定义目标 · 目标 / 输出双行对照 · 两种拓扑切换 · 快照时序表 · 自动演示 · 深浅色
第 6 关 · 行列寻址

8×8 存储阵列:3 根地址线管 64 个单元

地址拆成行 3 位 + 列 3 位,共用同一组 ADDR[2:0] 分时传送:RAS ↑ 拉高一条字线并把整行 8 位读进行缓冲,CAS ↑ 从行缓冲选 1 位送到 Dout。点任意格子直接读它,跨行会自动 PRECHARGE;同一行连续访问是 Row Hit,换一行是 Row Miss。还可打开 DRAM 电荷衰减,亲眼看到不刷新就丢数据。目标仍是读回 I love U。

地址复用 · 3→8 行列译码 · 行缓冲 / 灵敏放大器 · Row Hit / Miss · 刷新与电荷衰减 · 自动演示 · 分享卡片
第 5 关 · 晶体管级

MOS 管级:一个门不是原子,它是一组晶体管

门电路打字机把字符串拆成了门,这一关把门继续拆成晶体管:反相器 2 管、与非门 4 管、与门 6 管 —— 先撞见第一件反直觉的事,管子更少的那个门反而更常用。然后同一句逻辑用三种方式搭:与门+或门(教科书直译)2Σn+4m+2 管、全用与非门(德摩根)2Σn+2m 管、一个复合门加一级输出反相 2Σn+2 管,I love U 的 8 位合计是 204 / 154 / 132。第三件反直觉:那个最便宜的搭法根本不是「几个门」,下拉网络的串并联结构天生就是「或的与」—— 一条支路一个乘积项,并联即相加,整条 SOP 塌进一个 AOI 门里。自定义任意字符串(ASCII ≤16 字符),点任一位就能看到它的上拉对偶网络、下拉支路与输出反相器,当前导通的管子实时变绿,每一级的项编号与支路取值都标在图上。

自定义字符串 · 三种搭法管子账单 · 上拉 / 下拉对偶网络 · 导通实时高亮 · 恒 0 / 恒 1 位 0 管 · 分享卡片
第 4 关 · 逻辑综合

门电路打字机:用逻辑门打出任意字符串

把记忆拿掉,只留组合逻辑门:4 位索引当输入,8 位 ASCII 当输出,索引一变输出立刻跟着变,中间不存任何东西。那张 8 × N 的 0/1 矩阵就是这台打字机的全部真值表;8 个输出位各自被 Quine-McCluskey 综合成几条乘积项(就是卡诺图合并相邻项),门数从 62 砍到 50,换成 16 个字符能砍掉四成。三个反直觉:门没有记忆,想一个字一个字打出来得在外面加计数器推索引;逻辑综合真能省门;FPGA 的每个逻辑单元就是一张 16 格小真值表加一个多路选择器 —— 这一页就是 LUT 的原理。目标字符串自定(ASCII,最多 16 字符),点「打字」看它一个字一个字打出来。

自定义字符串 · 4 位索引 → 8 位输出 · 真值表矩阵 · Q-M 最小化 · 门级电路图 · 门数对比 · 打字动画 · 分享卡片
第 3 关 · 组合逻辑

只用与非门:NOT / AND / OR / XOR 全靠它搭出来

D 触发器让一个比特被记住,但电路真正干活靠逻辑门。这一关只给你一种门 —— 与非门 NAND,五个谜题逐级加门:NOT 要 1 个、AND 2 个、OR 3 个、XOR 4 个、XNOR 5 个。点门上的输入徽章,把来源在 A / B / 常量 0 / 常量 1 / 前面门的输出之间循环,4 行真值表全部对上才算通关。搭完会撞见三件反直觉的事:一个 NAND 就能造出所有门(CMOS 里它只要 4 个晶体管,芯片里几乎全是 NAND / NOR);XOR 要比 AND 多花一倍门数和一级延迟,这正是加法器里进位比和慢的根源;还有 A · ¬A 本该恒为 0,A 翻转那一瞬间却会冒出一个毛刺 —— 所以时序电路必须等信号稳定再采样。

5 个渐进门数谜题 · 点击改接线 · 真值表实时判定 · 组合环检测 · 门延迟 / 竞争冒险波形 · 分享卡片
挑战关卡 · 推荐

用一位触发器输出 I love U

每个 ↑CLK 锁存一位,8 位解出一个 ASCII 字符。手动拨位、键盘连发或粘贴 64 位位流,把 Q 的 1 位输出拼成一整句话——串并转换 / 移位寄存器 / UART 的底层原理,完成还有彩蛋。目标可以随便换:输入框里改成你想要的任何 ASCII 句子(最多 16 个字符),格子、位流、答案全部重算。

自定义目标 · 64 位 · 8 个字符 · ASCII 查表 · 难度切换 · 自动演示
推荐 · 可交互

交互实验台

拨动 D 与 CLK,或直接点波形格子改输入;Q 由上升沿触发规则从初值整条重算。含真值表高亮、事件日志与建立/保持时间违例提示。

纯 SVG · 21 KB · 零依赖 · 事件驱动,空闲不耗 CPU · 分享卡片
轻量播放器

纯 SVG 播放器

52 秒讲解动画的轻量版:12fps 节流、静态层复用、语音按需加载,页面自带实时资源开销面板与两种渲染方式对照。

31 KB · 无 video · 无 MP4 · 矢量无损缩放
完整讲解动画

6 章 · 52 秒动画

电路符号、主从锁存器、上升沿采样演示、8 拍时序波形、特性方程与真值表、应用与结语,带中文逐句字幕与内联语音。

自包含单文件 · 含内联音轨 · 可全屏与深浅色切换
离线分发

带语音的 MP4 成片

1280×720、24fps、H.264 + AAC 中文旁白。适合离线播放、长时间连续观看或移动端省电场景。

52 秒 · 4.1 MB · 可直接下载
分镜预览图 独立中文音轨 返回 SemiVoice 主站
全部画面由 SVG 逐帧绘制,没有使用任何图片素材或第三方库。交互实验台里 Q 是只读的仿真结果,不是预先录好的动画。