41 / 63 · 概念
区分周期延迟与吞吐率
确定 N 级延迟线的观察基准,定量计算延迟与吞吐率。
课时内容可免费阅读,选课后可保存学习进度。
定义“N 个周期后”的起点
在边沿 k 首次捕获到 bit 0 的比特,会在边沿 k+N-1 到达 N 位移位寄存器寄存器 存储多位状态的电路。本课程中的同步寄存器在时钟边沿存储指定输入。了解更多的 bit N-1。从首次捕获到最后一级捕获,间隔为 N-1 个周期。
若前一级驱动输入的寄存器在边沿 k 产生新比特,移位寄存器通常在 k+1 才首次捕获。此时到输出的延迟为 N 个周期。两种说法的起点不同,并不矛盾。
按边沿编号定义 d[k] 为边沿 k 接受的输入,充分填充后满足以下关系。
延迟较长,也能每周期产生结果
时钟周期为 T、每个边沿接收一位时,稳态吞吐率吞吐率 单位时间内接受或完成的工作数量。流水线即使不缩短单个任务的延迟,也可以提高吞吐率。为 比特/秒。增大 N 会增加存储深度与延迟,但只要还能连续接收输入,吞吐率就保持不变。
四级延迟线使用 100MHz 时钟,则周期为 10ns,稳态吞吐率为 100Mbit/s。“一个比特通过需要时间”与“必须等它通过后才能输入下一位”是不同命题。
每列记录一个上升沿上升沿 时钟从 0 变为 1 的瞬间。它不同于表示整个 CLK=1 区间的电平。了解更多的观察结果。输入取自边沿前,名称带 after 的状态取自更新后。列的排列表示采样顺序,并非描绘物理传播延迟传播延迟 从输入变化到输出稳定为正确值所需的时间。逻辑表达式等价与时间特性是两回事。了解更多。在三级延迟线中,A 于 E0 进入第一级,在 E2 之后到达最后一级;同时后续数据 B、C 填入前面的级。破折号表示尚无有效数据的槽位。
查看波形数据
| 信号 | 波形 | 总线值 |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| accepted | 2345 | A → B → C → D |
| stage0 after | 2345 | A → B → C → D |
| stage1 after | 2345 | - → A → B → C |
| stage2 after | 2.34 | - → A → B |
有暂停时,按有效移动次数计算
enable 或 accept 为 0 的边沿不会移动比特。此时无法给出固定的实际时间延迟,只能规定按接受边沿数计算的延迟。valid 位也必须按与数据相同的条件移动,才能知道输出何时有效。
若只把流水线流水线 用寄存器把计算划分为多个阶段,使多个输入能够重叠处理的结构。数据、valid 与控制信号必须在各级对齐。了解更多解释为降低延迟的技术,会产生误解。它常通过分割组合路径来提高时钟频率,同时增加寄存器级数与周期延迟。后续课程将进一步讨论面积、功耗与频率之间的权衡。
自己试试
五位延迟线中,在边沿 10 捕获到 bit 0 的比特,如果没有暂停,会在哪个边沿出现在 bit 4?中途有两个 enable=0 的边沿时呢?
阅读解释
没有暂停时为边沿 14,暂停两次时为边沿 16。首次捕获后需要四次额外移动。注意题目起点是捕获到 bit 0 的时刻,而不是外部输入寄存器的更新时间。