Tartalomjegyzék:

4 lépéses digitális szekvenszer: 19 lépés (képekkel)
4 lépéses digitális szekvenszer: 19 lépés (képekkel)

Videó: 4 lépéses digitális szekvenszer: 19 lépés (képekkel)

Videó: 4 lépéses digitális szekvenszer: 19 lépés (képekkel)
Videó: Generate Studio Quality Realistic Photos By Kohya LoRA Stable Diffusion Training - Full Tutorial 2024, November
Anonim
4 lépéses digitális szekvenszer
4 lépéses digitális szekvenszer
4 lépéses digitális szekvenszer
4 lépéses digitális szekvenszer

CPE 133, Cal Poly San Luis Obispo

A projekt alkotói: Jayson Johnston és Bjorn Nelson

A mai zeneiparban az egyik leggyakrabban használt „hangszer” a digitális szintetizátor. A zene minden műfaja, a hiphoptól a popon át a countryig, digitális szintetizátort használ a stúdióban, hogy létrehozza azokat a ritmusokat és hangokat, amelyek szükségesek ahhoz, hogy életre keltsék zenéjüket. Ebben az oktatóanyagban egy nagyon egyszerű szintetizátort fogunk létrehozni a Basys 3 FPGA kártyával.

A szintetizátor képes négy kiválasztott negyedhang lejátszására állandó ütemszámmal percenként. A felhasználók a kapcsolók segítségével minden negyedik hangot hozzárendelnek egy zenei hangszínhez. Ehhez a projekthez 4 bites digitális-analóg átalakítót (DAC) használunk, hogy kivesszük a kimenetet a kártyáról, és átalakítsuk azt analóg jellé. A DAC kimenete ezután egy szabványos számítógépes hangszóróra kerül, és létrehozza a zenét. Tizenhat különálló pálya lehetséges. Szintetizátorunkat egyetlen, 12 hangból álló oktávra korlátozzuk, amelyek a középső C (261,6 Hz) és a B4 (493,9 Hz) közé esnek. A felhasználónak lehetősége lesz arra is, hogy egyszerre több hangot rendeljen hozzá, valamint pihenőt rendelhet hozzárendeléssel, miközben egyik hangmagasság -kapcsoló sem mozdul felfelé. Minden egyes hang kiválasztásakor és lejátszásakor a betűjegy megjelenik a 7 szegmenses kijelzőn. Ezenkívül a táblán lévő gombok közül hármat fogunk használni, egyet a zene lejátszására és szüneteltetésére, egyet a szintetizátor alaphelyzetbe állítására és „kiválasztási” módba állítására, a harmadikat pedig arra, hogy minden hanghoz hangmagasságot rendeljünk kiválasztási módban.

Amint a felhasználó elégedett a hangjegyválasztással, és a lejátszás gomb megnyomása után a szintetizátor minden egyes hangot egymás után ismételten lejátsz, amíg a felhasználó vagy a szünetet vagy a gombot nem nyomja meg.

Itt található a szükséges felszerelések listája:

  • Vivado (vagy bármely VHDL munkaterület)
  • Basys 3 vagy hasonló FPGA kártya
  • Digitális-analóg átalakító (min. 4 bit)
  • Hangszóró fejhallgató -csatlakozóval
  • Huzalvezetékek

1. lépés: A digitális szekvenszer felhasználói kezelése

Digitális szekvenszer felhasználói kezelése
Digitális szekvenszer felhasználói kezelése

A következő lépések a digitális szekvenszer működtetéséhez szükségesek. A digitális szekvenszer 12 különböző hangszín (C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B) lejátszását támogatja, amelyek 261,6 Hz -től 493,9 Hz -ig terjednek.

1. Nyomja meg a bal gombot a tábla kiválasztási módba állításához. Ebben az üzemmódban a bal oldali 4 kapcsoló (13-16. Kapcsoló) használható mindegyik különböző hangmagasság -érték tárolására.

2. A kiválasztáshoz kapcsolja be a bal oldali kapcsolók egyikét, majd a jobb oldali 4 kapcsolóval (1-4. Kapcsoló) válassza ki a kívánt hangmagasságot. A jobb oldali kapcsolók egy adott kombinációjához tartozó hangmagasság megjelenik a hét szegmenses kijelzőn, és a kijelző frissül az új társított hangmagasságra, amikor a jobb kapcsolókat új kombinációra váltják. Pihenést úgy lehet hozzárendelni, hogy soha nem rendelünk hangmagasságot a bal oldali kapcsolók egyikéhez, vagy a kijelzőn 0 -ként látható hangmagasságot rendelünk a hangjegyhez. Miután megtalálta a kívánt hangmagasságot, és megjelenik a kijelzőn, nyomja meg az alsó hozzárendelés gombot az adott hangmagasság hozzárendeléséhez a hanghoz.

3. Ismételje meg a 2. lépést a három fennmaradó hangnál, úgy, hogy mindegyik bal oldali kapcsolót egyenként kapcsolja be, válassza ki a megfelelő hangmagasságot a jobb kapcsolókkal, és nyomja meg az alsó gombot a hangmagasság hozzárendeléséhez. Több hanghoz is hozzá lehet rendelni ugyanazt a hangmagasságot, ha egyszerre több bal oldali kapcsolót felfelé tol.

4. Most, hogy az összes hangmagasság kiosztásra került, a digitális szekvenszer lejátszásra kész. A hangok hangszórón történő lejátszásához egyszerűen nyomja meg a jobb lejátszás/szünet gombot a zene lejátszásához. A lejátszási sorrend balról jobbra tükrözi a bal oldali kapcsolókhoz tartozó hangmagasságokat. A hangok meghatározott ütemszámú percenkénti ütemben szólalnak meg, 1, 2, 3, 4, 1, 2… sorrendben. A kijelzőn megjelenik az éppen lejátszott hang, miközben a hangszórók zenét játszanak. A zene lejátszásának szüneteltetéséhez egyszerűen nyomja meg a jobb gombot, ekkor a zene leáll és a szünet szimbólum jelenik meg a kijelzőn. A jobb gomb újbóli megnyomásával folytatódik a lejátszás.

2. lépés: Műszaki adatok

Műszaki információk
Műszaki információk

Szintetizátorunk sokféle digitális komponenst használ. Ide tartoznak a véges állapotú gépek, regiszterek, multiplexerek, óraosztók és egyebek. Szintetizátorunk elkészítéséhez 10 egyedi moduláris fájlt használtunk. Ahelyett, hogy minden modult komponenssé tennénk, funkció szerint bontottuk le a moduláris fájlokat. Ennek eredményeként a legtöbb modul több összetevőből áll. Vegye figyelembe, hogy a fenti képen minden blokk látható, amelyek össze vannak kötve a legjobb kialakításunkban.

Az egyes modulokat a bemenetek és kimenetek leírásával, az összetevők lebontásával, valamint az általános tervezés céljának megvitatásával tárgyaljuk. Az utasítás alján ZIP fájl található, amely tartalmazza a projektben használt minden VHDL kódfájlt.

Bemenetek

  • Clk (natív órajel)
  • PP (lejátszás/szünet)
  • Sel (állítsa a szintetizátort kiválasztási módba)
  • Hozzárendelés (lépés hozzárendelése a hangmagassághoz)
  • Lépés (a pozíciójegyzetek)
  • Frekvencia (a kívánt hangmagasságot létrehozó kapcsolók)

Kimenetek

  • Anód (7 szegmenses anódok)
  • Katód (7 szegmenses katódok)
  • DAC (4 bites DAC vezérlés)

3. lépés: Műszaki adatok

Műszaki információk
Műszaki információk

4. lépés: 7 szegmenses óraosztó

7 szegmenses óraosztó
7 szegmenses óraosztó

Szintetizátorunk három óraosztót használ, amelyek mindegyike olyan jeleket állít elő, amelyek más célt szolgálnak a projektünkben. Az óraosztó natív órajelet vesz fel, és módosított jelet állít elő, amelynek frekvenciája kisebb, mint az eredeti órajel. A Basys 3 natív órája 100 MHz. Ezt a frekvenciát használják az óraosztóink. Ha más FPGA kártyát használ, eltérő natív órajel -frekvenciával, előfordulhat, hogy módosítania kell a kódot.

A 7 szegmenses óraosztó jelet állít elő, amely meghajtja a seg_display fájlt. Részletesebben elmagyarázzuk, hogyan működik ez a fájl, amikor eljutunk a szakaszához. Lényegében ez az óraosztó 240 Hz -es jelet állít elő, amelyet a kijelzőn az anódok és a katódok közötti váltásra használnak. A jel 240 Hz, mert az a frekvencia, amelyen az emberi szem nem ismeri fel a fény hiányát, 60 Hz. Két számjegyet használunk, tehát ha megduplázzuk ezt a frekvenciát, minden számjegy 60 Hz -en oszcillál. Ezután megduplázzuk, hogy 240 Hz -et kapjunk, mert a rendszer csak akkor változik, ha a jel magas, és nem alacsony.

Ennek elérése érdekében az osztó felveszi a 100 MHz -es natív jelet, és minden emelkedő szélén számol. Amikor a számláló eléri a 416667 -et, a kimenet alacsonyról magasra emelkedik, vagy fordítva.

Bemenetek

Clk (natív órajel)

Kimenetek

Clk_7seg (a szeg_display -hez)

Alkatrészek

  • D regiszter
  • MUX
  • Inverter
  • Vipera

5. lépés: Ütésenkénti óraosztó

Ütés / perc Óraosztó
Ütés / perc Óraosztó

A BPM óraosztó hasonló módon működik. Ez az osztó az órajel frekvenciáját állítja elő, amely vezérli a váltást a négy lépés között, amikor lejátszási állapotban hangokat ad ki. Úgy döntöttünk, hogy 100 BPM -en váltunk a jegyzetek között. 100 BPM -nél minden hangot a másodperc 3/5 -e játszik le. A kapott jel frekvenciája 1,67 Hz lenne.

Az ilyen frekvenciájú jel előállításához ismét számlálórendszert használtunk, de ezúttal a szám 60 millió volt. Minden alkalommal, amikor a számláló elérte a 60 milliót, a kimeneti jel magasra vagy alacsonyra vált.

Bemenetek

Clk (natív órajel frekvencia)

Kimenetek

Clk_BPM (kimeneti_FSM -hez)

Alkatrészek

  • D regiszter
  • MUX
  • Inverter
  • Vipera

6. lépés: Óraosztó

Hangok Óraosztó
Hangok Óraosztó

A Pitches Clock Divider a legnagyobb óraosztónk. Ez az osztó 12 különböző jelet ad ki, amelyek megfelelnek a 12 különböző hangnak, amelyeket a szintetizátorunk képes lejátszani. A zeneelmélet alapismereteit felhasználva arra a következtetésre jutottunk, hogy egy bit vagy busz olyan mértékben rezeghet, amely megfelel a hangjegyek gyakoriságának. Az általunk használt frekvenciák megtekintéséhez nézze meg itt. A pályák negyedik oktávját használtuk.

Itt is ugyanazt a számlálórendszert használják. A számított értékeket lásd a Clk_div_pitches fájlban.

Bemenetek

Clk (natív órajel frekvencia)

Kimenetek

C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (a kimeneti_választáshoz)

Alkatrészek

  • D regiszter
  • MUX
  • Inverter
  • Vipera

7. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása

Lejátszás/szüneteltetés/állapotgép kiválasztása
Lejátszás/szüneteltetés/állapotgép kiválasztása

Projektünkben két véges állapotú gép (FSM) található. Az FSM olyan logikai eszköz, amely véges állapotok közül csak egy állapotban létezhet. Az FSM használatával a digitális áramkör a bemenetek kombinációja alapján új állapotba léphet. A bemeneti logika használatával az FSM állapota megváltozik, amikor az óra emelkedő éle van. Az állapotból és az áramkörbe történő bemenetekből létrehozhat olyan kimeneti logikát, amely csak akkor adható ki, ha az FSM egy bizonyos állapotban van.

A PPS állapotgép az első FSM az áramkörünkben. Ebben az FSM -ben három állam van; Lejátszás, Szünet és Kiválasztás mód. A különböző állapotok közötti mozgáshoz a PP és a Kiválasztás gombokat használtuk. Lásd a fenti állapotdiagramot, hogy megtudja, hogyan történnek az állapotok közötti átmenetek. Ezt az FSM átmenetet a natív 100 MHz -es óra emelkedő szélén végeztük el, így lehetetlenné vált, hogy a gép ne váltson át, amikor az egyik gombot megnyomták, még nagyon rövid ideig sem. A jelenlegi állapot (P_state) az egyetlen kimenet ebből a modulból.

Bemenetek

  • Clk (natív órajel frekvencia)
  • Sel (bal gomb)
  • PP (jobb gomb)

Kimenetek

P_állapot (jelenlegi állapot, kimeneti_FSM -hez, jegyzet -hozzárendelés, szeg_dsiplay, végső_választás)

Alkatrészek

  • MUX
  • D regiszter

8. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása

Lejátszás/szüneteltetés/állapotgép kiválasztása
Lejátszás/szüneteltetés/állapotgép kiválasztása

9. lépés: FSM kimenet

Kimenet FSM
Kimenet FSM

Ez a második FSM, amelyre az előző részben hivatkoztunk. Ez az MSZM más funkciót lát el, mint a másik, de ennek alapja lényegében ugyanaz.

A kimeneti FSM csak akkor működik, ha az első FSM jelenlegi állapota "01" (lejátszási állapot). Lényegében ez a modul engedélyezése. Ha az állapot "01", akkor az FSM váltani fog a BPM órajel emelkedő szélén lévő állapotok között. Ezt azért tesszük, mert az output_FSM vezérli, hogy a kiválasztott hangmagasság melyik bináris száma kerül elküldésre az output_select és a seg_display modulokhoz. Az FSM egy 16 bites bemenettel rendelkezik, amely a hangjegy-hozzárendelési modulból származik, és amelyet a következőkben ismertetünk. A kimenet_FSM "00" állapotában a modul "xxxx" kimenetet ad ki az első hozzárendelt hanghoz. Ezután a "01" -ben "yyyy" lesz a második hangnál és így tovább minden hangnál, mielőtt visszagurul az első hangra. Lásd a fenti állapotdiagramot.

Ez az FSM eltér az elsőtől, mert nincs bemeneti logika az állapotok közötti váltás vezérlésére. Ehelyett az FSM csak akkor fog működni, ha az első FSM állapota "01", majd ez az FSM csak az órajel emelkedő szélén fog átmenni az állapotok között. Egy másik különbség az, hogy ez a modul kimeneti logikával rendelkezik, vagyis nem adja ki a jelenlegi állapotot, hanem a hangmagasság bináris számát adja ki ebben az állapotban.

Bemenetek

  • Clk_BPM (BPM órajel az óraosztóból)
  • FSM1_state (PS a PPS FSM -ből)
  • Pitch_in (hangmagasságok a jegyzet -hozzárendelésből)

Kimenetek

Pitch_out (egy hangmagasság egyszerre, output_select és seg_display)

Alkatrészek

  • MUX
  • D regiszter

10. lépés: FSM kimenet

Kimenet FSM
Kimenet FSM

11. lépés: Megjegyzés Hozzárendelés

Megjegyzés Hozzárendelés
Megjegyzés Hozzárendelés

A hangjegy -hozzárendelő modul felelős a hangmagasság tényleges hozzárendeléséért a helyzeti hanghoz vagy lépéshez. Ez a modul valójában nagyon egyszerű. Először azt ellenőrzi, hogy az áramkör "kiválasztott" állapotban van -e, és hogy egy lépéskapcsoló (bal szélső) magas -e. Ha ez igaz, és megnyomja a hozzárendelés gombot, akkor a modul kimenete megegyezik a bináris számmal, amelyet a frekvenciakapcsolók képviselnek (jobb szélső).

Eredetileg olyan modult próbáltunk létrehozni, amely ténylegesen mentené a hangmagasságú órajeleket a kimenetre, de problémákat tapasztaltunk, amikor a kimenet megváltoztatta a bemeneti órajeleket. Ez az egyetlen modul, amelyet többször használtak a végső tervezés során. Minden lépéshez tartozik egy note_assign modul, és ezért a modul minden példánya megkap egy bitet a Step buszból.

Bemenetek

  • P_state (a PPS FSM jelenlegi állapota)
  • Sel (bal gomb)
  • Kapcsoló (egylépcsős kapcsoló)
  • Frekvencia (jobb szélső kapcsolók a hangmagassághoz)
  • Hozzárendelés (alsó gomb, jegyzetet rendel)

Kimenetek

Pitch (bináris szám, output_FSM)

Alkatrészek

  • MUX
  • D regisztrálj

12. lépés: Kimenet kiválasztása

Kimenet kiválasztása
Kimenet kiválasztása

A kimenetválasztás feladata a bináris szám felvétele egy hangmagasságra, és a megfelelő órajelhez való csatlakoztatása. Mérete ellenére ez is viszonylag egyszerű modul. Az Output_select lényegében bináris dekódoló, amely egy hangmagasság bináris számát dekódolja egy adott órajelre. Valójában a kimenet órajelfrekvenciához rendelése jobban működött itt, mint a note_assign modul, mert ennek a modulnak csupán a vezérlőbemenetet reprezentáló bináris számmal ellátott MUX órákat kellett MUX -ra tennie.

Elnézést kérünk a furcsa útválasztásért, Vivado betűrendben rendezte a hangmagasság jelzéseit a clk_div_pitches fájlhoz, de ehhez a fájlhoz növekvő bináris szám szerint rendezte őket, így a hangmagasságok más sorrendben voltak. Azt is vegye figyelembe, hogy ha a output_FSM bináris száma "0000" vagy bármi nagyobb, mint "1100", akkor a MUX egy lapos '0' jelet küldött.

Bemenet

  • Pitch (a output_FSM -ből);
  • C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (hangmagasság -jel)

Kimenet

Hang (egyetlen bit, amely megfelel a kiválasztott órajelnek, négyzethullámra)

Alkatrészek

MUX

13. lépés: Square Wave Gen

Square Wave Gen
Square Wave Gen

A square_wave modul a négyzethullám generátora, amely a tábláról a DAC -ra kerül. Az előző fájl hangjelzésével ez a square_wave megfordítja a 4 bites számot a "0000" és "1111" között a Tone emelkedő szélén. A hang egy bizonyos hangmagasság -frekvencia, ezért a square_wave más frekvenciájú hullámot generál, amikor a output_FSM egy másik állapotba lép. A modul 4 bites kimenete a fin_sel modulhoz kerül, ahol a logika diktálja, hogy ez a busz kerül-e kiadásra a PPS FSM állapot alapján.

Ennek a négyzethullámú generátornak a alternatívája szinuszhullám előállítása. Bár ez valószínűleg jobb végső hangot eredményezne, sokkal nehezebb megvalósítani, ezért úgy döntöttünk, hogy csak négyzethullámot generálunk.

Bemenetek

Hang (oszcilláló bit a output_select -ből)

Kimenetek

DAC_bemenet (oszcilláló 4 bites busz, amely azonos hangfrekvenciával változik)

Alkatrészek

  • Inverter
  • D regiszter

14. lépés: 7 szegmenses kijelző

7 szegmenses kijelző
7 szegmenses kijelző

A seg_display modul vezérli a 7 szegmenses kijelzőt az alaplapunkon. A modulon belül két folyamat fordul elő. Az első folyamat dekódolja a frekvenciát, amikor "kiválasztási" állapotban van, vagy a hangmagasságot, amikor "lejátszás" módban van. "Szünet" módban a modul dekódolja a szünet szimbólumot. A VHDL kódot nézve látható, hogy a bináris dekódoló ténylegesen két különböző jelre dekódolja a bemenetet: katód1 és katód2. A katód1 a megjelenítendő hangmagasságnak megfelelő betűt jelöli, a katód2 pedig a lapos szimbólumot (b), ha van ilyen. Ennek oka a seg_display modul által végzett második folyamathoz kapcsolódik.

A basys3 táblán a szegmenskijelző közös katódokkal rendelkezik. Míg az anódok szabályozzák, melyik számjegy van bekapcsolva, a katódok szabályozzák, hogy mely szegmensek vannak bekapcsolva. Mivel a kijelzőn közös katódok vannak, ez azt jelenti, hogy egyszerre csak egy szegmenskészletet jeleníthet meg. Ez problémát jelent a projekt számára, mert egy betűt szeretnénk megjeleníteni az első számjegynél és a lapos szimbólumot, ha szükséges, egyszerre. Most emlékszel a 7seg órajelre? Ennek a problémának a kiküszöbölésére megváltoztatjuk az anódokat és a katódokat oda -vissza a 7seg órajelben. Mivel az órajel 240 Hz, és két számjegyet használunk, mindegyik szám 60 Hz -en oszcillál. Az emberi szem számára úgy tűnik, hogy a számjegyek egyáltalán nem oszcillálnak.

Vegye figyelembe azt is, hogy a basys3 kártya kijelzője negatív logikát használ. Ez azt jelenti, hogy ha egy anód vagy katód értéke „0”, akkor az adott számjegy vagy szegmens bekapcsol, és fordítva.

Bemenetek

  • Hangmagasság (hangjegy bináris száma, lejátszott állapotban)
  • Frekvencia (frekvenciakapcsolók, kiválasztott állapotban)
  • P_state (a PPS FSM jelenlegi állapota)
  • Clk_240Hz (órajel a Clk_div_7seg -től, dupla 120, mert csak az emelkedő élét használjuk)

Kimenetek

  • Katód (busz, amely a kijelző szegmenseit vezérli, végső kimenet)
  • Anód (busz, amely a kijelző számjegyeit vezérli, végső kimenet)

Alkatrészek

  • Retesz
  • MUX
  • D regiszter

15. lépés: Végső kiválasztás

Végső kiválasztás
Végső kiválasztás

Az utolsó kiválasztás az utolsó modul, amelyet ebben a projektben használtak. Egy másik egyszerű modul, ez a modul vezérli a végső kimenetet, amely a DAC -hoz kerül. "Kiválasztás" vagy "szünet" állapotban a modul statikus "0000" kimenetet ad ki, így a hangszórókból nem lehet zenét lejátszani. "Lejátszás" állapotban a modul a négyzethullám által meghatározott oszcilláló 4 bitet adja ki.

Bemenetek

  • P_state (a PPS FSM jelenlegi állapota)
  • DAC_bemenet (oszcilláló 4 bit a square_wave-ből)

Kimenetek

DAC (egyenlő a DAC_bemenettel lejátszási állapotban, végső kimenet)

Alkatrészek

MUX

16. lépés: Külső eszközök: DAC

Külső eszközök: DAC
Külső eszközök: DAC

A digitális -analóg átalakító (DAC) diszkrét jelet vesz, és azt folyamatos jellé alakítja. A DAC négy bites, és összegző erősítőből készült. Az ellenállások arányának felhasználásával a táp- és visszacsatolási hurokban olyan rendszert tudtunk létrehozni, amely 16 különböző szinten ad ki kimenetet, és minden ág "összegzésével" hoz létre. A Bit0, a felső ág, a legkisebb súlyt hordozza, és a legkisebb potenciált adja, ha magas, ezért nagyobb ellenállást biztosít. A súly növekszik, ahogy lemegy az ágakon. Ha a bináris bemenetek használatával binárisan felfelé, majd visszafelé számolna, a kimeneti feszültségek lépésről lépésre szinuszhullámnak tűnnek. A DAC bemenetét a táblán lévő egyik PMOD-hoz csatlakoztatta a 4 bites jel átviteléhez.

A DAC -t eredetileg villamosmérnöki osztályra szerelték össze, és mi terveztük és forrasztottuk, nem boltból vásároltuk. A fenti kép a nyomtatott áramköri lap létrehozására szolgáló tervfájl.

17. lépés: Külső eszközök: hangszóró

Külső eszközök: hangszóró
Külső eszközök: hangszóró

Ehhez a projekthez nem szeretne szuper szép hangszórót vásárolni. Mint látható, a hangzás nagyon egyszerű. Elmentünk, és vettünk egy 8 dolláros számítógépes hangszórót a Best Buy -tól. Fejhallgató -csatlakozóval minden jól működik. A monoton is jól működik. Még fejhallgatót is használhat, de előfordulhat, hogy kifújja!

A DAC kimenetének a hangszórókhoz való csatlakoztatásához áthidaló kábeleket használtunk, majd a kimeneti kábelt a fejhallgató -csatlakozó végéhez tartottuk, és a földeléshez szükséges kábelt a bázishoz. Megpróbáltuk elektromos szalaggal rögzíteni a kábeleket, de ez sok interferenciát okozott. Egy másik stílusú szalag kipróbálása megoldhatja ezt a problémát.

Hangszóróinknál a legmagasabb fokozatra állítottuk őket, és tisztességesen erős zajt kaptunk.

És ez az utolsó lépés egy digitális szekvenszer létrehozásához FPGA kártyáról! Lépjen a következő két részre, hogy letöltse az összes VHDL kódunkat, és megnézze a szekvenszer működését.

18. lépés: Videó bemutató

Ez a videó bemutatja a munkaprojekt végleges verzióját, beleértve a kapcsolók 4 különböző hangmagassághoz való hozzárendelésének folyamatát, valamint a hangszórók megfelelő hangokat játszó lejátszását.

19. lépés: VHDL kód

Itt található a teljes projekt kódja, beleértve a szekvenszer építése során használt korlátozásokat és sim fájlokat. Ne feledje, hogy a fel nem használt tervezési fájlok ezt mondják az architektúrában.

Ajánlott: