Узел преобразования чисел

ВВЕДЕНИЕ



     Режим работы данного узла - преобразование чисел, поэтому

стоит поговорить о самих числах и их представлении в ЭВМ.

     В ЭВМ используются двоичные числа,  которые  не  привычны

обыкновенному человеку,  привыкшему к  арабским  -  десятичным

числам. Но для ЭВМ операции и само хранение двоичных чисел бо-

лее удобно. Двоичные числа - это числа, составленные из 0 и 1.

Например:



     Десятичные числа   Двоичные числа

            0                0

            1                1

            2                10

            3                11

            4                100

            5                101

            6                110

                    и т.д.



     С физической точки зрения,  1 можно представить как неко-

торый импульс/уровень напряжения, а 0 - как отсутствие таково-

го. Тогда, устанавливая некоторый порог напряжения, можно все,

что выше этого порога считать 1, а что ниже - 0. С десятичными

числами пришлось бы поступить сложнее -  пришлось  бы  вводить

несколько пороговых уровней и на порядок  усложнились  бы  все

узлы и блоки ЭВМ.  Поэтому в современных ЭВМ используются дво-

ичные числа и двоичная арифметика.

     Также в  современных  ЭВМ  применяется  шестнадцатиричная

арифметика. Это связано с тем,  что очень легко выполнить пре-

образование из шестнадцатиричной системы исчисления  в  двоич-

ную и наоборот.  Одна шестнадцатиричная  цифра  представляется

четыремя двоичными, например:



        Десятичные      Двоичные        Шестнадцатиричные

        1               0001            1

        9               1001            9

        10              1010            A

        11              1011            B

        12              1100            C

        15              1111            F

                и т.д.



     Принятая минимальная единица информации в ЭВМ  -  1  бит.

Один бит равен одной двоичной цифре.  Более  крупной  единицей

является байт.  Один байт равен 8 битам.  Существуют  и  более

крупные единицы - слово (2 байта),  двойное слово  (4  байта),

килобайт (1024 байта), мегобайт (1024 Кбайта) и т.д.

     В данном курсовом, все операции производятся с восьмираз-

рядными числами, т.е. с числами, размером 1 байт.

     Немного надо сказать о представлении чисел в ЭВМ.

     Числа делятся на целые и вещественные.  Это деление,  ко-

нечно весьма условно, но хорошо подходит для описания хранения

и операций над числами в ЭВМ.  Чтобы сильно не  углубляться  в

общности, рассмотрим конкретный вариант, используемый в данном

курсовом - размер чисел 8 байт.

     Как будут выглядеть целые числа - показано  в  вышеприве-

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

     Существует 3 наиболее распространенных варианта кодирова-

ния: прямой код, обратный код и дополнительный код.

     Далее введем одно обозначение.  Если  после  цифры  стоит

"d" - это десятичная цифра, "b" - двоичная, а "h" - шестнадца-

тиричная.

     Прямой код - это так сказать "естественный" код,  то есть

1d=0001b, 10d=1010b, 15d=1111b и т.д.

     Обратный код образуется из прямого  путем  инвертирования

всех разрядов прямого кода, например 1d=0001b в прямом=1110b в

обратном, 10d=1010b в прямом=0101b в обратном коде.

     Дополнительный получается из обратного, путем прибавления

к младшему разряду 1.

     Обычно,  прямой код используется для хранения положитель-

ных чисел, а обратный и дополнительный - для отрицательных чи-

сел.

     В нашем курсовом,  вся работа с числами ведется в  прямом

коде.

     Но выше мы рассматривали только целые числа, а как посту-

пить с дробными?

     Существует два возможных варианта хранения - в формате  с

фиксированной точкой и в формате с плавающей  точкой.  Покажем

"в живую" эти форматы на примере:

     1. С фиксированной точкой:



     5.8 d = 0 0101 110 b

             T -T-- -T-

             ¦  ¦    L--- цифры после запятой (.8)

             ¦  L-------- цифры до запятой (5.0)

             L----------- знаковый разряд (0='+', 1='-')



     Но таким образом большие вещественные числа  хранить  не-

удобно и неэффективно.  Поэтому  используется  второй  вариант

хранения:

     2. С плавающей точкой.



     5.8 d = 0 1001 011 b

             T -T-- -T-

             ¦  ¦    L--- порядок числа

             ¦  L-------- мантисса числа

             L----------- знаковый разряд



     То есть в формате с плавающей точкой хранится 2  числа  -

порядок и мантисса.  Так как порядок может быть и  отрицатель-

ным, то приняли еще одно правило: порядок всегда смещенный. То

есть если порядок колеблется от +128d до -127d  то  к  порядку

всегда прибавляют 127d и тогда он колеблется в пределах  от  0

до +255d и таким образом нам не приходится хранить знак числа.

     В связи с такими разными форматами представления  чисел в

ЭВМ и был разработан данный узел, задача которого - преобразо-

вание чисел из формата с фиксированной точкой в формат с  пла-

вающей точкой.



                ВЫБОР СТРУКТУРЫ УЗЛА



     Так как по заданию ввод/вывод в данном узле должен проис-

ходить параллельно,  то потребуется 2 регистра (один для вход-

ных данных, один для выходных),  разрядность которых исходя из

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

ется 1 восьмиразрядный регистр (для хранения и работы  с  ман-

тиссой) и один четырехразрядный регистр и  один  сумматор  для

обработки порядка.  Дополнительно также потребуется 13 элемен-

тов И-НЕ. Это пока все без доказательства - оно будет позже. В

качестве  8-ми  разрядных  регистров   нам   хорошо   подходят

К155ИР13,  в качестве 4-х разрядного - К155ИР1.  Также мы  ис-

пользуем сумматор  К155ИМ3,  а  для  дополнительной  логики  4

микросхемы К155ЛА3.  Итого вся схема собрана  собрана,  как  и

требовалось на микросхемах серии К155.  Альтернативный вариант

схемы будет рассмотрен далее.  Общая схема узла  приводится  в

приложении.



                РАСЧЕТ ПОСТРОЕНИЯ И ОПИСАНИЕ

                    ПРИНЦИПИАЛЬНЫХ СХЕМ



     Как же именно, с моей точки зрения,  должен работать дан-

ный узел? В целом его работу можно описать так:

     Обозначим:

     1. Число с фиксированной точкой



     S1.I1.R1

     ¦  ¦  L-- цифры после запятой, 3 разряда

     ¦  L----- цифры до запятой, 4 разряда

     L-------- знак, 1 разряд



     2. Число с плавающей точкой



     S2.M2.P2

     ¦  ¦  L-- порядок, 3 разряда

     ¦  L----- мантисса, 4 разряда

     L-------- знак, 1 разряд.



     Учитывая приведенные выше обозначения,  общий принцип ра-

боты данного узла можно изобразить так:



     Входные¦S1¦-------------+знак+------------->¦S2¦Выходные

     данные ¦I1¦--¬  ----------¬              -->¦M2¦данные

            ¦R1¦-¬¦  ¦хранение ¦              ¦->¦P2¦

                 ¦L->¦и работа ¦-¬ ---------¬ ¦¦

                 L-->¦с мантис-¦ ¦ ¦нормали-¦--¦

                     ¦сой числа¦ L>¦зация   ¦  ¦

                     L---------- ->¦резуль- ¦---

                     ----------¬ ¦ ¦тата    ¦

                     ¦хранение ¦ ¦ L---------

                     ¦и работа ¦--

                     ¦с поряд- ¦

                     ¦ком числа¦

                     L----------



     Словесно, алгоритм преобразования можно описать так:

     1. Занесение исходных данных в регистр RG1.

     2. Занесение мантиссы числа с регистр RG2.

     3. Занесение 7d(111b) в регистр порядка RG4 (автоматичес-

     кий сдвиг на 4 разряда + 3, так как порядок смещенный).

     4. Нормализация результата:

     а. Если мантисса не нормализована, т.е. старший бит равен

     "0", то сдвигаем мантиссу влево на 1 разряд с помощью ре-

     гистра RG2 и с помощью сумматора SM вычитаем 1 из регист-

     ра RG4,  который содержит порядок числа и заносим резуль-

     тат снова в регистр RG4. Возвращаемся к пункту 4.

     б. Если в старшем разряде мантиссы  "1",  то значит число

     нормализовано и мы переходим к пункту 5.

     5. Занесение результата в регистр RG3



     Это было о алгоритме.  Как же работает сама схема  и  от-

дельные ее части?

     Сначала о частях.  Рассмотрим два элемента данной  схемы:

сумматор и регистр.



                        СУММАТОР



     Формулы для суммы и переноса  и  i-том  разряде  выглядят

так:                   _ _      _   _      _ _

     S(i)=a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1)

                     _            _            _

     P(i)=a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1),

где:

     S(i) - сумма в i-ом разряде,

     P(i) - перенос в i-ом разряде,

     a,b - слагаемые в i-ом разряде,

     P(i-1) - перенос из i-1 разряда.



     Один из вариантов схемы для реализации  такого  сумматора

(точнее говоря элемента сумматора для одного разряда, из кото-

рых можно построить сумматор любой разрядности) выглядит так:



     Формирователь суммы (вариант комбинационного сумматора) :



P(i-1)-T--------------------¬     --T-----¬

       ¦                    L---T-+&¦1    ¦

a----T-+---------T--------------+-+ ¦     ¦

     ¦ ¦         ¦           --T+-+ ¦     ¦

b----+T+---------+------------ ¦¦ +-+     O-¬

     ¦¦¦  ----¬  L-------------++-+&¦     ¦ ¦

     ¦¦¦--+&  ¦   ------------T++-+ ¦     ¦ ¦

     ¦¦L+ ¦   O----        ---+++-+ ¦     ¦ ¦

     ¦¦ L-+   ¦      ----¬ ¦  ¦¦¦ L-+------ ¦  ----¬

     ¦¦   L----    --+&  ¦ ¦  ¦¦¦ --T-----¬ L--+&  ¦

     ¦L------------+ ¦   O-+  ¦L+-+&¦1    ¦    ¦   O-- S(i)

     ¦    ----¬    L-+   ¦ ¦  L-+-+ ¦     ¦ ---+   ¦

     ¦  --+&  ¦      L---- ¦ ---+-+ ¦     ¦ ¦  L----

     L--+ ¦   O-------¬    ¦ ¦  ¦ +-+     O--

        L-+   ¦       ¦    ¦ ¦  L-+&¦     ¦

          L----       L----+-+----+ ¦     ¦

                           L------+ ¦     ¦

                                  L-+------

     Этот элемент сумматора работает по  несколько  измененной

формуле (в связи с базисом реализации И-НЕ и И-ИЛИ-НЕ):



          _______________________________________________

           _____________________   _____________________

                        _ _        _   _      _ _

     S(i)=(a*b*P(i-1)+a*b*P(i-1))*(a*b*P(i-1)+a*b*P(i-1))



     Можно показать, что формирователь переноса строится абсо-

лютно аналогично.

     Затем перенос из i-того разряда  передается  на  (i+1)-ый

разряд, а сумма i-того разряда выводится.  Соединяя такие бло-

ки, можно получить сумматор любой разрядности.

     Таким образом,  в представленном сумматоре сумма формиру-

ется параллельно,  а перенос последовательно.  Данный сумматор

не отличается высоким быстродействием, а для повышения быстро-

действия используют так называемый сквозной и групповой  пере-

нос.

     В качестве элементов для  такого  сумматора  можно  взять

микросхемы К155ЛА3 и две К155ЛР4.

     Возможно также построение сумматоров  на  основе  тригге-

ров - тогда сумматор будет  накапливающим,  то есть  результат

суммы будет доступен  для  считывания  даже  после  отключения

входных сигналов.



                        РЕГИСТР



     Регистры в данном курсовом проекте используются для  хра-

нения и преобразования (сдвига) мантиссы и  порядка.  В  целом

регистры делятся на параллельные,  последовательные и комбини-

рованные. В нашем узле используются возможности как параллель-

ных (для хранения) так и последовательных (для сдвига) регист-

ров.

     Как же строятся регистры? Регистры строятся на  основании

триггеров, количество которых зависит от разрядности регистра.



                Параллельные регистры.



     Вот пример простейшего параллельного однофазного регистра

на RS-триггерах:



Вывод прямого кода----------------T---------------------------

Ввод---T--------------------------+---------------------------

       ¦ ----¬     ----T------¬   ¦ ----¬

       L-+&  ¦     ¦   ¦ TT   ¦   L-+&  ¦

         ¦   O-----O S ¦      +-¬   ¦   O-------¬

 X(i) ---+   ¦     ¦   ¦      ¦ L---+   ¦       ¦

         L----     +---+      ¦     L---- ----¬ ¦ ----¬

                   ¦   ¦      ¦   --------+&  ¦ L-+&  ¦

                ---O R ¦      O----       ¦   O-¬ ¦   O-- X(i)

                ¦  ¦   ¦      ¦        ---+   ¦ L-+   ¦

                ¦  L---+-------        ¦  L----   L----

Установка "0"---+----------------------+----------------------

Вывод обратного кода-------------------+----------------------



     Эта схема только для одного разряда,  но  соединив  такие

блоки можно получить регистр любой разрядности. Условное обоз-

начение для 4-х разрядного регистра:



             ---T----T--¬

         ----+S1¦RG  ¦  ¦

             ¦  ¦    ¦1 +---

         ----+S2¦    ¦  O---

             ¦  ¦    ¦2 +---

         ----+S4¦    ¦  O---

             ¦  ¦    ¦4 +---

         ----O R¦    ¦  O---

             L--+----+---



     Такой регистр является 2-х тактным, поскольку ввод инфор-

мации производится в 2 такта:  первым тактом на шину "Уст.  0"

подается 0 сигнал для установки в 0 всех триггеров,  при  этом

на шине "Ввод" - 0;  вторым тактом устанавливается 1 на  шинах

"Уст. 0" и "Ввод" и значения разрядов X1,X2,..,X(i),.. записы-

ваются по входу S триггеров. Ввод - в прямом коде. Вывод - как

в прямом так и в  обратном.  Для  вывода  в  нужном  нам  коде

подается 1 на нужную нам шину,  причем одновременная подача  1

на обе шины запрещена.



     Парафазный регистр на RS-триггерах:



Ввод кода---T-------------------------------------------------

            ¦ ----¬     ----T------¬      ----¬

            +-+&  ¦     ¦   ¦ TT   ¦ -----+&  ¦    _

            ¦ ¦   O-----O S ¦      +--    ¦   O--- X(i)

     X(i) --+-+   ¦     ¦   ¦      ¦    --+   ¦

            ¦ +---+     +---+      ¦    ¦ +---+

            L-+&  ¦     ¦   ¦      ¦ ---+-+&  ¦

     _        ¦   O-----O R ¦      O--  ¦ ¦   O--- X(i)

     X(i) ----+   ¦     ¦   ¦      ¦    +-+   ¦

              L----     L---+-------    ¦ L----

Вывод кода------------------------------+---------------------



     Также как и в предыдущем случае (и как будет во всех  по-

следующих) это схема всего одного  разряда,  соединяя  которые

вместе можно получить регистр любой разрядности.

     Отличие данного регистра  от  предыдущего  заключается  в

том,  что ввод информации осуществляется путем подачи  "1"  на

шину "Ввод" без предварительной установки в 0, т.е. за 1 такт.

Это объясняется парафазным представлением вводимого кода.  Вы-

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

"Вывод".



     Однофазный регистр на D-триггерах:



              ----T--------¬

           ---O S ¦ TT     ¦

              ¦   ¦        +---

      X(i) ---¦ D ¦        ¦

              ¦   ¦        ¦      ----¬

        ----->¦ C ¦        ¦    --+&  ¦

        ¦     ¦   ¦        O----- ¦   O--- X(i)

        ¦  ---O R ¦        ¦    --+   ¦

        ¦     L---+---------    ¦ L----

Ввод----+-----------------------+--------------

Вывод прямого кода--------------+--------------



     Значения подаются на входы D соответствующих триггеров, а

сигнал "Ввод" подается подается на входы C,  причем  предвари-

тельная установка в "0" не требуется.



     Парафазный регистр на JK-триггерах:



              ----T---------¬

           ---O S ¦ TT      ¦

              +---+         ¦      ----¬

X(i) ---------+ J ¦         +------+&  ¦    _

              ¦   ¦         ¦      ¦   O--- X(i)

        ----->¦ C ¦         ¦    --+   ¦

_       ¦     ¦   ¦         ¦    ¦ L----

X(i) ---+-----+ K ¦         O--  ¦

        ¦     +---+         ¦    ¦

        ¦  ---O R ¦         ¦    ¦

        ¦     L---+----------    ¦

Ввод----+------------------------+--------------

Вывод обратного кода-------------+--------------



     Вводимая информация должна быть представлена в парафазном

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

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

однотактным.



                Последовательные регистры

                    (регистры сдвига)



     В отличие от параллельных регистров,  которые не  связаны

друг с другом, параллельные регистры обязательно связаны между

собой.  По этим связям при сдвиге  информации  каждый  триггер

передает свое состояние соседнему в направлении сдвига тригге-

ру и изменяет свое состояние,  принимая состояние  предыдущего

триггера. Информация может передаваться между триггерами как в

однофазном так и в парафазном виде, а сдвиг может производить-

ся вправо либо влево для простых регистров сдвига или в  любом

направлении для реверсивных регистров сдвига.

     Как же построить регистр данного вида? Для этого  необхо-

димо определить взаимодействие между триггерами:



     Для D-триггера:



     RG>:   D(i)=Q(i-1)



            ----T------¬           ----T------¬

        ----O S ¦TT    ¦ Q(i)  ----O S ¦TT    ¦ Q(i+1)

            +---+      +---¬       +---+      +---

        ----+ D ¦      ¦   L-------+ D ¦      ¦

         -->¦ C ¦      ¦        -->¦ C ¦      ¦

         ¦  +---+      O---     ¦  +---+      O---

         ¦ -O R ¦      ¦        ¦ -O R ¦      ¦

         ¦ ¦L---+-------        ¦ ¦L---+-------

Уст."0"--+-+--------------------+-+---------------

Сдвиг----+----------------------+-----------------



     Для сдвига влево используется формула: D(i)=Q(i+1). Стро-

ится такой регистр аналогично.

     Вот формулы и схема  для  для  аналогичного  регистра  на

JK-триггерах:

                              _

     RG>:   J(i)=Q(i-1), K(i)=Q(i-1)



            ----T-----¬ Q(i)          ----T-----¬

   X(i) ----+ J ¦TT   +---------------+ J ¦TT   +---- Q(i+1)

            ¦   ¦     ¦               ¦   ¦     ¦

          ->¦ C ¦     ¦ _           ->¦ C ¦     ¦

   _      ¦ ¦   ¦     ¦ Q(i)        ¦ ¦   ¦     ¦     _

   X(i) --+-+ K ¦     O-------------+-+ K ¦     O---- Q(i+1)

          ¦ L---+------             ¦ L---+------

Сдвиг-----+-------------------------+-----------------------



     Наиболее экономичной для построения регистров сдвига  яв-

ляется схема на D-триггерах,  которая требует в 2 раза  меньше

корпусов микросхем по сравнению со схемой на JK-триггерах и  в

2 раза меньше связей между триггерами за счет однофазной пере-

дачи информации.

     Реверсивный  сдвиговый  регистр  имеет  схемы  управления

межтриггерными связями для  чего  обычно  используют  элементы

И-ИЛИ-НЕ. С помощью этих элементов в соответствии с сигналами,

управляющими направлением сдвига  обеспечиваются  связи  между

триггерами для выполнения сдвига в заданном направлении.

     В нашем узле мы не будем конструировать сами ни  сумматор

ни регистры,  поскольку все нужные нам элементы уже содержатся

в серии микросхем К155.

     Теперь перейдем к конкретному рассмотрению  схемы  нашего

узла.

     Входные данные подаются на регистр RG1 в параллельном ви-

де.  Для этого на входы D1-D8 подаем входные данные а  на  ос-

тальные:  V1=V2=R=1,  D(+)=D(-)=0.  Тогда по приходу синхроим-

пульса C1 данные со входов D1-D8 будут занесены в регистр. Об-

щая схема работы (с точки  зрения  синхроимпульсов)  приведена

ниже:



     ¦

  C1 ¦ --¬

     +-- L---------------------------------

     +-------------------------------------

     ¦   --¬

  C2 +---- L-------------------------------

     +-------------------------------------

     ¦     --¬ --¬ --¬ --¬ --¬ --¬ --¬

  C3 +------ L-- L-- L-- L-- L-- L-- L-----

     L-------------------------------------



     Затем, как видно из вышеприведенной схемы, данные с выхо-

дов 2-8 регистра RG1 поступают на входы  D1-D7  регистра  RG2,

причем на вход D8 подается 0.  Абсолютно аналогично,  то  есть

подав V1=V2=R=1,  D(+)=D(-)=0 мы заносим данные (это  мантисса

числа,  которую нам надо нормализовать) по  приходу  синхроим-

пульса C2 в регистр RG2.  По приходу этого же синхроимпульса в

регистр RG4 заносится 7d=111b - это  сразу  смещенный  порядок

числа. Затем, начинается подача импульсов C3.  Что же происхо-

дит при этом? Здесь  начинает  работать  логика  на  элементах

И-НЕ.  То есть,  проверяется содержится ли в  старшем  разряде

мантиссы 0 (выход 1 регистра RG2).  Если да,  то сихнроимпульс

приходит на регистры RG2 и RG4. Это приводит к тому,  что ман-

тисса, содержащаяся в регистре RG2 сдвигается на 1 разряд вле-

во, а информация из регистра RG4 поступает на сумматор, где из

порядка вычитается 1 и обратно заносится в регистр RG4.  Таким

образом мы разряд за разрядом нормализуем  мантиссу.  Когда  в

старшем разряде мантиссы окажется 1,  то сработает  логика  на

элементах И-НЕ и синхроимпульс C3 пойдет на регистр RG3, в ко-

торый попадут выходные данные:  старший разряд с регистра  RG1

(знак), четыре разряда с регистра RG2 (мантисса) и три разряда

с регистра RG4 (порядок).  Для обеспечения работы регистра RG2

в параллельном и последовательном режиме на входе узла имеется

управляющий вход V2.  В начале работы,  для обеспечения парал-

лельного занесения из регистра RG1 в RG2  на  вход  V2  должна

подаваться 1, а затем, для сдвига влево,  должен подаваться 0.

В регистре RG4,  для обеспечения  параллельного  занесения  на

входы D0,  V и C1 подается 1.  Занесение 0111b (07d) в регистр

RG4 происходит при появлении  синхроимпульса  C2,  который  не

только обеспечивает занесение 7d в регистр порядка но и  обес-

печивает занесение в регистр RG2 мантиссы, а синхроимпульсы C3

отвечают за нормализацию мантиссы и за занесение выходных дан-

ных в регистр RG3 (это так сказать "выходной" регистр, с кото-

рого снимаются результаты преобразования).

     Временная диаграмма для конкретного примера приводится  в

приложении,  однако в несколько сокращенном виде поскольку по-

лную временную диаграмму привести практически очень тяжело по-

скольку она будет занимать очень большой размер,  да и это не-

нужно потому что некоторые внутренние входы/выходы практически

никакой смысловой нагрузки не несут.

     Более подробное описание логики (уже на основе конкретной

схемы,  приведенной в приложении и на основе позиционных обоз-

начений микросхем) следует далее:

     Как было описано выше,  после появления синхроимпульса на

входе XP6 (C1) входные данные с шины XP5 заносятся  в  регистр

D1. После чего появляется сигнал XP8 (C2) который заносит зна-

чения 2-8 регистра D1 (мантисса) в регистр D2.  Надо  помнить,

что при этом управляющий вход XP7 (управление  регистром,  V2)

подана 1.  Кроме того,  сигнал XP8,  проходит через логику  на

элементах D6.1-D6.3,  D7.1-D7.3,  которые появляются на входах

d1-d3 регистра D4.  После пропадания сигнала  XP8  по  заднему

фронту в регистр D4  заносится  значение  0111b  (07d).  Затем

синхроимпульсы появляются на входе XP9 (C3).  На  логике  D8.3

старший разряд регистра D2 инвертируется и поступает совместно

с XP9 на элементы D6.4 и D7.4. Если в старшем разряде регистра

D2 содержится 0, то данная логика сработает и на входах C1 ре-

гистра D4 и C регистра D2 возникнет  синхроимпульс.  На  входе

XP7 (управление регистром) у нас уже 0.  Это приводит к  тому,

что значение в регистре D2 сдвинется влево на один разряд. Вы-

ходные данные с регистра D4 уже прошли  через  сумматор  D5  и

(всвязи с тем,  что каждый четный выход у этого сумматора  ин-

версный) логику на элементах D8.1,  D8.2 поступили на вход ре-

гистра D4.  В сумматоре данные складываются со значением 1111b

(-1d), то есть фактически вычитается 1.  Итак,  эти данные уже

поступили на вход регистра D4 и после  прихода  синхроимпульса

на C2 эти данные в параллельном виде заносятся в регистр D4.

     В эти же моменты времени у нас работает логика на элемен-

тах D8.4, D9.1,  которая проверяет,  а не появилась ли у нас в

старшем разряде регистра D2 единица?

     Пока в старшем разряде D2 будет появляться 0 - будет идти

сдвиг мантиссы и вычитание из порядка 1. Но как только в стар-

шем разряде регистра D2 появится 0,  то  сработает  логика  на

элементах D6.4 и D7.4 которая прекратит подачу синхроимпульсов

и преобразования над мантиссой и порядком.  С другой  стороны,

сработает логика на регистрах D8.4 и D9.1 и синхроимпульс  XP9

(C3) появится на входе регистра D3,  что приведет к  занесению

результатов преобразования в регистр D3 (старший разряд из ре-

гистра D1 - знак, 4 разряда из регистра D2 - мантисса и 3 раз-

ряда из регистра D4 - порядок).

     Все преобразования закончились и узел готов к  следующему

преобразованию.

     Возможен также альтернативный вариант схемы: вместо связ-

ки регистр-сумматор можно использовать  синхронный  вычитающий

счетчик с  возможностью  параллельного  занесения  информации.

Тогда порядок подавался бы в на этот счетчик, а при преобразо-

вании (сдвиге) мантиссы из порядка вычиталась  бы  1.  Данный,

альтернативный вариант хотя и на порядок проще, однако и рабо-

тает он медленнее, так как вычитающий счетчик работает медлен-

нее чем пара регистр-сумматор.



                    АНАЛИЗ БЫСТРОДЕЙСТВИЯ



     Временная диаграмма для конкретного числа  (1 0010 101)

приведена в приложении, а мы займемся быстродействием.



     1. Занесение данных в регистр D1 - 30 нс.

     2. Занесение данных в регистры D2, D4:

     а. D2: 30 нс.

     б. D4: логика И-НЕ - 15+22 нс=37 нс и занесение в регистр

        35 нс.

     3. Работа логики D8.3: 22 нс; D8.4+D9.1=37 нс (просиходит

        параллельно с пунктом 4a).

     4. Обработка порядка и мантиссы:

     а. Сдвиг в регистре D2: 30 нс.

     б. Порядок: сумматор, логика И-НЕ, параллельное занесение

        в регистр: 55+22+35=112

     5. Занесение информации в регистр D3: 30 нс.



     То есть при худшем раскладе - 6 преобразований  над  ман-

тиссой и порядком, суммарное быстродействие узла:

     30+72+112*6+30=804 нс.

     То есть максимальная частота преобразования=1,24 МГц.



                        ЗАКЛЮЧЕНИЕ



     В данном курсовом проекте был  разработан  узел,  который

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

точкой в формат с плавающей точкой.

     Построенный узел выполняет поставленную функцию и хотя  и

не является оптимальным,  но работает при данных условиях (как

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

микросхемах серии К155 и т.д.).  Если критичны затраты по эле-

ментам, то более предпочтителен альтернативный вариант, а если

по времени - то основной.



                        ЛИТЕРАТУРА



     1. Каган Б.М., Электронные вычислительные машины и систе-

мы, М. 1991 год.

     2.  Рахимов Т.М.,  Справочник по микросхемам серии  К155,

Новосибирск 1991 год.

     3. Иванов Л.Н., Пентегов В.В., Архитектура вычислительных

систем и сетей. Методические указания к курсовому проектирова-

нию, Новосибирск 1986 год.






                 ВРЕМЕНННАЯ ДИАГРАММА РАБОТЫ УЗЛА

                        ДЛЯ ЧИСЛА 1 0010 101



       ¦

  A1   ¦--------------------       A1-A8 - входные данные

       ++---------------------

       ¦

  A2   ¦

       +====================--

       ¦

  A3   ¦

       +====================--

       ¦

  A4   ¦--------------------

       ++---------------------

       ¦

  A5   ¦

       +====================--

       ¦

  A6   ¦--------------------

       ++---------------------

       ¦

  A7   ¦

       +====================--

       ¦

  A8   ¦--------------------

       ++---------------------

       ¦

  C1   ¦ --¬                        С1-синхроимпульс

       +=+-+================--

       ¦

  Q1(1)¦   -----------------        Q1(1-8) - выходы регистра D1

       +===+------------------

       ¦

  Q1(2)¦

       +====================--

       ¦

  Q1(3)¦

       +====================--

       ¦

  Q1(4)¦   -----------------

       +---+------------------

       ¦

  Q1(5)¦

       +---=================--

       ¦

  Q1(6)¦   -----------------

       +---+------------------

       ¦

  Q1(7)¦

       +---=================--

       ¦

  Q1(8)¦   -----------------

       +---+------------------

       ¦

  C2   ¦    --¬

       +---=+-+=============--

       ¦

  C3   ¦       --¬ --¬ --¬          C2,C3 - синхроимпульсы

       +---====+-+=+-+=+-+==--

       ¦

  Q2(1)¦             -------        Q2(1-7) - выходы регистра D2

       +---==========+--------

       ¦

  Q2(2)¦         ----¬

       +---======+---+======--

       ¦

  Q2(3)¦      ---¬   -------

       +---===+--+===+--------

       ¦

  Q2(4)¦         ----¬

       +---======+---+======--

       ¦

  Q2(5)¦      ---¬   -------

       +---===+--+===+--------

       ¦

  Q2(6)¦         ----¬

       +---======+---+======--

       ¦

  Q2(7)¦      ---¬

       +---===+--+==========--

       ¦

  Q4(1)¦      ---¬   -------        Q4(1-3) - выходы регистра D4

       +---===+--+===+--------

       ¦

  Q4(2)¦      -------¬

       +---===+------+======--

       ¦

  Q4(3)¦      --------------

       +---===+---------------

       ¦

  Q3(1)¦                 ---        Q4(1-8) - выходы регистра D3

       +-----------------+----

       ¦

  Q3(2)¦                 ---

       +-----------------+----

       ¦

  Q3(3)¦

       +-----------------====-

       ¦

  Q3(4)¦                 ---

       +-----------------+----

       ¦

  Q3(5)¦

       +-----------------====-

       ¦

  Q3(6)¦                 ---

       +-----------------+----

       ¦

  Q3(7)¦

       +-----------------====-

       ¦

  Q3(8)¦                 ---

       L-----------------+----

_