23 / 24 · 概念
测量性能并审查设计
规定观察窗口、诊断停顿,并明确模型证据的范围。
课时内容可免费阅读,选课后可保存学习进度。
重新检查数值与时序约定
正确计算只是完成条件的一部分。检查输入准入、停顿时保持、最终排空和复位边界。报告观察窗口、已接收输入、已交付输出、输入/输出停顿和事务延迟。因缓冲已满而被拒绝的呈现输入,不应计为已完成工作。
假设从时钟沿 0 刚结束到时钟沿 20 刚结束之间传送十二个结果,窗口包含二十个时钟间隔。观察吞吐率为每周期 0.6 个事务。周期为五纳秒时,窗口为 100 ns,速率为每秒 120 百万个事务。应区分这个观察速率与无停顿结构最大值每秒 200 百万。即使速率相同,输入稀疏和接收端频繁停顿也需要不同的解决方式。
使用标签将交付关联到接收。Tag7 在时钟沿 4 接收,11 交付,延迟为七周期,即 35 ns。它超过综合项目三周期的无停顿延迟,却不意味着丢失。记录范围或逐项表格,而不只是平均值。固定延迟断言只适用于无停顿路径。
| 观察现象 | 可能原因 | 下一步检查 |
|---|---|---|
| FIFO 经常已满 | 接收端或后续级较慢 | Output-ready 和各级 valid |
| 输出经常为空 | 输入稀疏或有气泡 | 已接收输入和各级移动 |
| ready 路径较长 | 多个组合缓冲连接 | 实现时序 |
| 标签顺序错误 | 伴随字段未对齐 | 各级标签和 valid |
更深的缓冲可以吸收突发流量,却可能增加等待时间。稳态占用量、到达速率和驻留时间相互关联;不要盲目把稳态平均应用到短暂的启动、排空或取消窗口。
审查位宽、符号属性、缩窄、valid 移动、替换、复位取消、存储器时序和依赖策略。Node 成功证明整数模型执行,不证明 HDL 编译或布局后的时序。扩展饱和、操作码或存储器响应时,应同时修改约定和参考检查。数据通路扩展不仅要增加运算符,也必须保持正确的存储、接收和数值解释。
自己试试
四纳秒周期下,五十个时钟间隔内传送三十个结果。求观察到的每周期和每秒吞吐率。同时求 tag3 在时钟沿 8 接收、15 交付时的延迟。
阅读解释
吞吐率为 0.6 个事务/周期。200 ns 窗口对应每秒 150 百万个事务。Tag3 延迟为七周期,即 28 ns。应将这些观察值与无停顿最大性能分别报告。