ID de l'article: 000073672 Type de contenu: Dépannage Dernière révision: 11/09/2012

Les LV pour TX et RX peuvent-ils être partagés à l’aide du cœur SPI 4.2 sur les périphériques Stratix IV GX ES ?

Environnement

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

Oui, les plLs peuvent être partagés à l’aide de la fonction Altera® Spi 4.2 MegaCore® dans Stratix® périphériques IV GX. Le partage PLL avec le cœur SPI 4.2 entre la transmission (TX) et la réception (RX) est plus compliqué pour les Stratix IV GX ES que les autres périphériques FPGA.

La mégafunction ALTLVDS du cœur SPI 4.2 pour Stratix IV GX ES ne prend pas en charge le partage interne de la PLL pour Tx et Rx. L’inallignation DPA prend beaucoup plus de temps que prévu pour sélectionner la phase de traitement du flou. Cela entraîne une phase non idéale et entraîne des erreurs de bits de données même après l’affirmation du signal de verrouillage DPA. La réinitialisation du circuit DPA déclenche également ce problème.

Pour activer le partage de la PLL, veuillez suivre les paramètres ci-dessous étape par étape :

1. Vérifiez « Utiliser une PLL externe » dans l’onglet Paramètres de la mégafunction ALTLVDS

2. Désactivez l’option « Utiliser des PLL(s) partagées pour les récepteurs et les émetteurs » dans l’onglet Fréquence/PLL de la mégafunction ALTLVDS

3. Vérifiez « Activer l’étalonnage PLL » dans l’onglet des paramètres DPA 3e de la mégafunction ALTLVDS

4. Exécutez le gestionnaire de plug in Megawizard et créez un megafunction ALTPLL. Appliquez la note de vitesse de l’appareil appropriée et la fréquence d’entrée de l’horloge en fonction de la configuration du système. Choisissez Left_Right PLL

4-1. Dans l’onglet Reconfiguration PLL, sous Configuration de phase dynamique, sélectionnez « Créer des entrées optionnelles pour la reconfiguration dynamique de la phase »

4-2. Dans l’onglet Output Clocks (Horloges de sortie) -lk c0, entrez la fréquence d’horloge de sortie (l’horloge rapide fonctionnant au taux de données LVDS). Cette horloge alimentera rx_inclock et les tx_inclock. Définir le changement de phase = -180 degrés en ce qui concerne l’horloge du VCO. Définissez Cycle d’devoir à 50 %. Sélectionnez « Utilisez ces paramètres d’horloge pour l’horloge DPA »

4-3. Dans l’onglet Output Clocks (Cadence de sortie), connectez c1, saisissez la fréquence d’horloge du débit (horloge rapide /facteur de desserialisation). Alimentez cette sortie d’horloge sur tx_enable et rx_enable. Définissez le passage à la phase sur [(facteur de desserialisation - 2) / facteur de desserialisation] * 360 degrés. Définir le cycle d’obligation (facteur de déserialisation 100)

4-4. Dans l’onglet Output Clocks (Horloges de sortie) -lk c2, entrez la fréquence d’horloge de sortie (horloge rapide / facteur de desserialisation). Alimentez cette sortie d’horloge sur rx_syncclock. Définissez le passage à la phase vers (-180 degress /facteur de déserialisation). Définissez le cycle d’obligation sur 50 %

Figure 1 

Schéma d’horloge PLL à LVDS figure 1

5. Apporter des modifications aux modules de cœur SPI4.2 Rx

5-1. Dans _rx_core.v, remplacez l’instanciation du nom de variation _rx_data_phy_altlvds par l’instanciation ci-dessous :

nom de variation _rx_data_phy_altlvds rx_data_phy_altlvds (

.pll_areset(pll_areset),
.pll_phasedone(phaselux),
.rx_cda_reset ({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset}),
.rx_channel_data_align(bitslip),
.rx_enable(rx_enable),
.rx_fifo_reset ({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset}),
.rx_in(rx_in),
.rx_inclock(rx_inclock),
.rx_reset ({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset}), // entrée [16:0],
.rx_syncclock(rx_syncclock),
.dpa_pll_cal_busy(dpa_pll_cal_busy),
.pll_phasecounterselect (phasecounterselect),
.pll_phasestep (phasestep),
.pll_phaseupdown (déphasage),
.pll_scanclk(scanclk),
.rx_dpa_locked(stat_rd_dpa_lvds_locked),
.rx_out (rx_out_serdes) ;

5-2. Dans .v (emballage de cœur SPI4.2 Rx), incluent l’instancation suivante :

nom de la variation _pl4_rx_core _pl4_rx_core_inst (

...

.rx_inclock(rx_inclock),
.rx_enable(rx_enable),
.rx_syncclock(rx_syncclock),
.dpa_pll_cal_busy(dpa_pll_cal_busy),
.phasecounterselect (phasecounterselect),
.phasestep (phasestep),
.phaseupdown (phaseupdown),
.scanclk (scanclk),
.phase défaite(phase ia),

...);

6. Apporter des modifications au module de cœur SPI4.2 Tx :

6-1. Dans _tx_core.v, remplacez l’instanciation du nom de variation _tx_data_phy_altlvds par l’instanciation ci-dessous :

nom de variation _tx_data_phy_altlvds tx_data_phy_altlvds (

.tx_enable(tx_enable), //entrée
.tx_in (tx_in_i), //entrée
.tx_inclock(tx_inclock),/entrée
.tx_coreclk(tx_coreclk),
.tx_out (tx_out), //sortie
.tx_outclock (tx_outclock) //sortie ) ;

6-2. Dans .v ( emballage de cœur SPI4.2 Tx), incluent l’instancation suivante :

nom de variation _pl4_tx_core _pl4_tx_core_inst (

...

.sddfclk (l’uccfclk),
.tx_enable(tx_enable),
.tx_coreclk(tx_coreclk),

... );

7. Le récepteur ALTLVDS SPI4.2 rx_out sortie du bus soit enregistré auprès de rx_outclock.

8. L’émetteur SPI4.2 ALTLVDS tx_in le bus soit pré-enregistré auprès de tx_coreclock.

9. Invertir le débit de verrouillage PLL partagé et le alimenter sur pll_areset port de la mégafunction ALTLVDS.

Produits associés

Cet article concerne 1 produits

FPGA Stratix® II GX

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.