8-stegs FPGA Sequencer och Synthesizer (2 / 6 steg)

Steg 2: Komponenter i kretsen



Designa komponenterna:

För att genomföra en synt i Nexys 2 FPGA styrelsen, måste flera komponenter utformas. Börjar med utgångarna, kommer moduler att behöva hantera tända lysdioder och mata kvadrat vinkar fungerar högtalaren. Modulerna kommer också att behövas till Dämpningstid knappen ingångar och skapa en enda klocka puls från en knapptryckning. Slutligen, moduler som räknare, flip-flops och multiplexorer kommer att behövas att hantera återstående logik lagra anteckningar och spela upp sekvenser korrekt.

Följande lista innehåller en kort beskrivning av vad varje komponent i detta projekt gör, hur varje komponent används och implementera dessa komponenter i VHDL:

Knappen Växla: Om knappen Spela/pausa vill vi växla mellan de två staterna exakt en gång när du trycker på knappen. För detta använder vi en ändlig tillståndsmaskin (FSM). Detta sätt, efter övergången mellan stater när knappen Växla kretsen inte kommer att tillåta en annan stat övergången till inträffar förrän knappen har släppt och då tryckte igen. Ett diagram som representerar denna Mikronesiens visas ovanför.

Finite tillståndsdatorn innehåller två stater för varje möjligt utgång. Början på toppen av Mikronesien diagrammet, är kretsen i tillståndet paus. När knappen trycks, kommer att kretsen gå att spela staten. Det förblir i detta första spela tillstånd tills knappen släpps. Nu, gå runt är fortfarande i stadiet spela, men det är redo för knappen vara intryckt igen att övergången till paus staten. På samma sätt väntar kretsen återigen på knappen att släppas innan det blir redo att byta till play staten.

Klocka Divider: Klockan divider kretsen helt enkelt konverterar från 50 MHz frekvensen av Nexys 2 till en mycket mindre frekvens. Detta används för att ange BPM (slag per minut) av syntet. I detta projekt använder vi en VHDL modul skriven av Bryan Mealy av Kalifornien Polytechnic State University, San Luis Obispo.

Counter: En räknare utgångar helt enkelt ett binärt tal. När dess ingång är hög, ökar det detta antal med 1 på stigande kanten av klockan. Räknarna används i denna krets använder T Flip-Flops spara ett 3 bitars. Varje flip-flop representerar en bit lagras. Flip-flop som representerar den minst signifikanta biten att växla varje gång räknaren är tänkt för att öka. Andra vippor att växla när alla bitar under dem är lika med ett. Detta beteende gör det också så när räknaren når den högsta möjliga antal, 111(binary), det kommer att gå tillbaka till noll när ökas nästa.

I detta projekt används en räknare för att hålla reda på i nuvarande takt så att talaren vet vilken tonen att spela, och så rätt LED kan vara påslagen. En räknare används också för att hålla reda på den aktuella tonen som kan vara matas in av användaren.

Debouncer: Tryckknappar i Nexys 2 FPGA styrelsen är inte perfekta. Helst när du trycker på kontakterna skulle röra ihop exakt en gång och hålla ihop tills knappen släpps. I själva verket har kontakterna en tendens att "studsa" flera gånger, eftersom när knappen trycks kontakterna kommer in och ut i kontakt flera gånger innan fast. När det gäller våra synthesizer, kan detta leda till en play/pause-knappen som växlar mellan två staterna flera gånger när knappen trycks, och kan inte garantera att landa på rätta. För att motverka detta, kommer att en debounce krets vänta en viss tid för input att "bosätta".

I detta projekt använde vi en VHDL modul skriven av Scott Larson av Digi-key, ursprungligen publicerad på Digi-key EE wiki.

Pulse Generator: Räknarna används i detta projekt ökar värdet tillsammans med en viss klockfrekvens så länge de har aktiverats. För vissa funktioner, som ökar frekvensen när du trycker på knappen för att ändra den aktuella tonen, kanske vi vill öka en räknare för endast en gång med varje knapptryckning. Detta kräver att indata och konvertera den till en puls med en löptid på exakt en klockcykel. Pulse generator kretsen kommer att göra. När dess ingång går till hög, går sin produktion hög för exakt en klockcykel. Detta sker genom att hålla reda på aktuella indata för en viss stigande kanten av klockan, samt tidigare ingång för sista stigande kanten av klockan. I fall där den nuvarande ingången är hög och vars tidigare är låg är produktionen hög. Annars, produktionen är låg. I VHDL sker detta med hjälp av en beteendevetenskaplig modell. En process block kontrollerar värdena indatavärde incr och den tidigare ingående incr_prev på stigande kanten av klockan. Om incr är en och incr_prev är noll, sätts utgång q till en. Annars sätts q till noll. Slutligen, incr_prev får värdet av incr.

sseg_dec: Denna krets tar en binär ingång med upp till åtta bitar och visar den som ett decimalt tal på Nexys2 sju segment display. I detta projekt använder vi en VHDL modul skriven av Bryan Mealy av Kalifornien Polytechnic State University, San Luis Obispo.

Square Wave Generator: Denna komponent kommer att generera en fyrkantsvåg baserat på en 3-bitars input. Detta sker genom att dividera insatsen klocksignalen med ett visst nummer att uppnå önskad frekvens. Produktionen ska sedan växlas på och av enligt denna frekvens. Det finns sju förutbestämd frekvenser, baserat på den pentatoniska skalan, som representerar tonerna från A4 till C6. Frekvenserna för dessa toner spänner från 440 Hz till 1046.5 Hz. Om inljudet är 000(binary), är sedan ingen fyrkantsvåg spelade.

Se Steg
Relaterade Ämnen

Cicadaboom - 8 steg sequencer och en enkel synth

detta instrument är lätt att bygga och kul för att leka med.Arduino (jag använder duemilenova) i detta instrument agerar endast som kraftkälla och som en enkel timer, så om du inte har en du kan fortfarande bygga detta instrument med andra timer käll...

Super enkel 10-steg arduino sequencer

Denna sequencer är så enkelt jag behöver bara ett steg visar hur! Just nu är det är en 10 steg sequencer men kan lätt bli mer rättvis genom att ändra variabeln "steg" i koden.https://Instagram.com/p/2_uf05wwEc/Allt du behöver för detta projekt ä...

5 steg till enkel och välsmakande hemlagad Spaghetti köttfärssås

Vi brukade köpa pastasås i burken för snabb pasta måltider. Men försöker undvika socker och andra icke-väsentliga ingredienser, beslutade vi att försöka göra vår egen version som var grundläggande på råvaror och stor på smak. Detta receptet tar ca 30...

Hur man gör en fälg i några enkla steg i Solidworks och Catia?

Hur man gör en fälg i Solidworks och Catia?Steg 1: Steg 1 Gör en skiss som visas i varje plan.Steg 2: Steg 2 Avsluta skissen. Rotera den runt mittlinjen som visas.Steg 3: Steg 3 Du kommer att få något liknande detta.Steg 4: Steg 4 Nu skapa ett plan s...

Cider och rosor - A parfymerad steg canopy - konsten och skönheten i skogen trädgårdsskötsel. Ma vie en rosor.

Med ympade många av träden med gamla dessert äpple sorter, under-planterade vi denna övergivna cider äppelodling med Filadelfos, kaprifol och bambu. Jag planterade en enda skärande jag hade tagit från rosa i mitten. Filipes Kiftsgate, som jag hade pl...

Designa och bygga en "akustisk" synthesizer

för min praktikplats på Skapa digitalmusik/Meeblip jag har skapat ganska kul liten synthesizer. Det här är tänkt att vara mer flexibla än andra synthesizer genom att göra det helt oberoende. Det är batteridriven, har egen förstärkare/högtalare och st...

Designa och bygga en synthesizer med Meeblip och Arduino, adderat video!

För min praktikplats på Skapa digitalmusik/Meeblip jag har skapat ganska kul liten synthesizer. Det här är tänkt att vara mer flexibla än andra synthesizer genom att göra det helt oberoende. Det är batteridriven, har egen förstärkare/högtalare och st...

16 steg Sequencer (+/-9V till +/-15V)

Detta är en mellanliggande till avancerade projekt och jag rekommenderar inte det som ett första projekt om du precis har börjat i syntar eller elektronik. Bara gå runt och en förklaring visas här. En hel del erfarenheter från projektet byggnad, fels...

Lär dig Verilog: En kort Tutorial serie på Digital elektronik Design med FPGAs och Verilog HDL

Denna korta serie av semi korta lektioner om Verilog är tänkt som en introduktion till språket och förhoppningsvis uppmuntra läsarna att titta närmare på FPGA design.Dessa tutorials antar du är bekant med grundläggande logiska kretsar och logik ekvat...

Projektet 1.1: Introduktion till Digital teknik och FPGA styrelser

Detta är först i en rad projekt med Digilent material som skapats för EE214 vid Washington State University. Dock beslöt vi att vi ville göra dem mer tillgängligt för allmänheten, så jag skapar dem här. För mer Digilents pedagogiska material, se Lär...

Robotic musikspelare och Sequencer med LittleBits AKA Fruityloops IRL

Så jag, tillsammans med många andra däggdjur, älskar att göra musik! Jag gör fånig ljud, kul rappar, men ofta tycker jag själv spelar musik av mig själv och jag önskar jag hade en robot vän som kan fastställa några wicked beats. Det är därför jag gjo...

Monotron hacka med en Baby-8 Sequencer - CV och Tor

här är hur du ansluter din Korg Monotron (som skapades till vara hacka) till en Baby 10 (Google det för mer info) baserade, 8-stegs analog sequencer med max. output = 5V. Var försiktig om du inte vill röra upp din Monotron. Jag försökte göra videon s...

Arduino steg Sequencer

jag undrar om om att göra en sequencer, en stor 16 steg sequencer var vad jag ville göra. Det är full utbyggnad med massor av funktioner, inklusive enda lysdioder för varje steg, midi-ingång och utgång, etc. Sedan insåg jag att jag ska börja från en...

10 steg till din egen logotyp i Inkscape (gratis) och använda kreativa marknaden for dummies som mig

HejLedsen för den långa titeln. Jag har några bekännelser också. Först är min ritning och konstruktionsarbeten färdigheter inte ens detsamma av en finger målare. Det andra tjäna jag inte pengar, så jag har alltid att göra saker som kan köpas, inklusi...

Steg för steg: hur man gör bokstäverna V och P av PVC-rör

göra bokstäverna P och V av PVC-rör och PVC kopplingarSteg 1:Steg 2: Samla in ditt material Samla ditt material:Brev: V90 graders vinklad koppling2 bitar av 4 inches av PVCBrev: P1 T-kontakten2 90 graders vinkel2 45 graders vinkel2 1 tum PVC pipe1 2...

Hopfällbar cykel - konvertera fällbara pedal bäring från Cup och kon till förseglade kullager i lätt och billigt steg

detta är min andra instructable.Detta är en enkel steg för steg för en pedaler konvertering i allmänhet från cup och kon till förseglade kullager.Thos har beem gjort mest för chalenge att göra, men det visar i en mycket bra lösning med resultat på en...

UPPDATERAD: måttband reparera - extra reparation för Lufkin Pee Wee (steg 4 och framåt)

ibland, våren på en auto-upprullningskraften måttband, kommer lite vuxit eller sträckt så att bandet inte kommer fullt ut dra tillbaka in i fallet på egen hand.Tja, inte mer försöker grejer det tillbaka i (detta bara gör saker värre ändå) det finns e...

Plywood och Stick stege

behöver en stege? Skruva och limma två pinnar till en bit plywood och skär hål i den för dina fötter.Varning: Som skylten säger, dessa trä fötter tenderar att glida på golvet, så vidta åtgärder för att förhindra detta. Faktiskt, stegar är alla farlig...

Steg för steg skapa skulpturer med hjälp av 3d-modellering, 3d utskrift och harts brons gjutning

Hej,Jag är en digital konstnär och skulptör.Jag har alltid varit intresserad av möjligheten att förvandla mina bitar till konkreta modeller men på grund av den restriktiva kostnaden för 3d-utskrift jag har hittills endast kunnat återskapa bitar med e...