Смекни!
smekni.com

Синтез цифровых схем арифметических устройств (стр. 2 из 6)

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

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


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.