Stap 5: Het Vivado-project opnieuw te bouwen. Begrijpen, bewerken en wijzigen.
In Nexys4DdrSpectralSources.zip, opent u het Leesmij-bestand met een beschrijving van de procedure om te bouwen van het project. Volg de stappen om het Vivado-project van de gegeven bronnen weer op te bouwen.
Belangrijke opmerking: Zoals blijkt uit de readme.txt, is het project klaar om te compileren voor een Nexys4 DDR-board. Als u wilt verwijderen uit het project te compileren voor een Nexys4-board Hiermee beperkt u het bestand met de naam Nexys4DDR_Master.xdc en voeg in plaats daarvan het bestand met de naam Nexys4_Master.xdc. (\src\constraints).
Het analyseren van de structuur van het project:
- TopNexys4Spectral - produceert een puls van de flgStartAcquisition elke 100ms, voor ingewijden een berekening cyclus. Instantieert:
- clkGenInst - een klok generator Vivado IP kern. Een 100MHz input klok gebruikt en gegenereerd:
- 25MHz klok voor de VGA-controller
- 4.8MHz voor de audio demo-component.
- Audio_demo_inst - de Digilent Audio demo project, zoals gepubliceerd en beschreven hier. 16-bits, 48KSPS audio signaal produceert.
- Inst_fftBlock - berekent de FFT, van het uitgangssignaal van de audio_demo.
- Instantieert:
- TimeBlkMemForFft - Vivado IP kern: 8-bit, 1024 monsters dubbele poort RAM, voor het opslaan van audio signaal en het geven van de FFT-kern.
- FftInst - Vivado IP kern: berekent de FFT van het signaal opgeslagen boven.
- ResetStateMachine initialiseert de FFT-kern.
- TimeCounter indexeert de monsters in de TimeBlkMemForFft.
- TimeAcqSync synchroniseert de TimeCounter met de flgStartAcquisition en de stijgende rand op niveau nul audiosignaal.
- FftLoadCounter indexeert de monsters om te laden de FFT IP kern (tijd monsters).
- FftUnloadCounter indexeert de monsters om te lossen de FFT IP kern (frequentie-domein monsters).
- Instantieert:
- Inst_VgaCtrl – genereert de VGA sync-signalen, alsmede de verticale en horizontale items te vinden van de huidige weergegeven pixel.
- Inst_ImgCtrl – genereert het imago van de VGA-beeldscherm.
- Instantieert:
- TimeBlkMemForDisplay - Vivado IP kern: 8-bit, 1024 monsters dubbele poort RAM, voor het opslaan van audio signaal en het geven van de VGA-beeldscherm. Gesynchroniseerde kloon van TimeBlkMemForFft.
- FreqBlkMemForDisplay - Vivado IP kern: 8-bit, 1024 monsters dubbele poort RAM, voor het opslaan van audio frequentie-domein monsters en het geven van de VGA-beeldscherm.
- Instantieert:
- inst_LedStringCtrl – bouwt de afbeelding moet worden weergegeven op de LED strip.
- Genereert de kleurdefinities van de regenboog.
- De waarden van de eerste 30 frequentie-domein monsters worden opgeslagen.
- Combineert de twee info hierboven om het genereren van de dynamische show van frequentie op de LEDs.
- Leest schakelaars om statische of dynamische afbeelding op de LEDs te selecteren.
- Instantieert:
- U1 - led_controller = led controller
- krijgt de kleurgegevens voor elke LED in de strip.
- Combineert de drie kleuren voor elke LED
- Combineert de 30 LED kleuren info in een enkele bit string.
- Codeert de bits-tekenreeks als een NRZ-code om te rijden de LED-strip.
- U1 - led_controller = led controller
- clkGenInst - een klok generator Vivado IP kern. Een 100MHz input klok gebruikt en gegenereerd:
Het project op uw gemak te wijzigen. Voel je vrij om te gebruiken het geheel of delen ervan in uw projecten.