Выполнение логических поразрядных операций

clip_image002

Операнды – двоичные век­тора (коды). У кодов все раз­ряды равнозначны (знаковых разрядов нет).

Необходимо построить ком­бинационный преобразова­тель, реализующий набор функций

С(1: n) := А(1: n) * В(1: n),

где * - одна из сле­дующих операций над ко­дами: конъюнкция, дизъюнк­ция, инверсия, сложение по модулю два (рисунок А.1). Функциональная схема i – го разряда преобразователя представлена на рисунке А.2.

clip_image004

Для выполнения набора функций вида А:=А*В необходимо к построенному преобразователю подключить двухступенчатый регистр (рисунок А.3).

clip_image006

clip_image008Далее приводится не­сколько упрощенных вари­антов реализации операций над кодами.

Чтобы реализовать операцию clip_image010 нужно сигнал этой операции yГ закоммутировать на счет­ный вход соответствую­щего триггера (i – го раз­ряда регистра А) (рисунок А.4).

Схема, выполняющая микрооперации

yÚ : А := А Ú В и

yÙ : A := A Ù B , приведена на рисунке А.5. Таблица1 описывает операцию дизъюнкции.

clip_image012Таблица А.1

At

Bt

 

At+1

0

0

 

0

0

1

 

1

1

0

 

1

1

1

 

1

Если yÚ = 1 , то yÙ = 0 (так как две микрооперации не могут выполняться над одним и тем же регистром одновременно), следовательно на R-вход триггера подается ноль (R=0), на S-вход подается bi (S = bi ). Если bi =1, то триггер устанавливается в 1, если bi =0, то триггер хранит свое состояние, т.е. ai. Схема работает в соответствии с таблицей А.1.

Таблица А.2 описывает операцию конъюнкции.

Таблица А.2

At

Bt

 

At+1

0

0

 

0

0

1

 

0

1

0

 

0

1

1

 

1

Если yÙ = 1 , то yÚ = 0 (так как две микроопера­ции не могут выполняться над одним и тем же регист­ром одновременно), следовательно на S-вход триггера подается ноль (S=0), на R-вход подается clip_image014 (R = clip_image014[1]). При clip_image016= 0, clip_image014[2]= 1, т.е. триггер сбрасывается в ноль. При clip_image016[1] =1, clip_image014[3]=0, триггер хранит свое состояние , т.е. ai.

На рисунке А.6 изображен i-ый разряд схемы, выполняющей микрооперацию

yÅ : А := А Å В . Таблица А.3 описывает операцию исключающего ИЛИ - сложения по модулю два ( Å).

clip_image018Таблица А.3

At

Bt

 

At+1

0

0

 

0

0

1

 

1

1

0

 

1

1

1

 

0

При bi =1, ai =1, ai t+1 =0 (триггер переключается);

при bi =1, ai =0, ai t+1 = 1 (триггер переключается);

при bi =0, ai =1, ai t+1 = 1 (триггер не переключается);

при bi =0, ai =0, ai t+1 = 0 (триггер не переключается).

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

Предлагаю ознакомиться с аналогичными статьями: