Sisukord:

FPGA Cyclone IV DueProLogic - nupp ja LED: 5 sammu
FPGA Cyclone IV DueProLogic - nupp ja LED: 5 sammu

Video: FPGA Cyclone IV DueProLogic - nupp ja LED: 5 sammu

Video: FPGA Cyclone IV DueProLogic - nupp ja LED: 5 sammu
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, November
Anonim
FPGA Cyclone IV DueProLogic - nupp ja LED
FPGA Cyclone IV DueProLogic - nupp ja LED

Selles õpetuses kasutame välise LED -ahela juhtimiseks FPGA -d. Me kavatseme rakendada järgmisi ülesandeid

(A) Kasutage LED -i juhtimiseks FPGA Cyclone IV DuePrologic nuppe.

(B) Välklambi LED perioodiliselt sisse ja välja

Video demo

Labori menüü:

Samm: ehitage elektrooniline vooluahel

2. toiming: kontrollige nööpnõelte plaanijat ja muutke Verilogi koodi

Kontrollige Pin Plannerit ja muutke Verilogi koodi
Kontrollige Pin Plannerit ja muutke Verilogi koodi

Samm: muutke Verilogi koodi

Muutke Verilogi koodi
Muutke Verilogi koodi

FPGA DueProLogicu ostmisel peaksite saama DVD -plaadi. Pärast "Projects_HDL" avamist peaksite nägema algset koodifaili

Lisage esiletõstetud kood. See registreerib I/O pordid ja määrab sadamatele numbrid.

väljundkaabel [7: 0] XIO_1, // XIO-D2-D9

väljundkaabel [5: 0] XIO_2, // XIO-D10-D12

väljundkaabel [5: 0] XIO_3, // XIO-D22-D29

sisendkaabel [5: 0] XIO_4, // XIO-D30-D37

sisendkaabel [5: 0] XIO_5, // XIO-D38-D45

väljundkaabel [4: 0] XIO_6_OUT, // XIO-D46-D53

sisendkaabel [31: 5] XIO_6, // XIO-D46-D53

väljundkaabel [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

sisendkaabel UBA, // nuppude lülitid

sisendkaabel UBB // Nuppude lülitid

määrata XIO_1 [3] = start_stop_cntrl;

määrata XIO_2 [1] = start_blinky; // LED välk LED sisse ja välja

määrata XIO_2 [2] = 1'b1; // väljund HIGH

määrata XIO_2 [3] = ~ UBA; // Vajutage nuppu A

määrata XIO_2 [4] = UBB; // Vajutage nuppu B

määrata c_enable = XIO_5 [2];

määrata LEDExt = XIO_5 [5];

Siis peame seadistama viivitusaja. Kommenteerige algse taimeri koodi ja kirjutage uus taimeri funktsioon

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

// LED vilkuv algus

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

/*

alati @(posed CLK_66 or negedge RST)

alustada

kui (! RST)

algus_blinky <= 1'b0;

muidu

alustada

kui (kontrollregister [7: 4]> 0)

algus_blinky <= 1'b1;

muidu

algus_blinky <= 1'b0;

lõpp

lõpp

*/

reg [31: 0] ex;

esialgne algus

ex <= 32'b0;

algus_blinky <= 1'b0;

lõpp

alati @(positsioon CLK_66)

alustada

ex <= ex + 1'b1;

kui (nt> 100000000) // välk sisse/välja ~ 1,6 sekundit, kell 66MHz

alustada

algus_blinky <=! start_blinky;

ex <= 32'b0;

lõpp

lõpp

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

// LED -viivituse taimeriloendur

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

/*

alati @(posed CLK_66 or negedge RST)

alustada

kui (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

muidu

alustada

if (osariik [SELECT_MODE])

led_delay_counter <= taimer_väärtus;

muidu kui (olek [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

lõpp

lõpp*/

Samm: kompileerige Verilogi kood

Koostage Verilogi kood
Koostage Verilogi kood
Koostage Verilogi kood
Koostage Verilogi kood

Vajutage Quartuses nuppu "Alusta koostamist", veateadet ei tohiks genereerida.

Kui saate veateate mitme tihvti kohta. Avage Ülesanded -> Seade -> Seadme ja tihvti valikud -> Kaheotstarbelised tihvtid -> muutke vastava tihvti väärtuseks "Kasuta tavalise sisendina/väljundina".

Pärast kompileerimist peaksite saama otse pof -väljundfaili. Kui teie tarkvara pole ajakohane, võite saada ainult sof-faili. Kui see juhtub, klõpsake Quartus "Fail" -> "teisenda programmeerimisfailid". Muutke punaste kastidega tähistatud seadeid.

5. samm: proovime seda

Lõppude lõpuks peaks see toimima !!! Kollane LED põleb alati. Punane LED vilgub. Sinine LED kustub, kui vajutate nuppu B. Roheline LED süttib nupu A vajutamisel

Soovitan: