Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 10/04/2021
Public
文档目录

2.2.5.1. 时钟域交叉约束准则(Clock Domain Crossing Constraint Guidelines)

您必须将相应的时序约束应用于任何多比特时钟域交叉。set_false_path约束的优先级高于所有其他基于路径的约束。因此,当时钟域交叉有set_false_path约束时,时序分析可以忽略其他较低优先级约束(例如偏斜)。

请遵循以下准则,正确地限制时钟域交叉:

  • 查看SDC时序约束以确保两个时钟域之间不存在set_false_path约束。
  • 要从建立和保持时序分析中移除两个时钟域之间的任何伪路径,请应用set_clock_groups约束,而不是set_false_path约束。set_clock_groups的优先级低于set_false_path
  • 使用set_net_delay约束两个时钟域之间的路径,以使网络(net)尽可能短。
  • 使用set_max_skew约束两个时钟域之间的网络(net)。您可以在Timing Analyzer报告中查看与您的约束相比的结果。

以下命令显示在clk_a时钟域中的data_aclk_b时钟域中的data_b之间的时钟域交叉的实例约束:

create_clock -name clk_a -period 4.000 [get_ports {clk_a}]
create_clock -name clk_b -period 4.500 [get_ports {clk_b}]
set_clock_groups -asynchronous -group [get_clocks {clk_a}] -group \
     [get_clocks {clk_b}]
set_net_delay -from [get_registers {data_a[*]}] -to [get_registers \
     {data_b[*]}] -max -get_value_from_clock_period dst_clock_period \
     -value_multiplier 0.8
set_max_skew -from [get_keepers {data_a[*]}] -to [get_keepers {data_b[*]}] \
     -get_skew_value_from_clock_period src_clock_period \
     -skew_value_multiplier 0.8