Съдържание:

FPGA Cyclone IV DueProLogic - Бутон и LED: 5 стъпки
FPGA Cyclone IV DueProLogic - Бутон и LED: 5 стъпки

Видео: FPGA Cyclone IV DueProLogic - Бутон и LED: 5 стъпки

Видео: FPGA Cyclone IV DueProLogic - Бутон и LED: 5 стъпки
Видео: FPGA Cyclone IV DueProLogic controls servo motor (Tutorial and code) 2024, Ноември
Anonim
FPGA Cyclone IV DueProLogic - Бутон и LED
FPGA Cyclone IV DueProLogic - Бутон и LED

В този урок ще използваме FPGA за управление на външна LED верига. Ще изпълним следните задачи

(A) Използвайте бутоните на FPGA Cyclone IV DuePrologic за управление на LED.

(B) Светодиодът на светкавицата се включва и изключва периодично

Видео демонстрация

Лабораторно меню:

Стъпка 1: Изградете електронна схема

Стъпка 2: Проверете Pin Planner и Редактирайте Verilog Code

Проверете Pin Planner и Редактирайте Verilog Code
Проверете Pin Planner и Редактирайте Verilog Code

Стъпка 3: Редактирайте Verilog кода

Редактиране на Verilog кода
Редактиране на Verilog кода

Когато купувате FPGA DueProLogic, трябва да получите DVD. След като отворите „Projects_HDL“, трябва да видите оригиналния код файл

Добавете маркирания код. Той регистрира I/O портовете и присвоява номера на портовете.

изходен проводник [7: 0] XIO_1, // XIO-D2-D9

изходен проводник [5: 0] XIO_2, // XIO-D10-D12

изходен проводник [5: 0] XIO_3, // XIO-D22-D29

входен проводник [5: 0] XIO_4, // XIO-D30-D37

входен проводник [5: 0] XIO_5, // XIO-D38-D45

изходен проводник [4: 0] XIO_6_OUT, // XIO-D46-D53

входен проводник [31: 5] XIO_6, // XIO-D46-D53

изходен проводник [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

входен проводник UBA, // Превключватели с бутони

входен проводник UBB // Превключватели с бутони

задайте XIO_1 [3] = start_stop_cntrl;

присвояване на XIO_2 [1] = начална_мигаща; // LED светкавица LED светва и изключва

задайте XIO_2 [2] = 1'b1; // изход HIGH

присвояване на XIO_2 [3] = ~ UBA; // Натиснете бутон А

задайте XIO_2 [4] = UBB; // Натиснете бутон B

присвояване c_enable = XIO_5 [2];

присвояване на LEDExt = XIO_5 [5];

След това трябва да настроим таймер за забавяне. Коментирайте оригиналния код на таймера и напишете нова функция на таймера

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

// LED мигащ старт

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

/*

винаги @(possedge CLK_66 или negedge RST)

започнете

ако (! RST)

start_blinky <= 1'b0;

иначе

започнете

ако (control_register [7: 4]> 0)

start_blinky <= 1'b1;

иначе

start_blinky <= 1'b0;

край

край

*/

reg [31: 0] ех;

начален старт

ex <= 32'b0;

start_blinky <= 1'b0;

край

винаги @(поставен CLK_66)

започнете

ex <= ex + 1'b1;

if (ex> 100000000) // светкавица включена/изключена ~ 1,6 секунди, часовник 66MHz

започнете

start_blinky <=! start_blinky;

ex <= 32'b0;

край

край

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

// LED брояч за забавяне на таймера

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

/*

винаги @(possedge CLK_66 или negedge RST)

започнете

ако (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

иначе

започнете

ако (посочете [SELECT_MODE])

led_delay_counter <= timer_value;

иначе ако (посочете [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

край

край*/

Стъпка 4: Компилирайте Verilog Code

Компилирайте Verilog Code
Компилирайте Verilog Code
Компилирайте Verilog Code
Компилирайте Verilog Code

Натиснете "Стартиране на компилация" в Quartus, не трябва да се генерира съобщение за грешка.

Ако получите съобщение за грешка за няколко пина. Отидете на Задания -> Устройство -> Опции за устройство и щифтове -> Двойни пинове -> променете стойността на съответния щифт на „Използване като обикновен I/O“.

След компилацията трябва да получите директно pof изходен файл. Ако вашият софтуер не е актуален, може да получите само sof файл. Когато това се случи, щракнете върху „Файл“в Quartus -> „конвертирайте програмни файлове“. Променете настройките, маркирани с червени полета.

Стъпка 5: Нека опитаме

В крайна сметка трябва да работи !!! Жълтият светодиод винаги свети. Червеният светодиод мига. Синият светодиод се изключва, ако натиснете бутона B. Зеленият светодиод се включва, ако натиснете бутон А

Препоръчано: