Структурная схема операционного автомата
. Схема автомата для умножения двоичных чисел по алгоритму Бута приведена на рис. 1.2.2. Составной регистр из
RG
3
,
RG
2
и Т образован путем соединения выхода триггера младшего разряда регистра
RG
3
c
входом триггера старшего разряда
RG
2
, выхода триггера младшего разряда
RG
2
с входом триггера
T
. Информационные выходы регистров
RG
1
и
RG
3
подключены к входам сумматора – вычитателя, выходы которого соединены с информационными входами регистра
RG
3
. Как указано выше, счетчик с 3–входовым Логическим элементом ИЛИ служат для фиксации окончания операции умножение.
Процесс умножения можно представить как совокупность микроопераций, каждая из которых инициируются управляющим сигналом. В дальнейшем микрооперации и управляющие сигналы будем обозначать одним символом ук.
Для приведения узлов операционного автомата в исходное состояние перед выполнением операции умножения используются управляющие сигналы:
? у1 и у2 — для загрузки регистров
RG
1
,
RG
2
множимым А и множителем В соответственно;
? у3 , у4 — для установки регистра
RG
3
и триггера Т в нулевое состояние;
? у5 — для записи в счетчик
C
Т числа
n
= 4.
С помощью управляющих сигналов у6, у7 реализуются микрооперации суммирования
RG
3
<—
RG
3
+
RG
1
и вычитания
RG
3
<—
RG
3
—
RG
1
. Результаты микроопераций поступают в
RG
3
.
Для сдвига содержимого составного регистра
RG
3
,
RG
2
, Т используется управляющий сигнал у8, а для уменьшения показаний счетчика СТ на единицу — сигнал у9.
Для упорядочения управляющих сигналов воспользуемся понятием микрокоманды. Микрокомандой называют совокупность совместимых микроопераций, которые могут быть выполнены на одном машинном такте (одновременно).
На основании перечисленных выше управляющих сигналов (микроопераций) сформируем набор микрокоманд для выполнения операции умножения:
? объединим микрооперации у1…..
y
5
(начальной загрузки регистров
RG
1
,
RG
2
,
RG
3
, триггера
T
и счетчика СТ) в общую микрокоманду
Y
1
= (у1, у2, у3, у4, у5), так как они могут быть выполнены одновременно (на одном тактовом интервале);
? выделим микрооперации сложения и вычитания с загрузкой результата в
RG
3
в отдельные микрокоманды:
Y
2
= у6 ,
Y
3
= у7;
? объединим микрооперации у8, у9 арифметического сдвига вправо на один разряд содержимого составного регистра (
RG
3
,
RG
2
, Т) и уменьшения на единицу содержимого счетчика СТ в микрокоманду
Y
4
= {у8, у9}.
В операционном автомате формируются следующие логические условия (признаки):
? Х1 , Х2 — значения выходного сигнала триггера
T
и младшего разряда
RG
2
. Выполняемые действия при различных комбинациях этих сигналов приведены в табл. 1.2.1;
? Х3 — результат проверки на нуль содержимого счетчика СТ. Значение Х3 = 1 свидетельствует о том, что счетчик пуст (С
T
= 000). В этом случае операция умножения завершается. Если Х3 = 0, то начинается новый цикл операции умножения.
Особенности схемной реализации операционного автомата.
Принципиальная схема операционного автомата, построенная с использованием библиотечных элементов пакета программ
Micro
–
Logic
II моделирования цифровых схем, изображена на рис. 1.2.3,а.
Состав и назначение узлов операционного автомата. Операционный автомат содержит:
? триггер Т, выходной сигнал
Q
которого используется в качестве логического условия Х1 для выявления следующего действия в процессе умножения двоичных чисел;
? регистры
RG
3
и
RG
2
для хранения промежуточных результатов и произведения в виде 8–разрядного двоичного кода Р7,…, Р0. Назначение выводов каждого регистра: выводы 1:4 являются входами данных для параллельной загрузки; вывод 14 — последовательный вход
DS
; выводы 8:11 — выходы регистра; выводы 5, б, 7 служат для подачи управляющих сигналов сброса, параллельной загрузки и синхроимпульсов. Выход Р4 младшего разряда регистра
RG
3
соединен с последовательным входом
DS
регистра
RG
2
, а выход Р0 младшего разряда регистра
RG
2
— с входом данных
D
триггера Т. Поэтому
RG
3
,
RG
2
и Т образуют 9–разрядный сдвигающий регистр, младшие разряды которого задействованы для сигналов логических условий Х2 и X1. На параллельные входы данных В3, В2, В1, В0 регистра
RG
2
подан множитель В = 0111 (+710). Параллельные входы регистра
RG
3
подключены к выходам 4–разрядного сумматора. Последовательный вход
DS
регистра
RG
3
подключен к выводу Р7 для сохранения значения знакового разряда (Р7) при реализации арифметического сдвига. Входы для активизации параллельной загрузки V и для подачи импульсов синхронизации С подключены к логическим элементам, вход сброса
R
— к источнику
D
01
пускового импульса ПИ. В исходном состояния (после пускового импульса) регистр
RG
2
загружен множителем
B
, а регистр
RG
3
и триггер Т — нулями;
? вычитающий счетчик СТ, выполненный на микросхеме К155ИЕ7 (библиотечный макроэлемент 193). На входы данных
D
3
,
D
2
,
D
1
,
D
0
(выводы 9, 10, 1,15 счетчика СТ подан операнд 0100 (число
n
= 4) для фиксации окончания операции умножения, на вход сброса
R
(вывод 14) — уровень логического 0 (счетчик готов к работе). Синхроимпульсы подаются на вывод 4, а сигнал параллельной загрузки с нулевым активным уровнем — на вывод 11. Для формирования логического условия Х3 используется элемент 3ИЛИ–НЕ, на который подаются выходные сигналы
Q
2
,
Q
1
,
Q
0
(выводы 6, 2, 3) счетчика. При
Q
2
=
Q
1
=
Q
0
=0 формируется сигнал Х3 = 1, свидетельствующий об окончании операции умножения;
? 4–разрядный сумматор (библиотечный макроэлемент
SM
_
SC
), предназначенный для реализации операций сложения/вычитания в дополнительном коде, для чего к его четырем входам подключены логические элементы исключающее ИЛИ. На входы A3, А2, А1, А0 логических элементов подается множимое А = 1011 = (–510). Четыре других входа сумматора соединены с выходами Р7, Р6, Р5, Р4 регистра
RG
3
, а выходы сумматора — с входами данных
RG
3
. В режиме вычитания на входы сумматора должен поступать дополнительный код А3А2А1А0+1 операнда А. Такой режим реализуется путем подачи микрокоманды
Y
3
= 1 на управляющие входы логических элементов исключающей ИЛИ и на вход переноса сумматора (вывод 12);
? логические элементы, предназначенные для управления работой операционного автомата;
? генераторы сигналов
D
01
/
D
06
для формирования пускового импульса (ПИ) синхроимпульсов (СИ) и последовательности микрокоманд
Y
1
,
Y
2
,
Y
3
,
Y
4
, требуемой для перемножения двоичных четырехразрядных чисел 1011 и 0111 по алгоритму Бута.
Регистр
RG
1
(рис. 1.2.3,а), в котором множимое А =А3А2А1А0 = 1011 постоянно хранится в процессе выполнения всей операции умножения, в приведенную на рис. 1.2.3,а схему не включен. Программа
Micro
–
Logic
II располагает источниками логических уровней 0 и 1, поэтому значения разрядов А3 = 1, А2= 0, А1 = 1, А0= 1 множимого непосредственно подаются на входы сумматора
SM
_
SC
через элементы исключающее ИЛИ.
В исходном состоянии:
? на входы логических элементов исключающее ИЛИ подается множимое А = 1011 (при этом на входы сумматора поступает А = 1011 = — 510 при сложении и — А = 0101 = +510 при вычитании);
? на параллельные входы данных ВЗ, В2, В1, В0 регистра
RG
2
— операнд
B
= 0111 (+710);
? на входы данных
D
3
,
D
2
,
D
1
,
D
0
счетчика СТ операнд 0100 (410);
? на вход
R
сброса счетчика — логический 0 (счетчик готов к работе).
Организация управления операционным автоматом. Для управления узлами операционного автомата используются генераторы сигналов
D
01:
D
06. Помимо синхроимпульсов генераторы формируют (рис. 1.2.3,а):
? пусковой импульс ПИ для сброса 9–разрядного регистра
RG
3
,
RG
2
, Т (Р7…Р0 = 0…0, Х1 = 0) и загрузки счетчика
CT
числом 4 (
Q
3
Q
1
Q
0
= 100);
? микрокоманду
Y
1 — для загрузки регистра
RG
2
множителем В;
? микрокоманды
Y
2
,
Y
З
— соответственно для сложения и вычитания содержимого
RG
3
и
RG
1
с сохранением результата в
RG
3
;
? микрокоманду
Y
4
— для сдвига на один разряд вправо содержимого составного регистра
RG
3
,
RG
2
, Т и уменьшения на единицу содержимого счетчики СТ. Каждая микрокоманда действует в течение тактового периода СИ (двух тактов со значениями СИ = 0 и 1). Временная последовательность микрокоманд
Y
1
,
Y
2
,
Y
З
,
Y
4
выбирается на основании рассмотренного алгоритма Бута (рис. 1.2.1).
Для перемножения двоичных четырехразрядных чисел 1011 = —510 и 0111 =+710 временная последовательность сигналов представляет собой (рис. 1.2.4):
? пусковой импульс ПИ = 1 (такт 1);
? микрокоманду загрузки
Y
1
= 1 (такты 1, 2);
? микрокоманды
Y
3
= 1 (такты З, 4) и
Y
4
= 1 (такты 5, 6), реализующие согласно логическому условию Х2Х1 = 10 вычитание и сдвиг 1;
? микрокоманду
Y
4
= 1 (такты 7, 8, 9, 10) для реализации сдвигов 2 и 3, поскольку Х2Х1 =11;
? микрокоманды
Y
2
= 1 (такты 11, 12) и
Y
4
= 1 (такты 13, 14), выполняющие сложение и сдвиг 4 в соответствии с логическим условием Х2Х1 = 01.
Для составления схемы логики управления узлами операционного автомата использовалась табл. 1.2.2, в которой приведены:
? входы узла и подаваемые на них управляющие сигналы (с указанием выполняемой микрооперации);
? логические элементы, которые задействованы для подачи на вход управляющего сигнала.
Микрокоманда
Y
1
= 1, воздействуя на вход V (такты 0, 1), устанавливает регистр
RG
2
в режим параллельной загрузки разрядов ВЗ, В2, В1, В0 множителя. Загрузка происходит по СИ, поступающему через ЛЭ5 на вход С–вход регистра
RG
2
.
При исполнении микрокоманды
Y
2
:
? сигнал
Y
3
, поступающий на входы элементов исключающее ИЛИ, равен нулю поэтому реализуется операция сложения;
? сигнал
Y
2
= 1 через ЛЭ1 поступает на вход V регистра
RG
3
и переводит его в режим параллельной загрузки;
? сигнал
Y
2
= 1 через ЛЭ1, ЛЭ2 открывает доступ СИ на С–вход регистра
RG
3
для активизации параллельной загрузки выходных сигналов сумматора.
Отличие исполнения микрокоманды
Y
3
от микрокоманды
Y
2
состоит в том, что путем управления элементами исключающее ИЛИ и сумматора (подачей на вход переноса единичного сигнала) реализуется операция вычитания. Результат по–прежнему помещается в
RG
3
.
При исполнении микрокоманды
Y
4
с выхода генератора
D
06
снимается единичный сигнал, поэтому через открытые ЛЭ4, ЛЭ5, ЛЭ6 синхроимпульсы СИ поступают на С–входы регистров
RG
3
,
RG
2
, триггера Т и счетчика СТ, в результате чего происходит арифметический сдвиг содержимого составного регистра вправо на один разряд и уменьшение содержимого счетчика на единицу.
Принцип работы операционного автомата
. Для пояснения работы автомата на отдельных тактах воспользуемся временными диаграммами (рис. 1 2.4), полученными в результате компьютерного моделирования.
Пусковой импульс ПИ (такт 1), воздействуя на соответствующие входы (рис. 1.2.3, а), осуществляет сброс регистров
RG
3
,
RG
1
(Р7…Р0 = 0…0) и триггера Т (Х1 = 0), а также загрузку счетчика СТ числом 4 (
Q
3
Q
1
Q
0
– 100).
Во время тактов 1,2 действует микрокоманда
Y1
= 1, поэтому по срезу первого синхроимпульса СИ на втором такте осуществляется параллельная загрузка регистра
RG2
множителем В = 0111 (+710), в результате на выходе
RG2
в начале 3—го такта появляются сигналы Р3 = 0, Р2= 1, Р1 =0, Р0 = 1. Младший разряд
P0
регистра
RQ2
используется в качестве логического условия Х2.
После выполнения на 3–м и 4–м тактах микрокоманды
Y3
вычитания множимого А (—510) из содержимого регистра
RG3
(0000) в
RG3
загружается Р7Р6Р5Р4 = 0101 (+510). Затем выполняются арифметические сдвиги 1, 2, 3 (5–10 такты), приводящие к последовательному изменению 9–разрядного кода Р7Р6Р5Р4РЗР2Р1Р0: 010101110 (исходное состояние); 001010111; 000101011; 000010101 (конечное состояние на такте 11).
После трех сдвигов комбинация логических условий Х2Х1 =01, поэтому на 11–14 тактах выполняются операции суммирования
(Y2)
и сдвига 4
(Y4).
Из временных диаграмм
Q2Q1Q0(t),
отражающих работу счетчика СТ, видно, что после четвертого сдвига
(Y4
— такты 13, 14) счетчик оказывается пустым, поэтому на выходе логического 3ИЛИ–НЕ появляется сигнал ХЗ = 1 (в начале такта 14), свидетельствующий об окончании операции умножения.
На выходе регистровой пары
RG3, RG2
получаем окончательный результат — произведение (—510) х (+710) в виде 8–разрядного дополнительного кода Р7Р6Р5Р4РЗР2Р1Р0 = 11011101
,
который соответствует значению (—3510).
Макроэлемент операционного автомата
. Программа
Micro–Logic
II позволяет на основе логической схемы устройства (рис. 1.2.3,а) создать макроэлемент.
Макроэлемент операционного автомата с подключенными генераторами сигналов для его проверки представлен на рис. 1.2.3,б. Проверка работоспособности макроэлемента показала полное совпадение временных диаграмм, с временными диаграммами на рис. 1.2.4 для логической схемы операционного автомата. Использование макроэлементов при моделировании позволяет представить схемы сложных функциональных узлов в компактном виде (на одном экране), что значительно облегчает проведение исследований.