Смекни!
smekni.com

Узел преобразования чисел (стр. 2 из 3)

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, то сработает логика на