Skip to content

Problem 03: Blinking LED

Viktor Prutyanov edited this page Mar 10, 2019 · 7 revisions

Управление светодиодом

В этом задании вы сделаете схему для управления светодиодом на отладочной плате. Задание разделено на две части.

Часть 1

Подготовка

Установите Quartus Prime 18.1 Lite, если он ещё не установлен. Руководство находится по ссылке.

Перейдите в каталог problems/03_led_blink в вашей локальной копии репозитория. Возможно придётся синхронизировать изменения из репозитория с помощью команды git pull.

Задача №1

Прошлое задание было посвящено созданию параметризуемого модуля делителя частоты clk_div. Скопируйте файл с этим модулем в каталог с текущим заданием.

Внутри модуля top создайте экземпляр модуля clk_div. Соедините выход DS_C с выходом делителя частоты, а вход тактового сигнала CLK со входом делителя.

Значение параметра X (разрядность счётчика) выберите любым в диапазоне [11; 14].

Задача №2

Откройте файл 03_led_blink.qpf в Quartus. Например, через меню File -> Open или через терминал:

quartus --64bit 03_led_blink.qpf

Проект 03_led_blink откроется в Quartus.

Задача №3

Добавьте файл clk_div.v с модулем clk_div в проект. Для этого есть два способа:

  1. Через меню Project -> Add/Remove Files in Project
  2. В файле 03_led_blink.qsf под строкой
set_global_assignment -name VERILOG_FILE top.v

добавить строку

set_global_assignment -name VERILOG_FILE clk_div.v

Задача №4

Запустите компиляцию через меню Processing -> Start Compilation. Результат компиляции, а также ошибки и предупрежения можно увидеть внизу в панели Messages. В панели Project Navigator можно увидеть итоговую иерархию модулей.

Задача №5

С помощью инструмента Tools -> Netlist Viewers -> RTL Viwer посмотрите на получившуюся схему. Выглядит это примерно так:

Задача №6

Снова откройте модуль clk_div. В зависимости от того, как вы сделали этот модуль, сигнал на выходе обладает разным коэффициентом заполнения.

  • Если провод clk_out присоединен к биту номер X-1 счётчика, то коэффициент заполнения — 50%.
  • Если провод clk_out присоединен к выходу компаратора, сравнивающего значение счетчика с нулём, то коэффициент заполнения — 1/(2^X) * 100%

Если был реализован второй вариант, измените код модуля clk_div так, чтобы коэффициент заполнения выходного сигнала стал 50% при той же частоте. Затем снова скомпилируйте проект и откройте RTL Viewer.

Вопрос: что поменялось в схеме?

Задача №7

Измените значение параметра X на 16.

Вопрос: что поменялось в схеме?

Часть 2

Подключите и настройте программатор. Инструкция лежит здесь.

Измените значение параметра X на 25.

Откройте Tools > Programmer.

Нажав кнопку Hardware Setup, выберите программатор USB Blaster. Затем выберите файл с прошивкой output_files/03_led_blink.sof, если он ещё не выбран. Убедитесь, что переключатель Mode установлен на JTAG.

Если нажать кнопку Start, запустится процесс прошивки.

Визуально проверьте, что светодиод мигает с нужной частотой.

Clone this wiki locally