Étape 5: Re-construire le projet Vivado. Comprendre, modifier et modifiez-la.
Dans Nexys4DdrSpectralSources.zip, ouvrez le fichier readme.txt qui décrit la procédure pour générer le projet. Suivez les étapes pour re-construire le projet de Vivado des sources fournies.
Remarque importante : Comme indiqué dans le fichier readme.txt, le projet est prêt à compiler pour un Conseil Nexys4 DDR. Si vous voulez compiler pour un plateau de Nexys4, de supprimer du projet contraint le fichier appelé Nexys4DDR_Master.xdc et ajouter à la place le fichier appelé Nexys4_Master.xdc. (\src\constraints).
Analyser la structure du projet :
- TopNexys4Spectral - donne une impulsion de flgStartAcquisition chaque 100ms, à lance une calcul cycle. Instancie :
- clkGenInst - un générateur d’horloge Vivado IP core. Utilise une horloge d’entrée de 100MHz et génère :
- Horloge de 25MHz pour le contrôleur VGA
- 4,8 MHz pour le composant de démo audio.
- Audio_demo_inst - le projet de démo Digilent Audio, telle que publiée et décrite ici. Produit 16 bits, 48KSPS signal audio.
- Inst_fftBlock - calcule la FFT du signal de sortie audio_demo.
- Instancie :
- TimeBlkMemForFft - Vivado IP core: 8 bits, 1024 échantillons dual port RAM, de stocker le signal audio et le donner à la base de la FFT.
- FftInst - Vivado IP core : calcule la FFT du signal stocké au-dessus.
- ResetStateMachine initialise la base de la FFT.
- Compteur de temps indexe les échantillons dans le TimeBlkMemForFft.
- TimeAcqSync synchronise le compteur de temps avec le flgStartAcquisition et le signal audio rising edge au niveau zéro.
- FftLoadCounter indexe les échantillons pour charger le noyau de la FFT IP (échantillons de temps).
- FftUnloadCounter indexe les échantillons pour décharger la FFT IP core (échantillons de domaine de fréquence).
- Instancie :
- Inst_VgaCtrl-génère les signaux de synchronisation VGA ainsi que les compteurs verticaux et horizontaux pour localiser le pixel affiché actuel.
- Inst_ImgCtrl – génère l’image de l’écran VGA.
- Instancie :
- TimeBlkMemForDisplay - Vivado IP core: 8 bits, 1024 échantillons dual port RAM, de stocker le signal audio et le donner à l’affichage VGA. Synchronisé de clone de TimeBlkMemForFft.
- FreqBlkMemForDisplay - Vivado IP core: 8 bits, 1024 échantillons dual port RAM, de conserver les échantillons de domaine de fréquence audio et le donner à l’affichage VGA.
- Instancie :
- inst_LedStringCtrl – construit l’image à afficher sur la bande de LED.
- Génère des définitions de la couleur de l’arc-en-ciel.
- Stocke les valeurs des premiers échantillons de domaine de 30 fréquence.
- Combine les deux infos ci-dessus pour générer le spectacle dynamique de fréquence sur les LEDs.
- Lit de commutateurs pour sélectionner une image statique ou dynamique sur les LEDs.
- Instancie :
- U1 - led_controller = contrôleur de led
- obtient des données de couleur pour chaque LED dans la bande.
- Combine les trois couleurs pour chaque LED
- Combine les infos de couleurs 30 LED dans une chaîne de bits unique.
- Encode la chaîne de bits comme un code NRZ pour piloter la bande de LED.
- U1 - led_controller = contrôleur de led
- clkGenInst - un générateur d’horloge Vivado IP core. Utilise une horloge d’entrée de 100MHz et génère :
Le modifier à votre convenance. N’hésitez pas à l’utiliser entièrement ou une partie de vos projets.