Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Sbornik_PLIS

.pdf
Скачиваний:
23
Добавлен:
05.01.2023
Размер:
5.21 Mб
Скачать

2.2 Выполнение исследований в лаборатории Разделы выполнения лабораторной работы:

2.2.1.Создание проекта

2.2.2.Проектирование цифрового устройства в графическом редакторе с использование модулей на языке VHDL

2.2.3.Симуляция проекта

2.2.4.Создание связи с выводами отладочной платы

2.2.5.Создание конфигурационного файла

2.2.6.Конфигурирование отладочной платы

2.2.1Создание проекта

Подробное описание создания проекта описано в пункте 2.2.1 Лабораторной работы №1 данного описания.

Запустите Project Navigator, выбрав в контекстном меню File – New Project.

Откроется мастер создания нового проекта «New Project Wizard» (Рис. 2.1), в котором нужно заполнить графу названия проекта (Name) и выбрать файл верхней архитектуры: схематический (Top-level source type: Schematic).

Рис. 2.1. Мастер создания нового проекта

Новый проект должен иметь параметры, представленные на рисунке 2.2

21

Рис. 2.2. Параметры проекта

2.2.2 Проектирование цифрового устройства

Сначала нужно создать новый файл верхнего уровня проекта.

Для этого нужно нажать правой кнопкой в свободной областе «Hierarchy» и выбрать «New Source» (Рис. 2.3).

Рис. 2.3. Добавление нового источника в проект

Откроется мастер создания нового источника («New Source Wizard») (Рис. 2.4), в котором нужно будет выбрать тип источника (Shematic) и дать ему

22

имя. Имя файла верхнего уровня также будет и у итогового скомпилированного файла.

Рис. 2.4. Создание нового источника

После завершения работы мастера создания нового источника, автоматически откроется редактор нового источника в главной рабочей области. В данном случае откроется графический редактор схем (Рис. 2.5) (Если этого не случилось, открыть редактор файла можно с помощью двойного клика на названии файла вкладки Design) .

Рис. 2.5. Редактирование файла-схемы

После этого нужно добавить модуль, который будет описан на языке VHDL. Для этого нужно повторить действия предыдущего шага, но вместо схематического источника нужно выбрать источник VHDL Module и дать ему имя (Рис. 2.6):

23

Рис. 2.6. Создание модуля VHDL

В следующем окне мастера выбираются настройки портов, которые используются в этом модуле.

Для данного примера будут задействованы 4 переключателя и 2 светодиода платы, поэтому создадим и назовем соответствующие порты, как представлено на рисунке 2.7.

Рис. 2.7. Входные и выходные порты модуля

Как и после создания файла схемы, создание VHDL модуля завершается открытием файла в редакторе (Рис. 2.8). САПР автоматически создает заготовку, с которую внесены обязательные строки кода (инициализация портов, которые выбирались в мастере, подключение библиотек, объявление архитектуры).

24

Рис. 2.8. Шаблон VHDL модуля

Теперь нужно описать работу цифрового устройства. Например, пусть первая пара переключателей выполняет функцию логического «И» и выводит результат на первый светодиод, а вторая пара переключателей выполняет функцию логического «ИЛИ» и выводит состояние, соответственно, на второй светодиод.

Для реализации этого в редакторе файла созданного VHDL модуля нужно вставить следующие строки:

architecture Behavioral of demo_vhdl is

begin

 

out1 <= inp1 and inp2;

-- Реализация логического «И»

out2 <= inp3 or inp4;

-- Реализация логического «ИЛИ»

end Behavioral;

 

Таким образом, входные и выходные порты модуля запрограммированы нужным нам алгоритмом.

После любых изменений кода всегда полезно сохранять изменения и запускать проверку синтаксиса, выбрав в окне иерархий текущий файл и запустив процесс

Это поможет избавиться от множества ошибок и опечаток при описании цифрового устройства.

25

Теперь создадим из этого модуля схематический символ для последующего добавления в основную схему, проделав то же самое, что и при проверки синтаксиса, но на этот раз выбрав процесс Create Schematic Symbol (Рис.

2.9)

Рис.2.9. Создание символа

После успешного завершения работы этого процесса, символ, который представляет этот модуль, можно добавить на схему. Его расположение в библиотеке символов (Symbols) будет иметь категорию с названием директории проекта (Рис. 2.10)

Рис. 2.10. VHDL модуль в виде символа

Можно немного усложнить это цифровое устройство, и добавить новый модуль, который будет выполнять следующую функцию:

Сигналы, поступающие из первого модуля, при нажатии кнопки будут инвертироваться.

Для этого повторим создание VHDL модуля. Из портов нам нужны 3 входных и 2 выходных порта (Рис. 2.11).

26

Рис. 2.11. Новый VHDL модуль

Теперь архитектура модуля будет иметь следующий вид:

architecture Behavioral of button is

begin

process(btn, i1, i2) begin

if btn = '1' then

-- Если кнопка нажата

o1

<= not i1;

-- На первый выход подается инверсия первого входа

o2

<= not i2;

-- На второй выход подается инверсия второго входа

else

 

-- Если кнопка не нажата

o1

<= i1;

-- Первый вход на первый выход

o2

<= i2;

-- Второй вход на второй выход

end if; end process;

end Behavioral;

После сохранения результата и успешной проверки синтаксиса из этого модуля также нужно создать символ и добавить его к общей схеме (Рис. 2.12)

27

Рис. 2.12. Добавление второго VHDL модуля на схему

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

Добавление провода осуществляется инструментом AddWire, а добавление маркера инструментом AddI/OMarker.

Осталось их переименовать, для удобного «связывания» с платой (с помощью нажатия правой кнопкой по маркеру – Rename Port), и готовая схема будет иметь вид, представленный на рисунке 2.13.

Рис. 2.13. Готовая схема цифрового устройства.

28

2.2.3 Симуляция проекта

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

К тому же только в симуляции можно увидеть состояния каждой переменной в нужные участки времени, что, соответственно, помогает обнаружить ошибку.

Чтобы запустить симуляцию для текущего проекта, нужно выбрать вкладку Simulation(Рис. 2.14)

Рис. 2.14 Вкладка Симуляция

Дальше нужно выбрать файл, который будет симулироваться. Можно выбрать как отдельный модуль VHDL и посмотреть его работу, так и весь проект в целом.

Запустим симуляцию всего проекта, выбрав файл-схему и запустив про-

цесс Simulate Behavioral Model (Рис. 2.15)

Рис. 2.15. Запуск процесса симуляции

После успешного завершения процесса откроется симулятор iSim, главное окно которого представлено на рисунке 2.16.

29

Рис. 2.16.Главное окно симулятора iSim

Вокне симулятора нас интересует то, что находится в рабочей зоне (с черным фоном).

Влевой части рабочей зоны расположены все входные/выходные переменные, а также провода XLXN_9 и XLXN_10, которые соединяют два VHDL модуля.

Первоначально зададим состояния входных переменных, для этого нужно кликнуть правой кнопкой на переменной и из выпадающего меню выбрать

Force Clock или Force Constant. Force Clock задаст периодически меняющий-

ся сигнал для переменной, а Force Constant задаст неизменное значение. Для переменной BTN0 зададим Force Clock

Рис. 2.17. Настройки Force Clock

30

Соседние файлы в предмете Микропроцессорные устройства