Il est essentiel d’appliquer des contraintes de synchronisation à votre croisement de domaines d’horloge multibit, si ce bus possède une contrainte de set_false_path, alors la contrainte à travers le bus peut être plus d’une période d’horloge, ce qui peut entraîner des erreurs fonctionnelles.
La première exigence est que vous n’avez pas de contrainte de set_false_path entre les deux domaines d’horloge, si vous ne voulez pas que les chemins entre eux soient analysés pour l’installation et la conservation, vous pouvez utiliser set_clock_groups qui a une préséance inférieure.
Ensuite, limitez les chemins avec des set_net_delay pour les rendre aussi courts que possible et avec des set_max_skew. Set_max_skew ne limite pas le fitter, mais vous pouvez l’analyser avec cette contrainte dans l’Analyseur de synchronisation.
Les contraintes d’un croisement de domaines d’horloge entre data_a dans les domaines de l’horloge clk_a et des data_b dans le domaine de l’horloge clk_b peuvent ressembler à cela.
create_clock -nom clk_a -période 4,000 [get_ports {clk_a}]
create_clock -nom clk_b -période 4,500 [get_ports {clk_b}]
set_clock_groups -asynchronous -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 réelles en matière de hauteur de configuration dépendront de votre conception et de la manière dont vous avez géré le croisement de domaines d’horloge.
Enfin, vérifiez la synchronisation de votre croisement de domaines d’horloge en exécutant un résumé de la récapitulatif report max. de la résumur de la résulum de la résulum de la perte de temps net dans l’Analyseur de synchronisation.