Оглавление:
- Шаг 1: Создайте электронную схему
- Шаг 2. Проверьте планировщик контактов и отредактируйте код Verilog
- Шаг 3. Отредактируйте код Verilog
- Шаг 4: скомпилируйте код Verilog
- Шаг 5. Давайте попробуем
Видео: FPGA Cyclone IV DueProLogic - кнопка и светодиод: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
В этом уроке мы собираемся использовать FPGA для управления внешней светодиодной схемой. Мы собираемся реализовать следующие задачи
(A) Используйте кнопки на FPGA Cyclone IV DuePrologic для управления светодиодом.
(B) Периодическое мигание светодиода
Видео демонстрация
Меню лаборатории:
Шаг 1: Создайте электронную схему
Шаг 2. Проверьте планировщик контактов и отредактируйте код Verilog
Шаг 3. Отредактируйте код 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
Нажмите «Начать компиляцию» в Quartus, сообщение об ошибке не должно появляться.
Если вы получаете сообщение об ошибке о нескольких контактах. Перейдите в раздел Назначения -> Устройство -> Параметры устройства и контактов -> Контакты двойного назначения -> измените значение соответствующего контакта на «Использовать как обычный ввод / вывод».
После компиляции вы должны напрямую получить выходной файл pof. Если ваше программное обеспечение устарело, вы можете получить только файл софт. Когда это произойдет, нажмите «Файл» в Quartus -> «Конвертировать программные файлы». Измените настройки, отмеченные красными полями.
Шаг 5. Давайте попробуем
Ведь должно работать !!! Желтый светодиод всегда горит. Красный светодиод мигает. Синий светодиод гаснет, если вы нажимаете кнопку B. Зеленый светодиод включается, если вы нажимаете кнопку A.
Рекомендуемые:
Светодиод изменения цвета: 13 шагов
Светодиод изменения цвета: мне было поручено создать прототип, используя какой-то датчик для генерации выходного сигнала. Я решил использовать фотоэлемент, который измеряет количество света в окружающей среде, и светодиод RGB в качестве выходного сигнала. Я знал, что хочу использовать возможности светодиода
FPGA Cyclone IV DueProLogic управляет камерой Raspberry Pi: 5 шагов
FPGA Cyclone IV DueProLogic управляет камерой Raspberry Pi: несмотря на то, что FPGA DueProLogic официально разработана для Arduino, мы собираемся сделать FPGA и Raspberry Pi 4B совместимыми. В этом руководстве реализованы три задачи: (A) Одновременно нажмите две кнопки на FPGA для изменения угла
Светодиод Bluetooth VS: 13 шагов
Светодиод Bluetooth VS: Светодиод управления Bluetooth
FPGA Cyclone IV DueProLogic Controls Servo Motor: 4 шага
FPGA Cyclone IV DueProLogic управляет серводвигателем: в этом руководстве мы собираемся написать код Verilog для управления серводвигателем. Сервопривод SG-90 производится Waveshare. При покупке серводвигателя вы можете получить техническое описание, в котором указаны рабочее напряжение, максимальный крутящий момент и предлагаемый Pu
Светодиод - Mega Clock: 8 шагов (с изображениями)
LED - Mega Clock: LED - Mega Clock