Проектирование вычислительного устройства, реализующего операцию деления без восстановления остатка

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    213,98 Кб
  • Опубликовано:
    2014-02-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование вычислительного устройства, реализующего операцию деления без восстановления остатка

Содержание

1. Техническое задание

. Разработка структурной схемы операционного устройства

. Разработка микропрограммы выполнения операции деления и структурно-операционной схемы ОА

. Разработка устройства управления выполнением операции деления (УА) с жесткой логикой

. Разработка устройства управления выполнением операции деления (УА) с программируемой логикой

. Иллюстрация функционирования ОУ на заданных числах

1. Техническое задание

Спроектировать операционное устройство (ОУ), реализующее операцию деления чисел без восстановления остатка с плавающей запятой.

Элементная база: 2И-НЕ.

Основной критерий эффективности: минимальная стоимость.

Диапазон обработки чисел: 108

Относительная погрешность вычислений: 10-5

Управляющий автомат (УА) с жесткой и программируемой логикой.

Разработка структурной схемы операционного устройства

Расчет разрядной сетки.

) порядок (P)

108 =

,56 = 2P-1

,56 = 2P

P = ]log227,56[ = ]4,78 [ = 5

) мантисса (m)

-5 = 2-m

5*3,32 = 2m

m = ]16,6[ = 17

Обычно количество разрядов в сетке кратно 8-ми. Добавим к порядку 2 разряда, к мантиссе - 4 разряда. Под знаки порядка и мантиссы отведём по 2 разряда для использования модифицированного кода. Таким образом под порядок отведено 7 разрядов, под мантиссу - 21.

идентификатор

поле

Примечание

РА(0:31) Делимое

0:1

Знак порядка


2:8

Порядок


9:10

Знак мантиссы


11:31

мантисса

РС(0:31) Делитель

0:1

Знак порядка


2:8

Порядок


9:10

Знак мантиссы


11:31

мантисса

РС(0:31) Частное

0:1

Знак порядка


2:8

Порядок


9:10

Знак мантиссы


11:31

мантисса

Сч(0:4)

0:4

Двоичный счётчик

ТП(0)

0

Триггер переполнения


. Разработка операционного устройства

микропрограмма схема кодирование автомат

Операционное устройство (ОУ) представляет собой совокупность операционного (ОА) и управляющего автоматов (УА). Функциональная и структурная организация ОУ базируется на принципах микропрограммного управления.

Структура операционного устройства.

УА в ОУ формирует набор управляющих сигналов Y={y1,y2,…,yN} (под воздействием кода операции G и осведомительных сигналов Х={х12,…,хN}), поступающих в ОА и реализующих микропрограмму дискретного устройства.

Функция ОА состоит в непосредственном выполнении заданного набора операций над словами множества D с целью вычисления множества выходных слов R.

Структура операционного автомата.

Функция ОА сводится к вводу, выводу и хранению слов информации, выполнению микроопераций и вычислению логических условий. В состав ОА входят: память S, предназначенная для фиксации входных, промежуточных и выходных значений, функциональные преобразователи для вычисления содержимого памяти автомата и функциональные преобразователи для вычисления логических условий.

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

При выполнении операций затраты оборудования в комбинационной части автомата можно минимизировать, если каждую комбинационную схему (КС) обобщить по отношению ко всем регистрам (словам S1, S2, … Sn), то есть использовать каждую КС для выполнения всех эквивалентных микроопераций. Такой ОА выделяется в класс М-автоматов.

В каждом такте М-автомат может выполнять только одну микрооперацию. Для выборки слов на шину A1 используется управляющие сигналы a1, a2,…, an. Схема Ф настраивается на выполнение определенного преобразования управляющим сигналом .

Загрузка результата Z в регистр Sk инициируется управляющим сигналом dk.

Управляющий автомат порождает специфический набор сигналов, посредством которых инициируется {ai}, {bj}, {}, {dk}, приводящим к выполнению м/о. М-автомат характеризуется ещё одной особенностью: поскольку входопреобразователь Ф не обладает памятью, каждый регистр включен в контур с обратной связью, что может привести вследствие эффекта гонок к нежелательному искажению информации. Для избежания этого эффекта используют:

) элементы с двойной памятью (двухступенчатые триггеры)

) элементы с динамической синхронизацией при наличии специального регистра Z.

Этот вариант реализован в проекте.

Вычисление логических условий xi в M-автомате реализуются аналогично канонической структуре.

Структура М-автомата

Компараторы (устройства сравнения), используемые в проекте

Устройства сравнения на равенство строятся на основе поразрядных операций над одноименными разрядами обоих слов. Слова равны, если равны все одноименные их разряды, т. е. если в обоих нули или единицы.

Признак равенства разрядов:

ri =

Признак равенства слов:

R=

) РС(0:1) = 01

x5=

) PC(0:1) = 10

x4=

) PC(0:1) = 11

x9=

) Сч(0:4) = 0

x7=

) РВ(0:31) = 0

3. Разработка микропрограммы выполнения операции деления и структурно-операционной схемы ОА

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

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

) Код сумматора и частного сдвигается на 1 разряд влево.

) Если в знаковом разряде сумматора оказывается 0, то в младший разряд регистра частного записывается 1 и из сумматора вычитается делитель. Переход к пункту 1.

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

Алгоритм реализован на двоичных сумматорах дополнительного кода (ДСДК). Отрицательные делитель и делимое заданы в дополнительном коде (д. к.). В этом случае на их знак не накладываются ограничения. Частное можно получить как в прямом, так и в д. к. Знак частного образуется отдельно от цифровой части путём сложения по модулю 2. В данном проекте реализован алгоритм деления с формированием результата в прямом коде (п. к.). Правила получения цифр частного в зависимости от знаков делителя и остатка (делимого и остатка) следующие:

Вариант

 1

 2

 3

 4

Знак делимого А

 +

 +

 -

 -

Знак делителя В

 +

 -

 +

 -

Знак остатка Ai

Ai >0

Ai <0

Ai >0

Ai <0

Ai >0

Ai <0

Ai >0

Ai <0

Цифра частного Ci

Ci=1

Ci=0

Ci=1

Ci=0

Ci=0

Ci=1

Ci=0

Ci=1

 

Интерпретация этих правил такова: при совпадении знаков делимого и остатка в частном на очередном шаге записывается единица, при несовпадении - нуль. Можно сравнивать знаки делителя и остатка, тогда 1 в очередной разряд частного записывается при несовпадении знаков, а 0 - при совпадении.

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

Операция деления чисел, представленных в форме с плавающей запятой (пл. з.) выполняется в 2 этапа:

) вычисление порядка: mC = mA / mB

) деление мантисс: PC = PA - PB

Так как мантиссы делимого и делителя - нормализованные числа, при делении возможны случаи, когда |mA| >= |mB| и |mA| < |mB|.

Если мантисса делимого больше или равна мантиссе делителя, то в конце операции деления потребуется нормализация частного (нарушение правой границы). Таким образом, алгоритм деления начинается с операции вычитания делителя из делимого и записи 1 в целую часть частного.

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

Обычно перед началом деления мантисс код делимого сдвигается вправо на один разряд, что позволяет получить в результате деления код, не превышающий 1. Если в результате деления - нормализованный код, предварительный сдвиг делимого компенсируется прибавлением 1 к порядку частного. Если код не нормализован, то предварительный сдвиг делимого компенсируется сдвигом результата влево на один разряд. Этот приём использован в данном проекте.

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

На основе ГСА строим таблицу микроопераций и таблицу логических условий.

Таблица микроопераций

обозначение

микрооперация

y1

РС(0:31):=0

y2

РА(0:8):=11.ùРА(2:8)+1

y3

PС(0:8):=PA(0:8)+11.ùPB(2:8)+1

y4

PC(0:8):=PA(0:8)+00.PB(2:8)

y5

РС(9:10):=РА(9) + РВ(9)

y6

РА(9:31):=00.R1(0.PA(11:31))

y7

Сч:=2110

y8

РА(9:31):=L1(PA(9:31).0)

y9

PA(9:31):=PA(9:31)+11.ùPB(11:31)+1

y10

PА(9:31):=PA(9:31)+00.PB(11:31)

y11

РС(11:31):=L1(PС(11:31).ùPA(9))

y12

Сч:=Сч-1

y13

РС(0:8):= РС(0:8)+1

y14

РC(11:31):=L1(PC(11:31).0)

y15

PС(0:8):=11.ùPC(2:8)+1

y16

ТП:=1


Таблица логических условий

обозначение

условие

x1

РВ=0

x2

РА(0)

x3

РВ(0)

x4

РС(0:1)=10

x5

РС(0:1)=01

x6

РА(9)

x7

Сч=0

x8

РС(11)

x9

РС(0:1)=11


Синтез М-автомата

) Распределение регистров по шинам

А1 = {РА}; А2 = {РВ, РС, Сч, ТП}

) Определение разрядности шин

А1: 0..31; А2 : 0..31

) Определение операторов, реализуемых М-автоматом.

Таблица

yi

микрооперации

Операторы



А1:= Si

А2:= Sj

Z:= m1; А2)Sk:= Z


y1

РС(0:31):=0

-

-

Z:=0

РС(0:31):=Z

y2

РА(0:8):=11.ùРА(2:8) + 1

А1:= PA

-

Z:= 11.ùА1(2:8)+1

РА(0:8):=Z

y3

PС(0:8):=PA(0:8)+11.ùPB(2:8) + 1

А1:= PA

А2:= PB

Z:= A1(0:8)+11.ùA2(2:8)+1

PС(0:8):=Z

y4

PC(0:8):=PA(0:8)+00.PB(2:8)

А1:= PA

А2:= PB

Z:= A1(0:8)+00.A2(2:8

PС(0:8):=Z

y5

РС(9:10):=РА(9) + РВ(9)

А1:= PA

А2:= PB

Z:= A1(9) + A2(9)

РС(9:10):=Z

y6

РА(9:31):=00.R1(0.PA(11:31))

А1:= PA

-

Z:= 00.R1(0. A1(11:31))

РА(9:31):=Z

y7

Сч:=2110

-

-

Z:= 2110

Сч:=Z

y8

РА(9:31):=L1(PA(9:31).0)

А1:= PA

-

Z:= L1(A1(9:31).0)

РА(9:31):=Z

y9

PA(9:31):=PA(9:31)+11.ùPB(11:31) +1

А1:= PA

А2:= PB

Z:= A1(9:31)+11.ù A2(11:31)+1

РА(9:31):=Z

y10

PА(9:31):=PA(9:31)+00.PB(11:31)

А1:= PA

А2:= PB

Z:= A1(9:31)+00. A2(11:31)

РА(9:31):=Z

y11

РС(11:31):=L1(PС(11:31).ùPA(9))

А1:= PA

А2:= PC

Z:= L1(A2(11:31).ùA1(9))

РС(11:31):=Z

y12

Сч:=Сч-1

-

А2:= Сч

Z:= A2 - 1

Сч:=Z

y13

РС(0:8):= РС(0:8) + 1

-

А2:= PС

Z:= A2(0:8)+1

PС(0:8):=Z

y14

РC(11:31):=L1(PC(11:31).0)

-

А2:= PС

Z:= L1(A2(11:31).0)

РС(11:31):=Z

y15

PС(0:8):=11.ùPB(2:8) + 1

-

А2:= PС

Z:= 11.ùA2(2:8)+1

PС(0:8):=Z

y16

ТП:=1

-

-

Z:= 1

ТП:=Z


) Кодирование микроопераций набором управляющих сигналов для получения закодированного графа.

Таблица

ai

А1:= Si

bj

А2:= Sj

m Z:= m1; А2)dkSk:= Z




a1

А1:= PA

b1

А2:= PB

1Z:=0d1РС(0:31):=Z






b2

А2:= PC

2Z:= 11.ùА1(2:8)+1d2РА(0:8):=Z






b3

А2:= Сч

3Z:= A1(0:8)+11.ùA2(2:8)+1d3PС(0:8):=Z








4Z:= A1(0:8)+00.A2(2:8d4РС(9:10):=Z








5Z:= A1(9) + A2(9)d5РА(9:31):=Z








6Z:= 00.R1(0. A1(11:31))d6Сч:=Z








7Z:= 2110d7РС(11:31):=Z








8Z:= L1(A1(9:31).0)d8ТП:=Z








9Z:= A1(9:31)+11.ùA2(11:31)+1








10Z:= A1(9:31)+00. A2(11:31)








11Z:= L1(A2(11:31).ùA1(9))








12Z:= A2 - 1








13Z:= A2(0:8)+1








14Z:= L1(A2(11:31).0)








15Z:= 11.ùA2(2:8)+1








16Z:= 1





5) Закодированная таблица микроопераций

 Y

y1

y2

y4

y5

y6

y7

y8

y9

y10

y11

y12

y13

y14

y15

y16

ai

-

a1

a1

a1

a1

a1

-

a1

a1

a1

a1

-

-

-

-

-

bj

-

-

b1

b1

b1

-

-

-

b1

b1

b2

b3

b2

b2

-

-

m 12345678910111213141516

















dk

d1

d2

d3

d3

d4

d5

d6

d5

d5

d5

d8

d6

d3

d7

d3

d8


) Определяем классы эквивалентных м/о

k1= {1} Z:=0

k2=  Z:= 11.ùА1(2:8)+1

 Z:= A1(0:8)+11.ùA2(2:8)+1

 Z:= A1(0:8)+00.A2(2:8)

 Z:= A1(9:31)+11.ùA2(11:31)+1

 Z:= A1(9:31)+00. A2(11:31)

 Z:= A2 - 1

 Z:= A2(0:8)+1

 Z:= 11.ùA2(2:8)+1 3= {5} Z:= A1(9) + A2(9)4= {6} Z:= 00.R1(0. A1(11:31)) 5= {7} Z:= 2110

k6=  Z:= L1(A1(9:31).0)

 Z:= L1(A2(11:31).ùA1(9))

 Z:= L1(A2(11:31).0)7= {16} Z:= 1

4. Разработка устройства управления выполнением операции деления (УА) с жесткой логикой

При разработке УА было рассмотрено несколько возможных вариантов:

) применить противогоночное кодирование с использованием асинхронных RS-триггеров.

Затраты оборудования на реализацию элементов памяти: 5 триггеров по 4 элемента 2И-НЕ; один триггер оказывается избыточным. Недостаток: наличие нестабильного состояния RS-триггеров при R=S=1.

) применить оптимальное по затратам оборудования кодирование с использованием синхронных D-триггеров.(реализованный в проекте)

Затраты оборудования на реализацию элементов памяти: 4 триггера по 4 элемента 2И-НЕ.

Если к входу синхронного RS-триггера подключить инвертор так, чтобы вход R был всегда инверсным по отношению к входу S, то такая схема будет иметь один вход D, а новая схема называться D-триггером. Поскольку всегда R=S, гоночное состояние не может возникнуть. Следовательно можно применить один из алгоритмов эффективного кодирования состояний, что позволяет минимизировать аппаратурные затраты.

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

На основе графа переходов автомата составляем матрицу Т, состоящую из всех пар номеров состояний, между которыми имеется переход. Указываются веса пар переходов Р и суммы весов компонентов пар .

P

T =    

Оценка эффективности кодирования


00

01

11

10

00

a1

a12


a4

01

a2



a3

11


a9

a6

a5

10

a8

a10

a7

a11


Wид == 21 (соседнее кодирование - кодовое

расстояние dij = 1

W = = 28

kэфф = 21/28 = 75 %

Таблица переходов для D-триггера

 Q

D

Qн

0

0

0

0

1

1

1

0

0

1

1

1


где Q - исходное состояние;

Qн - состояние перехода

Обратная структурная таблица переходов

as

k(as)

am

k(am)

X(am;as)

Y(am;as)

F(am;as)

a1

0000

a2

0100

x1

y16

-



a4

0010

x4

y1

-



a4

0010

y16-





a12

0001

x5

y16

-



a12

0001

--





a12

0001

y15-



a2

0100

a1

0000

1

y1

D2

a3

0110

a2

0100

y2D2D3





a2

0100

-D2D3



a4

0010

a3

0110

y3D3





a3

0110

x3

y4

D3

a5

1110

a4

0010

y5D1D2D3



a6

1111

a5

1110

1

y6

D1D2D3D4

a7

1011

a6

1111

1

y7

D1D3D4



a11

1010

-D1D3D4



a8

1000

a7

1011

1

y8

D1

a9

1101

a8

1000

y9D1D2D4





a8

1000

x6

y10

D1D2D4

a10

1001

a9

1101

1

y11

D1D4

a11

1010

a10

1001

1

y12

D1D3

a12

0001

a11

1010

y14D4





a11

1010

x7x8

y13

D4


Схема синхронного RS-триггера (D-триггера) с управлением уровнем

Рис. 1. Схема синхронного триггера с управлением фронтом

Рис. 2

Для использования синхронных D-триггеров, управляемых фронтом, необходимо рассчитать длительность и период синхросигнала.

Триггеры типа D реализуют задержку сигнала с помощью тактирования, принимая сигнал только по разрешению тактового сигнала C. При С = 0 на выходах элементов 1 и 2 действуют единичные сигналы, и фиксатор сохраняет своё состояние. При С = 1 состояние элементов определяется значением D. Если D = 1, то и на выходе Q установится единица, а при D = 0 и Q = 0.

Триггеры с динамическим управлением воспринимают информационные сигналы только в момент перепада тактового сигнала (точнее в окрестностях этого момента).

Возможности построения таких триггеров удобно показать на примере так называемого шестиэлементного триггера (другое название - схема “трёх триггеров”), показанного на рис. 2. Часть схемы, включающая в себя элементы 2, 3, 5, 6 без цепей перекрёстных связей между элементами 2 и 3, образует синхронный RS- триггер с управлением уровнем (см. рис. 1), чувствительный к изменению информационных сигналов при C = 1. Чтобы получить такую чувствительность только во время фронта сигнала C, нужно блокировать цепи подачи входных сигналов сразу же после изменения синхросигнала с нулевого значения на единичное. Для достижения этого в схеме рис. 2 входные сигналы подаются через элементы 1 и 4, которые и будут блокироваться в указанные моменты времени и сохранять блокировку до возвращения C к нулевому уровню. Нулевое значение С устанавливает единицы на выходах элементов 2 и 3 и приводит фиксатор к в режим хранения до нового изменения синхросигнала от нуля к единице. В этом состоянии (при С=0) выходы элементов 1 и 4 дают инверсии входных сигналов, передавая на элементы 2 и 3 значения S и R соответственно.

Рассмотрим, что произойдет при поступлении С=1. Если при этом S = R, то сохранится режим хранения. Если же имеется единичный входной сигнал, то на входе одного из элементов (2 или 3) все входы окажутся единичными, а его выход - нулевым, что даст сигнал установки выходного триггера (элементы 5 или 6) в нужное состояние и, кроме того, отключит входной сигнал, вызвавший воздействие на схему, и также предотвратит возможное воздействие на выходной триггер по его второму выходу (на элемент 6).

Три указанных действия вызываются сигналами логического нуля, подаваемыми по стрелкам 1, 2 и 3. Предполагается, что единичное значение имел вход S (= 0).

На основе рассмотренного шестиэлементного триггера строятся триггеры типов D,T и JK, свободные от некоторых недостатков, присущих данному RS-триггеру.

Длительность синхроимпульса Tс выбирается таким образом, чтобы Tc было меньше времени формирования самой короткой функции возбуждения (время минимальной задержки) Tmin : Tc < Tmin; но должно хватать времени для переключения триггера. Входной сигнал для обеспечения переключения триггера должен сохраняться до прихода по цепи обратной связи дублирующего его сигнала на втором входе соответствующего логического элемента, т. е. в течении времени, равного двум задержкам элементов на которых собрана схема T2& : T2& < Tc < Tmin.

Период Тс определяется на основе максимальной задержки Tmax (времени формирования самой длинной функции возбуждения): Тс > Tmax. Необходимо также учитывать, что чем меньше длительность и период синхросигнала, тем быстрее работает автомат.

Время задержки одного элемента 2И-НЕ T1& = 10 нс (наносекунд). Tmin = 4*10 нс = 40 нс. Tmax = 8*10 нс = 80 нс. T2& = 2*10 нс = 20 нс. Следовательно 20 < Tc < 40. Выберем Tc = 25 нс. Период синхросигнала выберем с учётом Тс > 80 нс : Тс = 85 нс.

На основе обратной структурной таблицы переходов находим функции возбуждения:

 

Функции возбуждения в базисе 2И-НЕ


Выходные сигналы в базисе 2И-НЕ


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


. Разработка устройства управления выполнением операции деления (УА) с программируемой логикой

УА с программируемой логикой содержит:

Регистр адреса микрокоманд (РАМК).

Регистр микрокоманд (РМК).

Схему формирования адреса следующей микрокоманды.

Последовательность управляющих сигналов (УС) в таком устройстве задается микропрограммой. Различают УА с программируемой логикой по:

) способу формирования адреса следующей микрокоманды (МК).

а) естественная адресация

б) принудительная адресация

) способу формирования УС.

а) УА, использующие МК с горизонтальным кодированием.

б) УА, использующие МК с вертикальным кодированием.

в) УА, использующие смешанные способы кодирования.

.а. При горизонтальном кодировании каждая микрооперация занимает отдельный разряд в РМК. Практически кодирование отсутствует. Недостаток - большая избыточность.

.б. Операционное поле (о/п) можно сделать более меньшим, используя дешифратор.

.в. Смешанные способы адресации делятся на:

горизонтально- вертикальное кодирование

Из всей совокупности м/о выделяют группы совместимых м/о и добавляют ещё одно поле - тип м/о. Одни и те же разряды м/о будут интерпретироваться по-разному, в зависимости от типа м/о.

вертикально-горизонтальное кодирование

Вся совокупность м/о группируется на несовместимые м/о и каждая группа кодируется вертикально и дешифруется отдельно. Распределение по группам осуществляется на основе матриц совместимости и включения.

.б. Рассмотрим принцип работы УА, использующего МК с двумя адресными полями А0 и А1.

Формат РМК имеет вид:

1 Y m

1 X k

1 A0 p

1 A1 p


где Y - код МК,

X - номер логического условия (л/у),

A0 - адрес перехода при единичном значении л/у,

A1 - адрес перехода при нулевом значении л/у,

В исходном состоянии управляющий триггер (УТ) находится в 0. После включения осуществляется автоматическое обнуление РАМК, поэтому начальный адрес = 0. После пуска УТ переходит в единичное состояние, разрешающее прохождение синхроимпульса (СИ) на схему управления ПЗУ.

По первому управляющему СИ из ПЗУ считывается МК по адресу 0. Затем осуществляется анализ каждого из 4-х полей МК. Выход поля X, хранящего логические условия, дешифруется, возбуждая выходную шину, соответствующую номеру заданного условия. Если выбранное условие задано значением 1, то выходная шина со схемы И-ИЛИ будет = 1, что обеспечит передачу в РАМК адреса А0. Иначе осуществляется передача содержимого адресного поля (а/п) А1.

Работа устройства завершается при поступлении на вход УТ единичного сигнала.

Рассмотренная схема обладает функциональной избыточностью, поэтому на практике используют МК с одним а/п. Ограничения, вводимые наличием одного адресного поля, обуславливают соседнее расположение МК, переход к которым осуществляется по условию, т. е. адрес МК Ym должен быть на единицу больше, чем адрес Ys.

.а. Если микропрограмма содержит незначительное количество переходов, то использовать принудительную адресацию не выгодно, т. к. каждая МК должна содержать практически не используемое поле X. Для более экономного использования ПЗУ применяют естественную адресацию микрокоманд. В данном случае увеличивается длина микропрограммы, но сокращается длина МК. При этом используется 2 типа МК:

) операционные

0

1 Y1 m1

…..

1 Yn mn


Yi - МК, выполняемые в один такт

) управляющие

1

1 X1 k

1 B p


X - номер логического условия

В - адрес перехода

При рассмотрении различных методов адресации и кодирования получены следующие данные:

принуд. адр., верт. код. - 364 бит (1426)

принуд. адр., гориз. код.- 720 бит (3026)

ест. адр., верт. код. - 385 бит (1135)

ест. адр., гориз. код. - 612 бит (1835),

где первое число в скобках - длина одной микрокоманды,

второе число - количество МК.

С учётом минимальной стоимости в проекте использован автомат с принудительной адресацией с вертикальным кодированием микрокоманд при условии, что несколько м/о не могут быть реализованы в одном такте. М-автомат удовлетворяет этому условию.

Формат МК с одним адресным полем следующий:

1 Y 5

1 X 4

1 A 5


под операционное поле (Y) отведено ]log2 17[ = 5 разрядов

под поле логических условий (X) отведено ]log2 10[ = 4 разряда

под адресное поле (А) отведено ]log2 26[ = 5 разрядов

Закодируем ПЗУ


Y

X

A

 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

1

0

0

0

0

1

0

0

0

1

0

0

0

1

0

2

0

0

0

0

0

0

0

1

0

0

0

1

0

0

3

1

0

0

0

0

0

0

0

0

1

1

0

0

0

4

0

0

0

0

0

0

0

1

1

0

0

1

1

0

5

0

0

0

1

0

0

0

1

1

0

0

1

1

0

6

0

0

0

1

1

0

1

0

0

0

1

0

0

0

7

0

0

1

0

0

0

1

0

0

0

1

0

0

0

8

0

0

0

0

0

0

1

0

1

0

1

0

1

0

9

0

0

0

0

1

0

0

0

0

1

1

0

0

1

10

0

0

1

0

1

0

0

0

0

0

1

1

0

0

11

0

0

0

0

0

0

0

0

0

0

0

0

1

1

12

0

0

1

1

0

0

0

0

0

0

1

1

0

1

13

0

0

1

1

1

0

0

0

0

0

1

1

1

0

14

0

1

0

0

0

0

1

1

0

0

1

1

1

1

15

0

1

0

0

1

0

0

0

0

1

0

0

0

1

16

0

1

0

1

0

0

0

0

0

1

0

0

0

1

17

0

1

0

1

1

0

0

0

0

1

0

0

1

0

18

0

1

1

0

0

0

1

1

1

1

0

0

1

1

19

0

0

0

0

0

0

0

0

0

0

1

1

1

0

20

0

0

0

0

0

1

0

0

0

1

0

1

0

0

21

0

1

1

1

0

0

0

1

1

0

1

1

1

22

0

1

1

0

1

0

1

0

1

1

0

1

1

1

23

0

0

0

0

0

1

0

0

1

1

1

0

0

1

24

0

0

0

0

0

0

0

0

0

0

0

0

1

1

25

0

0

0

0

0

0

0

0

0

0

0

0

0

1

26

0

1

1

1

1

0

0

0

0

1

1

0

0

1


Таблица истинности для неполного дешифратора микроопераций


0

1

2

3

4

y0

y1

y2

y3

y4

y5

y6

y7

y8

y9

y10

y11

y12

y13

y14

y15

y16

y0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

y1

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

y2

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

y3

0

0

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

y4

0

0

1

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

y5

0

0

1

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

y6

0

0

1

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

y7

0

0

1

1

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

y8

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

y9

0

1

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

y10

0

1

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

y11

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

y12

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

y13

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

y14

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

y15

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

y16

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1


Таблица истинности для неполного дешифратора логических условий


0

1

2

3

x0

x1

x2

x3

x4

x5

x6

x7

x8

x9

x0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

x1

0

0

0

1

0

1

0

0

0

0

0

0

0

0

x2

0

0

1

0

0

0

1

0

0

0

0

0

0

0

x3

0

0

1

1

0

0

0

1

0

0

0

0

0

0

x4

0

1

0

0

0

0

0

0

1

0

0

0

0

0

x5

0

1

0

1

0

0

0

0

0

1

0

0

0

0

x6

0

1

1

0

0

0

0

0

0

0

1

0

0

0

x7

0

1

1

1

0

0

0

0

0

0

0

1

0

0

x8

1

0

0

0

0

0

0

0

0

0

0

0

1

0

x9

1

0

0

1

0

0

0

0

0

0

0

0

0

1


. Иллюстрация функционирования ОУ на заданных числах

) Исходные числа

Делимое: А = - 0,125 * 10-5

Делитель: В = 0,625 * 10-9

Частное: С = 0,2 * 104

) Перевод исходных чисел в двоичную СС.

0,

125 2

0, b-1= 0

250 2

0, b-2= 0

500 2

0, b-3= 1

000 2

0. b-4= 0

000


0,

625 2

0, b-1= 1

250 2

0, b-2= 0

500 2

0, b-3= 1

000 2

0. b-4= 0

000

 = 0,10100...0 - 0001001 A = - 0,00100...0 - 0000101

Нормализация мантисс

B = 0,10100...0 - 0001001 A = - 0,10000...0 - 0000111

0, b-1= 0

2 2

0,  b-2= 0

4 2

0, b-3= 1

8 2

0, b-4= 1

6 2

0, b-5= 0

2 2

0, b-6= 0

0, b-7= 1

8 2

0, b-8= 1

6 2

0,

2 …


C = - 0,001100110011...0 0000100

Нормализация мантиссы

С = - 0,110011001100...1 0000010

) [|A|]дк = 00.10000 11.1111001

[|B|] дк = 00.10100 11.1110111

[|-B|] дк = 11. 01100

) Знак мантиссы частного определяется отдельно от цифровой части:

SgC = SgA  SgB = 11….

) Вычисление порядка частного

+

=

[С(0:8)]пк = 00.0000010

) Деление по заданному алгоритму

А à : 00.01000

Так как частное С = 0,2 в двоичной системе счисления (СС) является периодической дробью, то для демонстрации работы алгоритма достаточно определить 8 цифр результата, для достижения заданной точности - 17 цифр. Счетчик Сч = 8.

Сумматор ß

Регистр РС ß

Примечание

00.01000

.00000000

И.п. СМ:= []; РгС:= 0

00.10000

.0000000_

11.01100


[СМ]:= [СМ] + [|-B|] дк

11.11100

.00000000

A1 < 0; C1 = 0; Сч = 7

11.11000

.0000000_

00.10100


[СМ]:= [СМ] + [|B|] дк

00.01100

.00000001

A2 > 0; C2 = 1; Сч = 6

00.11000

.0000001_

11.01100


[СМ]:= [СМ] + [|-B|] дк

00.00100

.00000011

A3 > 0; C3 = 1; Сч = 5

00.01000

.0000011_

11.01100


[СМ]:= [СМ] + [|-B|] дк

11.10100

.00000110

A4 < 0; C4 = 0; Сч = 4

11.01000

.0000110_

00.10100


[СМ]:= [СМ] + [|B|] дк

11.11100

.00001100

A5 < 0; C5 = 0; Сч = 3

11.11000

.0001100_

00.10100


[СМ]:= [СМ] + [|B|] дк

00.01100

.00011001

A6 > 0; C6 = 1; Сч = 2

00.11000

.0011001_

11.01100


[СМ]:= [СМ] + [|-B|] дк

00.00100

.00110011

A7 > 0; C7 = 1; Сч = 1

00.01000

.0110011_

11.01100


[СМ]:= [СМ] + [|-B|] дк

11.10100

.01100110

A8 < 0; C8 = 0; Сч = 0


[С]п.к. = 11.01100110...1 00.0000010

) Проверка нормализации мантиссы частного.

Так как нарушение нормализации справа (|mC|<1) невозможно, необходимо проверить нарушение нормализации слева (2-1<=|mC|). Так как С(11) = 0, то предварительный сдвиг вправо делимого компенсируется сдвигом результата влево на один разряд, следовательно С = 11.110011001100...1

) Сравнение полученного результата с результатом выполнения арифметической операции в десятичной СС.

В двоичной СС частное представлено в виде:

С = - 0,110011001100110011001 0000010,

которое эквивалентно частному, представленному в десятичной СС в виде: С = - 0,2 * 104

Список используемой литературы

1. А.Я. Савельев. Основы информатики, Москва, изд. МГТУ имени Н.Э. Баумана, 2001 г.

. Е.П. Угрюмов. Цифровая Схемотехника, С-П., изд. «БХВ-Петербург», 2002 г.

3. С.И. Баранов. Синтез микропрограммных автоматов, М., 1988 г.

. Е.И. Зайцев. Теория автоматов, учебное пособие, М., МГАПИ, 2002 г.

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!