Altifigence Academy

43 / 63 · 测验

设计检查:延迟、对齐与输入保留

不仅检查移位方向,也检查有效数据移动次数与观察基准。

固定计算延迟的基准

三位寄存器寄存器 存储多位状态的电路。本课程中的同步寄存器在时钟边沿存储指定输入。了解更多只在有效输入到来时执行 q <= {q[1:0], din},valid=0 时保持 q。复位复位 将状态恢复为规定初值的控制。必须同时规定其同步或异步性质,以及相对于其他控制的优先级。了解更多后从 0 开始,在不同上升沿上升沿 时钟从 0 变为 1 的瞬间。它不同于表示整个 CLK=1 区间的电平。了解更多依次施加 (valid,din) = (1,1), (0,0), (1,0), (1,1)。

此时总边沿数为四,但实际只移动三次。检查状态追踪与“延迟几个周期”的说法是否一致。

每列记录一个上升沿的观察结果。输入取自边沿前,名称带 after 的状态取自更新后。列的排列表示采样顺序,并非描绘物理传播延迟传播延迟 从输入变化到输出稳定为正确值所需的时间。逻辑表达式等价与时间特性是两回事。了解更多。这里展开了题目的输入顺序。第二列 valid=0,状态保持。不要把 q 的变化次数与时钟列数混淆。

四个边沿与三次接受
查看波形数据
波形数据:每个字符表示一个区间,点表示保持前一状态,p 表示一个时钟周期。
信号波形总线值
edge2345E0 → E1 → E2 → E3
valid101.
din10.1
accepted count2.341 → 2 → 3
q after2.34001 → 010 → 101

进一步设计问题

若扩展成每次接收八位数据的流水线流水线 用寄存器把计算划分为多个阶段,使多个输入能够重叠处理的结构。数据、valid 与控制信号必须在各级对齐。了解更多,只将数据寄存器做成三级、却把 valid 只延迟一级,是错误实现。必须对数据与 valid 使用相同移动规则,或一起设计可暂停缓冲区的接受与传递规则。

自己试试

若把此电路改为不考虑 valid、每个边沿都移动,上述输入序列的最终 q 会怎样改变?

阅读解释

因为连 invalid 周期的 din=0 也被存入,序列变为 001 → 010 → 100 → 001。最终为 001,不同于只移动有效输入的原设计所得 101。实现必须遵守“忽略 invalid 数据值”的约定。

施加正文中带 valid 的输入序列后,最终 q 与实际移动次数是多少?

选择答案

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