Turinys:
- 1 žingsnis: sukurkite elektroninę grandinę
- 2 veiksmas: patikrinkite „Pin Planner“ir redaguokite „Verilog“kodą
- 3 veiksmas: redaguokite „Verilog“kodą
- 4 veiksmas: sudarykite „Verilog“kodą
- 5 žingsnis: Pabandykime
Video: FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Š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ą
3 veiksmas: redaguokite „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ą
„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:
„FPGA Cyclone IV DueProLogic Controls“„Raspberry Pi“kamera: 5 žingsniai
„FPGA Cyclone IV DueProLogic Controls“„Raspberry Pi“fotoaparatas: Nepaisant to, kad „FPGA DueProLogic“yra oficialiai sukurta „Arduino“, mes ketiname padaryti FPGA ir „Raspberry Pi 4B“perduodamus. Šioje pamokoje įgyvendinamos trys užduotys: (A) Vienu metu paspauskite du mygtukus FPGA, norint pasukti kampą
„FPGA Cyclone IV DueProLogic Controls“servo variklis: 4 žingsniai
„FPGA Cyclone IV DueProLogic Controls Servo Motor“: šioje pamokoje mes parašysime „Verilog“kodą, skirtą valdyti servo variklį. Servo SG-90 gamina „Waveshare“. Pirkdami servo variklį, galite gauti duomenų lapą, kuriame nurodoma darbinė įtampa, maksimalus sukimo momentas ir siūlomas variklio
„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: 3 žingsniai
„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: Ar norite sukurti VR bėgimo takelį, kuriame galėtumėte paleisti savo darbalaukio programas ir žaidimus? Tada jūs atėjote į reikiamą vietą! Įprastiniuose žaidimuose jūs naudojate pelę ir klaviatūrą, kad sąveikautumėte su aplinka. Todėl turime atsiųsti
„Mojo FPGA Development Board Shield“: 3 žingsniai
„Mojo FPGA Development Board Shield“: su šiuo skydu prijunkite „Mojo“kūrimo plokštę prie išorinių įėjimų. Kas yra „Mojo“kūrimo lenta? „Mojo“plėtros lenta yra kūrimo lenta, pagrįsta „Xilinx spartan 3 FPGA“. Lentą pagamino „Alchitry“. FPGA yra labai naudinga
Padarykite bet kurį jutiklį iš FPGA: 4 žingsniai
Padarykite bet kokį jutiklį iš FPGA: dauguma gamintojų bent kartą gyvenime bandė pastatyti termometrą, galbūt tas, kurį jie turi namuose, nėra pakankamai protingas, o gal jie mano, kad gali sukurti kitą NEST. Nepaisant to, tam tikru momentu jie turėjo mikrovaldiklį su savo būsena