Stap 8 FPGA Sequencer en Synthesizer (2 / 6 stap)

Stap 2: Componenten van het circuit


Ontwerpen van de componenten:

Oog op de uitvoering van een synthesizer op het bord Nexys 2 FPGA, moeten verschillende onderdelen worden ontworpen. Beginnend met de uitgangen, zullen modules moeten omgaan met LED's inschakelen en outputting vierkante golffuncties aan de spreker. Modules zal ook nodig zijn om de debounce knop ingangen en een interne klok-puls van een druk op de knop genereren. Ten slotte zal modules zoals tellers, slippers en multiplexers nodig zijn om de resterende logica van notities opslaan en afspelen van sequenties correct verwerken.

De volgende lijst bevat een korte beschrijving van wat elk onderdeel in dit project doet, hoe ieder onderdeel wordt gebruikt, en hoe deze onderdelen in VHDL implementeert:

Knop/uitschakelen: In het geval van de afspeel-/ pauzeknop willen we om te schakelen tussen twee staten precies één keer wanneer de knop wordt ingedrukt. Om dit te doen, we gebruiken een eindige toestandsmachine (FSM). Deze manier, na de overgang tussen staten zodra, het circuit van de toggle knop zal niet toestaan dat een andere staat overgang optreden totdat de knop is vrijgegeven en vervolgens opnieuw ingedrukt. Een diagram vertegenwoordigen deze FSM is hierboven weergegeven.

De eindige toestandsmachine bevat twee staten voor elke mogelijke uitvoer. Begin aan de bovenkant van het FSM-diagram, is het circuit in de pauze. Zodra de toets wordt ingedrukt, gaat het circuit naar het spel staat. Het blijft in dit eerste spelen staat tot de knop wordt vrijgegeven. Nu, het circuit is nog in het spel staat, maar het is klaar voor de knop opnieuw ingedrukt worden om de overgang naar de staat van de pauze. Ook zal het circuit opnieuw wachten voor de knop moet worden vrijgegeven voordat het wordt klaar om over te schakelen naar de spelen staat.

Klok Divider: Het circuit van de scheidingslijn klok gewoon omgezet van de 50 MHz-frequentie van de Nexys-2 een veel kleinere frequentie. Dit wordt gebruikt om de BPM (beats per minute) van de synthesizer. In dit project zijn we met behulp van een VHDL-module geschreven door Bryan Mealy van de California Polytechnic State University, San Luis Obispo.

Teller: Een teller uitgangen gewoon een binair getal. Wanneer de uitmonding hoog is, wordt dit nummer bij de stijgende rand van klok met 1 verhoogd. De counters gebruikt in dit circuit gebruikt T slippers om te slaan van een 3 bits-getal. Elke flip-flop vertegenwoordigt een beetje worden opgeslagen. De flip-flop vertegenwoordigen de minst significante bits zal wisselen elke keer dat de teller wordt verondersteld te verhogen. De andere flip-flops zal wisselen wanneer bits onder hen allemaal gelijk is aan een. Dit probleem maakt het bovendien zo wanneer de teller op de hoogst mogelijke aantal, 111(binary), het gaat terug naar nul wanneer volgende verhoogd.

In dit project, wordt een teller gebruikt voor het bijhouden van de huidige beat zodat de spreker weet welke Toon om te spelen, en dus de juiste LED kan worden ingeschakeld. Een teller wordt ook gebruikt om de huidige Toon die kan worden ingevoerd door de gebruiker bij te houden.

Debouncer: De drukknoppen op het bord Nexys 2 FPGA zijn niet perfect. Ideaal, wanneer ingedrukt de contacten zou raken samen slechts éénmaal, en samen blijven totdat de knop wordt vrijgegeven. In werkelijkheid hebben de contactpersonen een neiging om "bounce" meerdere malen, in dat wanneer de knop wordt ingedrukt de contacten binnen en buiten contact meerdere malen voordat steken komt. In termen van onze synthesizer, kan dit leiden tot een play/pauze knop die schakelt tussen de twee staten meerdere keren wanneer de knop wordt gedrukt, en is niet gegarandeerd om het land op de juiste is. Om dit tegen te gaan, zal een ontdendering circuit een bepaalde hoeveelheid tijd voor de input te 'settelen' wachten.

In dit project gebruikten we een VHDL-module geschreven door Scott Larson voor Digi-key, oorspronkelijk gepubliceerd op de Digi-key EE wiki.

Pulse Generator: De counters gebruikt in dit project zal verhogen samen met een bepaalde klokfrequentie, zolang ze zijn ingeschakeld. Voor sommige functies, zoals het verhogen van de frequentie bij het indrukken van de knop verandert de huidige Toon, zouden we willen om een teller slechts eenmaal ophogen met elke druk op de knop. Dit vereist een input te nemen en te converteren naar een puls met een duur van één klokcyclus. De pulse generator circuit zal dit doen. Wanneer de uitmonding naar hoog gaat, gaat de uitvoer hoog voor precies één klokcyclus. Dit wordt bereikt door het bijhouden van de huidige ingang voor een bepaalde stijgende rand van klok, evenals de vorige input voor de laatste stijgende rand van klok. In het geval waar de huidige ingang is hoog en de vorige input is laag, is de output hoog. Anders is de productie laag. In VHDL, wordt dit gedaan met behulp van een gedrags model. Een blok proces controleert de waarden van de invoerwaarde incr en de vorige ingang incr_prev aan de stijgende rand van de klok. Als incr behoort en incr_prev gelijk is aan nul, is de uitvoer q ingesteld op één. Anders, q is ingesteld op nul. Tot slot wordt incr_prev de waarde van incr.

sseg_dec: Dit circuit neemt een binaire ingang met maximaal acht bits en weergegeven als decimaal getal op het Nexys2 zeven segment display. In dit project gebruiken we een VHDL-module geschreven door Bryan Mealy van de California Polytechnic State University, San Luis Obispo.

Square Wave Generator: Dit onderdeel genereert een blokgolf op basis van de input van een 3-bits. Zij doet dit door het input kloksignaal te delen door een specifiek nummer aan het bereiken van de gewenste frequentie. De uitvoer is dan van een knevel gevoorzid in- en uitschakelen volgens deze frequentie. Er zijn zeven vooraf bepaalde frequenties, gebaseerd op de pentatonische toonladder, die de notities van A4 tot C6 vertegenwoordigt. De frequenties voor deze tinten variëren van 440 Hz tot 1046.5 Hz. Als de input 000(binary) is, wordt dan geen blokgolf gespeeld.

Gerelateerde Artikelen

Multitonal stap Sequencer & Sonic Art Rumoer Verrekt. E.Z. mijn eigen beginner-code.

Multitonal stap Sequencer & Sonic Art Rumoer Verrekt. E.Z. mijn eigen beginner-code.

Mijn allereerste arduino thing.simply begrepen en vrij jargon gratis .drawing tonen de theorie van de bedrading, code basisprincipes uitgelegd zo goed als ik kanmodus 1 is 33variable meertonig ruis machine, vol op chaos.modus 2 is op basis van codepa
Leren Verilog: Een korte Tutorial-serie over digitale elektronica ontwerp met FPGA en Verilog HDL

Leren Verilog: Een korte Tutorial-serie over digitale elektronica ontwerp met FPGA en Verilog HDL

Deze korte reeks van semi-korte lessen over Verilog is bedoeld als een inleiding in de taal en hopelijk lezers stimuleren om te verder kijken naar FPGA ontwerp.Deze tutorials neem aan dat u bekend bent met eenvoudige logische circuits en logica verge
NE555 timer synthesizer

NE555 timer synthesizer

Hallo, zie ik je wan't te weten hoe maak je een NE555 timer op basis van 3 octave synthesizer die past in een trommeltje. Nou, kwam u aan het juiste adres :)Voor dit project zal u het volgende nodig:1. 36 voelbare knoppen (knoppen van de zelfde soort
Vloeibare Spectrum Analyser apparatuur

Vloeibare Spectrum Analyser apparatuur

Deze zelfgemaakte instrument is definiëren, wat vloeistof is binnen in de reageerbuis.Real-time meting mogelijkheden voor gevarieerd vloeistoffen kwalitatieve analyse...Hoe het werkt?We verschuiven de proton magnetische spin met resonantradiofrequent
Andere toepassingen voor instrumenten van de rockband

Andere toepassingen voor instrumenten van de rockband

zo ooit dacht, man die ik wil worden zoals deze jongens. Ik wil mijn Rock Band drums als echte drums spelen. Ik wil meer van mijn favoriete liedjes zingen! Nou, nu je kunt. Vandaag, zal u Ontdek over sommige freeware programma's die u misschien niet
Bouwen van een synthetische neuraal netwerk

Bouwen van een synthetische neuraal netwerk

In het begin van dit jaar klaar (2015) ik met bouwen en testen van een enkel asynchrone digitale neuron. Ik heb nu klaar met het opbouwen van een netwerk van 36 van hen. De meeste van dit werk is geweest bij de opbouw van de hardware ondersteuning vo
Praten weerstand Calculator

Praten weerstand Calculator

zelfs op 40, ik nog steeds denk van mezelf als een jonge kerel, maar mijn ogen... niet zo veel meer.  Uit mijn elektronische Microscoop naar mijn Aladdin Rainbow lezing machine, heb ik genomen elke stap om ervoor te zorgen dat de visie geen probleem
Knippert de LED's op een Zedboard met behulp van Bluespec en Connectal

Knippert de LED's op een Zedboard met behulp van Bluespec en Connectal

In deze tutorial zullen we compileren en uitvoeren van een Connectal-project op uw Zedboard. Hoewel vele van deze stappen opnieuw vallen, is het raadzaam dat u probeert te bouwen en simuleren van een project, zoals wordt weergegeven in het bouwen en
Hoe kiest u de software te gebruiken met een bord Digilent

Hoe kiest u de software te gebruiken met een bord Digilent

Digilent is een bedrijf dat hardware voor engineering studenten en hobbyisten maakt. Zodat u een bord bestelt, het komt in de mail, en vraag je je af, moet welke software ik gebruiken mijn Digilent board. Nou ik heb gemaakt een handige stroomschema o
EL Wire Driver

EL Wire Driver

dit is mijn zelfstandig en programmeur el wire sequencer. Ik ben van plan om het te gebruiken in vele projecten, maar het is op dit moment omhoog mijn kerstboom verlichting.Elektronica:EL SequencerEL-omvormerRoterende Potentiometer - 4.7 k Ohm, linea
Enzym genetica

Enzym genetica

InleidingIn biologisch onderzoek zijn er verschillende gelegenheden waarin genetische vergelijkingen nodig zijn.  Bijvoorbeeld, er zijn tijden wanneer er niet veel informatie over een specifieke organisme of een enzym dat is van belang voor de onderz
Free wiel omgekeerde slinger Control

Free wiel omgekeerde slinger Control

Dit project werd gebaseerd off van het Project van de Cubli van de ETH Zürich. De Cubli is een kubus met drie reactie wielen waarmee het saldo van de x, y en z vlakken van de kubus. Hierdoor kunnen de kubus aan het evenwicht zich op een rand of op ee
MFOS! 6 stap sequencer voorpaneel en pcb

MFOS! 6 stap sequencer voorpaneel en pcb

Gelet afschrikken door de hoeveelheid bedrading nodig tot het einde van de MFOS 16-stepsequencer met het Variclock bord, besloten heb ik om een PCB voor het voorpaneel! Als het een volledige rij van eurorack meet kon ik niet etch dit thuis dus ging i
16 stap Sequencer (+/-9V tot +/-15V)

16 stap Sequencer (+/-9V tot +/-15V)

Dit is een intermediair tot geavanceerde project en ik kan het niet aanbevelen als een eerste project als u gewoon aan de slag in synths of elektronica. Alleen het circuit en enige uitleg worden hier getoond. Een heleboel projectervaring gebouw, prob