Il est essentiel d’appliquer des contraintes de synchronisation à votre croisement de domaine d’horloge multibit. Si ce bus a une contrainte de set_false_path , l’inclinaison à travers le bus peut être supérieure à 1 période d’horloge, ce qui peut provoquer des erreurs fonctionnelles.
La première condition est que vous n’ayez pas de contrainte de set_false_path entre les deux domaines d’horloge. Si vous ne souhaitez pas que les chemins entre eux soient analysés pour la configuration et la conservation, vous pouvez utiliser set_clock_groups, qui a une priorité inférieure.
Ensuite, contraignez les chemins avec set_net_delay pour les rendre aussi courts que possible et avec set_max_skew. set_max_skew ne contraint pas l’installateur, mais vous pouvez analyser cette contrainte dans l’analyseur de synchronisation.
Les contraintes d’un croisement de domaine d’horloge entre data_a dans le domaine d’horloge clk_a et data_b dans le domaine d’horloge clk_b peuvent ressembler à ceci.
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 -asynchrone -group [get_clocks {clk_a}] -group [get_clocks {clk_b}]
set_net_delay -de [get_registers {data_a[*]}] -à [get_registers {data_b[*]}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_skew -de [get_keepers {data_a[*]}] -à [get_keepers {data_b[*]}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.8
Les exigences d’inclinaison dépendront de votre conception et de la façon dont vous avez géré le croisement du domaine d’horloge.
Enfin, vérifiez la synchronisation du croisement de votre domaine d’horloge en exécutant Report Max Skew Summary et Report Net Delay Summary dans l’analyseur de synchronisation.