Оглавление:

FPGA Cyclone IV DueProLogic - кнопка и светодиод: 5 шагов
FPGA Cyclone IV DueProLogic - кнопка и светодиод: 5 шагов

Видео: FPGA Cyclone IV DueProLogic - кнопка и светодиод: 5 шагов

Видео: FPGA Cyclone IV DueProLogic - кнопка и светодиод: 5 шагов
Видео: Как читать нажатие кнопки в VHDL 2024, Ноябрь
Anonim
FPGA Cyclone IV DueProLogic - кнопка и светодиод
FPGA Cyclone IV DueProLogic - кнопка и светодиод

В этом уроке мы собираемся использовать FPGA для управления внешней светодиодной схемой. Мы собираемся реализовать следующие задачи

(A) Используйте кнопки на FPGA Cyclone IV DuePrologic для управления светодиодом.

(B) Периодическое мигание светодиода

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

Меню лаборатории:

Шаг 1: Создайте электронную схему

Шаг 2. Проверьте планировщик контактов и отредактируйте код Verilog

Проверьте планировщик контактов и отредактируйте код Verilog
Проверьте планировщик контактов и отредактируйте код Verilog

Шаг 3. Отредактируйте код Verilog

Изменить код Verilog
Изменить код Verilog

При покупке FPGA DueProLogic вы получите DVD. После того, как вы откроете "Projects_HDL", вы должны увидеть исходный файл кода.

Добавьте выделенный код. Он регистрирует порты ввода-вывода и присваивает им номера.

выходной провод [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] = start_blinky; // Светодиодная вспышка Светодиод включается и выключается

присваиваем XIO_2 [2] = 1'b1; // выводим ВЫСОКИЙ

назначить XIO_2 [3] = ~ UBA; // Нажимаем кнопку A

присвоить XIO_2 [4] = UBB; // Нажимаем кнопку B

назначить c_enable = XIO_5 [2];

назначить LEDExt = XIO_5 [5];

Затем мы должны установить таймер задержки. Прокомментируйте исходный код таймера и напишите новую функцию таймера

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

// Светодиодный мигающий старт

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

/*

всегда @ (posedge CLK_66 или negedge RST)

начинать

если (! RST)

start_blinky <= 1'b0;

еще

начинать

если (control_register [7: 4]> 0)

start_blinky <= 1'b1;

еще

start_blinky <= 1'b0;

конец

конец

*/

рег [31: 0] пр.;

начальное начало

ex <= 32'b0;

start_blinky <= 1'b0;

конец

всегда @ (posedge CLK_66)

начинать

ex <= ex + 1'b1;

if (ex> 100000000) // мигание вкл / выкл ~ 1,6 секунды, частота 66 МГц

начинать

start_blinky <=! start_blinky;

ex <= 32'b0;

конец

конец

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

// Счетчик таймера задержки светодиода

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

/*

всегда @ (posedge 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

Скомпилировать код Verilog
Скомпилировать код Verilog
Скомпилировать код Verilog
Скомпилировать код Verilog

Нажмите «Начать компиляцию» в Quartus, сообщение об ошибке не должно появляться.

Если вы получаете сообщение об ошибке о нескольких контактах. Перейдите в раздел Назначения -> Устройство -> Параметры устройства и контактов -> Контакты двойного назначения -> измените значение соответствующего контакта на «Использовать как обычный ввод / вывод».

После компиляции вы должны напрямую получить выходной файл pof. Если ваше программное обеспечение устарело, вы можете получить только файл софт. Когда это произойдет, нажмите «Файл» в Quartus -> «Конвертировать программные файлы». Измените настройки, отмеченные красными полями.

Шаг 5. Давайте попробуем

Ведь должно работать !!! Желтый светодиод всегда горит. Красный светодиод мигает. Синий светодиод гаснет, если вы нажимаете кнопку B. Зеленый светодиод включается, если вы нажимаете кнопку A.

Рекомендуемые: