-
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. Выглядеть это должно примерно так:
Добавьте файл 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.
Вопрос: что поменялось в схеме?
В процессе написания