-
Notifications
You must be signed in to change notification settings - Fork 35
Problem 03: Blinking LED
В этом задании вы сделаете схему для управления светодиодом на отладочной плате. Задание разделено на две части.
Установите Quartus Prime 18.1 Lite, если он ещё не установлен. Руководство находится по ссылке.
Перейдите в каталог problems/03_led_blink
в вашей локальной копии репозитория. Возможно придётся синхронизировать изменения из репозитория с помощью команды git pull
.
Прошлое задание было посвящено созданию параметризуемого модуля делителя частоты clk_div
. Скопируйте файл с этим модулем в каталог с текущим заданием.
Внутри модуля top
создайте экземпляр модуля clk_div
. Соедините выход DS_C
с выходом делителя частоты, а вход тактового сигнала CLK
со входом делителя.
Значение параметра X
(разрядность счётчика) выберите любым в диапазоне [11; 14].
Откройте файл 03_led_blink.qpf
в Quartus. Например, через меню File -> Open или через терминал:
quartus --64bit 03_led_blink.qpf
Проект 03_led_blink откроется в Quartus.
Добавьте файл clk_div.v
с модулем clk_div
в проект. Для этого есть два способа:
- Через меню Project -> Add/Remove Files in Project
- В файле
03_led_blink.qsf
под строкой
set_global_assignment -name VERILOG_FILE top.v
добавить строку
set_global_assignment -name VERILOG_FILE clk_div.v
Запустите компиляцию через меню Processing -> Start Compilation. Результат компиляции, а также ошибки и предупрежения можно увидеть внизу в панели Messages. В панели Project Navigator можно увидеть итоговую иерархию модулей.
С помощью инструмента Tools -> Netlist Viewers -> RTL Viwer посмотрите на получившуюся схему. Выглядит это примерно так:
Снова откройте модуль clk_div
. В зависимости от того, как вы сделали этот модуль, сигнал на выходе обладает разным коэффициентом заполнения.
- Если провод
clk_out
присоединен к биту номерX-1
счётчика, то коэффициент заполнения —50%
. - Если провод
clk_out
присоединен к выходу компаратора, сравнивающего значение счетчика с нулём, то коэффициент заполнения —1/(2^X) * 100%
Если был реализован второй вариант, измените код модуля clk_div
так, чтобы коэффициент заполнения выходного сигнала стал 50% при той же частоте. Затем снова скомпилируйте проект и откройте RTL Viewer.
Вопрос: что поменялось в схеме?
Измените значение параметра X
на 16.
Вопрос: что поменялось в схеме?
Подключите и настройте программатор. Инструкция лежит здесь.
Измените значение параметра X
на 25.
Откройте Tools > Programmer.
Нажав кнопку Hardware Setup, выберите программатор USB Blaster. Затем выберите файл с прошивкой output_files/03_led_blink.sof
, если он ещё не выбран. Убедитесь, что переключатель Mode установлен на JTAG.
Если нажать кнопку Start, запустится процесс прошивки.
Визуально проверьте, что светодиод мигает с нужной частотой.