- деление на счетчике частоты 25Mhz на 2**23;
- поочередное включение (активный уровень – логический нуль)/выключение светодиодов при помощи счетчика –дешифратора (0-7).
В САПР Quartus II создать новый проект.
В таблице 5.1 приведены параметры мастера
Таблица 5.1 – Параметры мастера
Параметр мастера | Наименоваение |
What is the working directory for this project? Рабочая папка ( с помощью браузера найти рабочую папку проекта) | … begushiy |
What is the name of this project? Имя проекта | begushiy |
What is the name of the top-level design entity for this project? Имя модуля верхнего уровня в иерархии проекта. | begushiy |
В окне Family & Device Setting выбрать:
- в разделе Family задать Cyclone III;
- тип корпуса в графе Package задать – TQFP;
- в графе Pin count задать - 144,
- в разделе Available devicesвыбрать СБИС EP3C5E144C8.
Во вновь созданном проекте, именуемом «begushiy» необходимо создать новый файл «File –New – Block Diagram/Schematic File».
Сохранить файл под тем же именем что и проект.
Вызвать мастер Mega Wizard Plug-in Manager, через меню Tools – Mega Wizard Plug-in Manager.
В окне 1 выбрать «Create a new custom megafunction variatrion»
В окне 2 перейти в раздел Arithmetic, выбрать пункт LPM_COUNTER, задать имя выходного файла, count, в качестве языка описания выбрать VHDL, нажать кнопку Next
Проектируется суммирующий счетчик с максимальным количеством перебора 33 554 432.
Параметры счетчика:
- ширина шины q = 25 бит;
- счетчик суммирующий «up only»
По окончании нажать Next
На рисунке 5.1 представлено окно с параметрами, которые нужно задать.
Рисунке 5.1– Окно с параметрами
На рисунке 5.2 представлено окно параметров счета, входов управления счетом, флагов переноса.
Рисунок 5.2– Окно параметров счета
В появившемся окне «Optional Inputs» осуществляется назначение синхронных/ асинхронных входов загрузки, сброса, установки в максимальное значение. Все эти опции оставить пустыми. Нажать Next дважды.
Нажать Finish. В рабочей библиотеке появился компонент count.
На рисунке 5.3 представлен синтезированный компонент.
Рисунок 5.3– Синтезированный компонент
Далее необходимо создать второй счетчик со встроенным дешифратором от 0 до 7, к которому будут подключены светодиоды [led 0-7]. Данный элемент следует описать на языке VHDL, для этого необходимо в меню File-New выбрать VHDL File. В открывшемся окне набрать следующий код, реализующий функцию дешифратора согласно заданию. Имя модуля - led.vhd.
В листинге 1 представлен описываемый компонент.
Листинг 1- led.vhd
LIBRARY.IEEE;\
use IEEE.std_logic_1164.all;\
use IEEE.std_logic_unsigned.all;\
use IEEE.numeric_std.ALL;\
entity led is port\
(clk: in std_logic;\
led: out std_logic_vector(7 downto 0));\
end led;\
architecture led_arch of led is\
signal cnt: integer range 0 to 7 :=0;\
begin\
process (clk)\
begin\
if rising_edge(clk) then\
if cnt=7 then\
cnt<=0;\
else\
cnt<=cnt+1;\
end if;\
end if;\
end process;\
led(0)<= '1' when cnt=0 else '0';\
led(1)<= '1' when cnt=1 else '0';\
led(2)<= '1' when cnt=2 else '0';\
led(3)<= '1' when cnt=3 else '0';\
led(4)<= '1' when cnt=4 else '0';\
led(5)<= '1' when cnt=5 else '0';\
led(6)<= '1' when cnt=6 else '0';\
led(7)<= '1' when cnt=7 else '0';\
end led_arch;\
Выполнить команд меню File- Create/Update – Create Symbol Files for Current File. В библиотеке появится новый компонент с именем led.
На рисунке 5.4 представлен синтезированный элемент.
Рисунок 5.4– Синтезированный элемент- led
На рисунке 5.5 представлена синтезированная схем, реализуемая при помощи схемного проектирования.
Рисунок 5.5– Синтезированная схема
Далее необходимо осуществить проверку синтаксиса схемы. Для этого в меню Processing выполнить команду Start=>Start Analysis & Elaboration.
Перейти в инструмент Assignments - Pin Planner и выполнить назначение выводов на СБИС (ПЛИС) выводам схемы, как показано на рисунке 5.6.
Рисунок 5.6– Назначение выводов на СБИС
С помощью команды Processing => Start Compilationосуществить полную компиляцию проекта.
Конфигурирование платы:
- На плате miniDiLaB-CIII установить джамперы следующим образом (рисунок 5.7):
a. Соединить выводы разъема “TYPE”
b. Соединить выводы 1-2 разъема “MODE”
Рисунок 5.7– Установка джамперов
Подсоединить, входящий в комплект поставки USB кабель A-miniB к USB 2.0 порту компьютера (должен обеспечивать ток до 500мА), а затем к плате miniDiLaB-CIII.
Выполнить команду Tools=> Programmerили кликнуть по значку главного меню (рисунок 5.8)
Рисунок 5.8– Главное меню
Откроется окно управления конфигурированием СБИС.
Для установки интегрированного на плату miniDiLaB-CIII средства конфигурирования СБИС нажать кнопку Hardware Setup,откроется окно настроек в нем выбрать USB- Blaster.
Светодиод led[7..0], для которого разрешена работа (счетчик содержит значение данного светодиода ) будет светится и гаснуть, следующим загорится светодиод номер которого будет следующим.
5.2 Вывод
В результате выполнения задания спроектировано цифровое устройство, выполняющее поочередное включение /выключение светодиодов. Проведено описание работы элемента на языке VHDL, синтезирован компонент, как представлено на рисунке 5.4 на плате DiLaB – III (Cyclone III); проведена отладка и проверка работоспособности схемы.
В результате выполнения можно дать определение дешифратору как устройству, с несколькими входами и выходами, которое преобразует код, подаваемый на входы в сигнал на одном из выходов.
Назначение вывода Carry –out- выход сигнала переноса,
Назначение вывода Set-установка параметра,
Назначение вывода Load- загрузка данных.
Изменение кода описания счетчика-дешифратора, чтобы «бегущий огонь» начинался с led 7 и шел до led 0:
led(0)<= '1' when cnt=7 else '0';
led(1)<= '1' when cnt=6 else '0';
led(2)<= '1' when cnt=5 else '0';
led(3)<= '1' when cnt=4 else '0';
led(4)<= '1' when cnt=3 else '0';
led(5)<= '1' when cnt=2 else '0';
led(6)<= '1' when cnt=1 else '0';
led(7)<= '1' when cnt=0 else '0'