circcomb_aoco_201415

19
Arquitetura e Organização de Computadores - EIC0083 1º ano, 1º semestre - 2014/15 António José Duarte Araújo Mestrado Integrado em Engenharia Informática e Computação FEUP Circuitos combinatórios António José Araújo, FEUP AOCO_2014/15 - Circuitos combinatórios 2 Circuitos combinatórios: resumo • Álgebra de Boole • Representações de funções booleanas • Circuitos lógicos • Circuitos combinatórios padrão

Upload: nadiascarvalho

Post on 09-Feb-2016

212 views

Category:

Documents


0 download

DESCRIPTION

circComb_AOCO_201415

TRANSCRIPT

Page 1: circComb_AOCO_201415

Arquitetura e Organizaccedilatildeo de Computadores - EIC00831ordm ano 1ordm semestre - 201415

Antoacutenio Joseacute Duarte Arauacutejo

Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo

FEUP

Circuitos combinatoacuterios

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 2

Circuitos combinatoacuterios resumo

bull Aacutelgebra de Boole

bull Representaccedilotildees de funccedilotildees booleanas

bull Circuitos loacutegicos

bull Circuitos combinatoacuterios padratildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 3

Aacutelgebra de Boole

bull 1854 - George Boolendash formular proposiccedilotildees como V ou Fndash combinar proposiccedilotildeesndash avaliar a sua veracidade ou falsidade

bull 1938 - Claude Shannon (Bell Labs)ndash adaptou a aacutelgebra de Boole agrave anaacutelise de

circuitosndash condiccedilatildeo de um contacto como V ou F

bull representado como uma variaacutevel booleana (0 ou 1)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 4

Axiomas da aacutelgebra de Boole

bull Definiccedilotildees fundamentaisndash seja X uma variaacutevel booleana

ndash (A1) X=0 se X ne 1 ndash (A1rsquo) X=1 se X ne 0

X ou eacute 1 ou eacute 0

ndash (A2) se X=0 entatildeo Xrsquo=1ndash (A2rsquo) se X=1 entatildeo Xrsquo=0

Xrsquo (ou X) eacute o oposto de X

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5

ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0

operador E 2 interruptores em seacuterie

ndash (A3rsquo) 0 + 0 = 0

ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1

operador OU 2 interruptores em paralelo

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6

bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees

ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo

ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo

ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7

(T1) X + 0 = X (T1rsquo) X 1 = X

(T2) X + 1 = 1 (T2rsquo) X 0 = 0

(T3) X + X = X (T3rsquo) X X = X

(T4) (Xrsquo)rsquo = X

(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0

Operaccedilotildees com uma variaacutevel

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8

(T6) X+Y=Y+X (T6rsquo) XY=YX

(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)

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

(T9) X+XY=X (T9rsquo) X(X+Y)=X

(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY

(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X

(T12) XY+XrsquoZ+YZ = XY+XrsquoZ

(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)

Operaccedilotildees com duas e trecircs variaacuteveis

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9

(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo

Generalizando

[F(X1 X2 X3 Xn + ) ]rsquo =

F(X1rsquo X2rsquo X3rsquo Xnrsquo +)

Teoremas da aacutelgebra de Boole

Leis de De Morgan

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10

Simplificaccedilatildeo de expressotildees

(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)

Exemplo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 2: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 3

Aacutelgebra de Boole

bull 1854 - George Boolendash formular proposiccedilotildees como V ou Fndash combinar proposiccedilotildeesndash avaliar a sua veracidade ou falsidade

bull 1938 - Claude Shannon (Bell Labs)ndash adaptou a aacutelgebra de Boole agrave anaacutelise de

circuitosndash condiccedilatildeo de um contacto como V ou F

bull representado como uma variaacutevel booleana (0 ou 1)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 4

Axiomas da aacutelgebra de Boole

bull Definiccedilotildees fundamentaisndash seja X uma variaacutevel booleana

ndash (A1) X=0 se X ne 1 ndash (A1rsquo) X=1 se X ne 0

X ou eacute 1 ou eacute 0

ndash (A2) se X=0 entatildeo Xrsquo=1ndash (A2rsquo) se X=1 entatildeo Xrsquo=0

Xrsquo (ou X) eacute o oposto de X

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5

ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0

operador E 2 interruptores em seacuterie

ndash (A3rsquo) 0 + 0 = 0

ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1

operador OU 2 interruptores em paralelo

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6

bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees

ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo

ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo

ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7

(T1) X + 0 = X (T1rsquo) X 1 = X

(T2) X + 1 = 1 (T2rsquo) X 0 = 0

(T3) X + X = X (T3rsquo) X X = X

(T4) (Xrsquo)rsquo = X

(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0

Operaccedilotildees com uma variaacutevel

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8

(T6) X+Y=Y+X (T6rsquo) XY=YX

(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)

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

(T9) X+XY=X (T9rsquo) X(X+Y)=X

(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY

(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X

(T12) XY+XrsquoZ+YZ = XY+XrsquoZ

(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)

Operaccedilotildees com duas e trecircs variaacuteveis

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9

(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo

Generalizando

[F(X1 X2 X3 Xn + ) ]rsquo =

F(X1rsquo X2rsquo X3rsquo Xnrsquo +)

Teoremas da aacutelgebra de Boole

Leis de De Morgan

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10

Simplificaccedilatildeo de expressotildees

(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)

Exemplo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 3: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5

ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0

operador E 2 interruptores em seacuterie

ndash (A3rsquo) 0 + 0 = 0

ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1

operador OU 2 interruptores em paralelo

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6

bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees

ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo

ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo

ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees

Axiomas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7

(T1) X + 0 = X (T1rsquo) X 1 = X

(T2) X + 1 = 1 (T2rsquo) X 0 = 0

(T3) X + X = X (T3rsquo) X X = X

(T4) (Xrsquo)rsquo = X

(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0

Operaccedilotildees com uma variaacutevel

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8

(T6) X+Y=Y+X (T6rsquo) XY=YX

(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)

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

(T9) X+XY=X (T9rsquo) X(X+Y)=X

(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY

(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X

(T12) XY+XrsquoZ+YZ = XY+XrsquoZ

(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)

Operaccedilotildees com duas e trecircs variaacuteveis

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9

(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo

Generalizando

[F(X1 X2 X3 Xn + ) ]rsquo =

F(X1rsquo X2rsquo X3rsquo Xnrsquo +)

Teoremas da aacutelgebra de Boole

Leis de De Morgan

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10

Simplificaccedilatildeo de expressotildees

(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)

Exemplo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 4: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7

(T1) X + 0 = X (T1rsquo) X 1 = X

(T2) X + 1 = 1 (T2rsquo) X 0 = 0

(T3) X + X = X (T3rsquo) X X = X

(T4) (Xrsquo)rsquo = X

(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0

Operaccedilotildees com uma variaacutevel

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8

(T6) X+Y=Y+X (T6rsquo) XY=YX

(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)

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

(T9) X+XY=X (T9rsquo) X(X+Y)=X

(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY

(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X

(T12) XY+XrsquoZ+YZ = XY+XrsquoZ

(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)

Operaccedilotildees com duas e trecircs variaacuteveis

Teoremas da aacutelgebra de Boole

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9

(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo

Generalizando

[F(X1 X2 X3 Xn + ) ]rsquo =

F(X1rsquo X2rsquo X3rsquo Xnrsquo +)

Teoremas da aacutelgebra de Boole

Leis de De Morgan

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10

Simplificaccedilatildeo de expressotildees

(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)

Exemplo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 5: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9

(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo

Generalizando

[F(X1 X2 X3 Xn + ) ]rsquo =

F(X1rsquo X2rsquo X3rsquo Xnrsquo +)

Teoremas da aacutelgebra de Boole

Leis de De Morgan

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10

Simplificaccedilatildeo de expressotildees

(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)

Exemplo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 6: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11

Representaccedilatildeo de funccedilotildees booleanas

bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das

variaacuteveisndash contradomiacutenio 0 1

bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica

F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funccedilatildeo

ordem naturalcrescente

(combinaccedilotildees das entradas)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 7: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13

Tabela de verdade

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade

X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14

Circuito loacutegico

as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana

F(XYZ)

X

YZ

B

AAB

E A B AB0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NAtildeO

portas loacutegicas elementares circuito loacutegico

XZ

ZY

Z Y

uma rede de portas loacutegicasinterligadas entre si

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 8: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15

Circuito loacutegico

As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)

ABCD

ABCD A+B+CABC

Podem ser desenhadas portas loacutegicas com entradas negadas

A

BA B A + B

A

B

ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)

A

BA B A + B

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16

Expressatildeo lsquosoma de produtosrsquo

bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das

entradas para as quais F=1ndash Ex

X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ

F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 9: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17

Expressatildeo lsquoproduto de somasrsquo

bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das

entradas para as quais F=0ndash Ex

X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1

F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18

Siacutentese de circuitos combinatoacuterios

bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis

F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)

YZX

F(XYZ)

niacutevel de portas AND

niacutevel de portas ORSOP AND-ORPOS OR-AND

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 10: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19

Transformaccedilatildeo para NANDs

bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor

bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes

bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico

bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20

AND-OR para NANDs

Y

Z

X

F(XYZ)

Y

Z

X

F(XYZ)

Leis de DeMorganUm OR com as entradasnegadas eacute um NAND

Circuito AND-OR (da expressatildeo SOP)

E os inversoresE soacute com NAND de 2 entradas

Negando as saiacutedas dos ANDs e as entradas do OR

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 11: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21

Circuitos combinatoacuterios complexos

bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo

bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de

verdadendash Projeto hieraacuterquico

bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-

addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22

Funccedilotildees combinatoacuterias ldquopadratildeordquo

bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)

ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo

bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)

todos com interesse no contexto da arquitetura de computadores

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 12: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23

Desenho de circuitos

bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo

bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada ativa com 0 (negada)

Nomes dos sinais

Saiacuteda ativa em 0 (negada)

Entrada ativa com 1

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24

Barramentos

bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[31]8

8

A[70]

B[70]

A

BAgtB

A

B

S

Y8

comparador

multiplexador

MAX[70]

nordm de bits

barramento (8 bits)

fio (1 bit)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 13: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25

Descodificadores

bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)

bull Exemplo descodificador 2 divide 4 (2 para 4)

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

sinal de habilitaccedilatildeo (enable)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26

Descodificadores

bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

Y3 Y2 Y1 Y0

A

B

G

Y0

Y1

Y2

Y3G

Y0

Y1

Y2

Y3

A

B

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 14: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27

Descodificadores

- Descodificador binaacuterio 3 divide 8

EN I2 I1 I0

0 x x x 1 1 1 1

1 0 0 0 1 1 1 0

1 0 0 1 1 1 0 1

1 1 1 0 1 0 1 1

1 1 1 1 0 1 1 1

Y7 Y6 Y1 Y0

- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8

- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis

I0

I1

Y0

Y1

Y2

Y3I2

Y4

Y5

Y6

Y7

EN

saiacutedas ativas a 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28

Descodificadores

bull Descodificador BCD para 7 segmentos

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 15: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29

Codificadores

bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N

bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30

Codificadores

bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1

1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0

got somethingenable outputenable input

GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 16: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31

Multiplexadores

bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)

Y

I0

I1

I2

I3

S0

S1entradasde seleccedilatildeo

Y = Is s=S1S0 I0

I1

I2

I3

Y

S0S1

siacutembolo habitual

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32

Multiplexadores

ndash Como fazer um mux 4divide1 com muxs 2divide1

ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis

bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 17: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33

Ou exclusivo

bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade

(iacutempar)

ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade

AB

AoplusB

A B AoplusB0 0 00 1 1 1 0 11 1 0

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34

Somadoressubtratores

bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito

iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1

bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B

bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)

ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 18: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35

Comparadores

bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante

bull um AND de N entradasbull negadas as entradas a comparar com zero

ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36

Comparadores

bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade

Ai Bi

AEQBoutAEQBin

os bits mais significativos (ateacute i-1) satildeo iguais

os bits ateacute i satildeo iguais

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i

Page 19: circComb_AOCO_201415

Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37

Comparadores

bull Comparadores de magnitude (sem sinal)

ndash pode ser usado um subtratorndash comparador iterativo de magnitude

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB

resultado (AgtB) dos bits ateacute i

ALTBin

pelos bits mais significativos (ateacute i-1) jaacute eacute AltB

ALTBout

resultado (AltB) dos bits ateacute i