FPGA kompositör (6 / 12 steg)
Steg 6: Design
Nästa vi måste börja den faktiska utformningen av kompositören. Det första blocket processen att fungera som en frekvens avdelare. Ett exempel process förklaring är som visas i bild 3.
Vi kommer nu att göra använda av klockans 50MHz signal för detta. Tanken är att öka räknaren tills den når ett tröskelvärde och sedan växla temp_out varje gång den träffar detta värde. Detta ger oss en lägre långsammare frekvens som representerar en tonens frekvens. Till exempel är anmärkning A 440Hz. Vi kan få denna frekvens från klockan genom att dividera 50MHz med 440Hz. Vi tar sedan detta värde och när räkneverket når detta värde, vi växla temp_out, annars vi helt enkelt ökar värdet för räknaren.
När vi har delat frekvensen i varje given noter, måste vi kontrollera om motsvarande växel för en anteckning trycks. Detta görs genom att kontrollera värdet av anmärkning. Om tonen är "000", trycks växeln för anmärkning A. Om tonen är "010", sedan trycks Obs C och så vidare.
Slutligen måste vi se till anteckningar kan bara spelas på stigande kanten av klockan. Detta görs genom att innesluta det i en if sats som kontrollerar en stigande kant. Det ska se ut bild 4.