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

СОДЕРЖАНИЕ:

 

1. Задание.

2. Введение.

3. Алгоритм работы  устройства управления.

3.1. Числовые  примеры со всеми возможными  вариантами.

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

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

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

5. Составление и минимизация  логических выражений для выходов автомата Мили                                                                                                   6. Кодирование внутренних состояний автомата

6.1.Логический  синтез

7. Заключение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Задание

Вариант

№

Операция

Код

Тип ЭКА

Тип автомата

10

Суммирование с плавающей точкой

Обратный

RS-триггер

Мили


 

ЦЕЛЬ РАБОТЫ

Углубление и закрепление знаний по теории цифровых автоматов. Освоение методов абстрактного и структурного синтеза конечных автоматов и комбинационных логических схем.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.Введение

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Алгоритм работы устройства     управления

3.1. Числовые примеры со всеми возможными вариантами

 

A =  mq p ,

 

где m - мантисса числа, q - основание системы счисления, q p - порядок числа, который для упрощения в примерах будем иногда изображать как P. Тогда очевидно, что p - это показатель степени порядка, который обычно называют просто порядком числа, т.к. в основном всегда q = 2. Предыдущее выражение можно записать в следующем виде:

 

A =  mAPA,

 

имея в виду, что в компьютерах обычно q = 2.

Так, например, число 1984 в форме с плавающей запятой  в десятичной системе счисления  можно записать следующим образом:

 

0

 

1984.010

0.1984104

19.84102

19840010-2


и т.д.

 

Число с плавающей  запятой принято представлять в  так называемом нормализованном виде для максимально точного представления числа. Если выполняется неравенство

 

q-1 |m| <1,

 

а в случае двоичной системы счисления:

 

0.5 |m| <1,

 

то считается, что число представлено в нормализованном виде. Например, 0,1984104 является нормализованным видом числа 1984 в форме с плавающей запятой в десятичной системе счисления.

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

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

Для представления  двоичного числа в форме с  плавающей запятой в разрядной сетке, выделенной для этой цели, отводится по одному разряду для представления знака числа Sm и знака показателя степени порядка SP; определенное число разрядов для представления значения самого показателя p, а также разряды для размещения значения модуля мантиссы m. Например, возможен следующий вариант:

 

Sp p Sm m 

 

т.е.

[A] = Sp pASmmA

 

Обычно в формате  с плавающей запятой вместо показателя p используют так называемый "смещенный порядок":

 

r =  p + l,

 

где l - избыток (смещение), значение которого подбирается таким образом, чтобы при изменении значения показателя от некоторого минимального значения -|pmax| до максимального +|pmax|, характеристика r менялась от 0 до rmax. Характеристика не меняет своего знака. В этом случае отпадает необходимость в отображении знака порядка Sp. Для этого принимается, что

 

l = 2k-1,

 

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

Тогда формат числа  с плавающей запятой можно  представить, в частности, следующим образом:

 

Sm r m 

 

т.е.

[A] = Sm r mA

 

Такой формат и  используется, в основном, в настоящее  время.

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

Если для представления  показателя порядка выделены 4 разряда, то

l = 23 = 810 = 10002. Для этого случая в таблице приведены значения показателя порядка, характеристики и мантиссы для некоторых чисел, представленных в форме с плавающей запятой.

Т а б л  и ц а 

A10

p10

r10

m2

0

0

8

0.0

1

1

9

0.1

2

2

10

0.1

3

2

10

0.11

0.5

0

8

0.1

0.25

-1

7

0.1

0.75

0

8

0.11

0.375

-1

7

0.11


 

Например, в 16-ти разрядных компьютерах для представления  двоичного числа в форме с  плавающей запятой с обычной  точностью отводится 4 байта, т.е. 2 16-разрядных слова.

Разряды 147 старшего слова числа используются для  представления характеристики числа. В остальных разрядах старшего слова и во всем младшем слове размещается модуль мантиссы числа. 15-й разряд старшего слова используется под знак числа.

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

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

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

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

8-разрядное поле  порядка позволяет изменять показатель  порядка в пределах от -12810 до +12710, причем показатель порядка записывается с избытком l = 2008 или 12810.

В отличие от показателя порядка, как уже отмечалось, характеристика не меняет своего знака и в данном случае изменяется от 0 (при p = -12810) до 3778 (при p = +12710), причем r = 2008 при p = 0. Исключение составляет число 0: ноль с обычной и двойной точностью выражается нулевой характеристикой и нулевой мантиссой.

Примеры представления чисел в форме с плавающей запятой в

16-разрядных  компьютерах приведены в таблице:

Т а б л  и ц а

A10

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

A8

1

 

1

           

1

             

040200

2

 

1

         

1

               

040400

7

 

1

         

1

1

1

1

         

040740

10

 

1

       

1

     

1

         

041040

0.5

 

1

                           

040000

0.25

   

1

1

1

1

1

1

1

             

037600

-2

1

1

         

1

               

140400

-7

1

1

         

1

1

1

1

         

140740

0

                               

000000


 

А8 - представление  старшего слова числа в форме  с плавающей запятой в восьмеричном коде.

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

Например, в микропроцессоре 80386 предусмотрено три варианта представления числа в форме с плавающей запятой: с разрядностью 32, 64 и 80 бит. В первом случае под характеристику выделяется 7 разрядов, а в остальных - по 8.

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

Как уже отмечалось, модуль мантиссы нормализованного числа - mА, представленного в формате с плавающей запятой лежит в пределах:

 

2-1  mА  (1 - 2-n)

 

где n - число разрядов, выделенных для представления мантиссы числа А. Если для представления порядка (p) выделено k разрядов, то

 

pmin = -2k   b   pmax = (2k -1)

 

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

 

2Pmin2-1  A  (1 - 2-n)2Pmax

 

или

.

 

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

Структурные схемы двоичных сумматоров, предназначенных для  выполнения алгераического сложения чисел  представленных в обратном и дополнительном кодах приведены на рисунке в) и б) соответственно, а на рисунке а) - для арифметического сложения чисел, представленных в прямом коде. На этих рисунках символами Sg обозначаются значения знаковых битов операндов и результата.

а)

a1

SM

c1

a2

SM

c2

an

SM

cn

Sga

SM

B1

   

b2

   

Bn

       

P0

 

P1

   

P2

Pn-1

       
 

4

   

5

   

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

     

в)

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. Арифметико-логическое устройство (АЛУ)

 

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


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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