时序约束系列:
- 如何约束时钟
主时钟、虚拟时钟、生成时钟、时钟组、时钟不确定性 - 如何约束输入输出延迟
输入延迟、输出延迟 - 如何约束时序例外
多周期路径、输入输出延迟、虚假路径、最大最小延迟 - 如何约束跨时钟域
总线偏斜
1 关于CDC约束
跨时钟域(Clock Domain Crossing,CDC)约束适用于具有不同启动(launch)和捕获(capture)时钟的时序路径。
根据启动和捕获时钟关系以及在CDC路径上设置的时序例外(timing exception),分为同步CDC和异步CDC。
例如,被虚假路径(false path)约束覆盖的同步时钟之间的CDC路径是不进行时序分析的,因此被视为异步CDC。
异步CDC路径可以是安全(safe)的也可以是不安全(unsafe)的。异步CDC路径的安全和不安全的术语不同于用于时钟间时序分析的术语(参阅report_clock_interaction)。当异步CDC路径使用一个同步电路,以防止捕获时序单元出现亚稳态时,异步CDC路径被认为是安全的。
可以使用 set_false 或 set_clock_groups 约束完全忽略CDC路径的时序分析,也可以使用 set_max_delay -datapath_only 进行部分分析。此外,可以使用 set_bus_skew 约束约束多bit CDC 路径捕获时间。
2 约束总线偏斜(Bus Skew)
2.1 关于总线偏斜约束
总线偏斜约束用于设置多个异步CDC路径之间的最大偏斜要求。总线偏斜不是与时序路径相关的传统时钟偏斜。相反,它对应于被同一 set_bus_skew 约束覆盖的所有路径上的最大捕获时间差。总线偏斜要求适用于 Fast 和 Slow 边界条件,但未对跨边界条件进行分析。
总线偏斜约束的目的是限制可以 launch数据 并被 单个目标时钟边沿捕获的 源时钟边沿的数量。容差取决于用于受约束路径的CDC同步方案。总线偏斜约束通常用于以下CDC拓扑:
- 格雷码(Gray-code)总线传输,如异步fifo
- 用CE、MUX或MUX保持电路实现的多bit CDC
- 配置寄存器
set_bus_skew 命令可以在 时序已经确保安全的同步CDC上 设置总线偏斜约束,虽然不需要这样的约束。因为 setup 和 hold 检查已经确保了两个安全时序的同步CDC路径之间的安全传输。
总线偏斜约束的CDC场景为:
- 使用
set_clock_groups覆盖的异步CDC - 完全由
set_false_path和/或set_max_delay -datapath_only覆盖的异步CDC - 完全由
set_false_path和/或set_max_delay -datapath_only覆盖的同步CDC
总线偏斜约束不是时序例外;相反,这是一种时序断言(timi

本文详细解析了时钟约束的各个方面,包括如何管理主时钟、虚拟时钟和多时钟组,以及如何处理输入输出延迟、时序例外和跨时钟域的总线偏斜。特别关注了CDC约束的分类、总线偏斜的设置语法和实例,为设计者提供了实操指导。
最低0.47元/天 解锁文章
1882

被折叠的 条评论
为什么被折叠?



