Sisällysluettelo:

4 -vaiheinen digitaalinen sekvensseri: 19 vaihetta (kuvilla)
4 -vaiheinen digitaalinen sekvensseri: 19 vaihetta (kuvilla)

Video: 4 -vaiheinen digitaalinen sekvensseri: 19 vaihetta (kuvilla)

Video: 4 -vaiheinen digitaalinen sekvensseri: 19 vaihetta (kuvilla)
Video: Chompi Club | This Feature Has Me HYPE 🤩 2024, Marraskuu
Anonim
4 -vaiheinen digitaalinen sekvensseri
4 -vaiheinen digitaalinen sekvensseri
4 -vaiheinen digitaalinen sekvensseri
4 -vaiheinen digitaalinen sekvensseri

CPE 133, Cal Poly San Luis Obispo

Projektin luojat: Jayson Johnston ja Bjorn Nelson

Nykypäivän musiikkiteollisuudessa yksi yleisimmin käytetyistä "välineistä" on digitaalinen syntetisaattori. Jokainen musiikkilaji, hip-hopista popiin ja jopa country, käyttää studiossa olevaa digitaalista syntetisaattoria luodakseen musiikin herättämiseksi tarvittavat biitit ja äänet. Tässä opetusohjelmassa luomme hyvin yksinkertaisen syntetisaattorin Basys 3 FPGA -levyllä.

Syntetisaattori pystyy toistamaan neljä valittua vuosineljänneksen muistia vakionopeudella minuutissa. Käyttäjät käyttävät kytkimiä jokaisen vuosineljänneksen musiikkikentälle. Tässä projektissa käytämme 4-bittistä digitaalista analogiamuunninta (DAC) ottamaan lähtö kortilta ja muuntamaan se analogiseksi signaaliksi. DAC: n ulostulo syötetään sitten tavalliseen tietokoneen kaiuttimeen, mikä luo musiikkia. Kuusitoista erillistä kenttää on mahdollista. Rajoitamme syntetisaattorimme yhteen 12 nuotin oktaaviin, jotka ovat keskimmäisen C (261,6 Hz) ja B4 (493,9 Hz) välillä. Käyttäjällä on myös mahdollisuus määrittää useita muistiinpanoja samanaikaisesti sekä antaa lepo lyömällä osoitusta, kun mikään äänenkorkeuden kytkimistä ei ole siirtynyt ylöspäin. Kun jokainen nuotti valitaan ja sitä toistetaan, kirjainmerkki näkyy 7-segmentin näytössä. Käytämme myös kolmea taululla olevaa painiketta, toista musiikin toistamiseen ja keskeyttämiseen, toista syntetisaattorin nollaamiseen ja "valintatilaan" asettamiseen, ja kolmatta nuotin äänenvoimakkuuden määrittämiseen valintatilassa.

Kun käyttäjä on tyytyväinen nuottivalintoihinsa ja toistopainikkeen painamisen jälkeen, syntetisaattori soittaa jokaisen nuotin peräkkäin, kunnes käyttäjä joko painaa taukoa tai valitse.

Tässä on luettelo tarvittavista laitteista:

  • Vivado (tai mikä tahansa VHDL -työtila)
  • Basys 3 tai vastaava FPGA -kortti
  • Digitaalinen-analogimuunnin (min. 4-bittiä)
  • Kaiutin kuulokeliitännällä
  • Johtimet

Vaihe 1: Digitaalisen sekvensserin käyttäjäkäyttö

Digitaalisen sekvensserin käyttäjäkäyttö
Digitaalisen sekvensserin käyttäjäkäyttö

Seuraavat vaiheet koskevat digitaalisen sekvensserin käyttöä. Digitaalinen sekvensseri tukee 12 eri äänen (C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B) toistoa, jotka vaihtelevat välillä 261,6 Hz - 493,9 Hz.

1. Paina vasenta painiketta asettaaksesi kortin valintatilaan. Tässä tilassa vasemmanpuoleisinta 4 -kytkintä (kytkimet 13-16) käytetään kullekin erillisen sävelkorkeusarvon tallentamiseen.

2. Voit tehdä valinnan kääntämällä yhden vasemmanpuoleisista kytkimistä ja valitsemalla sitten oikeanpuoleisimman 4 kytkimen (kytkimet 1-4) halutun äänenvoimakkuuden. Tiettyyn oikeiden kytkimien yhdistelmään liittyvä äänenvoimakkuus näkyy seitsemän segmentin näytössä, ja näyttö päivittyy uuteen yhdistettyyn nousuun aina, kun oikeat kytkimet siirretään uuteen yhdistelmään. Lepopäivä voidaan määrittää olematta koskaan määrittämässä äänenvoimakkuutta jollekin vasemmanpuoleisesta kytkimestä tai määrittämällä nuotille 0: na näytettävä sävelkorkeus. Kun haluttu äänenvoimakkuus on löydetty ja se näkyy näytössä, paina alempaa määrityspainiketta ja määritä kyseinen sävelkorkeus nuotille.

3. Toista vaihe 2 kolmelle jäljelle jäävälle nuotille kääntämällä kukin jäljellä oleva vasen kytkin erikseen päälle, valitsemalla oikea äänenvoimakkuus oikeilla kytkimillä ja määrittämällä sävelkorkeus painamalla alapainiketta. Useita nuotteja voidaan määrittää samaan sävelkorkeuteen siirtämällä useampaa kuin yhtä vasemmasta kytkimestä ylöspäin samanaikaisesti.

4. Nyt kun kaikki nuottiäänet on määritetty, digitaalinen sekvensseri on valmis soittamaan. Jos haluat toistaa nuotit kaiuttimesta, aloita musiikin toisto painamalla oikeaa toisto/tauko -painiketta. Toistojärjestys heijastaa vasemmanpuoleisiin kytkimiin liittyviä ääniä vasemmalta oikealle. Nuotit soitetaan tietyn määrän lyöntejä minuutissa, järjestyksessä 1, 2, 3, 4, 1, 2…. Näytössä näkyy parhaillaan soiva nuotti, kun kaiuttimet toistavat musiikkia. Voit keskeyttää musiikin toiston painamalla oikeaa painiketta, jolloin musiikin toisto lakkaa ja taukosymboli näkyy näytössä. Toisto jatkuu painamalla oikeaa painiketta uudelleen.

Vaihe 2: Tekniset tiedot

Tekniset yksityiskohdat
Tekniset yksityiskohdat

Syntetisaattorimme käyttää monia erilaisia digitaalisia komponentteja. Mukana ovat äärelliset tilakoneet, rekisterit, multiplekserit, kellonjakajat ja paljon muuta. Syntetisaattorimme rakentamiseen käytimme 10 ainutlaatuista modulaarista tiedostoa. Sen sijaan, että tekisimme jokaisesta moduulista komponentin, hajottimme moduulitiedostot toiminnon mukaan. Useimmat moduulit ovat sen vuoksi useampi kuin yksi komponentti. Huomaa, että yllä oleva kuva näyttää lohkon, joka on sidottu yhteen huippumallissamme.

Keskustelemme jokaisesta moduulista kuvaamalla tulot ja lähdöt, erittelemällä sen komponentit ja selittämällä sen tarkoituksen yleisessä suunnittelussa. Ohjeen alareunassa on ZIP -tiedosto, joka sisältää kaikki projektissa käytetyt VHDL -kooditiedostot.

Tulot

  • Clk (alkuperäinen kellosignaali)
  • PP (toisto/tauko)
  • Sel (laita syntetisaattori valintatilaan)
  • Määritä (askeleen määrittäminen vaiheelle)
  • Vaihe (sijaintitiedot)
  • Taajuus (kytkimet, jotka luovat halutun nousun)

Lähdöt

  • Anodi (7-segmenttiset anodit)
  • Katodi (7-segmenttiset katodit)
  • DAC (4-bittinen DAC-ohjain)

Vaihe 3: Tekniset tiedot

Tekniset yksityiskohdat
Tekniset yksityiskohdat

Vaihe 4: 7-segmenttinen kellonjakaja

7-segmenttinen kellonjakaja
7-segmenttinen kellonjakaja

Syntetisaattorimme käyttää kolmea kellojakajaa, jotka kaikki tuottavat signaaleja, jotka palvelevat eri tarkoitusta projektissamme. Kellojakaja ottaa alkuperäisen kellosignaalin ja tuottaa muutetun signaalin, jonka taajuus on pienempi kuin alkuperäinen kellosignaali. Basys 3: n alkuperäinen kello on 100 MHz. Tämä on taajuus, jota kellonjakajamme käyttävät. Jos käytät eri FPGA -korttia, jolla on eri natiivi kellotaajuus, saatat joutua muuttamaan koodia.

7-segmenttinen kellojakaja tuottaa signaalin, joka ajaa seg_display-tiedostoa. Selitämme kuinka tämä tiedosto toimii tarkemmin, kun pääsemme sen osioon. Pohjimmiltaan tämä kellonjakaja tuottaa 240 Hz: n signaalin, jota käytetään näytön anodien ja katodien välillä vaihtamiseen. Signaali on 240 Hz, koska taajuus, jolla ihmissilmä ei tunnista valon puuttumista, on 60 Hz. Käytämme kahta numeroa, joten kaksinkertaistamalla tämän taajuuden jokainen numero värähtelee 60 Hz: n taajuudella. Sitten kaksinkertaistamme sen saadaksemme 240 Hz, koska järjestelmä muuttuu vain, kun signaali nousee korkealle, ei silloin, kun se laskee.

Tämän saavuttamiseksi jakaja ottaa alkuperäisen 100 MHz: n signaalin ja laskee jokaisen nousevan reunan. Kun laskuri saavuttaa arvon 416667, lähtö siirtyy alhaisesta korkeaan tai päinvastoin.

Tulot

Clk (alkuperäinen kellosignaali)

Lähdöt

Clk_7seg (seg_display)

Komponentit

  • D -rekisteri
  • MUX
  • Invertteri
  • Lisäys

Vaihe 5: Lyöntiä minuutissa Kellonjakaja

Lyöntiä minuutissa Kellonjakaja
Lyöntiä minuutissa Kellonjakaja

BPM -kellonjakaja toimii samalla tavalla. Tämä jakaja tuottaa kellotaajuuden, joka ohjaa vaihtamista neljän vaiheen välillä soitettaessa ääniä toistotilassa. Päätimme vaihtaa nuottien välillä nopeudella 100 BPM. 100 BPM: ssä jokainen nuotti soitetaan 3/5 sekuntia. Tuloksena olevan signaalin taajuus olisi 1,67 Hz.

Tämän taajuuden signaalin tuottamiseksi käytimme jälleen laskentajärjestelmää, mutta tällä kertaa luku oli 60 miljoonaa. Joka kerta, kun laskuri osui 60 miljoonaan, lähtösignaali vaihtuu korkeaksi tai matalaksi.

Tulot

Clk (alkuperäinen kellotaajuus)

Lähdöt

Clk_BPM (output_FSM)

Komponentit

  • D -rekisteri
  • MUX
  • Invertteri
  • Lisäys

Vaihe 6: Kellojen jakaja

Paikat Kellonjakaja
Paikat Kellonjakaja

Pitches Clock Divider on suurin kellomme jakajistamme. Tämä jakaja lähettää 12 eri signaalia, jotka vastaavat syntetisaattorimme toistamaa 12 erilaista nuottia. Käyttäen musiikkiteorian perustietoja, päättelimme, että bitti tai väylä voi värähdellä nopeudella, joka vastaa nuotin taajuutta. Jos haluat nähdä käyttämämme taajuudet, katso täältä. Käytimme neljää oktaavia kenttiä.

Tässä käytetään samaa laskentajärjestelmää. Katso erityiset arvot, joihin laskimme, katso Clk_div_pitches -tiedostosta.

Tulot

Clk (alkuperäinen kellotaajuus)

Lähdöt

C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (tulostusvalintaan)

Komponentit

  • D -rekisteri
  • MUX
  • Invertteri
  • Lisäys

Vaihe 7: Toista/Keskeytä/Valitse State Machine

Toista/Keskeytä/Valitse State Machine
Toista/Keskeytä/Valitse State Machine

Projektissamme on kaksi äärellisen tilan konetta (FSM). FSM on logiikkalaite, joka voi olla olemassa vain yhdessä tilassa rajallisesta määrästä tiloja. FSM: n avulla digitaalinen piiri voi siirtyä uuteen tilaan tulojen yhdistelmän perusteella. Syöttölogiikan avulla FSM: n tila muuttuu, kun kello nousee. Tilasta ja piirin tuloista voit luoda lähtölogiikan, joka antaa lähdöt, jotka ovat olemassa vain, jos FSM on tietyssä tilassa.

PPS -tilakone on ensimmäinen FSM piirissämme. Tässä Mikronesiassa on kolme valtiota; Toisto-, tauko- ja valintatila. Siirtyäksesi eri tilojen välillä käytimme PP- ja valintapainikkeita. Katso yllä olevasta tilakaaviosta, miten tilojen väliset siirtymät tapahtuvat. Teimme tämän FSM -siirtymän alkuperäisen 100 MHz: n kellon nousevalle reunalle, jotta koneen olisi mahdotonta siirtyä siirtymättä, kun yhtä painiketta painettiin, jopa hyvin lyhyen ajan. Nykyinen tila (P_state) on ainoa lähtö tästä moduulista.

Tulot

  • Clk (alkuperäinen kellotaajuus)
  • Sel (vasen painike)
  • PP (oikea painike)

Lähdöt

P_tila (nykyinen tila, tulostus_FSM, muistiinpanon määritys, seg_dsiplay, final_select)

Komponentit

  • MUX
  • D -rekisteri

Vaihe 8: Toista/Keskeytä/Valitse State Machine

Toista/Keskeytä/Valitse State Machine
Toista/Keskeytä/Valitse State Machine

Vaihe 9: Tulosta FSM

Lähtö FSM
Lähtö FSM

Tämä on toinen FSM, johon viitattiin edellisessä osassa. Tämä Mikronesia palvelee eri tehtävää kuin toinen, mutta tämän perusta on olennaisesti sama.

Lähtö FSM toimii vain, jos ensimmäisen FSM: n nykyinen tila on "01" (toistotila). Pohjimmiltaan tämä on moduulin käyttöönotto. Jos tila on "01", FSM vaihtaa tilojen välillä BPM -kellosignaalin nousevalla reunalla. Teemme tämän, koska output_FSM ohjaa, mikä binääriluku valitulle sävelle lähetetään output_select- ja seg_display -moduuleille. Mikronesiassa on 16-bittinen tulo, joka tulee muistiinpanomoduulista, joka käsitellään seuraavaksi. Lähdön_FSM "00" -tilassa moduuli antaa "xxxx" ensimmäiselle määritetylle nuotille. Sitten "01": ssa se antaa "yyyy" toiselle nuotille ja niin edelleen jokaiselle nuotille ennen kuin siirryt takaisin ensimmäiseen nuottiin. Katso yllä oleva tilakaavio.

Tämä FSM eroaa ensimmäisestä, koska tilojen välisen vaihdon ohjaamiseen ei ole syöttölogiikkaa. Sen sijaan FSM toimii vain, kun ensimmäisen FSM: n tila on "01", ja sitten tämä FSM siirtyy tilojen välillä vain kellosignaalin nousevalla reunalla. Toinen ero on se, että tällä moduulilla on lähtölogiikka, eli se ei tuota nykyistä tilaa, vaan antaa binääriluvun sävelkorkeudelle tässä tilassa.

Tulot

  • Clk_BPM (BPM -kellosignaali kellonjakajasta)
  • FSM1_state (PS PPS FSM: stä)
  • Pitch_in (muistiinpanojen määritys)

Lähdöt

Pitch_out (yksi nousu kerrallaan, output_select ja seg_display)

Komponentit

  • MUX
  • D -rekisteri

Vaihe 10: Tulosta FSM

Lähtö FSM
Lähtö FSM

Vaihe 11: Huomautus Määritä

Huomautus Määritä
Huomautus Määritä

Huomautusmääritysmoduuli on vastuussa siitä, että sijainnin nuotille tai askeleelle määritetään piki. Tämä moduuli on itse asiassa melko yksinkertainen. Se tarkistaa ensin, onko piiri "valintatilassa" ja onko askelkytkin (kaukana vasemmalla) korkea. Jos tämä on totta ja kohdistuspainiketta painetaan, moduulin lähtö on yhtä suuri kuin binääriluku, jota edustaa taajuuskytkimet (oikealla).

Alunperin olimme yrittäneet tehdä moduulin, joka todella tallentaisi yhden pikakellosignaalin lähtöön, mutta meillä oli ongelmia ulostulon muuttuessa seuraamaan sisääntulokellosignaaleja. Tämä on ainoa moduuli, jota käytetään useammin kuin kerran lopullisessa suunnittelussa. Jokaisessa vaiheessa on note_assign -moduuli, ja siksi jokainen moduulin esiintymä saa yhden bitin Step -väylästä.

Tulot

  • P_state (nykyinen tila PPS FSM: stä)
  • Sel (vasen painike)
  • Kytkin (yksivaiheinen kytkin)
  • Taajuus (äärimmäiset oikeat kytkimet äänenkorkeudelle)
  • Määritä (alapainike, määrittää muistiinpanon)

Lähdöt

Pitch (binääriluku, output_FSM)

Komponentit

  • MUX
  • D rekisteröidy uudelleen

Vaihe 12: Lähdön valinta

Lähtö Valitse
Lähtö Valitse

Lähdön valinta on vastuussa binääriluvun ottamisesta sävelkorkeudesta ja sen yhdistämisestä vastaavaan kellosignaaliin. Kokostaan huolimatta tämä on myös suhteellisen yksinkertainen moduuli. Output_select on pohjimmiltaan binäärinen dekooderi, joka dekoodaa sävelkorkeuden binääriluvun tiettyyn kellosignaaliin. Itse asiassa ulostulon määrittäminen kellotaajuudelle toimi täällä paremmin kuin note_assign -moduuli, koska tämän moduulin ei tarvinnut kuin MUX -kellosignaaleja, joissa binääriluku edusti ohjaustuloa.

Pahoittelemme outoa reititystä, Vivado järjesti äänisignaalit aakkosjärjestyksessä tiedostolle clk_div_pitches, mutta tälle tiedostolle se järjesti ne nousevalla binääriluvulla, jolloin äänenkorkeudet olivat eri järjestyksessä. Huomaa myös, että jos output_FSM: n binääriluku oli "0000" tai jotain enemmän kuin "1100", MUX lähetti tasaisen "0" -signaalin.

Syöttö

  • Pitch (lähtö_FSM);
  • C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (pikakellosignaalit)

Lähtö

Tone (yksi bitti, joka vastaa valittua kellosignaalia, neliöaaltoksi)

Komponentit

MUX

Vaihe 13: Square Wave Gen

Square Wave, yl
Square Wave, yl

Moduuli square_wave on generaattori neliöaallolle, joka lähetetään levyltä DAC: lle. Käyttämällä edellisen tiedoston äänisignaalia tämä neliöaalto kääntää 4 -bittisen numeron välillä "0000" ja "1111" sävyn nousevassa reunassa. Ääni on tietty äänitaajuus, joten square_wave tuottaa aallon, jolla on eri taajuus, kun output_FSM siirtyy toiseen tilaan. Tämän moduulin 4-bittinen lähtö menee fin_sel-moduuliin, jossa logiikka määrää, lähetetäänkö tämä väylä PPS FSM: n tilan perusteella.

Vaihtoehto tälle neliöaaltogeneraattorille tuottaa siniaaltoa. Vaikka tämä todennäköisesti tuottaisi paremman lopullisen sävyn, sen toteuttaminen on huomattavasti vaikeampaa, joten päätimme luoda vain neliöaallon.

Tulot

Sävy (värähtelevä bitti output_select)

Lähdöt

DAC_input (värähtelevä 4-bittinen väylä, joka muuttuu samalla äänitaajuudella)

Komponentit

  • Invertteri
  • D -rekisteri

Vaihe 14: 7-segmenttinen näyttö

7-segmenttinen näyttö
7-segmenttinen näyttö

Seg_display-moduuli ohjaa bassokorttimme 7-segmenttistä näyttöä. Moduulissa tapahtuu kaksi prosessia. Ensimmäinen prosessi purkaa taajuuden ollessa "valintatilassa" tai "Pitch" ollessa "toistotilassa". "Tauko" -tilassa moduuli dekoodaa taukosymbolin. Tarkastelemalla VHDL -koodia näet, että binäärinen dekooderi todella dekoodaa tulon kahteen eri signaaliin, katodi1 ja katodi2. Katodi1 edustaa näytettävää sävelkorkeutta vastaavaa kirjainta ja katodi2 edustaa tasaista symbolia (b), jos sellainen on. Syynä tähän on seg_display -moduulin toinen prosessi.

Basys3 -kortilla segmenttinäytössä on yhteiset katodit. Kun anodit ohjaavat, mikä numero on käytössä, katodit ohjaavat, mitkä segmentit ovat käytössä. Koska näytöllä on yhteiset katodit, voit näyttää vain yhden segmenttien sarjan kerrallaan. Tämä aiheuttaa ongelman tälle projektille, koska haluamme näyttää kirjaimen ensimmäisessä numerossa ja tasaisen symbolin tarvittaessa samanaikaisesti. Muistatko nyt 7 sekunnin kellosignaalin? Tämän ongelman kiertämiseksi vaihdamme anodit ja katodit edestakaisin 7 sekunnin kellosignaalissa. Koska kellosignaali on 240 Hz ja käytämme kahta numeroa, jokainen numero värähtelee 60 Hz: n taajuudella. Ihmissilmälle näyttää siltä, että numerot eivät värise lainkaan.

Huomaa myös, että basys3 -kortin näyttö käyttää negatiivista logiikkaa. Tämä tarkoittaa, että jos anodi tai katodi on asetettu arvoon '0', kyseinen numero tai segmentti on päällä ja päinvastoin.

Tulot

  • Pitch (muistiinpanon binääriluku, käytetty toistotilassa)
  • Taajuus (taajuuskytkimet, joita käytetään valintatilassa)
  • P_state (nykyinen tila PPS FSM: stä)
  • Clk_240Hz (kellosignaali Clk_div_7segilta, kaksinkertainen 120, koska käytämme vain nousevaa reunaa)

Lähdöt

  • Katodi (väylä, joka ohjaa segmenttejä näytöllä, lopputulos)
  • Anodi (väylä, joka ohjaa näytön numeroita, lopputulos)

Komponentit

  • Salpa
  • MUX
  • D -rekisteri

Vaihe 15: Lopullinen valinta

Lopullinen valinta
Lopullinen valinta

Lopullinen valinta on viimeinen tässä projektissa käytetty moduuli. Toinen yksinkertainen moduuli, tämä moduuli ohjaa DAC: lle menevää lopputulosta. Valinta- tai taukotilassa moduuli lähettää staattisen "0000", joten musiikkia ei toisteta kaiuttimista. Toistotilassa moduuli lähettää värähtelevät 4-bittiä neliöaallon määrittämällä tavalla.

Tulot

  • P_state (nykyinen tila PPS FSM: stä)
  • DAC_input (värähtelevät 4-bitit square_wavesta)

Lähdöt

DAC (vastaa DAC -tuloa toistotilassa, lopputulos)

Komponentit

MUX

Vaihe 16: Ulkoiset laitteet: DAC

Ulkoiset laitteet: DAC
Ulkoiset laitteet: DAC

Digitaalinen analogiamuunnin (DAC) ottaa erillisen signaalin ja muuntaa sen jatkuvaksi signaaliksi. DAC -laitteessamme on neljä bittiä ja se on tehty summausvahvistimesta. Käyttämällä vastuksen suhdetta syöttö- ja takaisinkytkentäsilmukassa pystyimme luomaan järjestelmän, joka tuottaa 16 eri tasoa ja luo jokaisen haaran "summaamalla". Bit0, ylähaara, kantaa vähiten painoa ja antaa pienimmän potentiaalin korkealla, koska se haaraa suuremman vastuksen. Paino kasvaa oksia alas laskiessa. Jos laskisit binäärinä ylös ja sitten alas käyttämällä bittituloja, lähtöjännitteet näyttäisivät portaittain siniaaltolta. Tulo DAC: ään liitettiin yhteen kortin PMOD-laitteista 4-bittisen signaalin siirtämiseksi.

DAC on alun perin koottu sähkötekniikan luokalle, ja sen suunnittelimme ja juotimme, emme ostaneet kaupasta. Yllä on kuva suunnittelutiedostosta piirilevyn luomiseksi.

Vaihe 17: Ulkoiset laitteet: Kaiutin

Ulkoiset laitteet: Kaiutin
Ulkoiset laitteet: Kaiutin

Tätä projektia varten et halua ostaa erittäin mukavaa kaiutinparia. Kuten voitte sanoa, ääni on melko perus. Menimme ja ostimme Best Buyista 8 dollarin tietokoneen kaiuttimet. Kaikki kuulokeliitännällä toimivat hyvin. Monotoni toimii myös hyvin. Voit jopa käyttää kuulokkeita, mutta saatat räjäyttää ne!

DAC -lähdön kytkemiseen kaiuttimiin käytimme hyppyjohtoja ja pidimme sitten lähtökaapelia kuulokeliitännän kärjessä ja maadoituskaapelia tukiasemaan. Yritimme käyttää sähköteippiä pitämään kaapelit paikallaan, mutta se aiheutti paljon häiriöitä. Erilaisen nauhatyylin kokeilu voisi ratkaista tämän ongelman.

Kaiuttimille käänsimme ne korkeimmalle asetukselle ja kuulimme kohtuullisen kovaa kohinaa.

Ja tämä on viimeinen askel digitaalisen sekvensserin luomiseksi FPGA -kortilta! Siirry seuraaviin kahteen osaan ladataksesi kaikki VHDL -koodimme ja nähdäksesi sekvensserin toiminnassa.

Vaihe 18: Videoesittely

Tämä video näyttää työprojektin lopullisen version, mukaan lukien prosessin, jossa kytkimet määritetään neljälle eri äänelle, ja kaiuttimet toistavat vastaavat nuotit.

Vaihe 19: VHDL -koodi

Tässä on koko projektin koodi, mukaan lukien sekvensserin rakentamisessa käytetyt rajoitukset ja sim -tiedostot. Huomaa, että käyttämättömät suunnittelutiedostot sanovat niin arkkitehtuurissa.

Suositeltava: