МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА 41
|
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
кандидат технических наук, доцент |
|
|
|
В. И. Исаков |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1
|
Освоение среды разработки цифровых схем Quartus II
|
по дисциплине: Элементарная база вычислительных систем и сетей |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
Z9411 |
|
|
|
Р. С. Кафка |
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Студенческий билет № |
2019/3603 |
|
|
|
Санкт-Петербург 2021
Цель работы: знакомство с особенностями работы приложения Quartus II 9.0 в
процессе синтеза цифровых устройств на программируемых логических интегральных схемах (ПЛИС).
Ход работы:
Запускаем приложение Quartus II
На рабочем диске создаём папку с номером группы, в которой в дальнейшем будет сохраняться создаваемый проект.
Выполняем действия, описанные в разделе «Открытие проекта», учитывая, что названия имени проекта и имени модуля верхнего уровня должны совпадать с именем программы, указанным в tdf-файле после слова SUBDESIGN.
Выполняем действия по созданию конструкторского файла, описанные в разделе «Создание конструкторского файла».
Вводим в редактор системы Quartus II текст представленной программы для синтеза семисегментного индикатора, имеющего семь сегментов, размещаемых пространственно в порядке, показанном на приведенном ниже рисунке, заменив символы «х» в модуле объявления таблицы на 0 или 1 в зависимости от требуемой структуры. Каждый из сегментов индикатора имеет буквенное обозначение.
Рисунок 1 – Буквенное обозначение сегментов индикатора
Структура начертания символов на семисегментном индикаторе имеет следующий вид:
Рисунок 2 – Структура начертания символов символов на семисегментном индикаторе
Текст программы:
% Кафка Р.С., гр. Z9411, Дешифратор 7-сегментного индикатора %
SUBDESIGN Lab1 -- Название проекта
(
i[3..0] : INPUT; -- Объявление входных переменных
a, b, c, d, e, f, g : OUTPUT; -- Объявления входных и выходных переменных
)
BEGIN
TABLE -- Объявление таблицы истинности
i[3..0] => a, b, c, d, e, f, g;
H"0" => 1, 1, 1, 1, 1, 1, 0;
H"1" => 0, 1, 1, 0, 0, 0, 0;
H"2" => 1, 1, 0, 1, 1, 0, 1;
H"3" => 1, 1, 1, 1, 0, 0, 1;
H"4" => 0, 1, 1, 0, 0, 1, 1;
H"5" => 1, 0, 1, 1, 0, 1, 1;
H"6" => 1, 0, 1, 1, 1, 1, 1;
H"7" => 1, 1, 1, 0, 0, 0, 0;
H"8" => 1, 1, 1, 1, 1, 1, 1;
H"9" => 1, 1, 1, 1, 0, 1, 1;
H"A" => 1, 1, 1, 0, 1, 1, 1;
H"B" => 0, 0, 1, 1, 1, 1, 1;
H"C" => 1, 0, 0, 1, 1, 1, 1;
H"D" => 0, 1, 1, 1, 1, 0, 1;
H"E" => 1, 0, 0, 1, 1, 1, 1;
H"F" => 1, 0, 0, 0, 1, 1, 1;
END TABLE;
END;
Результат компиляции:
Рисунок 3 – Результат компиляции
Назначаем микросхему, используемую для реализации проекта. Например, микросхему семейства MAX3000A – EPM3032ALC44-10.
Выполняем компиляцию программы. Просматриваем параметры загрузки (используемые ресурсы микросхемы), тип и назначение выводов ПЛИС.
Изменим назначения выводов микросхемы таким образом, чтобы для входных сигналов использовались выводы в меньшими номерами, а следом за ними располагались выводы выходных сигналов. Назначать можно только комбинированные выводы I/O (input/output). Назначения сделаем в следующем порядке i[0], i[1], i[2], i[3], a, b, с, d, e, f, g.
Назначения выводов:
Рисунок 4 – Назначения выводов первой микросхемы
Взяв за основу программу ранее выполненного проекта, составьте программы для синтеза комбинационных устройств по приведенным на рис. 8 схемам (a и b). Программа должна содержать название проекта, объявления входных и выходных переменных, заключенные в круглых скобках, логические выражения, размещенные в операторных скобках BEGIN – ЕND.
9.1. Синтезировать схему дешифратора.
Рисунок 5 – Схема дешифратора
Таблица истинности:
Таблица 1
№ |
Е |
А1 |
А0 |
NA0 |
NA1 |
NE |
Y0 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
|
|
|
NA0 & NA1 & NE |
NA1 & A0 & NE |
A1 & NA0 & NE |
A0 & A1 & NE |
NA1 & NA0 & E |
NA1 & A0 & E |
A1 & NA0 & E |
A0 & A1 & E |
||||
H"0" |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
H"1" |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
H"2" |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
H"3" |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
H"4" |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
H"5" |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
H"6" |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
H"7" |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Текст программы:
SUBDESIGN Lab1 -- Название проекта
(
A0, A1, E: INPUT; -- Объявление входных переменных
Y[7..0]: OUTPUT; -- Объявление выходных переменных
)
BEGIN
Y0 = !(!A0&!A1&!E);
Y1 = !(A0&!A1&!E);
Y2 = !(!A0&A1&!E);
Y3 = !(A0&A1&!E);
Y4 = !(!A0&!A1&E);
Y5 = !(A0&!A1&E);
Y6 = !(!A0&A1&E);
Y7 = !(A0&A1&E);
END;
Выбираем микросхему: MAX3000A – EPM3032ALC44-10.
Назначения выводов:
Рисунок 6 – Назначения выводов второй микросхемы