Skip to content

模型Model

同步电路的状态与时钟边界

Synchronous digital state · Clocked state elements

把组合函数与时钟采样分开,用同时更新、保持使能和时序约束解释硬件状态。

形式陈述 ​

同步数字模型由状态位向量 Q、输入 I、组合函数 F,G 与离散时钟边沿组成。第 t 个边沿前的旧状态为 Qt,满足建立和保持时间的输入为 It,则

Qt+1=F(Qt,It),Ot=G(Qt,It).

F,G 可由无环布尔电路实现。状态元件只在指定边沿更新;所有右端使用旧状态。寄存器使能 en 可写为 Qt+1=en?Dt:Qt。这是同步功能模型,不包含模拟电压、毛刺宽度和亚稳态的完整行为。

物理实现还需满足时序约束。忽略时钟偏斜时,典型建立时间条件为 T≥tcq+tcomb,max+tsetup;保持时间条件为 tcq,min+tcomb,min≥thold。周期加长可以帮助前一条件,不能自动修复后一条件。

直觉

组合电路决定“若这些旧值保持稳定,下一值是什么”,寄存器决定“什么时候承认这个下一值”。反馈若经过寄存器,可以表达累加器;把输出直接接回组合输入则未必有稳定、唯一的布尔解释。

抽象的Mealy 机也从旧状态和输入产生输出。本页新增的是时钟边界和采样条件,而不是重新定义有限状态机。一个状态转移图正确,不代表实现它的门延迟已经满足时钟要求。

例子与边界

两个寄存器交换值 ​

令 At+1=Bt、Bt+1=At,初态 (A0,B0)=(1,7)。下一边沿得到 (7,1),再下一边沿返回 (1,7)。若软件模拟器先执行 A=B 再执行 B=A,会得到 (7,7),因为它错误地让第二次计算读到新值。

正确模拟方法是先由旧快照求两个 next 值,再一起更新。这个原则同样适用于流水级寄存器:一次边沿只能把本周期的旧 EX/MEM 送到 MEM/WB,不能在同一轮循环中让一条指令穿透所有级。

保持状态仍允许别人推进 ​

令 A 的使能为零、B 的使能为一,且 Bt+1=At+1。A 保持不动,B 仍可更新。流水线停顿可以只冻结前端,而让较老指令继续前进;“某个寄存器停”不等于“整个时钟停”。

增长周期与保持时间 ​

假设 tcq=30 ps、最大组合延迟 180 ps、setup为 20 ps,则周期至少 230 ps。另有最短路径 tcq,min=10 ps、tcomb,min=5 ps、hold为 25 ps,保持条件仍失败。把周期加到 300 ps不会改变这条最短路径过快的问题。数值只属于该玩具时序预算,不是器件测量。

推论与应用

单周期数据通路把一条指令的组合工作放在两个架构状态边界之间;流水线插入中间状态元件,缩短每段组合路径,同时增加跨周期保存的数据和控制。

每个valid位、写使能和保持信号都是状态语义的一部分。绘图时只有数据箭头而没有这些控制条件,无法回答“错误路径值为什么不会写进内存”。

参考资料
  • UC Berkeley CS61C,Finite State Machines 与 Pipelining for Performance,课程笔记,访问于 2026-10-08。
  • David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture: RISC-V Edition, 2021,Ch. 3;同步状态与时序分析。本文明确省略偏斜和模拟电路效应。
关系图谱10 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组