Es ist wichtig, Timing-Beschränkungen auf Ihre Multibit-Taktdomänenüberquerung anzuwenden. Wenn dieser Bus eine set_false_path Einschränkung hat, kann der Skew über den Bus mehr als 1 Taktperiode betragen, was zu Funktionsfehlern führen kann.
Die erste Voraussetzung ist, dass Sie keine set_false_path Einschränkung zwischen den beiden Taktdomänen haben. Wenn Sie nicht möchten, dass die Pfade zwischen ihnen auf Setup und Halt analysiert werden, können Sie set_clock_groups verwenden, das eine geringere Priorität hat.
Als nächstes beschränken Sie die Pfade mit set_net_delay , um sie so kurz wie möglich zu machen, und mit set_max_skew. set_max_skew schränkt den Monteur nicht ein, aber Sie können diese Einschränkung im Timing Analyzer analysieren.
Die Einschränkungen für eine Taktdomäne, die zwischen data_a im Taktbereich clk_a und data_b im Taktbereich clk_b kreuzt, könnten wie folgt aussehen.
create_clock -name clk_a -periode 4.000 [get_ports {clk_a}]
create_clock -name clk_b -periode 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
Die Skew-Anforderungen hängen von Ihrem Design und davon ab, wie Sie das Clock Domain Crossing gehandhabt haben.
Überprüfen Sie abschließend das Timing Ihrer Taktdomänenüberquerung, indem Sie Report Max Skew Summary und Report Net Delay Summary im Timing Analyzer ausführen.