Es ist wichtig, Timing-Einschränkungen auf Ihre Multibit-Takt-Domain-Kreuzung anzuwenden. Wenn dieser Bus eine set_false_path-Einschränkung hat, kann die Schiefe über den Bus mehr als 1 Taktzeit umfassen, was zu Funktionsfehlern führen kann.
Die erste Voraussetzung besteht darin, dass Sie keine set_false_path-Beschränkung zwischen den beiden Takt-Domains haben, wenn Sie nicht möchten, dass Pfade zwischen ihnen für die Einrichtung analysiert und gedrückt werden, können Sie set_clock_groups verwenden, der eine niedrigere Priorität hat.
Beschränken Sie als Nächstes die Pfade mit set_net_delay , um sie so kurz wie möglich und mit set_max_skew zu machen. Set_max_skew schränkt den Taktgeber nicht ein, aber Sie können diese Einschränkung im Timing Analyzer analysieren.
Die Einschränkungen für eine Clock-Domain, die zwischen data_a in der Clock-Domain-clk_a und data_b in der Clock-Domain kreuzt, können clk_b so aussehen.
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 -die -gruppe [get_clocks {clk_a}] -group [get_clocks {clk_b}]
set_net_delay -von [get_registers {data_a[*]}] -zu [get_registers {data_b[*]}] -max-get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_skew -von [get_keepers {data_a[*]}] -zu [get_keepers {data_b[*]}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.8
Die tatsächlichen Schieflageanforderungen hängen von Ihrem Design und von Ihrer Handhabung beim Clock Domain Crossing ab.
Überprüfen Sie schließlich das Timing Ihrer Clock-Domain-Kreuzung, indem Sie Report Max Skew Summary und Report Net Delay Summary im Timing Analyzer ausführen.