您可通过在约束文件中声明时钟组来管理时钟路径之间的关系。当声明时钟组时,Vivado 工具不会对组内定义的时钟之间的任何方向执行时序分析。
为了有助于生成时序约束,Vivado 工具将时钟定义为三种类型:同步、异步或不可扩展。
• 同步时钟具有可预测的时序/相位关系。通常主时钟及其衍生时钟符合这种特性,因为它们具有公共的根起源和周期。
• 异步时钟之间不具备可预测的时序/相位关系。通常不同的主时钟(及其衍生时钟)符合这种特性。异步时钟有不同的起源。
• 如果超过1,000个周期后,仍无法确定公共周期,那么两个时钟就是不可扩展的。如果是这种情况,将使用 1,000 个周期内的最差建立时间关系。不过,无法保证这就是实际的最差情况。
使用 Vivado 生成的时钟报告来确定您所处理的时钟是哪种类型。该报告可帮助您识别异步和不可扩展时钟。
声明多周期路径能实现更合适而且要求放松的时序分析,从而让时序引擎集中处理其它更关键的路径。
识别出这些时钟后,您就可利用“set clock group”约束禁止它们之间的时序分析。Vivado 套件使用的是赛灵思设计约束 (XDC),其基于广泛使用的 Tcl 约束格式的 Synopsys 设计约束 (SDC)。通过 XDC 约束,您使用以下命令定义时钟组:
set_clock_groups -name -logically_exclusive -physically_exclusive -asynchronous -group
-name 是为组赋予的名称。