Você está na página 1de 19

Mestrado Integrado em Engenharia Informtica e Computao

FEUP

Arquitetura e Organizao de
Computadores - EIC0083
1 ano, 1 semestre - 2014/15

Circuitos combinatrios
Antnio Jos Duarte Arajo

Circuitos combinatrios: resumo


lgebra de Boole
Representaes de funes booleanas
Circuitos lgicos
Circuitos combinatrios padro

Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

lgebra de Boole
1854 - George Boole
formular proposies como V ou F
combinar proposies
avaliar a sua veracidade ou falsidade

1938 - Claude Shannon (Bell Labs)


adaptou a lgebra de Boole anlise de
circuitos
condio de um contacto como V ou F
representado como uma varivel booleana (0 ou 1)
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Axiomas da lgebra de Boole


Definies fundamentais
seja X uma varivel booleana
(A1) X=0 se X 1
(A1) X=1 se X 0
X ou 1 ou 0
(A2) se X=0 ento X=1
(A2) se X=1 ento X=0
X (ou X) o oposto de X
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Axiomas da lgebra de Boole


(A3) 0 0 = 0
(A4) 1 1 = 1
(A5) 0 1 = 1 0 = 0
operador E: 2 interruptores em srie
(A3) 0 + 0 = 0
(A4) 1 + 1 = 1
(A5) 0 + 1 = 1 + 0 = 1
operador OU: 2 interruptores em paralelo
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Axiomas da lgebra de Boole


Os 10 axiomas definem a lgebra de Boole
Convenes:
operador E representa-se por (ponto)
pode chamar-se ao E produto lgico

operador OU representa-se por + (mais)


pode chamar-se ao OU soma lgica

o E tem precedncia em relao ao OU


podem usar-se parntesis em expresses
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Teoremas da lgebra de Boole


Operaes com uma varivel
(T1) X + 0 = X

(T1) X 1 = X

(T2) X + 1 = 1

(T2) X 0 = 0

(T3) X + X = X

(T3) X X = X

(T4) (X) = X
(T5) X + X = 1
Antnio Jos Arajo, FEUP

(T5) X X = 0

AOCO_2014/15 - Circuitos combinatrios

Teoremas da lgebra de Boole


Operaes com duas e trs variveis
(T6) X+Y=Y+X

(T6) XY=YX

(T7) (X+Y)+Z=X+(Y+Z)

(T7) (XY)Z = X(YZ)

(T8) XY+XZ=X(Y+Z)

(T8) (X+Y)(X+Z) = X+YZ

(T9) X+XY=X

(T9) X(X+Y)=X

(T10) X+XY = X+Y

(T10) X(X+Y) = XY

(T11) XY+XY = X

(T11) (X+Y)(X+Y) = X

(T12) XY+XZ+YZ = XY+XZ


(T12) (X+Y)(X+Z)(Y+Z) = (X+Y)(X+Z)
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Teoremas da lgebra de Boole


Leis de De Morgan
(X Y) = X + Y
(T13) (X + Y) = X Y
(T13)

Generalizando:
[F(X1, X2, X3, ... Xn, +, ) ] =
F(X1, X2, X3,..., Xn, , +)
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

Simplificao de expresses
Exemplo
(AB+(A+B))+AC =
AB+AB+AC = (leis de De Morgan, T13)
A(B+B)+AC =
(teorema T8)
A1+AC =
(teorema T5)
A+AC =
(teorema T1)
A
(teorema T9)
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

10

Representao de funes booleanas


Funo booleana de N variveis
domnio: todas as 2N combinaes das
variveis
contradomnio: {0, 1}

Formas de representao
Expresso algbrica:
F(X,Y,Z)=ZY+XZ+YZ
Tabela de verdade: todos os valores de F()
Circuito lgico
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

11

Tabela de verdade

2N linhas
(combinaes
das entradas)
ordem natural
crescente

Antnio Jos Arajo, FEUP

X
0
0
0
0
1
1
1
1

Y
0
0
1
1
0
0
1
1

Z F(X,Y,Z)
0
1
1
1
0
0
1
0
Valores da funo
0
1
1
1
0
0
1
1

AOCO_2014/15 - Circuitos combinatrios

12

Tabela de verdade
X
0
0
0
0
1
1
1
1

Y
0
0
1
1
0
0
1
1

Z F(X,Y,Z)
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1

Nestes casos, o valor de F(X,Y,Z)


s depende de X e Y
Pode-se compactar a escrita da
tabela de verdade:
X
0
0
1
1
1

Y
0
1
0
1
1

Z F(X,Y,Z)
x
1
x
0
x
1
0
0
1
1
x significa 0 ou 1

Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

13

Circuito lgico
portas lgicas elementares
E
A

A.B

OU
A

A+B

NO
A

A
0
0
1
1

B A.B
0 0
1 0
0 0
1 1

A
0
0
1
1

B A+B
0 0
1 1
0 1
1 1
A A
0 1
1 0

as portas lgicas realizam


as operaes elementares
da lgebra booleana
Antnio Jos Arajo, FEUP

circuito lgico

X.Z

F(X,Y,Z)
Z.Y

Z
Y

Z .Y

uma rede de portas lgicas


interligadas entre si

AOCO_2014/15 - Circuitos combinatrios

14

Circuito lgico
As portas lgicas E e OU podem ter um nmero qualquer de entradas
(na realidade, limitado por razes ligadas realizao fsica dos circuitos eletrnicos)
A
B
C
D

A
B
C

A.B.C.D

A+B+C

Podem ser desenhadas portas lgicas com entradas negadas:


A
B

A.B

A+B

ou com a sada negada:


(neste caso chamam-se NO-E ou NAND e NO-OU ou NOR)
A
B

Antnio Jos Arajo, FEUP

A.B

A
B

A+B

AOCO_2014/15 - Circuitos combinatrios

15

Expresso soma de produtos


Soma de produtos (SOP, sum of products)
Soma dos termos produto resultantes das combinaes das
entradas para as quais F=1
Ex.:

X Y
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1

Z F(X,Y,Z)
0
1
XYZ
1
1
XYZ
0
0
1
0
0
1
XYZ
1
1
XYZ
0
0
1
1
XYZ

F(X,Y,Z)= XYZ + XYZ + XYZ + XYZ + XYZ


Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

16

Expresso produto de somas


Produto de somas (POS, product of sums)
Produto dos termos soma resultantes das combinaes das
entradas para as quais F=0
Ex.:

X Y
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1

Z F(X,Y,Z)
0
1
1
1
0
0
X+Y+Z
1
0
X+Y+Z
0
1
1
1
0
0
X+Y+Z
1
1

F(X,Y,Z)= (X+Y+Z)(X+Y+Z)(X+Y+Z)
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

17

Sntese de circuitos
combinatrios
Expresses booleanas no simplificadas
soma cannica e produto cannico
realizadas como circuitos lgicos de 2 nveis:
F(X,Y,Z) = (X+Y+Z)(X+Y+Z)(X+Y+Z)
Y
Z
X

nvel de portas AND


F(X,Y,Z)

SOP
POS

AND-OR
OR-AND

Antnio Jos Arajo, FEUP

nvel de portas OR
AOCO_2014/15 - Circuitos combinatrios

18

Transformao para NANDs


Portas lgicas NAND
mais baratas e mais rpidas do que as AND
um AND um NAND seguido de um inversor!

Medida de complexidade de um circuito digital


nmero de portas lgicas equivalentes
o nmero de NANDs de duas entradas
uma medida independente da tecnologia de fabrico

Transformar circuito AND-OR para NANDs


fcil: trocar os ANDs e o OR por NANDs!
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

19

AND-OR para NANDs


Circuito AND-OR (da expresso SOP)
Y
X
Z

F(X,Y,Z)

Negando as sadas dos


ANDs e as entradas do OR

Y
X
Z

E os inversores?
E s com NAND de 2 entradas?
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

F(X,Y,Z)
Leis de DeMorgan:
Um OR com as entradas
negadas um NAND!
20

Circuitos combinatrios complexos


Sntese a partir de tabelas de verdade
Descrio formal -> circuito AND-OR ou OR-AND
Aplica-se apenas a circuitos pequenos

Circuitos complexos (dezenas de entradas)


Impraticvel usar os mtodos estudados
32 entradas, 232 = 4 294 967 296 linhas da tabela de
verdade
Projeto hierrquico
Construir circuitos complexos custa de circuitos mais simples
Um exemplo: construir um somador de 32 bits custa de fulladders
Um full-adder um somador de 3 nmeros de 1 bit
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

21

Funes combinatrias padro


Funes padro

Podem identificar-se em circuitos complexos


Existem disponveis (p. ex. como circuitos integrados)
Facilitam o projecto de sistemas digitais
Exemplos de funes padro:

Somadores/subtratores (deteo de overflow, com ou sem sinal)


Comparadores (igualdade e magnitude, com sinal ou sem sinal)
Descodificadores e codificadores (binrio, 7-segmentos, BCD, hex)
Multiplexadores (multiplexers) (comutadores digitais)
todos com interesse no contexto da arquitetura de computadores

Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

22

Desenho de circuitos
Portas lgicas elementares
A sua funo especificada pelo seu smbolo

Funes complexas
No existem smbolos padro para cada funo
Usa-se um retngulo com entradas e sadas
Funo: tabela de verdade
Entrada ativa com 1
A

Entrada ativa com 0 (negada)

EN_A

Nomes dos sinais

EN_B

Sada ativa em 0 (negada)


Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

23

Barramentos
Grupo de N sinais lgicos relacionados
Representam um dado com N bits
Usam-se nomes do tipo A[7:0]
(MSB)

A7 A6 A5 A4 A3 A2 A1 A0

n de bits
A[7:0]
B[7:0]

A[3:1]
8
8

A
A>B
B
comparador

barramento (8 bits)
Antnio Jos Arajo, FEUP

(LSB)

fio (1 bit)
AS
Y

MAX[7:0]

B
multiplexador

AOCO_2014/15 - Circuitos combinatrios

24

Descodificadores
Descodificadores (decoders)
N entradas e M sadas, N < M (geralmente)
Transforma um cdigo noutro com mais bits
Descodificador binrio (ou N para 2N)
Exemplo: descodificador 2 4 (2 para 4)
EN
0
1
1
1
1

Y0
I1

Y1

I0

Y2

EN

Y3

I1
x
0
0
1
1

I0
x
0
1
0
1

Y3
0
0
0
0
1

Y2
0
0
0
1
0

Y1
0
0
1
0
0

Y0
0
1
0
0
0

sinal de habilitao (enable)


Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

25

Descodificadores
Descodificadores disponveis como CIs
Descodificador binrio 2 4

G
0
1
1
1
1

B
x
0
0
1
1

A
x
0
1
0
1

Antnio Jos Arajo, FEUP

Y3
0
0
0
0
1

Y2
0
0
0
1
0

Y0

/Y0

Y1

/Y1

Y2

/Y2

Y3

/Y3

B
/G

Y1
0
0
1
0
0

Y0
0
1
0
0
0

/G
1
0
0
0
0

B
x
0
0
1
1

A
x
0
1
0
1

AOCO_2014/15 - Circuitos combinatrios

/Y3 /Y2 /Y1 /Y0


1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
26

Descodificadores
- Descodificador binrio 3 8
EN
0
1
1

I2 I1
x x
0 0
0 0
...
1 1 1
1 1 1

Y0
Y1

I0

Y2

I1

Y3

I2

I0
x
0
1
0
1

Y7 Y6 ...
1 1 ...
1 1 ...
1 1 ...
...
1 0 ...
0 1 ...

Y1 Y0
1 1
1 0
0 1
1
1

1
1

Y4
EN

Y5

- Como fazer um descodificador 4 16?

Y6

16 funes de 5 variveis (com enable)!


basta usar 2 descodificadores 3 8

Y7

- E quantos so necessrios para fazer um 5 32?


- Como realizar funes lgicas de 3 variveis?

sadas ativas a 0
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

27

Descodificadores
Descodificador BCD para 7 segmentos

(blanking input)
(LSB)

(MSB)

Antnio Jos Arajo, FEUP

BI
A
B
C
D

a
b
c
d
e
f
g

AOCO_2014/15 - Circuitos combinatrios

a
f

28

Codificadores
Codificadores (encoders)
N entradas e M sadas, N > M (geralmente)
transforma um cdigo noutro com menos bits
codificador binrio 2N N
se no estiverem duas entradas em 1 simultaneamente
Exemplo: codificador binrio 4 2
I0

Y1

I1

Y0

I3
0
0
0
0
1

I2
I3 IDLE

Antnio Jos Arajo, FEUP

I2
0
0
0
1
0

I1
0
0
1
0
0

I0
0
1
0
0
0

Y1
0
0
0
1
1

Y0 IDLE
0
1
0
0
1
0
0
0
1
0

AOCO_2014/15 - Circuitos combinatrios

29

Codificadores
Codificador de prioridade 8 3
8 entradas: I7 (+ prioridade) a I0 (- prioridade)
enable output
I7
enable input
got something
I6
I5
I4
I3
I2
I1
I0
EI

A2
A1
A0

GS
EO

EI
0
1
1
1
1
1
1
1

I7
x
0
0
0
...
0
0
1
0

I6 I5 ...
x x ...
0 0 ...
0 0 ...
0 0 ...
0
1
x
0

1
x
x
0

...
...
...
...

I2 I1 I0
x x x
0 0 1
0 1 x
1 x x
...
x x x
x x x
x x x
0 0 0

A2
0
0
0
0
1
1
1
0

A1
0
0
0
1
...
0
1
1
0

A0
0
0
1
0

GS
0
1
1
1

EO
1
1
1
1

1
0
1
0

1
1
1
0

1
1
1
0

GS sada atuada se o circuito est habilitado e alguma entrada atuada


EO til para atuar a entrada EI de outro codificador que receba entradas de
menor prioridade
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

30

Multiplexadores
Multiplexadores (multiplexers ou muxs)
circuito seletor (um mux 4 1)
smbolo habitual
I0
I1
I2

Y = Is, s={S1,S0}

I0

I1
I2 Y

I3

entradas
de seleo

Antnio Jos Arajo, FEUP

I3

S0

S1

S1

S0

AOCO_2014/15 - Circuitos combinatrios

31

Multiplexadores

Como fazer um mux 41 com muxs 21?


Como realizar uma funo lgica de N
variveis
com um mux de N linhas de seleo?
e com um mux de N-1 linhas de seleo?

Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

32

Ou exclusivo
Porta OU-exclusivo (XOR)
sada 1 quando as entradas so diferentes
aplicao: somadores, detetor de paridade
A B AB
(mpar)
A
B

AB

0
0
1
1

0
1
0
1

0
1
1
0

funo lgica: AB = AB + AB
como se faz um XOR com 4 NANDs?
XNOR um comparador de igualdade
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

33

Somadores/subtratores
Somadores
somador tipo ripple-carry (como se faz mo)
ligao de N full-adders em cascata (circuito
iterativo)
Si = Ai Bi Ci-1
Ci = AiBi + AiCi-1 + BiCi-1

Subtratores
como A - B = A + (-B), basta trocar o sinal de B
trocar o sinal: trocar os bits todos (XORs) e somar 1 (carryin)

Portas XOR como inversores controlados

X=A B: quando A=0, X=B; quando A=1, X=B

Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

34

Comparadores
Comparadores de igualdade
entre uma varivel de N bits e uma constante
um AND de N entradas
negadas as entradas a comparar com zero

entre duas variveis A e B de N bits


N portas XNOR comparam os bits de A e B
uma porta AND de N entradas produz o resultado
Ai
Bi

Antnio Jos Arajo, FEUP

Ai = Bi

AOCO_2014/15 - Circuitos combinatrios

35

Comparadores
Circuitos iterativos
ligao em cascata de sub-circuitos simples
cada sub-circuito avalia parte dos operandos
exemplo: comparador iterativo de igualdade
Ai

AEQBin
os bits mais significativos
(at i-1) so iguais
Antnio Jos Arajo, FEUP

Bi

AEQBout
os bits at i so iguais

AOCO_2014/15 - Circuitos combinatrios

36

Comparadores
Comparadores de magnitude

(sem sinal)

pode ser usado um subtrator


comparador iterativo de magnitude:
Ai

Bi
resultado (A>B) dos bits at i

AGTBin
ALTBin

AGTBout
ALTBout

resultado (A<B) dos bits at i


pelos bits mais significativos pelos bits mais significativos
(at i-1), j A>B
(at i-1), j A<B
Antnio Jos Arajo, FEUP

AOCO_2014/15 - Circuitos combinatrios

37