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 разряда.
Один из вариантов схемы для реализации такого сумматора (точнее говоря элемента сумматора для одного разряда, из которых можно построить сумматор любой разрядности) выглядит так:
Формирователь суммы (вариант комбинационного сумматора) :
Этот элемент сумматора работает по несколько измененной формуле (в связи с базисом реализации И-НЕ и И-ИЛИ-НЕ):
Можно показать, что формирователь переноса строится абсолютно аналогично.
Затем перенос из i-того разряда передается на (i+1)-ый разряд, а сумма i-того разряда выводится. Соединяя такие блоки, можно получить сумматор любой разрядности.
Таким образом, в представленном сумматоре сумма формируется параллельно, а перенос последовательно. Данный сумматор не отличается высоким быстродействием, а для повышения быстродействия используют так называемый сквозной и групповой перенос.
В качестве элементов для такого сумматора можно взять микросхемы К155ЛА3 и две К155ЛР4.
Возможно также построение сумматоров на основе триггеров - тогда сумматор будет накапливающим, то есть результат суммы будет доступен для считывания даже после отключения входных сигналов.
РЕГИСТРРегистры в данном курсовом проекте используются для хранения и преобразования (сдвига) мантиссы и порядка. В целом регистры делятся на параллельные, последовательные и комбинированные. В нашем узле используются возможности как параллельных (для хранения) так и последовательных (для сдвига) регистров.
Как же строятся регистры? Регистры строятся на основании триггеров, количество которых зависит от разрядности регистра.
Параллельные регистры.Вот пример простейшего параллельного однофазного регистра на RS-триггерах:
Эта схема только для одного разряда, но соединив такие блоки можно получить регистр любой разрядности. Условное обозначение для 4-х разрядного регистра:
Такой регистр является 2-х тактным, поскольку ввод информации производится в 2 такта: первым тактом на шину "Уст. 0" подается 0 сигнал для установки в 0 всех триггеров, при этом на шине "Ввод" - 0; вторым тактом устанавливается 1 на шинах "Уст. 0" и "Ввод" и значения разрядов X1,X2,..,X(i),.. записываются по входу S триггеров. Ввод - в прямом коде. Вывод - как в прямом так и в обратном. Для вывода в нужном нам коде подается 1 на нужную нам шину, причем одновременная подача 1 на обе шины запрещена.
Парафазный регистр на RS-триггерах:
Также как и в предыдущем случае (и как будет во всех последующих) это схема всего одного разряда, соединяя которые вместе можно получить регистр любой разрядности.
Отличие данного регистра от предыдущего заключается в том, что ввод информации осуществляется путем подачи "1" на шину "Ввод" без предварительной установки в 0, т.е. за 1 такт. Это объясняется парафазным представлением вводимого кода. Вывод также парафазный, для чего необходимо подать 1 на шину "Вывод".
Однофазный регистр на D-триггерах:
Значения подаются на входы D соответствующих триггеров, а сигнал "Ввод" подается подается на входы C, причем предварительная установка в "0" не требуется.
Парафазный регистр на JK-триггерах:
Вводимая информация должна быть представлена в парафазном коде, а выводимая информация может быть в прямом, обратном и парафазном виде. Данный регистр, как и предыдущий, является однотактным.
Последовательные регистры (регистры сдвига)В отличие от параллельных регистров, которые не связаны друг с другом, параллельные регистры обязательно связаны между собой. По этим связям при сдвиге информации каждый триггер передает свое состояние соседнему в направлении сдвига триггеру и изменяет свое состояние, принимая состояние предыдущего триггера. Информация может передаваться между триггерами как в однофазном так и в парафазном виде, а сдвиг может производиться вправо либо влево для простых регистров сдвига или в любом направлении для реверсивных регистров сдвига.
Как же построить регистр данного вида? Для этого необходимо определить взаимодействие между триггерами:
Для D-триггера:
Для сдвига влево используется формула: D(i)=Q(i+1). Строится такой регистр аналогично.
Вот формулы и схема для для аналогичного регистра на JK-триггерах:
Наиболее экономичной для построения регистров сдвига является схема на D-триггерах, которая требует в 2 раза меньше корпусов микросхем по сравнению со схемой на JK-триггерах и в 2 раза меньше связей между триггерами за счет однофазной передачи информации.
Реверсивный сдвиговый регистр имеет схемы управления межтриггерными связями для чего обычно используют элементы И-ИЛИ-НЕ. С помощью этих элементов в соответствии с сигналами, управляющими направлением сдвига обеспечиваются связи между триггерами для выполнения сдвига в заданном направлении.
В нашем узле мы не будем конструировать сами ни сумматор ни регистры, поскольку все нужные нам элементы уже содержатся в серии микросхем К155.
Теперь перейдем к конкретному рассмотрению схемы нашего узла.
Входные данные подаются на регистр RG1 в параллельном виде. Для этого на входы D1-D8 подаем входные данные а на остальные: V1=V2=R=1, D(+)=D(-)=0. Тогда по приходу синхроимпульса C1 данные со входов D1-D8 будут занесены в регистр. Общая схема работы (с точки зрения синхроимпульсов) приведена ниже:
Затем, как видно из вышеприведенной схемы, данные с выходов 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... и логических программируемых микросхем. Их использование в радиоэлектронной аппаратуре позволяет резко сократить сроки ее разработки и промышленного освоения; поднять на новый уровень технические характеристики. В этих случаях является незаменимым такое устройство как программатор микросхем ПЗУ, который позволяет программировать широкий круг микросхем. В результате дипломного проектирования был ...
аучного цикла является отсутствие возможности реальной постановки учебного, и лабораторного эксперимента. Хотя в настоящее время имеются разработки виртуальных лабораторных практикумов, однако окончательно решение проблемы требует пристального внимания специалистов различных профилей, в том числе и психолого-педагогического. 1.2 Роль технологии виртуальных приборов обучения в техническом вузе ...
... выдают ли они требуемую информацию. Кроме того, необходимо исключить из таблиц все возможные повторения данных. Как указывалось ранее, в качестве инструментария разработки АРМ научно-технической библиотеки университета, была выбрана СУБД Microsoft Visual FoxPro. Этот выбор определяет все особенности компьютерной реализации принятых решений по организации информационного обеспечения потенциальных ...
... также невысока и обычно составляет около 100 кбайт/с. НКМЛ могут использовать локальные интерфейсы SCSI. Лекция 3. Программное обеспечение ПЭВМ 3.1 Общая характеристика и состав программного обеспечения 3.1.1 Состав и назначение программного обеспечения Процесс взаимодействия человека с компьютером организуется устройством управления в соответствии с той программой, которую пользователь ...
0 комментариев