Altera Board metronoom (2 / 6 stap)

Stap 2: Verilog Code

Open uw Quartus II software. Maak een nieuw project en een nieuw verilog-bestand. Kopieer in de volgende code:

module metronew)

input klok, / / 50MHz interne klok

input [17:0], / / SW0-17

invoer tapup, / / KEY3

invoer tapdown, / / KEY2

ingang terugstellen, / / sleutel0

spk, uitgang / / GPIO (speaker)

uitgang [7:0] led, / / LEDG0-7

uitgang reg [0:6] hex0, hex10, hex100); //HEX0-2

/ * getal * /

integer counter1;

integer counttap = 1;

geheel getal bpm;

geheel getal snelheid;

/ * reg * /

reg [7:0] staat;

/ * toewijzen * /

toewijzen geleid = staat;

toewijzen van spk = staat [0] |state [7];

/ * altijd * /

altijd tapup, tapdown) beginnen

hex0 = 7' b0000001;

Hiermee geeft u weer tempo op zeven segment display van switches,

sets bpm aan gegeven tempo

Als (in [0] == 1) beginnen

hex100 = 7' b0000001; 0

hex10 = 7' b0100000; 6

snelheid = 60;

BPM = 49999999/snelheid * 120;

einde

anders als (in [1] == 1) beginnen

hex100 = 7' b0000001; 0

hex10 = 7' b0001111; 7

snelheid = 70;

BPM = 49999999/snelheid * 120;

einde

anders als (in [2] == 1) beginnen

hex100 = 7' b0000001; 0

hex10 = 7' b0000000; 8

snelheid = 80;

BPM = 49999999/snelheid * 120;

einde

anders als (in [3] == 1) beginnen

hex100 = 7' b0000001; 0

hex10 = 7' b0001100; 9

snelheid = 90;

BPM = 49999999/snelheid * 120;

einde

anders als (in [4] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0000001; 0

snelheid = 100;

BPM = 49999999/snelheid * 120;

einde

anders als (in [5] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b1001111; 1

snelheid = 110;

BPM = 49999999/snelheid * 120;

einde

anders als (in [6] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0010010; 2

snelheid = 120;

BPM = 49999999/snelheid * 120;

einde

anders als (in [7] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0000110; 3

snelheid = 130;

BPM = 49999999/snelheid * 120;

einde

anders als (in [8] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b1001100; 4

snelheid = 140;

BPM = 49999999/snelheid * 120;

einde

anders als (in [9] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0100100; 5

snelheid = 150;

BPM = 49999999/snelheid * 120;

einde

anders als (in [10] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0100000; 6

snelheid = 160;

BPM = 49999999/snelheid * 120;

einde

anders als (in [11] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0001111; 7

snelheid = 170;

BPM = 49999999/snelheid * 120;

einde

anders als (in [12] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0000000; 8

snelheid = 180;

BPM = 49999999/snelheid * 120;

einde

anders als (in [13] == 1) beginnen

hex100 = 7' b1001111; 1

hex10 = 7' b0001100; 9

snelheid = 190;

BPM = 49999999/snelheid * 120;

einde

anders als (in [14] == 1) beginnen

hex100 = 7' b0010010; 2

hex10 = 7' b0000001; 0

snelheid = 200;

BPM = 49999999/snelheid * 120;

einde

anders als (in [15] == 1) beginnen

hex100 = 7' b0010010; 2

hex10 = 7' b1001111; 1

snelheid = 210;

BPM = 49999999/snelheid * 120;

einde

anders als (in [16] == 1) beginnen

hex100 = 7' b0010010; 2

hex10 = 7' b0010010; 2

snelheid = 220;

BPM = 49999999/snelheid * 120;

einde

anders als (in [17] == 1) beginnen

hex100 = 7' b0010010; 2

hex10 = 7' b0000110; 3

snelheid = 230;

BPM = 49999999/snelheid * 120;

einde

anders beginnen

hex100 = 7' b0100100; s

hex10 = 7' b0110000; e

hex0 = 7' b1110001; l

snelheid = 60;

BPM = (49999999) / ((counttap/49999999) * 32) * 160;

einde

einde

altijd @ (posedge klok) beginnen

counter1 < = counter1 + 1;

Hiermee vergroot of verkleint tempo met toetsen

if(reset == 0) beginnen

counttap = 1;

einde

if(tapup == 0) beginnen

counttap = counttap + 1;

einde

if(tapdown== 0) beginnen

counttap = counttap - 1;

einde

Hiermee schakelt u LEDs in volgorde

Als (counter1 < = bpm/14 * 1) beginnen

staat = 0;

staat [0] = 1;

einde

else if (counter1 < = bpm/14 * 2) beginnen

staat = 0;

staat [1] = 1;

einde

else if (counter1 < = bpm/14 * 3) beginnen

staat = 0;

staat [2] = 1;

einde

else if (counter1 < = bpm/14 * 4) beginnen

staat = 0;

verklaren [3] = 1;

einde

else if (counter1 < = bpm/14 * 5) beginnen

staat = 0;

staat [4] = 1;

einde

else if (counter1 < = bpm/14 * 6) beginnen

staat = 0;

[5] staat = 1;

einde

else if (counter1 < = bpm/14 * 7) beginnen

staat = 0;

[6] staat = 1;

einde

else if (counter1 < = bpm/14 * 8) beginnen

staat = 0;

[7] staat = 1;

einde

else if (counter1 < = bpm/14 * 9) beginnen

staat = 0;

[6] staat = 1;

einde

else if (counter1 < = bpm/14 * 10) beginnen

staat = 0;

[5] staat = 1;

einde

else if (counter1 < = bpm/14 * 11) beginnen

staat = 0;

staat [4] = 1;

einde

else if (counter1 < = bpm/14 * 12) beginnen

staat = 0;

verklaren [3] = 1;

einde

else if (counter1 < = bpm/14 * 13) beginnen

staat = 0;

staat [2] = 1;

einde

else if (counter1 < = bpm) beginnen

staat = 0;

staat [1] = 1;

einde

counter1 wordt opnieuw ingesteld als het hits 50 miljoen

else if (counter1 == bpm) beginnen / / 50M (2seconden)

staat [0] = 0;

counter1 < = 0;

einde

anders beginnen

staat [0] = 0;

counter1 < = 0;

einde

einde

endmodule

Gerelateerde Artikelen

Blues Piano met behulp van Terasic DE2-115 Development Board

Blues Piano met behulp van Terasic DE2-115 Development Board

Deze piano speelt de noten van een D flat blues schaal. De piano een acht toetsenbord toetsen voor ingangen gebruikt en wordt weergegeven welke noot wordt gespeeld met behulp van de Terasic planken zeven segment displays. De notities worden gespeeld
Teller voor ATMega328P-PU geen noodzaak arduino board geen shift register en geen transistor.

Teller voor ATMega328P-PU geen noodzaak arduino board geen shift register en geen transistor.

Nu wil ik u laten zien hoe een teller met behulp van gemeenschappelijke anode. geen verschuiving registreren geen transistor nodig voor kleine leds. Hebt u een gemeenschappelijke kathode, geen probleem gewoon niet wijzigen de LV naar HV en vice versa
Hoe maak je een elektronisch metronoom

Hoe maak je een elektronisch metronoom

In deze Instructables zullen wij voortbouwen en een elektronisch metronoom met behulp van eenvoudige elektronische componenten gevonden in alle elektronische winkel en hulpprogramma's waarmee u probablle al.Voordat we beginnen met het maken van een,
Intel Edison metronoom

Intel Edison metronoom

In de wereld van Arduino en andere micro-controllers is het eerste wat dat je doen het verplicht "Hello World" programma. In deze wereld is de "Hello World" de knipperende LED. Dat is hoe het hele ding begon; het was gewoon een knipper
Hoe maak je een metronoom

Hoe maak je een metronoom

Hallo iedereen, dit is mijn eerste instructable. Ik hoop dat u geniet ervan!In dit instructable ik zal u tonen hoe gemakkelijk het maken van een elektronisch metronoom, de kern die daarvan een 555 timer is. Ik vond de oorspronkelijke plannen voor dit
De Altera FPGA en Quartus II software

De Altera FPGA en Quartus II software

dit is een stap voor stap wandeling door hoe te opstelling en gebruiken Quartus software en deze uploaden naar de Altera Cyclone FPGA.  Gedaan als een primer voor mijn school (Ivy Tech CC) digitale fundamentals EECT122 cursus.  Dit zal zeer gedetaill
Altera DE2-115 lift controle

Altera DE2-115 lift controle

Deze instructie leert u basics van hoe maak je een lift controle op uw bord Altera DE2-115. We zullen Verilog gebruiken om dit besturingselement. Deze basis beheer neemt twee ingangen van de gebruiker via twee switches, één voor huidige niveau en de
Felt Letter Board

Felt Letter Board

Brief planken zijn een punt dat voor velen van ons, we hebben niet gehad veel blootstelling aan. Ze kunnen ons vinden van de juiste artsenbureau of de prijs van een hot dog op een jeu de boules baan, maar niet veel anders hebben bijgedragen. Terwijl
Awesome schaduw Board

Awesome schaduw Board

Hier is een redelijk gemakzuchtige oplossing te halen een stonking schaduw board. Lees verder voor meer details!Stap 1: Aan de slagIk wilde een schaduw board voor mijn fiets onderhoudsprogramma's maken, maar ik miste het geduld om te trekken ronde to
USB-Breakout Board

USB-Breakout Board

Dit is een echt eenvoudige USB-uitbraak die ik gemaakt heb in een half uur zodat ik kon controleren sommige USB Kerstverlichting met een Arduino en een Relais module aangedreven.Er zijn drie manieren om de USB verbinding met dit bord:Soldeer de drade
Draad van organisator uit een Cork Board en tandenstokers

Draad van organisator uit een Cork Board en tandenstokers

ik kan u niet zeggen hoeveel keer ik gaan graven in mijn vak naaien en vinden alle van de spoelen van wol twisted samen! Dit project gaat om uw naaien dagen een droom cruise... Nou, iets dergelijks. Het is leuk, goedkoop, en houdt die u georganiseerd
String Art Cork board

String Art Cork board

Deze tekenreeks kunst cork board is een gemakkelijke en snelle manier om toe te voegen een splash van kleur in uw gangen of slaapkamers.Het is ook geweldig als een last-minute verjaardagscadeau, en u hoeft niet een heleboel leveringen dit om samen te
Cork Board telefoon Dock

Cork Board telefoon Dock

Ik wilde maken van een telefoon dok uit bossen, maar helaas, ik heb niet die high-tech hulpmiddelen voor snijden en het boren. Dus, heb ik besloten om het gebruik van sommige cork board in plaats daarvan (dicht genoeg).Inspiratie ontleend aan:Wat die
Verticale schoen Rack - Peg Board Ladder

Verticale schoen Rack - Peg Board Ladder

Welkom bij mijn aangepaste, schoen rek dat ik in mijn garage gebouwd. Omgaan met stinkende, natte of vuile schoenen is een burdon die iedereen heeft te behandelen. We hadden stapels schoenen in verschillende kamers, in de kasten en kelder. Ik besloot