Altifigence Academy

22 / 63 · 概念

同步状态转移与时钟的作用

将同步系统理解为一组读取相同旧状态的寄存器。

整个状态在同一边沿共同更新

设同步电路状态向量为 QkQ_k、输入为 XkX_k,其核心规格如下。

Qk+1=F(Qk,Xk),Yk=G(Qk,Xk)Q_{k+1}=F(Q_k,X_k),\qquad Y_k=G(Q_k,X_k)

F 是下一状态函数,G 是输出函数。时钟不决定计算内容,而是决定何时存储算出的下一状态。存在多个寄存器寄存器 存储多位状态的电路。本课程中的同步寄存器在时钟边沿存储指定输入。了解更多时,可理解为它们都依据同一组旧状态确定各自的新值。

Q 经过组合函数 F,形成下一状态输入。最后存储的值反馈为下一时段的 Q,从而区分边沿之间的计算与边沿上的存储。

依据旧状态计算下一状态
  1. 当前状态 Q: 在时钟边沿之间保持
  2. F(Q, X): 由输入与旧状态计算
  3. 在边沿存储: 计算结果成为下一 Q

时钟周期必须满足最慢路径的要求

新值从输入寄存器输出需要时间,经组合电路到达下一个寄存器也需要时间。还必须在下一边沿前满足 setupsetup 捕获时钟边沿之前,输入数据必须保持稳定的最短时间。违反建立时间就无法保证存储结果。了解更多 裕量。代码写得短,并不意味着可采用很高的时钟频率。

10ns 的时钟周期对应 100MHz。

f=1Tf=\frac{1}{T}

不要省略单位换算。1ns 的倒数是 1GHz,1ps 的倒数是 1THz。仿真中设置的周期只是输入调度,并不是实际物理电路能够以该频率工作的测量结果。

解读边沿之间的信号

寄存器输出通常保持逻辑状态到下一个有效边沿,但组合输出在边沿之间也可能改变。复位复位 将状态恢复为规定初值的控制。必须同时规定其同步或异步性质,以及相对于其他控制的优先级。了解更多是同步还是异步,会影响这一说法的例外。本课程提供的实验使用单一时钟与同步复位。

阅读波形之前,先规定输入有效时刻、状态更新时刻和输出观察时刻。状态方程比“每个时钟执行一行代码”的软件式理解更准确。

自己试试

200MHz 时钟的周期是多少?同一时钟下连接两个寄存器 a、b,若代码为 a<=d; b<=a;,b 会接收该边沿刚更新的 a 吗?

阅读解释

周期为 5ns。b 接收边沿前的 a。两个寄存器都从同一组旧状态计算新值,因此 d 的新值不会在一个边沿内穿过两级。

你的选择适用于此浏览器,可随时在页脚更改。