Курсовой проект по Теории Автоматов (1082220), страница 2
Текст из файла (страница 2)
Описание работы автомата
Для выполнения первой операции нужно подать код 01 на входы К1,К2. Автомат перейдет в состояние записи первой операции и будет в нём находится пока не поступит код 00. После этого автомат перейдёт в состояние работы первой операции и будет в нём находится до поступления от операционного автомата условия завершения работы, после чего автомат перейдёт в состояние окончания первой операции. В этом состоянии автомат будет находится до получения на входы К1,К2 кода 01 (начало первой операции), кода 10 (начало второй операции) или кода 11 (возврат к начальному состоянию).
Схема взаимодействия автоматов
-
Действие вычислительного устройства, представленного композицией управляющего и операционного автоматов основано на том, что от операционного автомата к управляющему поступают признаки или условия, а от управляющего к операционному поступают управляющие сигналы. На управляющий автомат поступают коды операций. На операционный автомат поступают входные данные и выходят выходные данные. Также с управляющего автоматы могут идти некоторые выходные сигналы.
-
По условию количество входных и выходных контактов должно быть ≤ 40. Поэтому придётся использовать шину входных сигналов для передачи также и выходных сигналов.
Разработка Управляющего Автомата
-
Так как управляющие сигналы одинаковы для обоих операционных автоматов, их можно посылать и на первый и на второй автомат. Условия с обоих операционных автоматов нужно послать на управляющий автомат.
-
Входная шина используется также и как выходная. По ней будут поступать входные данный на входы операционных автоматов, и на неё же будут поступать выходные данные с выходов операционных автоматов.
-
С управляющего автомата выходит флаг, показывающий, какая операция выполнялась, мультиплексор MX1 выбирает операционный автомат, данные с которого нужно пропустить на выход в соответствии с этим флагом.
-
Управляющий сигнал Y2 вызывает переход операционного автомата в состояние окончания операции. Этот же управляющий сигнал должен разрешить подачу выходных данных на входную шину. Мультиплексор MX2 пропускает выходные данные в соответствии с управляющим сигналом Y2.
Описание вычислительного устройства
Таким образом получается вычислительное устройство, представляющее из себя композицию управляющего автомата и двух операционных автоматов, способное выполнять требуемые операции.
Управление работой вычислительным устройством происходит по входам K1,K2, на которые подаются коды операций. Выбор выполняемой операции производится в соответствии с кодом операции, поданном на управляющие входы. На входную/выходную шину нужно подавать входные данные во время записи и снимать выходные данные во время завершения преобразования.
Количество проводов в шине 32, что соответствует разрядности обрабатываемых чисел. Десятичное число, записанное с использованием тетрад, имеет разрядность 8. Количество управляющих входов 2. Суммарное количество всех контактов 34.
Тестовые примеры
Пример № 1
Задача: преобразовать число с плавающей точкой в целое в дополнительном коде.
Знак (1 разряд) | Порядок (8 разрядов) Смещённый код | Мантисса (23 разряда) Прямой код |
0 | 10000011 | 10100000000000000000000 |
Для переключения вычислительного устройства в режим выполнения первой операции подаем на управляющие входы К1,К2 код первой операции (01).
Вычислительное устройство переходит в состояние записи первой операции. В это время нужно подать входные данные на шину.
Подача кода 00 на управляющие входы переводит автомат в режим вычисления.
В соответствии с алгоритмом преобразования операционный автомат будет сдвигать мантиссу влево и уменьшать порядок на единицу. После 3 тактов работы все разряды порядка, кроме старшего, становятся равны 0, что вызывает сигнал УСЛ1, который переводит управляющий автомат в состояние окончания преобразования.
На выход из операционного автомата поступают 32 разряда числа, преобразованные в дополнительный код, потому что не было переполнения.
Управляющий сигнал У2 сохраняет результат на регистрах операционного автомата и разрешает его подачу на входную шину, с которой снимаем ответ:
Знак (1 разряд) | Число (31 разряд) (Дополнительный код) |
1 | 1111111111111111111111111111011 |
Пример № 2
Задача: преобразовать число с плавающей точкой в целое в дополнительном коде.
Знак (1 разряд) | Порядок (8 разрядов) (Смещённый код) | Мантисса (23 разряда) (Прямой код) |
0 | 10011110 | 11111010000000000000000 |
Для переключения вычислительного устройства в режим выполнения первой операции подаем на управляющие входы К1,К2 код первой операции (01).
Вычислительное устройство переходит в состояние записи первой операции. В это время нужно подать входные данные на шину.
Подача кода 00 на управляющие входы переводит автомат в режим вычисления.
В соответствии с алгоритмом преобразования операционный автомат будет сдвигать мантиссу влево и уменьшать порядок на единицу. После 23 тактов работы первый разряд мантиссы становится равен 1, что означает переполнение и вызывает сигнал УСЛ1, который переводит управляющий автомат в состояние окончания преобразования.
На выход из операционного автомата поступают 24 разряда числа, преобразованные в дополнительный код, а остальные 8 разрядов заменяются оставшимся порядком, так как было переполнение и преобразование не закончено, ответ выводится в коде с плавающей точкой и мантиссой в дополнительном коде.
Управляющий сигнал У2 сохраняет результат на регистрах операционного автомата и разрешает его подачу на входную шину, с которой снимаем ответ:
Знак (1 разряд) | Порядок (8 разрядов) (Смещённый код) | Число (23 разряда) (Дополнительный код) |
1 | 10000111 | 00000110000000000000000 |
Пример № 3
Задача: преобразовать правильную двоичную дробь в десятичную.
Подразумевается обработка только мантиссы. Порядок и знак отсутствуют.
Двоичная дробь (32 разряда) |
0,1110000000000000000000000000000 |
Для переключения вычислительного устройства в режим выполнения второй операции подаем на управляющие входы К1,К2 код второй операции (10).
Вычислительное устройство переходит в состояние записи второй операции. В это время нужно подать входные данные на шину.
Подача кода 00 на управляющие входы переводит автомат в режим вычисления.
В соответствии с алгоритмом преобразования операционный автомат будет делить десятичную дробь на 2, прибавлять к её целой части младший разряд двоичной дроби и сдвигать двоичную дробь вправо. После 32 тактов работы двоичная все разряды двоичной дроби будут сдвинуты и к десятичной дроби будет прибавлен последний старший разряд двоичной дроби. Все разряды счетчика станут равны 1, что вызывает сигнал УСЛ2, который переводит управляющий автомат в состояние окончания преобразования.
На выход из операционного автомата поступают 32 разряда десятичной дроби, записанной тетрадами (8 десятичных разрядов). В данном преобразовании не произошло потери младших разрядов.
Управляющий сигнал У2 сохраняет результат на регистрах операционного автомата и разрешает его подачу на входную шину, с которой снимаем ответ:
Десятичная дробь (32(8) разрядов) |
0000 1000 0111 0101 0000 0000 0000 0000 (0,875) |
Пример № 4
Задача: преобразовать правильную двоичную дробь в десятичную.
Подразумевается обработка только мантиссы. Порядок и знак отсутствуют.
Двоичная дробь (32 разряда) |
0,0010100001000000000000000000000 |
Для переключения вычислительного устройства в режим выполнения второй операции подаем на управляющие входы К1,К2 код второй операции (10).
Вычислительное устройство переходит в состояние записи второй операции. В это время нужно подать входные данные на шину.
Подача кода 00 на управляющие входы переводит автомат в режим вычисления.
В соответствии с алгоритмом преобразования операционный автомат будет делить десятичную дробь на 2, прибавлять к её целой части младший разряд двоичной дроби и сдвигать двоичную дробь вправо. После 32 тактов работы двоичная все разряды двоичной дроби будут сдвинуты и к десятичной дроби будет прибавлен последний старший разряд двоичной дроби. Все разряды счетчика станут равны 1, что вызывает сигнал УСЛ2, который переводит управляющий автомат в состояние окончания преобразования.
На выход из операционного автомата поступают 32 разряда десятичной дроби, записанной тетрадами (8 десятичных разрядов). В данном преобразовании роизошла потеря 3 младших разрядов, что привело к небольшой потере точности преобразования.
Управляющий сигнал У2 сохраняет результат на регистрах операционного автомата и разрешает его подачу на входную шину, с которой снимаем ответ:
Десятичная дробь (32(8) разрядов) |
0000 0001 0101 0111 0010 0010 0101 00101 (0,1572265{625}) |
13