文章 ID: 000080400 内容类型: 产品信息和文件 上次审核日期: 2017 年 12 月 07 日

如何约束时钟域交叉?

环境

    英特尔® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

对多位时钟域交叉应用时序约束至关重要。如果此总线具有 set_false_path 约束,则总线上的偏移可能超过 1 个时钟周期,这可能导致功能错误。

第一个要求是两个时钟域之间没有 set_false_path 约束。如果不希望分析它们之间的路径以进行建立和保持,则可以使用 set_clock_groups,其优先级较低。

接下来,用 set_net_delay 约束路径以使其尽可能短,并用 set_max_skew 约束路径。et_max_skew 不约束拟合器,但可以在 Timing Analyzer 中针对此约束进行分析。

解决方法

时钟域内clk_a data_a和时钟域clk_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 min_clock_period -skew_value_multiplier 0.8

偏移要求取决于您的设计以及处理时钟域交叉的方式。

最后,在 Timing Analyzer 中运行“报告最大偏移汇总”和“报告网络延迟汇总”,检查时钟域交叉的时序。

相关产品

本文适用于 3 产品

英特尔® Stratix® 10 FPGA 和 SoC FPGA
英特尔® Arria® 10 FPGA 和 SoC FPGA
英特尔® Cyclone® 10 GX FPGA

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。