Главная              Рефераты - Коммуникация и связь

Синтез цифровых схем арифметических устройств - курсовая работа

Оглавление

Постановка задачи

Исходные данные к курсовому проекту

Разработка алгоритма умножения

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

Синтез преобразователя множителя

Логический синтез одноразрядного четверичного умножителя-сумматора

Логический синтез одноразрядного четверичного сумматора

Синтез МПА делителя


Постановка задачи

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

По исходным данным необходимо разработать:

1. Алгоритм выполнения операции умножения, для чего потребуется:

- перевести исходные числа из десятичной системы счисления в двоично-десятичную;

- представить числа в форме с плавающей запятой;

- произвести перемножение чисел по алгоритму “Г” в дополнительных разрядах на два разряда одновременно;

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

2. Алгоритм выполнения операций сложения и вычитания.

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

4. Функциональные схемы основных узлов проектируемого сумматора-умножителя в заданном логическом базисе. Для этого провести:

- логический синтез комбинационного одноразрядного четверичного сумматора (ОЧС) на основе составленной таблицы истинности для суммы слагаемых с учетом переноса из младшего разряда, используя при этом алгоритм извлечения (Рота), и оценить эффективность минимизации;

- логический синтез одноразрядного комбинационного четверичного умножителя-сумматора (ОЧУС), путем минимизации переключательных функций по каждому выходу схемы. Минимизация выполняется с применением карт Карно-Вейча с последующей оценкой эффективности минимизации;

- логический синтез комбинационной схемы преобразователя множителя (ПМ);

- построить функциональную схему ОЧС на мультиплексорах;

- построить функциональную схему ПМ и ОЧУС в заданном базисе;

5. Определить время умножения на один разряд и на n разрядов множителя.

6. Разработать алгоритм выполнения операции деления.

7. Функциональную схему делителя, представив его как управляющий автомат, для чего необходимо:

- построить граф связности автомата;

- разметить его для синтеза автомата Мура;

- построить таблицу переходов автомата;

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

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

Исходные данные к курсовому проекту

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

1. Исходные операнды - десятичные числа с целой и дробной частью, над которыми производится операция умножения (36,39 & 53,25).

2. Алгоритм выполнения операции умножения Г.

3. Метод ускоренного умножения на базе которого строится умножитель:

- умножение закодированного двоично-четверичного множимого на 2 разряда двоичного множителя одновременно в дополнительных кодах;

Преобразование множителя в обоих случаях производится для исключения из процесса умножения диады множителя 11.

4. Двоичные коды четверичных цифр множимого для работы в двоично-четверичной системе счисления (представляется кодом: 04 - 00, 14 - 11, 24 - 01, 34 - 10) . Множитель представляется обычным весомозначным кодом: 04 - 00, 14 - 01, 24 - 10, 34 - 11 .

5. Тип синтезируемого устройства умножения, определяемый основными структурными узлами, на базе которых строится умножитель:

- умножитель 2-го типа строится на базе ОЧУС, ОЧС и регистра результата.

6. Способ минимизации и логический базис для аппаратной реализации ОЧС и ОЧУС (функционально полный базис представлен функцией x1 + x 2 :


Таблица 1. Таблица истинности:

X1

X2

1

не 1

0

0

0

1

0

1

1

0

1

0

1

0

1

1

1

0

ОЧС реализуется на мультиплексорах).

7. Алгоритм выполнения операции деления:

- деление с восстановлением остатков;

8. Класс синтезируемого микропрограммного автомата: Мура.

9. Логический базис для аппаратной реализации делителя, как управляющего автомата: ПЛМ и триггеры для организации цепи обратной связи (Т -триггеры).

Разработка алгоритма умножения

1. Перевод сомножителей из десятичной системы счисления в четверичную:

МНОЖИМОЕ

36 | 4 0,39 Мн4 =210,1203

36 9 | 4 4

0 8 2 1,56 Мн2/4 = 011100,11010010

1 4

2,24

4

0,96

4

3,84

4

3,36

МНОЖИТЕЛЬ

53| 4 0,25 Мт4 = 311,1

52 13 | 4 4 Мт2/4 = 110101,01

1 12 3 1,00

1

2. Запишем сомножитель в форме с плавающей запятой в прямом коде:

Мн = 0,01110011010010 Рмн = 0,0010 +03 закодирован по заданию

Мт = 0,11010101 Рмт = 0,0011 +03 незакодирован по заданию

[Мт]д = Мт = 0,31114 = 0,110101012/4

[Мт]дп = 0,1010101012/4

Мн = 0,2101203

[-Мн]д = 3,1232131

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

Порядок произведения будет равен:

Рмн = 0.0010+ 03

Рмт = 0.0011 03

Р = 0.1101 12

результат закодирован в соответствии с заданием на кодировку множимого.

Знак произведения определяется суммой по модулю два знаков сомножителей, т.е.:

зн Мн + зн Мт = 0 + 0 = 0.

Для умножения мантисс необходимо предварительно преобразовать множитель, чтобы исключить диаду 11(34 ), заменив ее на триаду 101.

Перемножение мантисс по алгоритму «Г» приведено втаблице 2:

[Мт]дп = 0,1010101012/4

Мн = 0,2101203

[-Мн]д = 3,1232131

Таблица 2. Умножение по алгоритму “Г”.

Четверичная с/с

ЗНАК

РЕГИСТР РЕЗУЛЬТАТА

ДЕЙСТВИЯ

0.

000000000000

0.

000000000000

+0

0.

000000000000

0.

021012030000

+Мн>>1

0.

021012030000

3.

331232131000

-Мн>>2

10.

012310221000

0.

000210120300

+Мн>>3

10.

013121001300

0.

000021012030

+Мн>>4

0.

013202013330

0.

000002101203

+Мн>>5

0.

013210121133

Рез. В доп коде

0.

013210121133

Рез. В пр. коде

132101,21133

1937,5927734375

10 с/с

4. После окончания умножения необходимо оценить погрешность вычислений. Для этого полученное произведение (Мн*Мт4 =013210121133 РМн*Мт = 6) приводится к нулевому порядку, а затем переводится в десятичную систему счисления:

Мн*Мт4 = 132101,21133 РМн*Мт = 0;

Мн*Мт10 = 1937,5927734375.

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

Мн10 *Мт10 = 36,39 * 53,25 = 1937,7675.

Абсолютная погрешность:

D = 1937,7675 - 1937,5927734375 = 0,17473.

Относительная погрешность:

D 0,17473

d = = = 0,00009017 (d = 0,00901%)

Мн*Мт 1937,7675

Эта погрешность является суммарной, накопленной за счет приближенного перевода из 10 с/с в четверичную обоих сомножителей, а также за счет округления полученного результата произведения.

В случае отрицательного множимого:

[Мт]дп = 0,1010101012/4

Мн = - 0,2101203

[Мн]д = 3,1232131

[-Мн]д = 0,2101203

Четверичная с/с

ЗНАК

РЕГИСТР РЕЗУЛЬТАТА

ДЕЙСТВИЯ

0.

000000000000

0.

000000000000

+0

0.

000000000000

3.

312321310000

+Мн>>1

3.

312321310000

0.

002101203000

-Мн>>2

3.

321023113000

3.

333123213100

+Мн>>3

10.

320212332100

3.

333312321310

+Мн>>4

10.

320131320010

3.

333331232131

+Мн>>5

10.

320123212201

Рез. В доп коде

1.

3 – 4=1

013210121133

Рез. В пр. коде

132101,21133

1937,5927734375

10 с/с

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

Структурная схема строится на основе следующих блоков

· Многоразрядный регистр сдвига


сдвиг

Dn Q1

С Qn

S1

S2

“+1”

Предназначен для хранения и сдвига n-разрядного значения числа. Регистр имеет n информационных входов D1 – Dn , управляющий вход разрешения записи в регистр С , управляющие входы сдвига содержимого регистра влево S1 и вправо S2 , управляющий вход добавления 1 к содержимому регистра “+1”, и n выходов Q1- Qn . Все управляющие функции выполняются при поступлении 1 на соответствующий управляющий вход.

Разрядность регистра результата должна быть на единицу больше, чем разрядность исходных слагаемых, чтобы предусмотреть возможность возникновения при суммировании переноса.

· Одноразрядный четверичный умножитель - сумматор (ОЧУС)


R

P2 Р1

от младшего

ОЧУС

ОЧУС

к старшему

ОЧУС

Мн Мт

ОЧУС предназначен для получения одной четверичной цифры путем перемножения диады множимого (Мн) и диады множителя (Мт), и прибавления к полученному результату переноса от младшего ОЧУС (P1).

Если устройство работает как сумматор, то оба слагаемых последовательно (за 2 такта) заносятся в регистр множимого, а на управляющий вход ФДК F2 поступает «1». На выходах ФДК формируется дополнительный код первого слагаемого с учетом знака. Первое слагаемое без изменений должно быть записано в регистр результата, поэтому управляющие сигналы, поступающие на входы «h» всех ОЧУС, позволяют переписать на выходы ОЧУС разряды первого слагаемого без изменений. Если на вход «h» поступает «0», то ОЧУС перемножает разряды Мн и Мт и добавляет к полученному результату перенос из предыдущего ОЧУС.

Если устройство работает как умножитель, то множимое и множитель помещаются в соответствующие регистры, а на управляющий вход ФДК F2 поступает «0». Диада множителя поступает на входы ПМ.

Т.к. на входы ОЧУС из регистра Мт не могут прийти коды «3», в таблице истинности работы ОЧУС будут содержаться 16 безразличных входных наборов.

После ОЧУС частичные произведения складываются между собой в ОЧС (на первом такте идет сложение с нулем).

Частичные суммы хранятся в регистре результата.

· Одноразрядный четверичный сумматор (ОЧС)

S

P2 P1

А В

Предназначен для суммирования двух четверичных цифр и прибавления к полученной сумме единицы переноса от предыдущего ОЧС. Формирует единицу переноса в следующий ОЧС.

В ОЧС первое слагаемое складывается с нулем, записанным в регистре результата, и переписывается без изменений в регистр результата. На втором такте второе слагаемое из регистра множимого через цепочку ОЧУС попадает на входы ОЧС и складывается с первым слагаемым, хранящимся в регистре результата. Сумма хранится в регистре результата. Если устройство работает как сумматор, никаких сдвигов содержимого регистров не производится.

· Многоразрядный формирователь дополнительного кода (ФДК)


Знак Yn Y1

f1

f2

Знак Xn X1

Предназначен для получения дополнительного кода многоразрядного четверичного числа. ФДК имеет n двоичных входов (Х1-Хn), n двоичных выходов (Y1-Yn), отдельный вход для знака преобразуемого числа, а также управляющие входы (f1) и (f2). При подаче управляющего сигнала (“1”) на вход f1 ФДК формирует дополнительный код числа в сооответствии с его знаком. При подаче управляющего сигнала (“1”) на вход f2 ФДК формирует двойной дополнительный код числа. Принцип работы ФДК в зависимости от управляющих сигналов см. в табл.3.

Таблица 3. Работа ФДК.

F1 F2

РЕЗУЛЬТАТ НА ВЫХОДАХ ФДК

0 0

доп. код множимого

0 1

доп. код слагаемого

1 0

двойной доп. код множимого (меняет знак Мн)

1 1

доп. код слагаемого

Синтез преобразователя множителя

Задачей ПМ является исключить из множителя диады 11, заменив их на триады. Регистр множителя является сдвиговым, после каждого такта умножение его содержимое сдвигается на 2 двоичных разряда, и в конце умножения регистр обнуляется. Выход 3 ПМ переходит в единичное состояние, если текущая диада содержит отрицание ( 01 ). В этом случае инициализируется управляющий вход F1 формирователя дополнительного кода (ФДК), и на выходах ФДК формируется двойной дополнительный код множимого (умножение на -1).

На выходах 1,2 ПМ формируются диады преобразованного множителя, которые поступают на входы ОЧУС вместе с диадами множимого. На трех выходах ОЧУС формируется результат умножения диад Мн * Мт + перенос из предыдущего ОЧУС. Максимальной цифрой в диаде преобразованного множителя является двойка, поэтому перенос, формируемый ОЧУС ,может быть только двоичным:

3 * 2 = 1 2

max maх max

Мн Мт перенос

Табл.4. Таблица истинности преобразователя множителя.

D1

D2

D3

P1

P2

F

0

0

0

0

0

0

0

0

1

0

1

0

0

1

0

0

1

0

0

1

1

1

0

0

1

0

0

1

0

1

1

0

1

0

1

1

1

1

0

0

1

1

1

1

1

0

0

0

Исходя из выше изложенной таблицы синтезируется схема.

_ _ _ _ _ _ _ _

F=x1x2x3+x1x2x3+x1x2x3=x1x2+x1x3=x1(x2+x3)

_ _ _

P1=x1x2x3+x1x2x3

_ _ _ _ _ _ _ _

P2=x1x2x3+x1x2x3+x1x2x3+x1x2x3=x2x3+x2x3=x2Åx3



Преобразователь множителя.

Структурная схема устройства приведена на рисунке в приложении. Она содержит регистры: множимого (Рг Мн), множителя (Рг Мт), результата (Рг Рез), формирователи дополнительного кода (ФДК) , 16 блоков ОЧС, 15 блоков ОЧУС и преобразователь множителя (ПМ).

Устройство умножения работает следующим образом:

Исходные сомножители записываются в регистры ( Рг Мн, Рг Мт) Рг Рез обнуляется.

С выходов ФДК на входы ОЧУС поступают по 2 двоичные цифры. Результат операции поступает в ОЧС, где суммируется с содержимым Рг Рез и записывается снова в Рг Рез.

После проведения этих операций происходит сдвиг Рг Мн , Рг Мт .

Если на вход “h” подаётся “1” то ОЧУС становятся “прозрачными” и устройство работает как сумматор благодаря ОЧС. Слогаемые последовательно (за 2 такта) заносятся в регистр множимого.

Временные затраты на умножение сомножителей определяются в основном затратами на образование частичных произведений, получаемых на выходах ОЧУС, и примерно равны:

Ту = 8(tсдв + tПМ + tФДК + 15tОЧУС + 16tОЧС), где:

tОЧС- время формирования единицы переноса в ОЧС

tОЧУС – время умножения на одном ОЧУС

tсдв -время сдвига множимого (множителя)

tПМ – время задержки в преобразователе множителя

tФДК – время задержки на ФДК

На самом деле, операции выполняются параллельно в нескольких узлах, и время задержки будет определятся наибольшей составляющей (либо 15tОЧУС, либо 15tОЧУС, в зависимости от конкретной реализации).

Логический синтез одноразрядного четверичного умножителя-сумматора

ОЧУС - это комбинационное устройство, имеющее 6 входов (2 разряда из регистра МН, 2 разряда из регистра Мт, вход переноса и управляющий вход h) и 3 выхода. Принцип работы ОЧУС описывается с помощью таблицы истинности (табл.5).

Разряды множителя закодированы : 0 - 00; 1 - 01; 2 - 10; 3 - 11.

Разряды множимого закодированы : 0 - 00; 1 - 11; 2 - 01; 3 - 10.

Управляющий вход h определяет тип операции: 0 - умножение закодированных цифр, поступивших на информационные входы, и добавление переноса; 1 - вывод на выходы без изменения значения разрядов, поступивших из регистра множимого.


Табл. 5

пер.

Мн

Мт

упр.

Перенос

Результат

Результат операции

Р1

Х1

Х2

У1

У2

h

Р

Q1

Q2

В четверичной с/с

0

0

0

0

0

0

0

0

0

0*0+0=00

0

0

0

0

0

1

0

0

0

Выход – код «00»

0

0

0

0

1

0

0

0

0

0*1+0=00

0

0

0

0

1

1

0

0

0

Выход – код «00»

0

0

0

1

0

0

0

0

0

0*2+0=00

0

0

0

1

0

1

0

0

0

Выход - код «00»

0

0

0

1

1

0

Х

Х

Х

0*3+0=00

*

0

0

0

1

1

1

Х

Х

Х

Выход – код «00»

*

0

0

1

0

0

0

0

0

0

2*0+0=00

0

0

1

0

0

1

0

0

1

Выход – код «02»

0

0

1

0

1

0

0

0

1

2*1+0=02

0

0

1

0

1

1

0

0

1

Выход – код «02»

0

0

1

1

0

0

1

0

0

2*2+0=10

0

0

1

1

0

1

0

0

1

Выход – код «02»

0

0

1

1

1

0

Х

Х

Х

2*3+0=12

*

0

0

1

1

1

1

Х

Х

Х

Выход – код «02»

*

0

1

0

0

0

0

0

0

0

3*0+0=00

0

1

0

0

0

1

0

1

0

Выход – код «03»

0

1

0

0

1

0

0

1

0

3*1+0=03

0

1

0

0

1

1

0

1

0

Выход – код «03»

0

1

0

1

0

0

1

0

1

3*2+0=12

0

1

0

1

0

1

0

1

0

Выход – код «03»

0

1

0

1

1

0

Х

Х

Х

3*3+0=21

*

0

1

0

1

1

1

Х

Х

Х

Выход – код «03»

*

0

1

1

0

0

0

0

0

0

1*0+0=00

0

1

1

0

0

1

0

1

1

Выход – код «01»

0

1

1

0

1

0

0

1

1

1*1+0=01

0

1

1

0

1

1

0

1

1

Выход – код «01»

0

1

1

1

0

0

0

0

1

1*2+0=02

0

1

1

1

0

1

0

1

1

Выход – код «01»

0

1

1

1

1

0

Х

Х

Х

1*3+0=03

*

0

1

1

1

1

1

Х

Х

Х

Выход – код «01»

*

1

0

0

0

0

0

0

1

1

0*0+1=01

1

0

0

0

0

1

0

0

0

Выход – код «00»

1

0

0

0

1

0

0

1

1

0*1+1=01

1

0

0

0

1

1

0

0

0

Выход – код «00»

1

0

0

1

0

0

0

1

1

0*2+1=01

1

0

0

1

0

1

0

0

0

Выход – код «00»

1

0

0

1

1

0

Х

Х

Х

0*3+1=01

*

1

0

0

1

1

1

Х

Х

Х

Выход – код «00»

*

1

0

1

0

0

0

0

1

1

2*0+1=01

1

0

1

0

0

1

0

0

1

Выход – код «02»

1

0

1

0

1

0

0

1

0

2*1+1=03

1

0

1

0

1

1

0

0

1

Выход – код «02»

1

0

1

1

0

0

1

1

1

2*2+1=11

1

0

1

1

0

1

0

0

1

Выход – код «02»

1

0

1

1

1

0

Х

Х

Х

2*3+1=13

*

1

0

1

1

1

1

Х

Х

Х

Выход – код «02»

*

1

1

0

0

0

0

0

1

1

3*0+1=01

1

1

0

0

0

1

0

1

0

Выход – код «03»

1

1

0

0

1

0

1

0

0

3*1+1=10

1

1

0

0

1

1

0

1

0

Выход – код «03»

1

1

0

1

0

0

1

1

0

3*2+1=13

1

1

0

1

0

1

0

1

0

Выход – код «03»

1

1

0

1

1

0

Х

Х

Х

3*3+1=12

*

1

1

0

1

1

1

Х

Х

Х

Выход – код «03»

*

1

1

1

0

0

0

0

1

1

1*0+1=01

1

1

1

0

0

1

0

1

1

Выход – код «01»

1

1

1

0

1

0

0

0

1

1*1+1=02

1

1

1

0

1

1

0

1

1

Выход – код «01»

1

1

1

1

0

0

0

1

0

1*2+1=03

1

1

1

1

0

1

0

1

1

Выход – код «01»

1

1

1

1

1

0

Х

Х

Х

1*3+1=10

*

1

1

1

1

1

1

Х

Х

Х

Выход – код «01»

*

В таблице выделено 16 безразличных наборов, т.к. на входы ОЧУС из разрядов множителя не может поступить код 11.

Таблица 6. Шестнадцать безразличных наборов для ОЧУС.

P1

X1

X2

Y1

Y2

H

0

0

0

1

1

0

0

0

0

1

1

1

0

0

1

1

1

0

0

0

1

1

1

1

0

1

0

1

1

0

0

1

0

1

1

1

0

1

1

1

1

0

0

1

1

1

1

1

1

0

0

1

1

0

1

0

0

1

1

1

1

0

1

1

1

0

1

0

1

1

1

1

1

1

0

1

1

0

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

Таблица 7. Единичные наборы для выхода Q1 ОЧУС:

P1

X1

X2

Y1

Y2

h

0

1

0

0

0

1

0

1

0

0

1

0

0

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

0

1

1

0

1

0

0

1

1

0

1

1

0

1

1

1

0

1

1

0

0

0

0

0

1

0

0

0

1

0

1

0

0

1

0

0

1

0

1

0

0

0

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

0

0

1

1

0

0

0

1

1

1

0

0

1

1

1

1

0

1

0

0

1

1

0

1

0

1

1

1

1

0

0

0