En raison d’un problème avec le circuit de détection des verrous durs fPLL (hard lock detection circuit) Arria® périphérique 10, il est possible que le fPLL signale une condition déverrouillée lorsqu’il utilise le mode « precision k » fractionnel.
Lorsque le fPLL est en mode fractionnel, la valeur du compteur de commentaires est fonction de M et K (pll_dsm_fractional_division). La formule est « M (entier) K/2^32 ». Les valeurs légales de K sont de 1 à 2^32-1
Le « facteur K » est défini comme «pll_dsm_fractional_division/2^32»,
Lorsque le facteur K est inférieur à 0,1 ou supérieur à 0,9, le circuit de détection des verrous durs fPLL n’est pas fiable.
Lorsque le facteur K est compris entre 0,1 et 0,9, le circuit de détection des verrous durs fPLL est fiable.
Exemple
L’exemple ci-dessous décrit quand le circuit de détection des verrous Arria 10 fPLL est fiable et n’est pas fiable.
refclk (fréquence) = 100 MHz
Compteur N = 1
Compteur M = 40
Compteur K (pll_dsm_fractional_division) = 2147483648
Compteur L = 4
Sortie PLL (fréquence) = (refclk (fréquence) / N) * ( (M (K / 2^32)) / L )
Dans ce cas,
Sortie PLL (fréquence) = 100 * (40 (2147483648 / 2^32)) / 4)
= 100 * ((40 0,5) / 4)
= 100 * (40,5 / 4)
= 100 * 10.125
= 1012,5 MHz
Comme la valeur fractionnelle est de 0,5 (2147483648 /2^32, avec K = 2147483648) et qu’elle est comprise entre 0.1 et 0.9, le signal de verrouillage est fiable.
Lorsque la valeur fractionnelle est inférieure à 0,1 ou supérieure à 0,9, le signal de verrouillage fPLL n’est pas fiable. Dans ce cas, vous pouvez instantanément mettre en place la logique de détection de verrouillage IP soft suivante
Téléchargez ce fichier soft_lockppm_det.zip
Le fichier soft_lckppm_det.v est chiffré, mais peut être utilisé pour la synthèse, la simulation et les tests matériels.
La liste des ports et la description du fichier de circuit de détection de verrouillage logiciel sont ci-dessous
Nom du port | Entrée/sortie | Description |
ref_clk | Entrée | Entrée d’horloge de référence pour fpll |
clk_low | Entrée | Horloge faible à partir d’une fpll, toujours bascule, la fréquence peut être désactivée à l’arrêt de la sortie pll_locked |
dead_ref_clk | Sortie | Indique que lelk de référence ne bascule pas suffisamment vite et est considéré comme mort. Le seuil par défaut est défini par le paramètre du module PPM_THRESHOLD_FOR_DEAD_CLK |
calibration_done | Entrée | cal_done de fpll. Peut être considéré comme une réinitialisation secondaire |
config_en | Entrée | Port de configuration activé |
config_clk | Entrée | Horloge du port de configuration |
config_data | Entrée | Données sur le port de configuration. Lorsque config_en est élevée, les données sont échantillonées à la périphérie montante de la config_clk et sont passées dans les registres internes, en stockant les seuils pour les conditions d’horloge morte et de verrouillage. La largeur du registre est définie par le paramètre de module CLK_LOW_CNT_WIDTH. Par conséquent, le total des cycles doit changer dans toutes les données est de 2* cycles CLK_LOW_CNT_WIDTH. Le fonctionnement en déplacement commence au LSB de registre pour connaître l’état du verrou. Après 2* cycles de CLK_LOW_CNT_WIDTH, la valeur sur config_data va devenir le MSB de l’inscription pour dead_lock condition |
Réinitialiser | Entrée | réinitialiser à partir de la fpll |