
- •Постановка и анализ технического задания
- •1.1 Постановка задачи
- •1.2 Словесное описание используемого алгоритма
- •Числовые примеры
- •1.3.1 Пример 1. Штатная ситуация
- •1.3.2 Пример 2. Умножение положительного числа на отрицательное
- •1.3.3 Пример 3. Умножение отрицательного числа на отрицательное
- •1.3.4 Пример 4. Умножение на 0
- •Разработка операционной части автомата
- •2.1 Выбор функциональной схемы операционной части устройства и определение списка микроопераций и логических условий
- •2.1.1 Описание операционного автомата
- •2.1.2 Управляющие и осведомительные сигналы
- •2.2 Разработка содержательной граф-схемы алгоритма
- •2.3 Синтез фс оа
- •Разработка управляющей части автомата
- •3.1 Построение отмеченной граф-схемы алгоритма
- •3.2 Построение графа автомата Мили и выбор структурной схемы управляющего автомата
- •3.3 Сравнения кодирования внутренних состояний для модели Мили на разных элементах памяти
- •3.3.1 Кодирование внутренних состояний для модели Мили на d-триггерах
- •3.3.2 Кодирование внутренних состояний для модели Мили на счётчике
- •3.4 Разработка функциональной схемы управляющего автомата
- •Заключение
- •Перечень сокращений
- •Список литературы
1.3.4 Пример 4. Умножение на 0
Исходные данные:
C = 710 = 0,0111*242
D = 010 = 0,0000*242
Определим знак результата 0⊕0 = 0
Множитель равен «0»
Так как один из операндов равен “0” рез-т = 0,0000
Разработка операционной части автомата
2.1 Выбор функциональной схемы операционной части устройства и определение списка микроопераций и логических условий
Операционный автомат (ОА) должен обеспечивать:
Хранение операндов и СЧП.
Проверку операндов на равенство нулю и выдачу нулевого результата, если один из сомножителей равен нулю.
Суммирование и вычитание множимого из СЧП.
Сдвиг множителя и СЧП..
Подсчет количества циклов умножения.
Выявление необходимости коррекции псевдо произведения.
Вычитание множимого из СЧП.
Также при разработке ОА было учтено следующее:
Из описания 1 способа следует, что регистр СЧП (и, как следствие, сумматор) имеет двойную разрядность. Но, поскольку выходная шина имеет разрядность
, то младшие разряды произведения округляются, поэтому не имеет смысла хранить их и можем сократить разрядность суммы частичных произведений и сумматора до .
Если один из операндов равен нулю, то и знак результата должен быть равен нулю, вне зависимости от знака второго операнда.
С учетом вышесказанного, функциональная схема операционного автомата должна содержать:
32-разрядный сдвиговый регистр RG1 для хранения множителя.
32-разрядный регистр RG2 для хранения множимого.
32-разрядный сдвиговый регистр RG3 для хранения СЧП
32-разрядный сумматор с входом и входом переноса для суммирования СЧП и множимого
6-разрядный счетчик CT2 для подсчета циклов умножения.
элемент "ИЛИ" c инверсным выходом для проверки на ноль множимого и множителя.
32-разрядный Мультиплексор для выбора множителя или множимого для сложения.
32-разрядный элемент “Исключающее ИЛИ” для перевода множителя в обратную форму.
32-разрядный элемент “Исключающее ИЛИ” для перевода множимого в обратную форму.
2 D-триггера для хранения знаков множимого и множителя.
2-разрядный элемент “ИЛИ” для признака коррекции
2-разрядный элемент Исключающее ИЛИ”, 2 2 разрядных элемента “И”, 2 элемента “НЕ” для определения знака произведения
Усилитель-формирователь для выдачи результата на шину ШИВых.
2.1.1 Описание операционного автомата
Операнды разрядностью 4 байта поступают по входной шине в дополнительном коде, результат в дополнительном коде выводится по выходной шине.
В регистр RG2 поступает число без знака, знаковый разряд заполняется “0”. Поэтому не сдвиговый регистр RG2 имеет 32 разряда.
В сдвиговом регистре RG1 32 разряда. Там хранится множитель, знаковый разряд заполняется “0”. Перед циклом умножения множитель проверяется на 0, затем, в цикле регистр сдвигается вправо.
Регистр RG3 имеет 32 разряда и является сдвиговым в право. В данном регистре храниться результат умножения.
В СТ2 7 разрядов. В начале записывается число 2, для того чтобы после 31 такта цикла умножения в старшем разряде счетчика появилась единица - сигнал остановки цикла умножения.
В D-триггер T1 записывается знак множителя.
В D-триггер T2 записывается знак множимого.