Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППЛИС_лаб2.doc
Скачиваний:
77
Добавлен:
05.06.2015
Размер:
1.31 Mб
Скачать

4.9. Последовательные сумматоры и вычитатели.

Последовательные сумматоры и вычитатели предполагают последовательный (поразрядный) ввод данных, который синхронизируется тактовым сигналом (CLC).

S0

A S1

S2

B S3

S4

CLC S5

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

Рис 4.9.1. Схема последовательного сумматора.

В схеме последовательного сумматора используются следующие схемотехнические узлы:

  • схема формирования переноса (per), представленная на рис 4.5.1;

  • схема формирования суммы (sum), представленная на рис 4.5.2;

  • триггер хранения значения переноса из младшего разряда DFF(2);

  • сдвиговый регистр (триггеры DFF(3),DFF(4), DFF(5)).

Алгоритм работы схемы следующий. На каждом такте своей работы последовательный сумматор исходя из текущих значений разрядов слагаемых Ai и Bi а также значения переноса Pi-1, сформированного на предыдущем такте и хранящегося в триггере DFF(2) формирует новое значение переноса Pi и значение суммы Si. При приходе активного фронта тактового сигнала Pi записывается в триггер DFF(2), а Si поступает на вход сдвигового регистра и затем, на последующих тактах сдвигается в сторону младших разрядов. Работа сумматора заканчивается, когда значение суммы младшего разряда попадает в младший разряд сдвигового регистра.

Отметим, что для построения схемы вычитателя в схеме, представленной на рис 4.9.1. достаточно заменить узел формирования переноса pr на схему формирования заёма raz, представленную на рис 4.6.1.

Временная диаграмма работы сумматора представлена на рис 4.9.2.

Рис 4.9.2. Временная диаграмма работы последовательного сумматора.

На временной диаграмме, представленной на рис 4.9.2. показан пример сложения трехразрядных чисел 5 и 6. После прихода фронта третьего тактового сигнала на выходе сумматора появляется число 11.

4.10. Дешифратор Дешифратор представляют собой логическую схему, имеющую nвходов иmвыходов

DC

Q1

A1 Q2

A2 . . .

. . .Qn

Am

Обычно выполняется соотношение

n=2m

Дешифратор работает по следующему алгоритму. Из всех выходных шин Qi только одна, номер которой определяется кодом адреса А[m..1], имеет значение, равное 1. Все остальные имеют состояние, равное 0.

Обычно дешифраторы реализуются на элементах многовходовой логики «И». Пример простого дешифратора приведён на рис. 4.10.1. Временная диаграмма работы дешифратора представлена на рис 4.10.2.

Рис 4.10.1. Схема 8-разрядного дешифратора.

Рис 4.10.2. Временная диаграмма работы восьми разрядного дешифратора.

5. Проектирование плис с использованием lpm модулей

Система автоматизированного проектирования MAX+PLUSII предоставляет разработчику богатый набор стандартных элементов, которые он может вставлять в свой проект. Основными из них являются примитивы и мегафункции. В отличие от примитивов, мегафункции могут настраиваться разработчиком под конкретные нужды, например для мегафункции-счетчика может быть задана его разрядность, модуль счета, при необходимости может быть установлен сигнал сброса, переполнения и т.д.

При работе в графическом редакторе ввод LPM модуля производится при помощи двойного щелчка мышью в том месте, куда его необходимо вставить. Далее возможны два варианта. Нужно либо ввести название мегафункции в поле «Symbol Name» диалога «Enter Symbol», либо выбрать библиотеку мегафункций mega_lpm в списке «Symbol Libraries» и соответствующую мегафункцию в списке «Symbol Files», а затем нажать кнопку ОК.

На рисунке 5.1. приведен пример вставленной в файл графического редактора мегафункции счетчика (ее название – lpm_counter). В этом случае сразу после закрытия диалога «Enter Symbol» появится диалог «Edit Ports/Parameters» (см. рис. 5.2.). В этом диалоге можно настроить входые/выходные выводы элемента а также задать параметры мегафункции. Настройка выводов производится при помощи списка «Name» группы «Ports» (выбор порта) и флагов группы «Port Status» (используется/не используется – Used/Unused).

Параметры мегафункции устанавливаются в группе «Parameters». В группе «Parameter Name» находится имя изменяемого параметра (необходимый параметр автоматически появляется в этой группе после выбора его в списке «Name»). Далее в поле «Parameter Value» устанавливается значение параметра Например, параметр LPM_WIDTH отвечает за разрядность счетчика, LPM_MODULUS за модуль счета и т.д. При необходимости можно получить справку, нажав кнопку «Help on LPM_COUNTER».

Рисунок 5.1. Стандартная мегафункция счетчика

Рисунок 5.2. Диалог редактирования параметров мегафункции счетчика

Для ввода в проект нового варианта существующих LPM модулей можно использовать менеджер мастеров MegaWisard Plug-In Manager, доступный при нажатии соответствующей кнопки из диалога «Enter Symbol». В этом случае элемент будет выглядеть так, как показано на рисунке 5.3 На первом шаге будет предложено два варианта: создать новый вариант мегафункции (create a new custom megafunction variation) или редактировать существующий (Edit an existing custom megafunction variation). Следует выбрать первый вариант и нажать кнопку «Next». На следующем шаге необходимо выбрать модифицируемую мегафункцию из группы арифметических (arithmetic – LPM_ABS (абсолютное значение), LPM_ADD_SUB (сложение/вычитание), LPM_COMPARE (компаратор), LPM_COUNTER(счетчик), LMP_DIVIDE (деление), LPM_MULT (умножение)), вентильных (gates, например LMP_CONSTANT (константное значение), LMP_DECODE (дешифратор), LPM_MUX(мультиплексор)) и элементов хранение информации (storage, например LMP_SHIFTREG (сдвиговый регистр). Кроме того, необходимо ввести в поле «What name do you want for the output file?» уникальное имя вновь создаваемого примитива. Далее после нажатия кнопки «Next» происходит настройка выбранного элемента. Например, для счетчика настраиваются разрядность, направление счета, модуль счета (если нужен), выводы Clock Enable, Count Enable и другие параметры. Перенастроить уже созданный мастером элемент можно с помощью двойного щелчка мыши над этим элементом. В этом случае для того, чтобы обновить элемент в графическом редакторе, необходимо выполнить команду меню Symbol|Update Symbol

Рисунок 5.3 Счетчик, созданный при помощи MegaWisard Plug-In Manager

На рисунке 5.4 показана последовательность действий, которая привела к созданию счетчика, показанного на рисунке 5.3.

Рисунок 5.4. Создание счетчика с помощью MegaWisard Plug-In Manager – Шаг 1

Рисунок 5.5. Создание счетчика – шаг 2

Рис. 5.6. Создание счетчика – шаги 3-6