Chargement…
Chargement…
Le bloc lance une mesure à la demande, attend un premier front montant, puis compte les cycles jusqu'au front montant suivant.
Comportement
i_signal passe d'abord dans un synchroniseur à deux bascules et un détecteur de front.i_start est acceptée lorsque o_ready='1'.o_period_cycles contient l'écart exact entre les deux fronts synchronisés.o_done pulse pendant un cycle avec le résultat.g_max_period_cycles, la sortie est saturée à cette valeur et o_overflow pulse avec o_done.Le signal mesuré doit rester suffisamment longtemps à 0 et à 1 pour être observé par l'horloge système après synchronisation. Le circuit mesure des fronts échantillonnés, pas une fréquence supérieure à ce que l'horloge peut observer.
La fréquence peut être calculée ensuite avec f_signal = f_clk / o_period_cycles. Cette division ne fait pas partie de l'exercice.
g_max_period_cyclesi_clki_reseti_starti_signalo_readyo_doneo_overflowo_period_cycles