Логический синтез автомата управления АЛУ

Автор: Пользователь скрыл имя, 19 Марта 2013 в 18:53, курсовая работа

Краткое описание

ЦЕЛЬ РАБОТЫ Углубление и закрепление знаний по теории цифровых автоматов. Освоение методов абстрактного и структурного синтеза конечных автоматов и комбинационных логических схем.
Цифровые электронные вычислительные машины предназначены для обработки цифровой информации и являются частным, но наиболее распространенным видом цифровых автоматов. Для успешного изучения общих принципов обработки цифровой информации рационально, по возможности максимально, отвлечься от реального аппаратного обеспечения компьютера и рассматривать компьютер как абстрактный цифровой автомат, предназначенный для обработки информации, представленной в цифровой форме.

Оглавление

1. Задание.
2. Введение.
3. Алгоритм работы устройства управления.
3.1. Числовые примеры со всеми возможными вариантами.
3.2. Блок-схема алгоритма.
3.3.Автомат Мили.
4. Арифметико-логическое устройство (АЛУ).
5. Составление и минимизация логических выражений для выходов автомата Мили 6. Кодирование внутренних состояний автомата
6.1.Логический синтез
7. Заключение

Файлы: 1 файл

Курсовая ТА.doc

— 160.50 Кб (Скачать)

б)

a1

SM

c1

a2

SM

c2

an

SM

cn

Sga

SM

B1

   

b2

   

Bn

   

Sgb

 

P0

 

P1

   

P2

Pn-1

 

Pn

   
 

1

   

2

   

n

     

в)

a1

SM

c1

a2

SM

c2

an

SM

cn

Sga

SM

B1

   

b2

   

Bn

   

Sgb

 

P0

 

P1

   

P2

Pn-1

 

Pn

   
 

1

   

2

   

n

     

 

 

 

При сложении двух чисел, представленных в обратном или дополнительном коде, их знаковые разряды складываются аналогично цифровым, причем возможен перенос  единицы из старшего цифрового разряда  в знаковый.

Если оба операнда представлены в прямом коде и имеют одинаковые знаки, то над такими операндами выполняется процедура сложения и результату присваивается знак исходных операндов.

Рассмотрим примеры:

 

1)  210 + 410 = 610             2)  -210 - 410 = -610                           

   0. 0010                            а)   1. 1110                     б)    1. 1101

+ 0. 0100                               + 1. 1100                         + 1. 1011

   0. 0110 = 610                   1  1. 1010 = -610            1  1. 1000

                                                                                               +1   коррекция

                                                                                       1. 1001 = -610

 

Во втором примере  оба отрицательных слагаемых  представлены либо в дополнительном коде (а), либо в обратном коде (б). В первом случае результат получен в дополнительном коде, а во втором, после коррекции, - в обратном.

Если же операнды имеют разные знаки, то должна выполняться  процедура вычитания. Но, как уже  отмечалось, процедуру вычитания заменяют процедурой сложения, отрицательный операнд представляют в обратном или дополнительном коде, а положительный операнд - в прямом коде.

 

 

 

 

Например:

 

1)  410 - 210 = 210

     а)  0. 0100                        б)  0. 0100

       + 1. 1110                          + 1. 1101

1     0. 0010 = 210                 1  0. 0001

                                                          +1    коррекция

                                                   0. 0010 = 210

2)  410 - 410 = 0

    а)  0. 0100                           б)  0. 0100

       + 1. 1100                              + 1. 1011

   1   0. 0000 = 010                        1. 1111

                                                             +1  коррекция

                                                 1  0. 0000 = 010

3)  210 - 410 = -210

   а)  0. 0010                               б)  0. 0010

     + 1. 1100                                  + 1. 1011

        1. 1110 = -210                            1. 1101 = -210  коррекции нет.

 

В примерах 1а и 2а единица, выходящая за разрядную сетку, не учитывается.

Как видно из примеров процедура алгебраического  сложения с дополнительными кодами проще, чем с обратными кодами, т.к. в последнем случае при возникновении  единицы переноса за пределы разрядной сетки, выделенной для числа в формате с фиксированной запятой, приходится корректировать результат с помощью дополнительной процедуры прибавления единицы к результату. Нулевой результат получается или в прямом коде или же в обратном, что также требует коррекции результата. Поэтому в настоящее время на практике для представления отрицательных операндов используется в основном дополнительный код.

Таким образом, перед выполнением самой процедуры  алгебраического сложения в дополнительном коде нужно проанализировать знаки  слагаемых. Если они разные, то выполняется  алгебраическое сложение (фактически вычитание) без проверки на переполнение результата, т.к. его в этом случае просто не может быть. Но контролируется чтобы в результате не появился запрещенный отрицательный ноль. Если же у исходных операндов знаки одинаковы, то такой же знак предварительно присваивается результату и выполняется само сложение. Если знак окончательного результата не совпадает с предварительно присвоенным знаком, то это является признаком переполнения и следовательно, неправильного результата.

Еще раз подчеркнем, что результат алгебраического сложения операндов представленных в обратном и дополнительном кодах получается также в обратном и дополнительном коде соответственно.

 

Алгебраическое  сложение чисел, представленных в форме  с плавающей запятой

 

Нужно подчеркнуть, что при выполнении любых арифметических действий над операндами, представленными в форме с плавающей запятой, операции, выполняемые над мантиссами и порядками (или характеристиками) этих чисел, различны. Поэтому перед началом любой арифметической процедуры каждый из операндов "расчленяется": порядок (характеристика) отделяется от мантиссы операнда, что-бы можно было над ними выполнять необходимые отдельные процедуры. После выполнения конкретного арифметического действия и обязательной процедуры нормализации результата, его порядок или характеристика и мантисса "упаковываются" в обычный формат с плавающей запятой.

В случае алгебраического  сложения порядки операндов обязательно  должны быть одинаковыми. Поэтому в  начале процедуры сложения и вычитания чисел производится, при необходимости, выравнивание характеристик операндов. Для этого мантисса операнда с меньшей характеристикой сдвигается по разрядной сетке вправо с прибавление единицы к его характеристике при каждом сдвиге на один разряд. Эта процедура продолжается до тех пор пока характеристики обоих операндов не станут равными.

Полученная таким  образом характеристика, одинаковая для обоих операндов, присваивается, как предварительная, результату операции. Далее осуществляется сложение или  вычитание мантисс по правилам, аналогичным для чисел с фиксированной запятой, в частности мантисса одного из операндов преобразуется в дополнительный код для того чтобы процедуру вычитания свести к сложению. Если ответ получился в дополнительном коде, то его преобразуют в прямой, т.к. мантисса числа с плавающей запятой - это всегда модуль числа. Далее, при необходимости, выполняется нормализация и округление ответа. В процессе нормализации мантисса поразрядно сдвигается влево или вправо. При сдвиге влево на каждый разряд вычитается единица из характеристики, предварительно присвоенной ответу. При каждом сдвиге вправо - к ней прибавляется единица. Отметим, что сдвиг мантиссы вправо необходим в тех случаях, когда при сложении мантисс произошло переполнение разрядной сетки. В процессе этих последних операций определяются окончательные значения характеристики и мантиссы ответа.

Таким образом, операция нормализации числа состоит  из проверки выполнения условия 

0,12  m  1     

 

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

Нарушение нормализации может быть двух видов: нарушение  справа, т.е. когда величина результата больше или равна 1, и слева, когда  величина результата оказывается меньше 0,12.

Надо отметить, что при реализации алгоритмов математических операций в формате с плавающей  запятой каждый раз, когда осуществляется та или иная процедура, затрагивающая  характеристики операндов или результата, производится контроль над переполнением  и исчезновением порядка, т.е. контролируется условие

0  r  rmax ,

где rmax = l + pmax .

Рассмотрим пример:

Имеем 8-разрядную  мантиссу и 6-разрядный порядок, смещение равно 10002. Сложим 2 числа с мантиссами m1 = 0,10100000, m2 = 0,10000000 и с характеристиками r1 = 001011, r2 = 001010. Т.к. порядки разные надо их выравнивать: r1 - r2 = 000001, значит надо сдвинуть m2 на 1 разряд вправо, а к r2 прибавить 1. После преобразований получим:

 m2 = 0,01000000, r2 = 001010 + 000001 = 001011. Складываем мантиссы, получаем: m = m1 + m2 = 0,10100000 + 0,01000000 = 0,11100000, r = 001011.

Нормализация  ответа не нужна.

Модифицированный  прямой, обратный и дополнительный код

 

Эти коды отличаются от обычных прямых, обратных и дополнительных тем, что имеют по два знаковых разряда. При выполнении арифметических действий над двоичными числами эти два знака позволяют легко определить переполнение разрядной сетки. Если содержимое этих двух разрядов совпадает, то значит переполнение отсутствует. В противном случае в компьютере вырабатывается управляющий сигнал (сигнал переполнения) либо на останов компьютера, либо на устранение переполнения разрядной сетки.

Примеры.

1)   Сложить  два числа в модифицированном  коде:

X = 00. 01012, Y = 00. 00112 , X + Y = 510 + 310 = 810 

            00.  0101

        + 00.  0011

            00.  1000 = 810

 

2)   Сложить X = -510 = -01012 = 11. 0101 , Y = -810 = -10002 = 11. 1000 

          X + Y = -1310 

          11. 1011

       + 11. 1000

  1 11. 0011 = -1310

 

 

 

3)   Сложить X = 0,1101 , Y = 0,1101, X + Y = 2610

           00. 1101 

      + 00. 1101 

          01. 1010   различные знаковые разряды  свидетельствуют о переполнении  разрядной сетки.

 

4)    -8 - 8 = 0

         11. 1000

      + 11. 1000

  1 11. 0000 .

 

В последнем  примере получился отрицательный ноль, поэтому компьютер генерирует сигнал сбоя. Надо отметить, что в машинах 3-го и 4-го поколений модифицированный код не используется.

 

 

3.2. Блок-схема алгоритма

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.3.Автомат Мили

 

Абстрактный синтез включает в себя разработку алгоритма работы автомата и составление его формального описания в виде автоматных таблиц или в виде графа переходов. Алгоритм наиболее удобно и наглядно представлять в виде блок-схем. Разработка алгоритмов и блок-схем является наиболее творческой частью работы и плохо поддаётся формализации. По разработанной блок-схеме описание работы автомата проще всего составлять в виде графа переходов

Автомат Мили                                             



 






  yt = f1(xt, zt)                                                

zt+1 = f2(xt, zt)                                                

В автомате Мили выходной сигнал зависит не только от внутреннего  состояния автомата, но и от входного сигнала, поэтому  состояний можно задавать меньше, новое состояние наступает после выполнения одного или нескольких действий, выполняемых по разным условиям. В рассматриваемом нами примере  (см. рис.1.) всего три состояния (g1*, g2*, g3*, обозначены знаком Ä). Граф переходов приведен на рис.


 

 

 

 

 

 

 

 

 

Граф переходов для  автомата Мили строится подобно автомату Мура, только при переходах из одного состояния в другое по разным условиям выполняются различные операции (см. переход g0 ® g1 на рис.). Поэтому на дугах графа следует указывать и значения выходных сигналов.

 

 

 

 

 

4. Арифметико-логическое устройство (АЛУ)

 

Общая структура АЛУ  сложения чисел с фиксированной  точкой:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Информация о работе Логический синтез автомата управления АЛУ