Лабораторная работа: АЛУ и оперативная память в ПЛИС

Лабораторная работа 2. Исследование работы АЛУ
Краткие теоретические сведения
Арифметико-логическое устройство АЛУ (Arithmetic-Logic Unit - ALU) представляет собой
комбинационное устройство на основе сумматора, выполняющее ряд дополнительных
функций обработки данных. На рисунке 2.1 представлено условное обозначение типичного 4разрядного АЛУ, реализованного в модуле 74181.
Рисунок 2.1 – Условное обозначение четырёхразрядного АЛУ (модуль 74181)
Представленное АЛУ содержит две группы входов для двух 4-разрядных операндов
(обрабатываемых двоичных чисел) A0N .. A3N и B0N .. B3N. На выводах F0N .. F3N
формируется 4-разрядный результат выполненной операции. Вход CN предназначен для
подачи входного переноса в младший разряд устройства, если такой перенос существует.
Выход CN4 содержит перенос в пятый разряд в случае его возникновения в ходе выполнения
операции. Выходы GN и PN предназначены для подачи групповых функций генерации и
распространения на внешнюю схему ускоренного формирования переносов (74182). Эта схема
может быть использована для построения АЛУ с разрядностью более 4 и параллельным
распространением переноса между 4-разрядными блоками. На выходе AEQB формируется
сигнал равенства операндов А и В.
Входы SO .. S3 и М обеспечивают выбор одной из 32 возможных операций, выполняемых
устройством. Список операций представлен в таблице 1. Все операции делятся на две группы:
логические и арифметические. Переключение между группами осуществляется с помощью
входа М. Приведенная таблица соответствует положительной логике линий данных (1 высокий уровень). Входные 4-разрядные oneранды (данные) и 4-разрядный результат
операции обозначены в таблице буквами А, В и F. Бит входного переноса носит имя
соответствующего вывода модуля CN. Логические операции выполняются над операндами
побитово (поразрядно), т. е. без взаимодействия разрядов. Эти операции присутствуют и в
логическом и в арифметическом режимах. Для отличия от арифметических операций,
выполняемых с учетом переносов в разрядах и обозначаемых в таблице обычными символами
+ и логические операции указаны с помощью кратких обозначений языка AHDL (символом
решетка (#) обозначена операция дизъюнкции (ИЛИ), символом доллар ($) – операция
сложения по модулю 2 (исключающее ИЛИ)). Если при выполнении операций
арифметического режима возникает перенос в пятый разряд, то на выходе CN4
устанавливается 0, в противном случае на нем остается 1.
Таблица 2.1 – Таблица истинности 4-разрядного АЛУ 74181
Задание для выполнения в лаборатории
В качестве микросхемы АЛУ взять микросхему серии 74 – 74181. Подключить, проверить
работу микросхемы по таблице 2.
В отчёте расписать 6 операций с двумя разными наборами операндов. Результаты работы
оформить по таблице 2.2.
Таблица 2.2 – Результаты работы
Код операции Операция
Операнд A
Операнд B
Результат
Лабораторная работа 3. Работа с оперативной памятью в ПЛИС
Краткие теоретические сведения
Библиотека LPM
Фирма Altera предоставляет разработчикам модули комбинационных устройств, отвечающие
структурным особенностям ПЛИС. Такие модули существуют в библиотеке САПР Quartus II,
называемой LPM (Library of Parameterized Modules). Полезной особенностью модулей этой
библиотеки является возможность варьирования по желанию разработчика значениями
некоторых свойств конструируемых устройств на стадии проектирования. Такие свойства
называются параметрами, а модули - параметризированными.
Установка модулей в схемном конструкторском файле осуществляется аналогично установке
примитивов. При этом САПР Quartus II включает специальное окно редактирования
параметров, в котором можно присвоить им требуемые значения.
Оперативная память
Блоки памяти являются одними из основных компонентов, применяемых для реализации
различных вычислительных устройств. Если для создания вычислительного устройства
используется микросхема программируемой логики (ПЛИС, FPGA), то для построения блоков
памяти могут быть использованы внутренние ресурсы этой микросхемы. В случае
необходимости, к ПЛИС можно подключать дополнительные внешние микросхемы памяти.
Настройка памяти
После выбора в библиотеке необходимого блока памяти запустится MegaWizard Plug-In. В
первом окне будет предложено выбрать язык программирования для проекта (рисунок 3.1).
Здесь можно всё оставить без изменений.
Рисунок 3.1 – Выбор языка проекта
В следующем окне необходимо настроить разрядность памяти и её объём (рисунок 3.2). Так
как число переключателей на стенде ограничено восемью, то для задания адреса и памяти
необходимо уложиться в семь.
Например, зададим разрядность памяти 4. Объём памяти рассчитывается исходя из
разрядности адреса (количества переключателей):
V=2n
Тогда если n=3, то максимальное количество слов, которое можно записать в память будет
равно 8.
В следующем окне (рисунок 3.3) будет предложено настроить выход и дополнительные входы
асинхронной очистки и разрешения синхронизации. Тут всё необходимо оставить без
изменений.
Далее можно задать файл первоначальной инициализации памяти (рисунок 3.4). Для этого
необходимо выбрать соответствующий пункт и указать файл инициализации. Его нужно
предварительно создать (File-> New -> Memory Files).
Затем после нажатия кнопки Finish блок памяти будет добавлен в проект.
Для подключения Input Pin к шине, его необходимо переименовать, задав в квадратных
скобках разрядность шины. Пример показан на рисунке 3.5.
Рисунок 3.2 – Настройка разрядности и объёма памяти
Рисунок 3.3 – Окно настройки дополнительных опций памяти
Рисунок 3.4 – Окно для подключения файла инициализации
Рисунок 3.5 – Переименование Pin’ов
Задание для выполнения в лаборатории
Блок оперативной памяти расположен в библиотеке Megafunktion/storage. Рекомендуется
использовать блоки lpm_ram_dq либо altsyncram, использование других блоков не
возбраняется.
Для выполнения работы необходимо сделать следующие действия:
1.
2.
3.
4.
5.
Записать в память 4 слова, используя переключатели
Вывести записанное на светодиоды или семисегментный индикатор
Для синхронизации использовать кнопку
Записать в память несколько слов, используя файл (*.hex или *.mif)
Вывести записанное на светодиоды или семисегментный индикатор