当前位置:网站首页>Aurora 8b10b IP use - 02 - IP function design skills

Aurora 8b10b IP use - 02 - IP function design skills

2022-06-21 06:06:00 Vuko wxh

Préface

Entreprendre ce qui précède,Le présent document porte principalement sur:IPExemples d'utilisation de méthodes et de techniques de configuration pour certaines fonctions du noyau,Référence principaleIPContenu du chapitre III du manuel.

Réinitialisation et coupure de courant

Réinitialiser

Le signal de Réinitialisation est utilisé pour réinitialiser Aurora 8B/10B Le noyau est défini à un état de démarrage connu. Lors de la réinitialisation,Le noyau arrête toute opération en cours et réinitialise un nouveau canal.

Sur un module duplex complet,Réinitialiser le signal réinitialiser le canal TX Et RX Fin.Sur le module simplex,tx_system_reset Réinitialiser TX Accès,Et rx_system_reset Réinitialiser RX Accès. gt_reset Transmetteur de Réinitialisation du signal,Réinitialisation finale du noyau.tx_system_reset Utilisé sur l'interface avec la bande latérale simplex tx_reset Et rx_reset Les signaux sont séparés.

Exemple

Réinitialiser l'assertion dans le noyau duplex

Il doit y avoir au moins six assertions de Réinitialisation dans le noyau duplex user_clk Période de temps. Donc,,channel_up En trois user_clk Faible après le cycle,Comme le montre la figure ci - dessous.

image-20220602203226366

Dans le noyau duplex gt_reset Assertion

L'image suivante montre gt_reset Assertion, Il devrait y en avoir au moins six init_clk_in Période de temps. Donc,,user_clk Arrêt après plusieurs cycles d'horloge , Parce qu'il n'y a pas d'émetteur - récepteur txoutclk Et channel_up Puis il a été abaissé .

image-20220602203326915

Dans le noyau simplex tx_system_reset Et rx_system_reset Assertion

La figure ci - dessous montre le simplex connecté dans le système TX Noyau et simplex RX Noyau.TX_IP Et RX_IP Peut être sur le même ou plusieurs appareils .

image-20220602203513322

L'image suivante montre le noyau simplex tx_system_reset Et rx_system_reset Processus de recommandation assermenté .

image-20220602203551582

  1. tx_system_reset Et rx_system_reset Réglé à au moins six horloges user_clk Période de temps.
  2. tx_channel_up Et rx_channel_up En trois user_clk Faible après le cycle.
  3. rx_system_reset A été abaissé (Ou)In tx_system_reset Relâchez après avoir été abaissé . Cela garantit un travail simple TX L'émetteur - récepteur dans le noyau a commencé à transmettre les données d'initialisation plus tôt , Et augmente le simplex RX Possibilité d'aligner le noyau sur la séquence de données correcte .
  4. rx_channel_up In tx_channel_up L'affirmation a été faite avant . Simplex RX Le noyau doit satisfaire à cette condition ,Simplex TX Paramètres du minuteur simplex dans le noyau (C_ALIGNED_TIMER、C_BONDED_TIMER Et C_VERIFY_TIMER) Des ajustements sont nécessaires pour satisfaire à ce critère .
  5. Quand simplex-TX Le noyau est terminé dans le temps configuré Aurora 8B/10B Lors de l'initialisation d'un transfert de séquence par un canal de protocole ,tx_channel_up En position. tx_channel_up last L'affirmation de simplex-TX Le noyau simplex-RX Envoyer quand le noyau est prêt Aurora Séquence d'initialisation.

Aurora 8B/10B Duplex Power On Sequence( Séquence d'alimentation duplex )

Pendant la séquence d'alimentation de la plaque ,gt_reset Et reset Les signaux doivent être de haut niveau . Horloge de référence de l'émetteur - récepteur (GT_REFCLK) Et l'horloge libre du noyau (INIT_CLK) On s'attend à ce qu'il reste stable pendant l'alimentation ,Pour que Aurora 8B/10B Le noyau fonctionne correctement .

image-20220602203817859

Aurora 8B/10B Duplex Normal Operation Reset Sequence( Séquence de Réinitialisation du fonctionnement normal duplex )

En fonctionnement normal, Le signal de Réinitialisation est attendu à gt_reset Régler au moins avant de régler le signal 128 - Oui. user_clk Période de temps, Pour s'assurer que la partie du noyau de la logique programmable atteint un état de Réinitialisation connu Ingt_reset L'affirmation de user_clk Avant le signal,Comme suit.

image-20220602203954745

Aurora 8B/10B Simplex Power On Sequence( Séquence d'alimentation simplex )

Pendant l'alimentation ,TX simplex Et RX simplex Du noyau gt_reset Et reset Le signal devrait être élevé . Prévisions INIT_CLK Et GT_REFCLK Stable pendant l'alimentation . Il faut d'abordTXOn Boardgt_resetSignal bas,Et ensuite,RXFingt_resetBaisse.; Cela garantit que RX Verrouillage latéral correct CDR,Comme le montre la figure ci - dessous.

image-20220602204154665

Séquence d'alimentation simplex :

  1. Release TX Fin gt_reset (A)

  2. Release RX Fin gt_reset

  3. Release RX Fin synchronisée à user_clk (D)

  4. Release TX Fin synchronisée à user_clk (B)

    Attention!: Il faut veiller à ce que (D) À (B) La différence de temps entre .

Aurora 8B/10B Simplex Normal Operation Reset Sequence( Séquence de Réinitialisation du fonctionnement normal simplex )

Pour les configurations simplex ,Suggestion TX La séquence de Réinitialisation latérale correspond à RX La séquence de Réinitialisation latérale est étroitement couplée ,Parce que TX Et RX Le lien n'a pas de chemin de rétroaction de communication . Votre attention, s'il vous plaît.,Si RX L'extrémité est réinitialisée , Il n'y a pas de mécanisme direct pour informer TX Réinitialisation du terminal . Donc,,Pour Aurora 8B/10B Noyau simplex , Le couplage de Réinitialisation doit être traité au niveau du système . Chaque fois TX La Réinitialisation latérale doit être suivie de RX Side,Comme le montre la figure ci - dessous,RX Réinitialisation latérale invalide et TX Le temps entre la Réinitialisation latérale invalide doit être aussi court que possible . En position gt_reset Avant,Au moins 128 Cycles d'horloge,Pour s'assurer que gt_reset Inhibition de la position user_clk Avant, La partie du noyau de la logique programmable atteint un état de Réinitialisation connu . gt_reset Le temps d'affirmation doit être d'au moins six init_clk Période de temps, Pour satisfaire le circuit de déjitter contenu dans le noyau .

image-20220602204430686

Coupure de courant

C'est un signal efficace de haut niveau . AssertionpowerdownHeure,Aurora 8B/10B L'émetteur - récepteur dans le noyau s'éteindra , Mettez - les hors service 、Mode de faible puissance. Annuler l'assertion en cas de panne de courant , Le noyau se réinitialise automatiquement . gt_reset Il doit êtrepowerdown Position arrière position arrière .

Shared Logic(Logique partagée)

Vivado IDE L'option logique partagée dans configure le noyau pour inclure des ressources partageables , Par exemple, un émetteur - récepteur à quatre canaux PLL (QPLL)、 Différence d'émetteur - récepteur refclk Tampon (IBUFDS_GTE2), Et l'horloge et la logique de Réinitialisation dans le noyau ou l'exemple de conception .

La hiérarchie logique partagée s'appelle <component_name>_support. Fig. 3-9 Et des graphiques 3-10 Montre deux hiérarchies , Où les blocs logiques partagés sont contenus dans le noyau ou dans la conception de l'échantillon . La différence entre les deux niveaux réside dans les limites du noyau . Il utilise VivadoDans Shared Logic Options pour le contrôle . Quand la logique partagée est dans le noyau ,Single Ended L'option exclura le tampon d'horloge différentielle approprié du noyau .

image-20220602204931496

image-20220602204952664

Le contenu de la logique partagée dépend de l'interface physique et de l'appareil cible . La logique partagée contient le tampon différentiel de l'émetteur - récepteur (IBUFDS_GTE2/IBUFDS_GTE3) Exemples、 Prise en charge de la logique de Réinitialisation et <USER_COMPONENT_NAME:>_CLOCK_MODULE Instanciation de. La logique partagée contient également une instance publique de l'émetteur - récepteur basée sur le type d'émetteur sélectionné GTPE2_COMMON、GTXE2_COMMON Ou GTHE2_COMMON. Prise en charge de la logique de Réinitialisation contient pour réinitialiser et gt_reset La logique de déjitter du port .

Aurora 8B/10B Utilisation du noyau CPLL,Non utilisé QPLL(C'est - à - dire: GTXE2_COMMON/GTHE2_COMMON). QPLL Pour Zynq-7000 Et 7 Série de dispositifs, Et l'instancier dans une logique partagée , Pour s'aligner sur les autres noyaux Serial Connect de cylindre .

Le tableau suivant énumère les ressources partagées pour chaque série .

Sharable Resources

Transceiver Type used in the Aurora 8B/10B CoreResources
Zynq-7000 and 7 series device GTX/GTH/GTP transceivers in 2-byte modeIBUFDS_GTE2: transceiver reference clock
GT*_COMMON: transceiver clocking;
BUFG: clocking
IBUFDS: init_clk
Zynq-7000 and 7 series device GTX/GTH/GTP transceivers in 4-byte modeIBUFDS_GTE2: transceiver reference clock
GT*_COMMON: transceiver clocking
MMCM: clocking
2xBUFG: clocking;
IBUFDS: init_clk
UltraScale GTH TransceiversIBUFDS_GTE3: transceiver reference clock
BUFG_GT: clocking
UltraScale+ GTH TransceiversIBUFDS_GTE4: transceiver reference clock
BUFG_GT: clocking

gt_refclk1_out Et gt_refclk2_out Le signal peut être partagé par d'autres émetteurs - récepteurs dans la conception , Et le Guide d'horloge de l'émetteur - récepteur doit être suivi pour la connectivité et la proximité à quatre canaux de l'émetteur - récepteur .Fig. 3-11 Afficher à partir du noyau contenant la logique partagée (aurora_8b10b_0) Vers une autre instance du noyau qui ne contient pas de logique partagée (aurora_8b10b_1) Connexion de ressources partageables pour . Certains ports peuvent varier en fonction de la configuration du noyau et du type d'émetteur - récepteur sélectionné .

image-20220602205354099

Using the Scrambler/Descrambler( Utilisation d'un spoiler / Disjoncteur )

Un 16 Brouilleur de bits / Disjoncteur , Pour les données avec des polynômes :G(x) = X16 + X5 + X4 + X3 + 1,Oui. < component name>_scrambler.v[hd] Obtenir Module. Il garantit qu'il n'y aura pas de données en double pendant longtemps . Le brouilleur et le disjoncteur sont synchronisés en fonction de l'envoi et de la réception des caractères de compensation de l'horloge respectivement . Le spoiler n'affecte que les symboles de données .

Utiliser CRC

Mise en œuvre pour les données utilisateur 16 Bits ou 32 Bits CRC In < component name>_crc_top.v[hd] Disponible dans le module.

Pour 2 Byte Design Generation CRC16,Pour 4 Byte Design Generation CRC32. crc_valid Et crc_pass_fail_n Le signal indique la réception de CRC Et envoyé CRC Les résultats de. CRC-CCITT (16’h1021) Et le polynôme Ethernet standard (32’h04C11DB7) Utilisé séparément 16 Bits et 32 Bitwise CRC Polynôme.CRC Est calculé par canal , Avec les données comme suffixe . Au récepteur AXI Interface Division,CRC Supprimé, Les paquets de données suivent le AXI Mode d'envoi reçu par l'interface . L'image ci - dessous montre comment on peut CRC Envoyer le même paquet avec et quand activer CRC Options.

image-20220602205825364

image-20220602205836529

Logique d'échange à chaud

Aurora 8B/10B Hot swap Logic in ( En utilisant des init_clk Signal) Caractères de compensation de l'horloge reçus . Aurora RX L'interface reçoit un caractère de compensation d'horloge indiquant que le canal de communication est actif et non interrompu . Si le caractère de compensation de l'horloge n'est pas reçu dans un délai prédéterminé , La logique Hot swap réinitialisera le noyau et l'émetteur - récepteur . Le module de compensation de l'horloge doit être utilisé pour Aurora 8B/10B Conception.

Compensation de l'horloge

La fonction de compensation de l'horloge permet de Aurora 8B/10B La fréquence d'horloge de référence utilisée de chaque côté du canal varie jusqu'à ±100ppm. Selon Aurora 8B/10B Spécification du Protocole , Générer un module de compensation d'horloge standard en utilisant le noyau <component_name>_standard_cc_module.v[hd].
standard_cc_module Traitement du cycle de génération des caractères de compensation de l'horloge , Comme indiqué dans le tableau ci - dessous . Peut être utilisé CC_FREQ_FACTOR Contrôle de la périodicité .

Lane WidthDO_CC Entre USER_CLK CycleDO_CC Durée(USER_CLK Cycle)
25,0006
42,5003

Prévention 16 Octets UFC Le nombre de cycles préalables requis pour que le message entre en conflit avec la séquence de compensation de l'horloge dépend du nombre de canaux dans le canal et de la largeur de chaque canal . Pendant la transmission des caractères de compensation de l'horloge , La demande de message de contrôle de flux natif n'a pas été confirmée . Cela aide à prévenir NFC Conflit entre le message et la séquence de compensation de l'horloge .Paramètres CC_FREQ_FACTOR C'est sûr. CC Fréquence de la séquence . .Toute tentative d'augmenter ou de diminuer les paramètres doit être soigneusement analysée et testée .

Assurez - vous que la durée et la période choisies sont suffisantes pour corriger la différence maximale entre les fréquences d'horloge utilisées . N'effectuez pas plus d'une séquence de correction d'horloge sur les huit cycles de l'autre .AvecCC La séquence remplace la longue séquence inactive (>12 Cycles)Peut être abaisséEMI.

En utilisant le support de petite extrémité

Aurora 8B/10B Le noyau prend en charge par défaut l'interface utilisateur dans le grand format . Il prend également en charge les formats de petites extrémités pour se connecter de façon transparente aux AXI4-Stream De IP Noyau.

reference

  1. PG046
原网站

版权声明
本文为[Vuko wxh]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/172/202206210557325938.html