Blues Piano med Terasic DE2-115 Development Board (8 / 13 steg)
Steg 8: Modul: klocka system Array
Denna modul ger en serie av matriser med delarna av nämnda matriser som signalerar av rektangulära vågform med frekvenser som ger musiknoter. Denna modul använder flera fas lås loopar (PLL) för att ändra 50MHz klocka insignalen till flera signaler av specifik frekvens. Individen signalerar av specifik frekvens från PLLS kan sedan delas av befogenheterna för två med en räknare för att ge frekvensen av en önskad anteckning. Detta görs då en gång för varje olika musikaliska not. De särskilda frekvenserna kan hittas med hjälp av följande formel.
Denna formel är härlett från ekvationen ovan.
Där 'n' är något heltal. Värdet av "n" är valt så att produktionen av PLL är nära frekvensen av input klockan. Given koden har PLL utgångar nära 10 MHZ. Frekvensen av önskad anteckningen kan vara frekvensen av någon anmärkning. I följande tabell visas ovan illustrerar hur ofta används i viss kod.
PLL kan implementeras med hjälp av biblioteket som medföljer programvaran Quartus II. Varje PLL ombord kan ge upp till fem utgång klockan signaler. Dela in klockan signalerna av två genomförs en 32-bitars räknare modul. Skillnaderna oktaver är helt enkelt befogenheter av två i frekvens, därför är det endast nödvändigt att genomföra en utgång för en PLL per Musiknoteringen även om du skulle vilja använda oktaver av denna anmärkning.
I viss kod 32 bit matriser clkarray0 – clkarray5 är utgångar som innehåller matriser med varje element är en rektangulär vågform. Varje matris är för en enda musikaliska ton med varje element är frekvensen för en annan octave att notera.
För att göra denna modul hitta genomföra olika noter frekvenserna av musiknoter som ska spelas. Med ovan nämnda formler för att hitta utgång frekvenser av PLLs för de valda musiknoter. IP-katalogen som kommer med Quartus II programmiljö kan användas att genomföra en PLL med utgång frekvensen av de valda musiknoter. Gå in i koden och ersätta någon av de nuvarande PLL modul samtal med modul för din PLL. Koden kan behöva modifieras något om du inte har samma antal utdata klockor som de nuvarande PLL modulerna.
Det bör noteras PLL utformades med styrelsen och inte av oss.