Turinys:

FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai
FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai

Video: FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai

Video: FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai
Video: FPGA Cyclone IV DueProLogic controls Arduino (tutorial & code) 2024, Lapkritis
Anonim
FPGA Cyclone IV DueProLogic - mygtukas ir šviesos diodas
FPGA Cyclone IV DueProLogic - mygtukas ir šviesos diodas

Šioje pamokoje mes naudosime FPGA išorinei LED grandinei valdyti. Mes ketiname įgyvendinti šias užduotis

(A) Norėdami valdyti šviesos diodus, naudokite FPGA Cyclone IV DuePrologic mygtukus.

(B) Blykstės šviesos diodas periodiškai įjungiamas ir išjungiamas

Vaizdo demonstracija

Laboratorijos meniu:

1 žingsnis: sukurkite elektroninę grandinę

2 veiksmas: patikrinkite „Pin Planner“ir redaguokite „Verilog“kodą

Patikrinkite smeigtukų planavimo priemonę ir redaguokite „Verilog“kodą
Patikrinkite smeigtukų planavimo priemonę ir redaguokite „Verilog“kodą

3 veiksmas: redaguokite „Verilog“kodą

Redaguoti „Verilog“kodą
Redaguoti „Verilog“kodą

Pirkdami FPGA DueProLogic, turėtumėte gauti DVD. Atidarę „Projects_HDL“, turėtumėte pamatyti pradinį kodo failą

Pridėkite paryškintą kodą. Jis registruoja įvesties/išvesties prievadus ir priskiria prievadams numerius.

išvesties laidas [7: 0] XIO_1, // XIO-D2-D9

išvesties laidas [5: 0] XIO_2, // XIO-D10-D12

išvesties laidas [5: 0] XIO_3, // XIO-D22-D29

įvesties laidas [5: 0] XIO_4, // XIO-D30-D37

įvesties laidas [5: 0] XIO_5, // XIO-D38-D45

išvesties laidas [4: 0] XIO_6_OUT, // XIO-D46-D53

įvesties laidas [31: 5] XIO_6, // XIO-D46-D53

išvesties laidas [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

įvesties laidas UBA, // Mygtukiniai jungikliai

įvesties laidas UBB // Mygtukiniai jungikliai

priskirti XIO_1 [3] = start_stop_cntrl;

priskirti XIO_2 [1] = start_blinky; // LED blykstės šviesos diodas įjungtas ir išjungtas

priskirti XIO_2 [2] = 1'b1; // išėjimas HIGH

priskirti XIO_2 [3] = ~ UBA; // Paspauskite mygtuką A

priskirti XIO_2 [4] = UBB; // Paspauskite mygtuką B

priskirti c_enable = XIO_5 [2];

priskirti LEDExt = XIO_5 [5];

Tada turime nustatyti atidėjimo laikmatį. Komentuokite pradinį laikmačio kodą ir parašykite naują laikmačio funkciją

//-----------------------------------------------

// LED mirksintis paleidimas

//-----------------------------------------------

/*

visada @(posedge CLK_66 or negedge RST)

pradėti

jei (! RST)

start_blinky <= 1'b0;

Kitas

pradėti

jei (kontrolinis_registravimas [7: 4]> 0)

start_blinky <= 1'b1;

Kitas

start_blinky <= 1'b0;

galas

galas

*/

reg [31: 0] ex;

pradinė pradžia

ex <= 32'b0;

start_blinky <= 1'b0;

galas

visada @(pozavimas CLK_66)

pradėti

ex <= ex + 1'b1;

jei (pvz.> 100000000) // blykstė įjungta/išjungta ~ 1,6 sekundės, laikrodis 66 MHz

pradėti

start_blinky <=! start_blinky;

ex <= 32'b0;

galas

galas

//-----------------------------------------------

// LED delsos laikmačio skaitiklis

//-----------------------------------------------

/*

visada @(posedge CLK_66 or negedge RST)

pradėti

jei (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

Kitas

pradėti

if (nurodykite [SELECT_MODE])

led_delay_counter <= timer_value;

kitaip, jei (būsena [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

galas

galas*/

4 veiksmas: sudarykite „Verilog“kodą

Sudarykite „Verilog“kodą
Sudarykite „Verilog“kodą
Sudarykite „Verilog“kodą
Sudarykite „Verilog“kodą

„Quartus“paspauskite „Pradėti kompiliavimą“, klaidos pranešimas neturėtų būti generuojamas.

Jei gaunate klaidos pranešimą apie kelis kaiščius. Eikite į Užduotys -> Įrenginys -> Įrenginio ir kaiščio parinktys -> Dvejopos paskirties kaiščiai -> pakeiskite atitinkamo kaiščio vertę į „Naudoti kaip įprastą įvestį/išvestį“.

Po kompiliavimo turėtumėte gauti pof išvesties failą tiesiogiai. Jei jūsų programinė įranga nėra atnaujinta, galite gauti tik „sof“failą. Kai tai atsitiks, „Quartus“spustelėkite „Failas“-> „konvertuoti programavimo failus“. Pakeiskite raudonais langeliais pažymėtus nustatymus.

5 žingsnis: Pabandykime

Juk tai turėtų veikti !!! Geltonas šviesos diodas visada šviečia. Mirksi raudonas šviesos diodas. Mėlynas šviesos diodas užgęsta paspaudus mygtuką B. Žalias šviesos diodas įsijungia paspaudus mygtuką A.

Rekomenduojamas: