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

СОДЕРЖАНИЕ: Описывается теория и реализация преобразования форматов представления чисел в ЭВМ.

ВВЕДЕНИЕ

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

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

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

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

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

лее удобно. Двоичные числа - это числа, составленные из 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-----------------+----

_

Скачать архив с текстом документа