FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Hakbang
FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Hakbang
Anonim
FPGA Cyclone IV DueProLogic - Push Button at LED
FPGA Cyclone IV DueProLogic - Push Button at LED

Sa tutorial na ito, gagamitin namin ang FPGA upang makontrol ang panlabas na LED circuit. Ipapatupad namin ang mga sumusunod na gawain

(A) Gamitin ang mga push button sa FPGA Cyclone IV DuePrologic upang makontrol ang LED.

(B) pana-panahong naka-on at naka-off ang Flash

Video demo

Menu ng lab:

Hakbang 1: Bumuo ng Electronic Circuit

Hakbang 2: Suriin ang Pin Planner at I-edit ang Verilog Code

Suriin ang Pin Planner at I-edit ang Verilog Code
Suriin ang Pin Planner at I-edit ang Verilog Code

Hakbang 3: I-edit ang Verilog Code

I-edit ang Verilog Code
I-edit ang Verilog Code

Kapag bumili ka ng FPGA DueProLogic, dapat kang makatanggap ng isang DVD. Pagkatapos mong buksan ang "Projects_HDL", dapat mong makita ang orihinal na file code

Idagdag ang naka-highlight na code. Nirerehistro nito ang mga port ng I / O at nagtatalaga ng mga numero sa mga port.

output wire [7: 0] XIO_1, // XIO - D2-D9

output wire [5: 0] XIO_2, // XIO - D10-D12

output wire [5: 0] XIO_3, // XIO - D22-D29

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

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

output wire [4: 0] XIO_6_OUT, // XIO - D46-D53

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

output wire [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

input wire UBA, // Push Button Switch

input wire UBB // Push Button Switch

italaga ang XIO_1 [3] = start_stop_cntrl;

italaga ang XIO_2 [1] = start_blinky; // LED flash LED on and off

italaga ang XIO_2 [2] = 1'b1; // output TAAS

italaga ang XIO_2 [3] = ~ UBA; // Push button A

italaga ang XIO_2 [4] = UBB; // Push button B

magtalaga ng c_enable = XIO_5 [2];

magtalaga ng LEDExt = XIO_5 [5];

Pagkatapos ay magtatakda kami ng isang timer ng pagkaantala. Komento ang orihinal na timer code at magsulat ng isang bagong pagpapaandar ng timer

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

// LED Blinky start

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

/*

laging @ (posedge CLK_66 o negedge RST)

magsimula

kung (! RST)

start_blinky <= 1'b0;

iba pa

magsimula

kung (control_register [7: 4]> 0)

start_blinky <= 1'b1;

iba pa

start_blinky <= 1'b0;

magtapos

magtapos

*/

reg [31: 0] hal;

paunang pagsisimula

dating <= 32'b0;

start_blinky <= 1'b0;

magtapos

laging @ (posedge CLK_66)

magsimula

dating <= ex + 1'b1;

kung (hal> 100000000) // flash on / off ~ 1.6 segundo, orasan 66MHz

magsimula

start_blinky <=! start_blinky;

dating <= 32'b0;

magtapos

magtapos

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

// LED Delay Timer Counter

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

/*

laging @ (posedge CLK_66 o negedge RST)

magsimula

kung (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

iba pa

magsimula

kung (estado [SELECT_MODE])

led_delay_counter <= timer_value;

kung hindi man (estado [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

magtapos

wakas * /

Hakbang 4: Mag-ipon ng Verilog Code

Compile Verilog Code
Compile Verilog Code
Compile Verilog Code
Compile Verilog Code

Pindutin ang "Start Compilation" sa Quartus, walang mensahe ng error ang dapat mabuo.

Kung nakatanggap ka ng mensahe ng error tungkol sa maraming mga pin. Pumunta sa Mga Assignment -> Device -> Mga Pagpipilian sa Device at Pin -> Mga Pin na Dobleng Layunin -> baguhin ang halaga ng naaangkop na pin sa "Gumamit bilang regular na I / O".

Pagkatapos ng pagtitipon, dapat kang makakuha ng direktang file ng output ng output. Kung ang iyong software ay hindi napapanahon, maaari kang makakuha ng sof file lamang. Kapag nangyari ito, i-click ang "File" sa Quartus -> "i-convert ang mga file ng programa". Baguhin ang mga setting na minarkahan ng mga pulang kahon.

Hakbang 5: Subukan Natin Ito

Pagkatapos ng lahat, dapat itong gumana !!! Ang dilaw na LED ay laging naka-on. Ang pulang LED ay kumikislap. Ang asul na LED ay naka-off kung pinindot mo ang pindutan B. Ang berdeng LED ay nakabukas kung pinindot mo ang pindutan A