Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sumrio
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Introduo, motivao, objetivos ... ou pra que diabos serve o curso de circuitos lgicos ...................3
Evoluo histrica das mquinas de calcular.....................................................................................5
Nmeros.........................................................................................................................................11
Aritmtica Binria..........................................................................................................................29
Clulas Binrias..............................................................................................................................41
lgebra Booleana............................................................................................................................54
Blocos Lgicos................................................................................................................................64
Tecnologias de circuitos integrados..................................................................................................68
Funes booleanas e circuitos digitais..............................................................................................73
Simplificao de funes booleanas..................................................................................................83
Circuitos Sequenciais.......................................................................................................................90
Cdigos............................................................................................................................................97
Exemplos de Circuitos Digitais .....................................................................................................100
Bibliografia....................................................................................................................................104
NOTA: Este texto no se trata de publicao original. Alguns pontos so apenas traduo de
textos citados. So notas de aula e no uma apostila ou outra coisa do gnero. Os estudantes
devem usar este material como referencia inicial para estudo. O autor no autoriza
reproduo ou qualquer outra utilizao que no seja como roteiro e material de estudo
individual. O seu uso indevido responsabilidade de quem o fizer.
de como manipular
as expresses
algbricas para obter os melhores circuitos (menor custo e melhor desempenho). Por
outro lado, espera-se que o aluno se sinta estimulado a pensar sobre novos problemas
no campo. Por exemplo, nos novos mtodos de simplificao automtica de circuitos,
nos computadores moleculares e no fato de que ser engenheiro significa, contribuir,
necessrios para que crebros mais primitivos efetuem a atividade de contar. Talvez
a capacidade de identificar padres seja suficiente (dentro de certos limites), ou talvez
seja preciso padres mais elementares (e.g. um nico smbolo) e memria. Um
sistema bastante sofisticado de armazenamento e representao de quantidades
(Figura 0) e contagem j
Figura 0. O Quipu. Sistema Inca de contagem e armazenamento de informao. direita: Ref.: Como
fazer seu prprio quipu; esquerda: quipu Inca com ilustrao de codificao para contagem (veja:
http://agutie.homestead.com/files/Quipu_B.htm)
O primeiro dispositivo de clculo, contudo, parece ter sido o baco (do latim
Abacus), introduzido pelos babilnios cerca de 3000 AC. A Figura 1 ilustra um baco
que consiste de uma armao retangular com hastes e contas, dividida por uma barra
transversal, separando conjuntos de 5 ou de 2 contas. Cada coluna de contas tem um
peso, da direita para a esquerda, 1, 10, 100, etc. Na representao de um nmero at
5 so utilizadas as contas do grupo de 5 e quando este valor ultrapassado, at dez,
usa-se a combinao do movimento (na direo da diviso central) das contas
agrupadas em duplas. O sistema permite que as operaes aritmticas sejam
efetuadas e que o resultado fique registrado. Os clculos podem ser efetuados de
modo bastante rpido por indivduos experientes.
Figura 1. Foto de um baco, mostrando o nmero 2650. Verso chinesa do baco (origem: abacus do
Latin que quer dizer sandboard. A palavra pode ter se originado do Grego abakos que quer dizer
calculating table (abax).
ser exibida publicamente foi a mquina construda por George e Edvard Scheutz (Pai e
filho). Uma das primeiras utilizaes de mquinas mecnicas para computao foi o
equipamento que fazia uso de cartes perfurados projetado por Herman Hollerith em
1890. Mais tarde a sua companhia se juntou com uma empresa competidora para
fundar nada menos que a IBM (International Business Machine).
Aproximadamente no perodo de 1937 a 1953 nasceram as mquinas
eletromecnicas e eletrnicas, constituindo a primeira gerao de computadores
eletrnicos. As chaves eletrnicas, embora no muito confiveis no incio, podiam
"abrir" e "fechar" cerca de 1.000 vezes mais rpidamente que os acionadores ou
chaves mecnicas.
Uma contribuio importante veio de Alan Turing que projetou a chamada
Colossus usada para quebrar cdigos das foras alems, durante a II Guerra Mundial.
A maior contribuio de Turing, no entanto, foi a sua chamada Mquina de Turing
seguindo um formalismo matemtico usado no estudo das chamadas funes
computveis.
O primeiro computador eletrnico de aplicao geral foi o ENIAC, projetado na
universidade da Pensilvnia por Eckert e Mauchly entre 1943 e 1945, usado
intensamente nos clculos no projeto da bomba de hidrognio. A partir desta mquina
estes autores aliados a John von Neumann desenvolveram o primeiro computador
eletrnico de programa armazenado. Esta mquina acabou por dar origem ao UNIVAC
em 1952.
A segunda gerao de computadores inaugura a fase dos circuitos de
chaveamento baseados em transistores e diodos, operando na faixa de fraes de
microsegundos. Por volta de 1954 as mquinas TRADIC da Bell Lab e a do TX-0
Lincoln Lab no MIT so exemplos. Mudanas importantes ocorreram do ponto de vista
da arquitetura e do processamento, em particular com a introduo de clculos em
ponto flutuante permitindo a operao com nmeros reais. Esta era, que durou at por
volta de 1962, trouxe a inovao da construo de muitas linguagens de programao
tais como o FORTRAN (1956) para computao cientfica, o ALGOL (1959) como uma
linguagem estruturada e o COBOL (1959) voltada ao processamento comercial. Nesta
poca surge uma famlia de computadores da IBM que em sua verso mais moderna
7
(provavelmente por meio do chamado Lax report, relatorio editado por Peter Lax;
http://www.pnl.gov/scales/archives.stm)
contraste com
fica
difcil
incio dos anos 90, havia a idia de que talvez o sistema hbrido vetorial e paralelo
devesse ser uma boa soluo. Nesta poca j se prometia sistemas hbridos capazes
12
10
3. Nmeros
3.1 Conceito
aparentemente bvia e ao mesmo tempo intrigante a necessidade que os seres
humanos, e provavelmente outras espcies tem, de contar. Esta atividade est na
base do desenvolvimento do que hoje chamamos de nmeros. provvel que a
persistncia da espcie humana no tenha sido independente da sua capacidade de
desevolver a matemtica e, nela, o conceito de nmeros, que se desenvolveu gradual
e lentamente por
Contar requer
estratgias para acumular, agrupar, dar peso e registrar. Quando h muitos elementos
preciso, definitivamente, computar. Para lidar com os nmeros, povos como os
egpcios e os mesopotmicos h cerca de 4.000 anos criaram smbolos e os
organizaram em grupos atribuindo-lhes pesos relativos s posies ocupadas em
sequencias pr-estabelecidas. Estas atividades devem ter originado o conceito de
sitemas de numerao (bases numricas), provavelmente por associao com
conjuntos incidentalmente disponveis, como por exemplo, 5 dedos nas mos e ps.
Estes, deram origem a sistemas quinrios (base 5), decimais (base 10), vigesimais
(base 20). Outras bases foram tambm usadas primitivamente como a binria, ternria
11
e outras, em porcentagem bastante inferior, mas deixando efeitos que so vistos nos
nossos dias, como por exemplo, contar de 2 em 2.
Foi necessrio desenvolver a linguagem para expressar os nmeros da forma
que hoje os conhecemos, mas os nmeros e a capacidade de contar tambm
influenciaram as linguagens. A palavra twelve (12 em ingls) pode ter sido originada do
uso da base 10 significando two above ou two more (dois acima ou a mais). Ns
diferenciamos no portugus, um de muitos, ou seja, singular e plural. No grego
distingue-se 1, 2, 3 e muitos, como pode ser a origem do nosso mono, bi, tri e poli.
Outro exemplo o uso da base para "falar o nmero" como h ainda hoje na lingua
francesa. Escreve-se para o nmero oitenta, quatre-vingt (quatro-vinte), evidenciando o
uso ancestral da base 20.
Insisto na questo de quo bsico contar. Ser que outras espcies tem esta
capacidade? Em sua obra The descent of man (1871), Charles Darwin descreveu a
capacidade de alguns "animais superiores" de memria e imaginao. Hoje, estas
habilidades esto melhor estudadas e confirmadas. Quem nunca ouviu falar da
inteligncia dos corvos (corvo = crow em ingls)? Procure sobre isto quando estiver
navegando pela internet (veja por exemplo: http://www.pbs.org/lifeofbirds/brain/). Estes
animais conseguem saber quantos caadores esto se aproximando (se 1 ou at 4,
por exemplo). Se uma artimanha feita para atra-los, isto no dura muito. Duas vezes
seguidas da mesma estratgia faz com que as aves se posicionem em rvores bem
distantes e faam um enorme barulho, no mais caindo na armadilha. H indstrias
nos EUA dedicadas a desenvolver maneiras de ludibriar os corvos para que possam
ser caados. J sei, vocs devem estar pensando: e por que algum iria querer caar
corvos? Procure sobre isto no mesmo local indicado anteriormente e em outros e ver!
No h dvidas que os animais podem contar. Os mesmos corvos conseguem
enterrar milhares de sementes e depois recuperar cerca de 90% delas.
pginas poderiam
Algumas
padres, contar e executar outras atividades como por exemplo usar ferramentas, mas
vamos voltar a nossa disciplina. Ns estvamos falando sobre contar, reconhecendo
padres, agrupando, colocando em sequencia, dando pesos, descrevendo por meio de
uma linguagem, computando ... nmeros.
12
tudo sobre sistemas de numerao, exatamente para que o usurio comum, cada vez
mais nem sequer precise saber que isso existe. O conhecimento do sistema numrico
interno das mquinas importante sob o ponto de vista de desenvolvimento de
programas e sistemas e de manuteno da mquina. Saber detalhes de construo e
da representao numrica nos computadores, bem como detalhes de suas operaes
aritmticas bsicas o que na Engenharia "separa os meninos dos homens". Qual
ser o conhecimento necessrio para os prximos desenvolvimentos? Qual o futuro
da interao homem-mquina e o que ser que vocs precisaro saber para
possibilitar que isto ocorra cada vez melhor? Qual a sua opinio? Devemos procurar
evoluir no sentido de construir mquinas que substituam o crebro humano?
Como j foi dito, a escolha natural para construo de mquinas digitais genricas
o sistema binrio de numerao. Isto no quer dizer que outras tcnicas de
numerao no estejam em teste, em particular para mquinas dedicadas, como o uso
n
-1
-2
Nmeros decimais como este so ditos representados na base ou raiz 10 por que h
10 dgitos para represent-los (0, 1, 2 ..., 9) a partir dos quais todo o sistema numrico
representado. De modo semelhante podemos representar qualquer nmero em
qualquer base b. Vamos escrever o nmero como (N)b. Assim, um nmero qualquer
pode ser escrito:
14
(1)
ou de modo compacto:
( N )b =
c b
i=m
b-1. Para
4
Quaternria
00
01
02
03
10
8
Octal
00
01
02
03
04
10
Decimal
00
01
02
03
04
12
Duodecimal
00
01
02
03
04
16
Hexadecimal
0
1
2
3
4
15
-1
-2
-3
11 + 5/8 = 11.625
Esta tcnica uma maneira geral e converter da base b1 para outra base b2.
Exemplos:
(26) 8 ser (22)10
1) 2x81 + 6x80
2) 2x8 + 6x1 = (16) 10 + (6) 10 = (22) 10
( 26) 8 = (42) 5
1
1) 2x8 +6x8
Dividendo/Q
23
11
5
2
Resto
1
1
1
0
Sequncia
- sig.
c0
c1
c2
c3
17
1
0
+ sig.
c4
A seta indica a direo do dgito mais significativo para o dgito menos significativo.
Divisor
8
8
Div/Quoc.
23
2
0
c) (410) 10 = (3120) 5
Divisor
Div/Quoc.
5
410
5
82
5
16
5
3
0
Resto
7
2
Resto
0
2
1
3
18
0.5
b) (0.23) 10 = (0.001110...) 2
0.23 x 2 = 0.46
0.46 x2 = 0.92
0.92 x 2 = 1.84
0.84 x 2 = 1.68
0.68 x 2 = 1.36
0.36 x 2 = 0.72
c) (27.68) 10 =
D
2
2
2
2
Div/Q
27
13
6
3
1
0
0.0
0.00
0.001
0.0011
0.00111
0.001110 ...
(11011.101011 ...) 2
= (33.53) 8
R
1
1
0
1
1
0.68 x 2 = 1.36
0.36 x 2 = 0.72
0.72 x 2 = 1.44
0.44 x 2 = 0.88
0.88 x 2 = 1.76
0.76 x 2 = 1.52
0.1
0.10
0.101
0.1010
0.10101
0.101011
8
8
27 R
3 3
0 3
19
Esta converso to simples que muitas vezes nmeros octais so usados para
representar os nmeros binrios por questes de compactao. Lembre-se de ajustar
o nmero de bits para mltiplos de 3, caso contrrio, em alguns casos a preciso
adequada no seria cumprida. Erros sero introduzidos na frao. Para avaliar o
nmero octal, dentro de cada bloco de 3 usamos a notao posicional na base 2 com
aritmtica decimal (dado que os dgitos octais seriam os memos em decimal). Por
exemplo (no caso de nmero inteiro):
( 1 101 011)2 = (1 5 3)8
2
onde 011 seria o dgito 3 por que seria, na notao posicional, 0x2 +1x2 +1x2 = 0 +
2+1 = 3. Se o nmero de dgitos for ajustado para mltiplos de 3 nas partes inteira e
fracionria a direo da converso poderia ser efetuada em qualquer direo.
Quando uma frao convertida, a converso pode no terminar por que pode
ser que no seja possvel representar a frao exata em um nmero finito de dgitos.
Por exemplo, considere a converso (0.1)3 para uma frao na base 10. O resultado
ser (0.333 ...)10 que pode ser escrito com (0.3)10 para representar que 3 seria repetido
indefinidamente.
Exerccio: Faa a converso de (0.1)3 para a base 10.
20
fcil concluir que pela combinao dos dois mtodos de converso possvel
converter entre duas bases arbitrrias quaisquer usando somente aritmtica em uma
terceira base. Por exemplo (16)7 para a base 3, convertendo antes para a base 10:
(16) 7 = 1x71+6x70 = 7 + 6 = (13)10
Agora converta (13)10 para a base 3.
3 13 R
3 4 1
3 1 1
3 0 1
(16)7 = (13)10 = (111)3
3.2.2 Representao de nmeros fracionrios e negativos
A representao de fraes segue naturalmente da notao posicional. Um
smbolo denominado ponto da raiz ou da base usado em uma sequncia que
representa uma frao ou um nmero misto. O ponto da raiz separa os dgitos da
sequncia para os quais os expoentes (potncias) so maiores ou iguais a zero
daqueles que so negativos.
A sequncia c1c2 ... cn cn+1cn+2 ... cn+m representa a soma
n+m
n i
c
b
i
i =1
21
(1 2c0 )
c i b n i
i =1
Deste modo, c0 indica se o nmero positivo ou negativo e a sequncia c1, c2, ..., cn
representa a magnitude do nmero. A sequncia 010102 representa +10102 = 1010 e a
sequncia 110102 = -1010 . Do mesmo modo a sequncia 1942410 representa -942410 e
0942410 representa +942410 .
Dois outros sistemas de representao so frequentemente usados.
So eles
b -c
onde b a base do sistema. O complemento de base de c = c1c2 ... cn pode ser
formado simplesmente pela subtrao de cada ci de b-1, formando assim o
complemento de ci (ci' ) e ento adicionando 1 ao nmero resultante c' = c'1c'2 ... c'n .
Assim o complemento da base do octal 24138 definido como 84 - 24138 =
53658 e pode ser formado como segue:
22
(8-1) = base - 1
(7-2) x 83 + (7-4) x 82 + (7-1) x 81 + (7-3) x 80 + 1 = 5364 + 1 = 53658
O complemento da base de 741410 258610 e do nmero 10102 = 01102.
Por definio o complemento da base diminuda (lembre-se diminuda de 1) de c =
c1c2 ... cn o nmero:
n
b -c-1
onde b a base. O complemento formado pela subtrao de cada dgito que forma o
nmero ci de b-1. Por exemplo 241710 torna-se 758210 e 10102 torna-se 01012 .
O complemento da base no sistema decimal denominado de complemento de
10 e no binrio complemento de 2. De modo similar os complementos de base
diminuda nestes dois sistemas seriam respectivamente complemento de 9 e
complemento de 1.
Estas representaes numricas so usadas para apenas para os nmeros
negativos, deste modo o complemento de 10 de +241710 o nmero negativo -758310
e o complemento de 9 seria -758210. A grande virtude destes complementos que so
fceis de serem formados e, se utilizados, as adies e subtraes podem ser
facilitadas com apenas algumas regrinhas, mas lembre-se: existiro regras para se
efetuar as operaes mas as operaes so simplificadas de modo que mesmo uma
mquina simples poderia efetu-las (o preo a pagar so as regrinhas!).
Vamos assumir que nmeros negativos estejam armazenados na forma de
complemento de 9 e que todos os nmeros sero representados em sequencias de
comprimento 5, c0c1c2c3c4 ,onde c0 (dgito de sinal) indica se o nmero positivo ou
negativo e os dgitos seguintes representam a magnitude do nmero. Neste caso, a
sequencia 0001910 representa o nmero +1910 e a sequencia 1011410 representa o
23
nmero -988510.
sequencias:
19
-9885
00019
10114
-9866
10133
19972
-54
19945
-81
1 19917
+1
19918
A maoria das mquinas representam nmeros negativos em complemento de 2
ou de 1 e representam nmeros na forma fracionria. Vamos agora assumir
complemento de 1 e nmeros com 5 dgitos, sendo c0 o bit de sinal: c0c1c2c3c4. Os
dgitos de c1 a c4 representam a frao binria com o ponto binrio `a esquerda de c1.
Assim, -0.01012 representada por 110102 e + 0.01012 por 001012. A soma destes
nmeros resulta zero ou 111112 que o zero negativo, neste sistema. H ainda outra
representao para o zero, ou seja, 000002 chamada de zero positivo.
Em complemento de 2 o nmero +0.0012 representado por 00012. O nmero 0.0012 representado po 11112. Agora, no complemento de 2, qualquer vai um (carry)
que ocorra da posio c0 durante a adio desprezado como segue:
-10
11110
24
+10
00010
00
100000
(drop!)
2 ( c ) = c0 +
ci 2 i
i =1
-1 2 1-2-n
2 (c ) = c0 ( 2
1) +
ci 2 i
i =1
25
b (c ) = c 0 +
c b
i =1
e na base b-1
b1 (c) = c0 (b
1) +
c i b i
i =1
1 b 1 b n
e na base diminuida
1 + b n b1 1 b n
Como o nico sistema, fora o binrio, que usado de algum modo o BCD,
vamos descrever algumas de suas caracterscitcas. Sistemas em outras bases tem
caractersticas semelhantes.
O nmero negativo na representao em complemento de 9 fracionrio pode
ser facilmente obtido. O bit de sinal muda de valor e os outros dgitos tem seus valores
26
o seu complemento de
27
0001= 110
Usando o complemento de 1para efetuar a subtrao, ficaria:
1001
0111
10000
1
0001
Neste sistema o complemento de 10 mais complexo operacionalmente por
que para cada grupo de dgitos preciso achar o complemento de 1 e adicionar 1. Isto
complica o modo de sintetizar circuitos para executar automaticamente as operaes.
Neste caso, se um vai um ocorre no sinal ele descartado.
28
4. Aritmtica binria
Os computadores modernos usam o sistema binrio para representar os
nmeros e consequentemente usam a aritmtica binria nas operaes. Vamos ver
aqui as tcnicas para realizar as operaes aritmticas elementares na base 2. Para
executar aritmtica na base 10 necessrio saber a taboada. Nas outras bases isto
tambm ocorre. H tabelas que ajudam a memorizar. Um ponto importante que a
adio no fundo a operao fundamental. A partir dela todas as outras podem ser
efetuadas. Desde que se saiba operar com nmeros negativos a subtrao pode ser
transformada em adio e a partir da obter as outras operaes, tais como,
multiplicao, diviso e exponenciao.
Vai um (carry, C)
0
0
0
1
Os nmeros devem ser alinhados pelo ponto da base e cada coluna somada da
direita para a esquerda, levando-se em conta a possibilidade de gerao de "vai-um".
Neste caso o valor do "vai-um" adicionado como uma linha a mais na soma. De
modo geral cada coluna somada na base 10 e dividida pela base. O resto entra como
a soma para aquela coluna e o quociente vai como "vai-um" para a prxima coluna.
Exemplo:
C=
Soma =
11 11
1001.011
1101.101
1 0111.0002
9.37510
13.62510
23.00010
29
Subtrao binria
A tabela para subtrao binria est apresentada a seguir:
D
0-0 = 0
0-1 = 1
1-0 = 0
1-1 = 0
Emprstimo
(Borrow, B)
0
1
0
0
1
0
10
01
Diferena:
01
Se, por outro lado, ocorre transbordo e o bit mais esquerda, do minuendo, zero,
este zero trocado por 1, assim como todos os outros bits sucessivos que forem zero.
O primeiro bit 1 esquerda ser trocado por zero e a subtrao continua.
Transbordo:
Trocas:
Minuendo:
Subtraendo:
1
011
11000
10001
24
17
Diferena:
00111
30
B = (2-B)10 =(10-B)2
Assim, 2(0.1101) = 10.0000 - 0.1101 = 1.0011. Um mtodo simples para se fazer esta
operao notando que 10.0000 = 1.1111 + 0.0001. Deste modo,
10.0000 - 0.1101 = (1.111 + 0.0001) - 0.1101
ou
1.1111 - 0.1101 + 0.0001
Esta subtrao particularmente fcil j que basta inverter todos os bits e obter o
resultado:
1.1111 - 0.1101 = 1.0010 e da basta adicionar o que falta, ou seja, 0.0001, ficando
1.0010 + 0.001 = 1.0011.
Isto significa que para se obter o complemento de 2 de uma frao basta inverter todos
os bits e adicionar a frao 0.00 ... 01. A aplicao do complemento de 2 est na
possibilidade de se obter a diferena pela soma do complemento. Assim,
A-B = A + 2B = (A + 10 - B)2 = (10 + (A-B))2
Se A-B 0, ento (10 + A-B)2 ser 10 + frao positiva (A-B). possvel obter A-B
2
0.1110
0.1101
Diferena
0.0001
A=
B=
0.1110
1.0011
1 0.0001
31
A=
B=
0.1101
0.1110
Diferena
0.0001
A=
B=
0.1101
1.0010
1.1111
(0.0001) = 1.1111
Resumindo:
2
Se A-B 0 o resultado A+ B com dropping do 1 esquerda;
2
2
Se A-B < 0 o resultado A-B = (B-A)
Se somarmos A + B o resultado ser (A-B + 10 - 0.00 ... 1)2 . Se (AB) > 0, podemos converter para A-B, removendo o (10)2 e adicionando 1 ao dgito
1
menos significativo de A + B. Este procedimento denominado retorno de vai-um
(end-around carry). Por exemplo:
A = 0.1110
B = 0.1101
A = 0.111.
1B = 1.0010
10.0000
0.0001
A + 1B
0.0001
32
A = 0.1101
B = 0.1110
A = 0.1101
B = 1.0001
0.0001
1.1110
(0.0001) = 1.1110
(0.1110 - 0.1101) =
Mostrar que:
2
B = 2(B*22) / 22
F = (10 - F)b
(M-N) + 1
b-1
M = 2 - 1 (definio de mdulo)
M-N
onde 100 ... 0 contm 2 dgitos a mais que qualquer inteiro encontrado na subtrao.
Por exemplo: Se N = 11.01 ento
2
M = 11.10
N = 11.01
0.01
M = 11.10
N = 100.11
1000.01
Descarta (Drop!)
33
Operao deslocamento
Para efetuar multiplicao e diviso comum a necessidade de passos
intermedirios de deslocamento do nmero para a direita ou esquerda. Deslocar um
nmero na base b para a esquerda k vezes equivalente a multiplic-lo por b+k e para
a direita equivale a multiplic-lo por b-k. Portanto, deslocar um nmero inteiro binrio
para a esquerda equivale a multiplic-lo por 2 e para a direita a divid-lo por 2.
( N )b =
c b
i = m
ci b
i+k
=b
i = m
ci b i = b k ( N ) b
i = m
= (1.65625)10
34
c b
i k
=b
i = m
c b
i
i = m
( N )b
bk
110.10
10.1
11010
00000
11010
10000.010
35
primeiro saber que 46 maior que 36 e ento chutar quantas vezes 46 cabe em 362.
Se um primeiro chute for 8 ao efetuar 8x46 = 368 vemos que este nmero maior que
362 e da o prximo chute seria 7. Este processo de tentativa e erro mais simples em
binrio por que h menos nmero de opes nesta base. Para implementar a diviso
binria em um computador, necessrio especificar um algoritmo de diviso. Dois
algoritmos diferentes, chamados de restaurao (restoring) e sem restaurao (nonrestoring) do dividendo so usados.
A diviso com restaurao do dividendo processada da seguinte forma: no
primeiro passo, o divisor subtrado do dividendo com seus dgitos mais `a esquerda,
alinhados. Se o resultado positivo, um "1" colocado como um dgito do quociente
correspondendo ao dgito mais direita do dividendo do qual um dgito do divisor foi
subtrado. O prximo dgito mais direita do dividendo juntado ao resultado, que
ento passa a ser o prximo dividendo parcial e o processo se repete.
Se o resultado da subtrao do divisor do dividendo for negativo, um "0"
colocado no quociente e o divisor adicionado ao resultado negativo para restaurar o
dividendo original. O divisor ento deslocado uma posio para a direita e uma
subtrao efetuada novamente. O processo da diviso por restaurao ilustrado no
exemplo a seguir.
Divisor = 1111
Dividendo = 1100
q0 q-1 ...
x x ...
1111 110 0. 0
1111
- 0011
q-5
x
0 0 0
quociente
nmero de dgitos aps o ponto
q-5
x
0 0 0
quociente
nmero de dgitos aps o ponto
1100
36
11000
- 0 1111
10010
Como o resultado foi negativo o dividor foi adicionado ao resultado negativo
para restaurar o dividendo e o divisor deslocado uma posio para a direita para que
nova subtrao seja efetuada. Agora o divisor ficou menor e com isto o resultado
positivo. Assim, ao q-1 ser atribudo o valor 1 e o prximo nmero do dividendo (neste
caso no h mais e portanto zero!) "baixado" para ser parte do dividendo do qual o
divisor ser novamente subtrado.
q0 q-1 ...
0. 1 ...
1111 1100. 0
1111
- 0011
+ 1111
q-5
x
0 0 0
quociente
nmero de dgitos aps o ponto
1100
11000
- 0 1111
10010
No prximo passo ento o divisor ser novamente subtrado deste novo dividendo
(veja o zero baixado em negrito)
q0 q-1 q-2 ...
q-5
0. 1 1 ...
x
quociente
1111 1100. 0
1111
- 0011
+ 1111
0 0 0
1100
11000
- 0 1111
10010
1111
000110
37
Nesta iterao o resultado foi positivo, q-2 foi feito igual a 1, novo zero baixado e nova
subtrao dever ser feita.
q0 q-1 q-2 q-3 ...
0. 1 1 0 ...
1111 1100. 0
+
0 0 0
1111
0011
1111
q-5
x
quociente
nmero de dgitos
aps o ponto
1100
11000
- 0 1111
10010
1111
000110
1111
- 1001
+ 1111
01100
- 1111
Nesta iterao o resultado foi novamente negativo. Lembre-se que o valor mostrado
na verdade 1111 - 0110 j que 0110 menor que 1111 e o sinal marcado como
negativo. Assim, q-3 ficou igual a 0. Como anteriormente o dividendo foi restaurado e
portanto 1111 (divisor) adicionado ao resultado (veja que esta adio a subtrao de
1001 de 1111), resultado 0110 que era o dividendo anterior (foi portanto, restaurado).
O divisor ento deslocado para a direita para se efetuar a nova subtrao. --- Notem
a diferena de baixar o zero (colocado em negrito) e deslocar o divisor!). Veja tambm
que o divisor foi deslocado com relao ao dividendo que era 0110. A nova subtrao
ser ento 1100 - 1111. Novamente o resultado ser negativo.
38
0 0 0
q-5
x
quociente
1100
11000
- 0 1111
q1=1
q-2=1
q-3=0
10010
1111
000110
1111
- 1001
+ 1111
01100
- 1111
q-4=0
- 0011
1111
11000
1111
q-5=1
(resto)
1001
Da iterao anterior nova restaurao foi necessria e a q-4 foi atribuido o valor
0. A ltima iterao resultou em resultado positivo (1001) levando q-5 para 1 e como o
nmero de digitos aps o ponto j estava determinado e seria igual a 5 a diviso
termina deixando como resto o ultimo resultado da subtrao.
Na diviso sem restaurao a etapa de adicionar o dividendo parcial negativo ao
divisor omitida e o divisor deslocado somado ao dividendo parcial negativo. Este
passo de somar o dividendo parcial negativo ao divisor deslocado substitui os dois
passos de adicionar o divisor e ento subtrair o divisor deslocado. Isto pode ser
justificado por: Se X representa um dividendo parcial negativo e Y o divisor, ento 1/2Y
representa o divisor deslocado uma posio para a direita. Adicionando o divisor e
ento subtraindo o divisor subtraido produz
39
X+Y-1/2Y = X+1/2Y
enquanto que adicionando o divisor deslocado produz o mesmo resultado,
X+1/2Y
Os passos para diviso de 1100 por 1111 esto apresentados a seguir:
Divisor: 1111
Dividendo: 1100
q0 q-1 ...
0. 1 ...
q-5
x
quociente
1111 1100. 0 0 0 0
nmero de dgitos aps o ponto
1111
- 00110
q-0=0
+ 1111
desloca e soma
+ 10010
q-1=1
1111
desloca e subtrai
+
00110
q-2=1
1111
desloca e subtrai
10010 q-3=0
+ 1111
desloca e soma
- 000110 q-4=0
+ 1111 desloca e soma
1001
q-5=1 (resto)
40
5. Clulas Binrias
Mquina digital um tipo de mquina na qual os dados esto representados de
modo discreto. Isto feito pelo uso de dispositivos que exibem um nmero finito de
estados e estes so colocados em correspondncia com os valores das variveis a
serem representadas. Os dispositivos fsicos usados para este propsito so quase
que exclusivamente de dois estados. So dispositivos binrios que so denominados
de clulas binrias. Os tipos de clulas binrias em uso so muito diferentes e variados
quanto ao comportamento. Mesmo quando um fenmeno fsico associado a um certo
dispositivo basicamente contnuo, utiliza-se o modo binrio de operao por causa
da simplicidade e confiabilidade.
Como um dispositivo binrio pode representar somente um dgito binrio,
evidente que para representar valores de variveis contnuas com qualquer preciso ou
para representar inteiros de qualquer magnitude, os dispositivos bi-estveis devem ser
manipulados como conjuntos. Na prtica os dados armazenados em uma mquina
digital so divididos em conjuntos de caracteres ordenados chamados de palavras. Em
uma mquina uma palavra , ento, um conjunto ordenado de caracteres com um
significado. O termo palavra se refere a informao armazenada e no aos dispositivos
fsicos nos quais a informao armazenada. Nos referiremos ao conjunto ordenado
de dispositivos fsicos usados para armazenar uma certa poro de dados como
registradores.
t1
t2
t3
t4
t5
t6
Figura 5.1 Valor do estado versus tempo em uma clula binria ideal. Os valores a e b so valores exatos
assumidos pela varivel binria. Os pontos t1, ..., t6 so instantes no tempo.
41
42
1 a 2 = A
1 b 2 = B
2
1
1
t1
t3
t2
t4
t5
t6
tempo
Figura 5.2 Clula binria real. A e B so os dois estados possveis que ficam definidos pelas faixas alfa e
beta. Os valores assumidos pela varivel binria pode ser a ou b, definidos dentro das faixas.
2
1
2
1
t1 t2
t0
tf
Intervalo de
Medio
tempo
Intervalo de
Transio
Figura 5.3 Relao entre tempo de medio e tempo de transio. Os intervalos esto apontados pelas
setas.
43
Figura 5.4 Flip-flop esttico transistorizado. Bartee, Lebow & Reed, 1962
A Figura 5.5a ilustra um outro exemplo de clula binria, chamada de Flip-Flop
dinmico. Esta clula consiste de um elemento de atraso e um amplificador conectado
em "loop". Os dois estados so representados pela presena ou ausncia de um pulso
no "loop". Suponha que o atraso seja de T segundos e um pulso, se presente, seja de
segundos a cada T segundos. A medio do estado consiste em observar a
presena ou ausncia do pulso durante segundos (Figura 5.5 b).
44
Atraso - T
Amplificador
Read in
0
2T
3T
(b)
(a)
Figura 5.5. Flip-Flop dinmico. Veja que os instantes de medio esto indicados por
e o valor lido representado na parte superior da parte b por 1 ou 0.
Um tipo diferente de clula binria o ncleo magntico (Figura 5.6). O ncleo
est no estado A quando as linhas de fluxo magntico esto no sentido anti-horrio e
no estado B quando se apresentam no sentido horrio.
Sai zero aps
pulso de leitura
Estado A
Estado B
(a)
Sai 1
Leitura
(b)
Figura 5.6. Clula binria a base de ncleo magntico (a). Estado A corresponde a
magnetizao no sentido anti-horrio e B no sentido horrio. A passagem de corrente
(fio com seta) magnetiza o ncleo no sentido indicado. Se, como no caso mais direita
em (b), a passagem de corrente muda o sentido da magnetizao anterior, o fio de
leitura ver um pulso correspondendo a sada igual a 1 e destroi o estado anterior.
Veja que neste caso a leitura destrutiva porque se a direo da corrente de
leitura fizer aparecer um pulso na sada ("1") significa que o estado foi mudado para
outro. Assim, aps a leitura, se o resultado for "1" deve-se "passar corrente" no sentido
inverso para restaurar o estado inicial.
45
Um outro tipo de clula binria seria o que est apresentado na Figura 5.7. Os
estados A e B so obtidos pela abertura e fechamento da chave de modo que se
estiver aberta a sada zero volts ( a) e quando fechada c = E+ (b).
E+
Sada
Figura 5.7. Clula binria baseada em uma chave. E , tenso da fonte de alimentao, R,
resistor sobre o qual a sada medida.
O Registrador
Como mostrado at agora a clula binria o elemento bsico de
armazenamento de uma mquina digital de processamento de dados. Uma extenso
simples do conceito de clula binria o conceito de registrador. Ns definimos um
registrador como um conjunto ordenado de clulas binrias. As propriedades do
registrador so derivadas imediatamente das propriedades da clula binria. Considere
um registrador C de n clulas, composto pelas clulas c1c2...cn. Cada clula Ci (1, 2,
..., n) armazena uma funo bi-estvel do tempo Ci (t). Assim, em qualquer ponto t1,
cada Ci (t) tem um valor a ou b. Correspondentement, C armazena n funes binrias
do tempo c1(t), c2(t), ... , cn(t), ou em outras palavras uma funo vetorial do tempo,
c(t), com componentes ci(t), i= 1, 2, ... , n. Como no caso da clula, frequentemente
nos referimos ao registrador como uma funo binria vetorial do tempo. Assim, em
um instante fixo t dizemos que o valor do registrador C o valor da funo que ele
armazena, ou seja, a n-upla [c1(t), c2(t), ... , cn(t)], Ci (t) = a ou b.
Para exemplicar, considere o registrador de duas clulas C = (c1c2),
armazenando os dois componentes da funo vetorial do tempo c(t) = [c1(t), c2(t)]. Em
um instante t1, C tem o valor C(t1) = [c1(t1), c2(t1)] com Ci(t) = a ou b. A Figura 5. 8
ilustra os quatro possveis valores de c1(t), as coordenadas (a, a), (a, b), (b, a) e (b, b).
46
c2(t1)
a
a
c1(t1)
Figura 5.8. Faixa de valores de um registrador de duas clulas em um ponto especfico do tempo. As
setas so vetores com mdulo igual ao valor da combinao correspondente dos valores de a e b.
I (c) =
ci 2 n i
i =1
R = 0 0
0 c1
c1 c2
c1
c2
c3
...
n = 3k-2
n= 3k-1
n= 3k
47
= cn-5
R =
cn-4 cn-3
cn-2 cn-1
cn
R = c-1c0c1
R2= c2c3c4
I(R )= 1
I(R2)= 5
F (c ) =
c 2
i
= 2 n I (c )
i =1
48
I(R )10
k-1
+ I(R )10
k-2
k-k
Nesta representao os 10k inteiros decimais so associados com 10k dos 24k
possveis valores do registrador.
Exemplo:
K=2en=8
C = 1000 0011
BCD:
R = 1000
R = 0011
49
Representao do alfabeto
A
B
C
D
E
...
Y
Z
= n(n 1) / 2
n
= 2n 1
k =1 k
n
50
n!
n
=
k k!(n k )!
O sub-registrador apenas um caso especial da classe geral de registradores
de funes. Resumidamente, um registrador, por definio um dispositivo fsico
idealizado que armazena uma funo vetorial do tempo, com cada componente
podendo armazenar um dentre dois valores. O prprio registrador pode ser
considerado uma funo. Assim chegamos a uma definio matemtica de um
registrador de n-clulas como uma funo cujo domnio o eixo do tempo e valores no
vetor n-dimensional Vn, no qual cada componente pode assumir um dos dois valores.
Com base nesta definio matemtica de registrador, podemos definir uma funo ou
transformao de um registrador como segue:
D = f(C)
de um registrador C uma funo com m componentes onde cada componente
Di (i= 1,2, ... m) de D uma funo binria de, em geral, dos componentes Cj (j= 1,2,
..., n) do registrador C. Uma funo de um registrador uma funo vetorial mdimensional com algumas propriedades matemticas do registrador. Uma funo de
um registrador no possui as propriedades fsicas do registrador, j que no existe um
conjunto de clulas de armazenamento, mas sim o valor da funo no tempo t que
dependente do valor do registro fisico no instante t. Um registrador ento anlogo a
uma varivel independente e uma funo de um registrador varivel dependente.
Deste modo que para diferenciar o registrador da funo ns referenciamos o
registrador como registrador independente e funo como registrador dependente.
Agora vemos que um sub-registrador apenas um caso especial de registrador
dependente. O mapeamento de Vn em Vm a projeo dos vetores de Vn no subespao m-dimensional Vm. Neste caso especial o registrador dependente existe como
um conjunto de clulas fsicas e pode tambm ser considerado como um registrador
independente. Um exemplo menos trivial o de registrador dependente:
51
i = 1, 2, ... n-1
Exerccio:
Um computador possui um total de 10 instrues ou operaes que pode executar. Defina uma
representao binria para as 10 instrues usando o mnimo nmero de clulas.
52
_____________________________________________________________________
53
6. A lgebra booleana
Em 1854 George Boole publicou um trabalho intitulado "An Investigation of the
Laws of Thought", no qual ele descreveu o desenvolvimento de uma notao simblica
que podia ser usada em certos problemas de lgica formal e um clculo para
manipulao das expresses simblicas. Subsequentemente vrios outros
matemticos extenderam este trabalho criando uma nova rea da matemtica
chamada de lgica simblica da qual a lgebra de Boole era parte integrante. Apenas
em 1938 que Claude Shannon descreveu o uso da lgebra de Boole para o projeto
de circuitos de chaveamento. Desde ento a lgebra booleana passou a ser
ferramenta fundamental no desenvolvimento de circuitos e mquinas digitais.
Uma lgebra booleana definida sobre um conjunto com dois elementos,
tipicamente falso e verdadeiro, alto e baixo, um e zero. Ns nos referimos a lgebra
booleana binria, quando os elementos deste conjunto so "0" e "1". Neste sentido
esta classe de lgebra pode ser definida como uma n-upla {V, +, } onde V um
conjunto e os smbolos + e so operaes binrias sobre os elementos de V.
Operaes bsicas:
(As duas primeiras operaes definem a chamada lgebra de chaveamento que
consiste de um conjunto V={0,1} e das duas operaes AND e OR como apresentadas
abaixo.
OR (OU), smbolo: +,
5) 0+0 = 0
6) 0+1 = 1
7) 1+0 = 1
9) 1+1 = 1
Veja mais adiante o uso desta operao
_____________________________________________________________________
XOR (OU exclusivo), smbolo:
10) 00 = 0
11) 01 = 1
12) 10 = 1
13) 11 = 0
54
0 1
0 1
1 1
AND 0 1
0
0 0
1
0 1
Verifique as operaes bsicas com cuidado e confirme.
55
a(b+c)
0
0
0
0
0
1
1
1
ab+ac
0
0
0
0
0
1
1
1
abc+d=0
Para todo postulado da lgebra de Boole existe o seu dual que obtido trocando-se 0s
por 1s e as operaes + por .
= x1
=x(a+y)
=xa+xy
=ax+xy
P3.2
Por hiptese
P2.2
P1.2
identidade
y o complemento de a
distributividade
comutatividade
56
=0+xy
=xy
Por hiptese
P3.1
x o complemento de a
identidade
P1.2
= 1(a+1)
= (a+a') (a+1)
= a + (a'1)
= a + a'
=1
P3.2
P4.1
P2.1
P3.2
P4.1
a0
= 0 + (a0)
P3.1
= (aa')+(a0)
P4.2
= a(a'+0)
P2.2
= aa'
P3.1
=0
P4.2
(Este ltimo pode ser provado por meio de dualidade do anterior)
= (a+a) 1
= (a+a) (a+a' )
= a+(a a' )
= a+0
P3.2
P4.2
P2.1
P4.2
57
=a
P3.1
P3.2
P2.2
P1.1
T7
P3.2
a(a+b) = a
Princpio da dualidade T5
P2.1
P4.1
P3.2
a(a'+b)= ab
58
XOR
00=0
01=1
10=1
11=0
a0 = a
a1 = a'
aa = 0
aa' = 1
a b ab = a + b
ab = ab' + a'b
R1
R2
R3
R4
R5
R6
Provando T13,
a+(b+c) =
= a(bcbc) a(bcbc)
= abcbcabacabc
= (abab) c(abab)c
= (a+b)+c
a(bc)= (ab)c
R5
distributiva
comutativa e R5
Princpio da dualidade (T5)
59
distributiva
R5
R5
R2
distributiva
R3
R3
R1
R2
Tabela 1. Esta tabela contm um resumo de diversas propriedades da lgebra booleana, mostrando a
identidade e seu dual. Lembre-se que o dual pode ser obtido trocando-se zeros por uns e intercambiando
as operaes + e em toda a expresso.
Propriedade
Identidade
Identidade
a+0=a
a1=a
Elemento nulo
a+1=1
a0=0
Idempotncia
a+a=a
aa=a
Complemento
a + a' = 1
a a' = 0
Involuo
Identidade Dual
(a' )' = a
Comutativa
a+b=b+a
ab=ba
Associativa
(a+b)+c = a+(b+c)
(ab)c = a(bc)
60
Distributiva
a(b+c) = ab + ac
(a+b)(a+c) = a+bc
Cobertura
a + ab = a
a(a+b) = a
Combinao
ab + ab' = a
(a+b)(a+b') = a
Consenso
ab + a'c + bd =
bc + bd
(a+b)(a'+c)(b+d) =
(b+c)(b+d)
De Morgan
61
Exerccios
Nos dois primeiros casos abaixo utilizamos a tcnica de demonstrao que consiste no
desenvolvimento da expresso procurando aplicar as propriedades mais bsicas.
Demonstrar:
(a+b) (a+c) =
(a+b) (a+c) =
=
=
=
=
a + (b c)
aa + ac + ba + bc
a+ a (b+c) + bc
a (1+b+c) + bc
a (1) + bc
a + bc
Demonstrar:
(ab) = ab' + a'b
= ab'a'bab'a'b
= ab'a'b
= a(b1) (a1)b
= abaabb
= ababab
= 0ab
= ab
62
Podemos, contudo demonstrar teoremas por verificao que o que faremos para os
casos a seguir.
Demonstrar:
a + ab = a
a
0
0
1
1
b ab
0 0
1 0
0 0
1 1
a+ab
0
0
1
1
Neste caso montamos uma tabela com todas as combinaes das variveis que esto
dos dois lados da identidade. Observa-se que a funo booleana a+ab igual a a
qualquer que seja o valor de b.
Demonstrar:
(a+b)' = a' b'
a
0
0
1
1
b
0
1
0
1
(a+b)
0
1
1
1
(a+b)'
1
0
0
0
a'
1
1
0
0
b'
1
0
1
0
a' b'
1
0
0
0
Demonstrar:
(ab)' = a' b = ab' = a'b' + ab
a+a = aaaa=(aa) a = 0a=a
b + a'b = a' + b
a(a' + b') = ab'
(a+b) (a+c) = a + (bc)
ab + ab' = a
Exerccio:
Demonstrar todos os teoremas dados em classe. Use o bom senso! Aqueles mais simples, demonstre apenas por
verificao. Todos que possibilitarem um certo trabalho algbrico demonstre pelo desenvolvimento das expresses.
Justifique todos os passos com os postulados ou teoremas previamente demonstrados. Voc precisa saber todos
de cor!
63
7. Blocos lgicos
Aqui sero descritos, de acordo com a operao algbrica correspondente, os
principais smbolos que caracterizam os chamados blocos lgicos. Com estes blocos
(da o nome) pode-se construir uma infinidade de combinaes que iro representar e
sintetizar circuitos altamente complexos.
Funo: NOT
(inversor)
a'
a
b
ab
64
a
b
(ab)
Funo: OR (OU)
a +b
65
Funo: NOR
(a + b)
b
Esta operao comutativa, i.., L= (A+B+C)' = (B+A+C)',
mas no associativa.
Funo: XOR
(a + b)
b
Esta operao comutativa e associativa!
66
a b'
b'
a'
b
(a + b)
a' b
Exerccio:
Um determinado circuito com 3 entradas binrias A,B e C pode ser projetado usando-se 2 blocos AND, de modo
que a sada seja simplesmente o produto lgico ABC. Como sempre voc no dispe de todos os recursos
necessrios. Da entra o papel do engenheiro! Como voc faria se no dispuzesse de circuitos (blocos) AND, mas
sim de blocos OR e NOT ? Justifique. E se voc dispuzesse de 2 blocos OR, um bloco NAND e dois blocos NOT ?
Justifique. (Obs.: considere os blocos NAND, AND e OR de duas entradas).
67
8. Tecnologia
Conceitos apresentados de modo simplificado leia refs. adicionais !
Os componentes eletrnicos mais importantes atualmente so os chamados
semicondutores. Os semicondutores podem atuar como condutores ou isolantes
dependendo das condies. Um dos materiais semicondutores mais populares o
silcio, um dos ingredientes encontrados na areia. O tomo de silcio tem 4 eltrons na
sua camada mais externa e assim pode se ligar covalentemente a at 4 outros tomos
compartilhando seus eltrons. Um cluster de tais tomos forma um cristal. H
bastante silcio na natureza. Cerca de 28% da crosta terrestre formada por silcio,
que, contudo, no est na sua forma pura, como sempre...
Quando silcio misturado, ou "temperado" com outros elementos, tais como
fsforo ou boro, a mistura tem propriedades eltricas muito teis. O tempero
denominado de doping. Os eltrons das camadas mais externas dos tomos de silcio
podem ser compartilhados com os de tomos de boro ou fsforo. O tomo de boro
tem apenas 3 eltrons na sua camada mais externa. J o tomo de fsforo tem 5
eltrons na camada mais externa. Silcio com eltrons de fsforo extras forma um
cristal do tipo N (negativo). Quando a combinao feita com um tomo deficiente em
eltrons, como o boro, o tipo P (positivo).
Cristal tipo P
Um tomo de boro em um cluster de tomos de silcio deixa uma "vaga",
chamada de "lacuna" (buraco), para um eltron. E' possvel que eltrons de tomos
vizinhos "caiam" na tal lacuna. Deste modo a lacuna teria se movido para outro local
atravs do silcio.
Cristal tipo N
Um tomo de fsforo, em um cluster de tomos de silcio, doa um eltron extra.
Este eltron pode mover-se atravs do cristal. Silcio tipo N pode, portanto, conduzir
corrente eltrica. E tambm o tipo P! As lacunas "conduzem" a corrente.
O diodo
Ambos os tipos de silcio (P e N) conduzem corrente eltrica. A resistncia
determinada pelo nmero de buracos ou de eletrons extras. Deste modo, ambos
podem funcionar como resistores, conduzindo eletricidade em qualquer direo.
Contudo, pela formao de silcio tipo P em uma pastilha de silcio tipo N, os eltrons
iro fluir em apenas uma direo. Este o princpio bsico da construo e
funcionamento do diodo. A interface P-N chamada de Juno PN.
68
A conduo se dar pelo diodo quando o anodo for mais positivo que o catodo. Alm
disso deve-se observar o seguinte:
a) O diodo no ir conduzir at que a tenso direta seja maior que um certo limiar.
Para diodos de silcio esta tenso de 0,6 V.
b) Se a corrente direta for excessiva o componente pode fundir. Quando isto acontece
o diodo pode conduzir em ambas as direes. O calor torna-se excessivo e pode
vaporizar o componente.
69
d) Existem vrios tipos de diodos. Diodos para pequenos sinais (e.g. 1N914),
retificadores de potencia (alta corrente), diodos Zener (e.g. 1N4733), LEDs e
fotodiodos.
O circuito abaixo ir reduzir a tenso a partir da tenso da fonte de alimentao, de
cerca de 0,6 V por diodo e constitui um exemplo de aplicao:
Sabendo, agora, como funcionam os diodos, vamos sintetizar circuitos lgicos com
estes componentes e observar seu funcionamento.
OR
70
O Transistor
um dispositivo que pode, com uma corrente pequena, controlar uma corrente
muito maior. Pode funcionar como amplificador ou como chave. H duas grandes
classes de transistores: Bipolares e de efeito de campo (FET - field effect transistor).
Transistor Bipolar
Do ponto de vista de construo estes transistores so formados por
combinaes convenientes de junes N e P. Veja a figura abaixo:
71
Icsat Vcc / R,
Ibsat Vcc / (R)
Icsat = 10V/1k = 10 mA e
Exerccio:
Procurar manuais (atualizados) na biblioteca e encontrar componentes com as principais funes lgicas. Duas
entradas so suficientes. Mostre como o componente seria usado para efetuar as funes bsicas: NOT, AND,
NAND, OR, NOR e XOR. Inclua a referencia (manual(ais) de onde a informao foi retirada).
72
a1
a2
an-1
Circuito lgico
combinacional
an
Os circuitos combinatrios so circuitos desprovidos de memria. Por outro
lado, a outra classe de circuitos digitais, os circuitos sequenciais, formada por
circuitos com memria. Neste caso, no basta saber o estado das entradas atuais
para se conhecer as sadas. necessrio que se conhea o estado interno do circuito.
Nestes circuitos a sequncia de apresentao das entradas fundamental na
determinao da sada atual. Alm dos blocos lgicos j estudados, outros circuitos
bsicos com memria so utilizados nos circuitos sequenciais. A descrio e definio
formal dos circuitos sequenciais ser vista mais adiante quando estivermos estudando
a sua sntese.
De modo geral chamaremos de circuitos digitais aqueles formados por
combinaes dos blocos lgicos bsicos descritos anteriormente. A funo que
descreve matematicamente o circuito uma funo booleana. Se f(x,y,z) = x.y+z+x'
uma funo tal que x,y e z assumem apenas dois valores (por exemplo 0 e 1) e
consequentemente so variveis booleanas, ento f (x,y,z) uma funo booleana.
Chega de papo! Como fazer para avaliar uma funo destas? Simples! Se
cada varivel assume apenas dois valores, ento o nmero de combinaes de n
variveis ser 2n. Deste modo podemos construir uma tabela na qual as entradas
so as variveis e a sada, o valor da funo. Cada varivel assumir apenas os
valores 1 e 0 e assim tambm ocorrer com a sada (valor de f) para cada combinao
das entradas. Veja por exemplo a tabela abaixo:
73
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
(Veja com o professor um truque para poder construir tabelas como estas com qualquer nmero de
variveis, sem ter que realmente pesnsar nas combinaes...ou descubra voce mesmo!!!)
74
o circuito com a funo mais complexa e o professor, como sempre, far o circuito para
a funo mais simples, este circuito est apresentado a seguir:
Uma funo booleana pode ser representada por um produto de somas. Basta
considerar os termos para os quais a funo assume o valor 0. Vamos direto a tabela
descrita anteriormente. A combinao x = 1, y = 0 e z = 0 assume valor 0. Deste
modo o termo x + y' + z' aparece na funo, que neste caso seria: f = (x' + y +
z)(alguma outra sada nula se houvesse) ... . A soma x' + y + z chamada de maxtermo e o
produto de todos os maxtermos ser o produto cannico de somas (viu? mais
"termos"). Compare a funo obtida a partir dos max- com aquela obtida a partir dos
mintermos.
As combinaes apresentadas na tabela verdade poderiam ser representadas
por um nmero decimal (por exemplo o nmero da linha). Na realidade se atribuirmos
valores a cada posio ocupada pelos 0s e 1s na linha podemos escrever um nmero
binrio, usando uma notao posicional, como fazemos para escrever os nmeros
decimais, ou seja, o nmero 34 corresponde a 3x101 + 4x100 = 30 + 4 = 34 e 10 a
base numrica, certo? Por analogia, o nmero binrio 101 seria 1x22 + 0x21 + 1x20 = 4
+ 0 + 1 = 5 em decimal. Deste modo podemos escrever cada combinao das
entradas da tabela verdade na sua notao decimal e com alguma convenincia
representar a funo por:
f(x,y,z) = S(0,1,2,3,5,6,7).
Acho que neste ponto algum j deve estar pensando: "o que vem primeiro o
ovo ou a galinha?" Certo, o que voc acha? A gente constroi uma tabela verdade e
da projeta um circuito ou a gente escreve tabelas para representar os circuitos? Claro,
exatamente o que voc estava pensando... a tabela representa aquilo que a gente
quer e consequentemente uma das maneiras de representar a funo ou o circuito.
Suponha que voc
tenha que fazer um circuito com as seguintes
especificaes: a) um painel com trs lmpadas (uma vermelha, outra amarela e outra
verde) dispostas verticalmente; b) as lmpadas devero ser acesas de acordo com o
75
acionamento de 3 chaves por uma determinada pessoa (ou animal). Se a chave 1 for
ligada a lmpada verde ser acesa, caso a chave 2 seja a escolhida a lmpada
vermelha ser ativada e finalmente se a opo for pela chave 3 a lmpada amarela
que ser ligada. Se, por outro lado as trs chaves forem ligadas ao mesmo tempo,
todas as lmpadas devero acender. Como poderamos expressar este problema na
forma de uma tabela? Assim:
C1
C2
C3
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
.......Trabalho.......
Vamos agora pensar em outra situao, na qual, para certas combinaes das
entradas, a sada pudesse ser indiferente. Como assim?... assim como na tabela
abaixo:
x
00
10
20
30
41
y
0
0
1
1
0
z
0
1
0
1
0
s
0
1
0
1
x
76
51
61
71
0
1
1
1
0
1
0
x
0
A funo, sem levar em conta os estados para os quais a sada indiferente seria:
f = x'y'z + x'yz
Quando esta situao acontece dizemos que se trata de uma combinao ou estado
indiferente (Don't care state). Os don't care so marcados com um x que significa
troque por 1 ou 0, I don' t care !, frase muito comum nos USA:
A me
- Darling please, you don't look fine on these pants...
O filho adolescente
- I don't care, mom!
Usando a notao simplificada para representar a funo teramos:
f = S(1,3) + D(4,6),
onde D representa as sadas indiferentes ou don't care states (veremos o que fazer
com eles depois...).
Mapas de Karnaugh
Continuando um pouco com a idia de representao das funes booleanas,
vamos definir o que se chama de mapa de Karnaugh. Trata-se de uma forma
modificada da tabela verdade. Uma forma conveniente de apresentao (Porque voc
no inventa outra melhor? Eu sei. porque voc ainda no entende o suficiente sobre
o assunto? Certo?). Os mapas de n variveis iro conter 2n clulas. Vejamos como
seria representada a tabela a seguir:
0
1
2
0
0
0
0
0
1
0
1
0
1
1
0
77
3
4
5
6
7
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
Observe que cada clula pode ser marcada com o decimal correspondente
combinao binria da tabela verdade. No final, o mapa de Karnaugh deve conter em
suas clulas a sada que se deseja representar, ou seja:
78
Coloque os valores das combinaes das entradas (em decimal) nas diversas
clulas do mapa apresentado acima. Que relao h entre os valores binrios das
clulas adjascentes? Veja por exemplo, 2 e 6, 16 e 20. Pratique. MUITO !!!
Mapa de Karnaugh para 6 variveis:
79
80
Vamos assumir como custo, uma funo que nada mais que a soma dos terminais
de entrada dos blocos lgicos. Tomemos por exemplo a funo:
f(x,y) = yx' + y
Neste caso o custo seria:
Custo = 2 + 1 + 2 = 5
Simplificando a funo (e vocs j sabem faze-lo por meio de manipulao algbrica),
teramos:
f (x,y) = y
e neste caso o custo torna-se:
Custo = 1 (Bem menor...certo?)
Infelizmente os circuitos digitais no respondem instantneamente aos sinais de
entrada! Isto pode ocasionar falhas. Por causa disso deve-se ter em mente os
conceitos de TPHL (time for propagation of the low to high transition) e TPHL (time of
propagation of the high to low transition). TPLH o tempo necessrio para a mudana
do nvel baixo para o nvel alto em um determinado componente lgico. Deste modo
as vezes temos que sacrificar o baixo custo para garantir o bom funcionamento do
circuito. J ouviu dizer que o barato sai caro ? isso.
Suponha que voc esteja projetando um circuito que deva transmitir milhares de
dados e que em um determinado ponto a sada do circuito amostrada, de modo
sincronizado, como indicado pelos pontos na parte "1" do sinal (Figura acima). Que
desastre! Por causa do atraso introduzido pelo componente, "1" ser transmitido, ao
invs de "0", para o primeiro ponto. Se aquilo fosse uma "palavra" binria, (0111)2
seria transformado em (1111)2 . Se isto fosse seu dbito, ao invs de R$ 7.000,00 (o
milhar apareceu apenas para lhe assustar!) voc estaria devendo R$ 15.000,00
(ligeiramente diferente certo?).
81
Exerccio:
82
Soma mnima
A soma mnima corresponde a soma do menor nmero de prime implicants que
cobre completamente a funo.
Marca-se o conjunto de todos os prime implicants e depois escolhe-se um conjunto
mnimo. Primeiro identifica-se os chamados essenciais, que so aqueles que sozinhos
(sem intersees) cobrem um conjunto de clulas (subcubo) com 1s. Depois, os noessenciais sero escolhidos levando-se em conta um critrio de custos.
Exemplo prtico:
Queremos sintetizar um circuito com quatro entradas que tenha como sada o
valor 1 apenas quando duas entradas forem iguais a 1. A tabela verdade seria:
abcd
s
0000
0
0001
0
0010
0
0011
1
0100
0
0101
1
0110
1
0111
0
1000
0
1001
1
83
1010
1011
1100
1101
1110
1111
1
0
1
0
0
0
84
Exerccio:
Mtodo de Quine-McCluskey
Etapa1. Gerao dos implicantes primos
Vamos trabalhar com os produtos fundamentais de modo que w'xy'z seja representado
por 0101. O Passo 1 ser listar as linhas para as quais a funo assume sada igual a
1. Cada linha contm (coluna 2 da esquerda para a direita) o decimal equivalente
levando-se em conta a funo que queremos minimizar:
F(v,w,x,y,z) = (0,2,4,6,7,8,10,11,12,13,14,16,18,19,29,30)
0
1
1
1
1
2
2
2
2
3
3
3
3
3
4
4
(0)
(2)
(4)
(8)
(16)
(6)
(10)
(12)
(18)
(7)
(11)
(13)
(14)
(19)
(29)
(30)
V
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
W
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
X
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
Y
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
Z
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
marca
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
85
Com isto gera-se uma nova tabela com produtos fundamentais formados pelos
caracteres binrios que so iguais nos pares comparados e um trao no local
correspondente ao caractere que foi diferente. Por exemplo ao comparar :
01000
00000
Gera-se
0-000
(0,2)
(0,4)
(0,8)
(0,16)
(2,6)
(2,10)
(2,18)
(4,6)
(4,12)
(8,10)
(8,12)
(16,18)
(6,7)
(6,14)
(10,11)
(10,14)
V
0
0
0
0
0
0
0
0
0
1
0
0
0
0
W
0
0
0
0
0
0
1
1
0
0
1
1
X
0
0
0
0
0
1
1
0
0
1
1
0
-
Y
0
0
0
1
1
1
0
0
1
1
1
1
Z
0
0
0
0
0
0
0
0
0
0
0
0
0
0
marca
b
b
b
b
b
b
b
b
b
b
b
b
b
b
86
(12,13)
(12,14)
(18,19)
(13,29)
(14,30)
0
0
1
-
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
(0,2; 4,6)
(0,2; 8,10)
(0,2; 16,18)
(0,4; 8,12)
(2,6; 10,14)
(4,6; 12,14)
(8,10; 12,14)
V
0
0
0
0
0
0
W
0
0
1
X
0
0
1
-
Y
0
1
-
marca
Z
0
0
0
0
0
0
0
b
b
b
b
b
b
Repare que quase todas as linhas esto marcadas e apenas uma combinao est
apresentada na ltima tabela. Isto porque aps combinar (0,2,4,6) com (8,10,12,14) as
outras combinaes geram exatamente 0 - - - 0 que j existia. Portanto no sero
colocados na nova tabela. Agora, no Passo 4 tudo se repete com a tabela anterior e o
resultado o que se apresenta abaixo:
(0,2,4,6,8,10,12,14)
V
0
W
-
X
-
Y
-
Z
0
87
Prime implicant
Mintermo
0
(0,2,4,6,8,10,12,14)
(0,2,16,18)
(14,30)
(13,29)
(18,19)
(12,13)
(10,11)
(6,7)
0- - -0
-00-0
-1110
-1101
1001011001010011-
x x x x
x x
10
11
x x
12
13
14
16
18
19
29
x
x
x
x
x
x
x
x
x x
30
88
Circuito lgico
combinacional
xn
y1
yp
z1
z2
zn
y1
89
No primeiro caso o FF-RS sintetizado com portas NOR como apresentado na Figura
8.2.
S
Inativo 0 0
Reset
Set
Proibido
Q'
SR
Q' Q
Anterior
0 1
1 0
1 0
0 1
1 1
0 0
Figura 8.2 Flip-Flop RS sintetizado com portas NOR. Note que Q' e Q esto trocados com
relao ao latch NAND. Ativo alto.
A Figura 8.3 ilustra o Flip-Flop RS sintetizado com portas NAND. Note que as entradas
esto complementadas.
Q'
Proibido
Set
Reset
Inativo 1 1
S' R' Q
0 0
1
0 1
1
1 0
0
Anterior
Q'
1
0
1
Figura 8.3 Flip-Flop RS sintetizado com portas NAND. S'e R' so notaes para indicar que o
latch ativo baixo
90
S1
R1
CK
Figura 8.4 Flip-Flop RS com controle. O controle feito pelo sinal de entrada CK. Note
que nesta configurao o aparecimento do circuito direcionador (onde entra o CK)
torna o FF ativo alto.
Vejamos o que ocorre quando, no FF da Figura 8.4 a condio de S = R = 1 e
CK vai de 1 para 0 se estabelece.
CK 0
Q
Q
0
Indeterminado
91
S1
R1
CK
CK = 1
CK = 0
D
0
1
Q
Q
Anterior
Anterior
D
0
1
Q
0
1
Q
1
0
Figura 8.6. Flip-Flop tipo D, sensvel a nvel. Neste caso no h estado indeterminado
e a sada Q "copia" o dado enquanto CK =1.
Vamos agora analisar o diagrama temporal relativo ao FF-D sensvel a nvel
como apresentado na Figura 8.6. Observe que o valor de Q muda, copiando D, sempre
que CK for igual a 1.
92
Mquinas Sncronas
Mquina seqencial, sncrona ou mquina de estados finitos o modelo
abstrato do circuito seqencial real. Seu comportamento descrito como uma
seqncia de eventos que ocorrem em intervalos discretos, designados t1, t2, ..., tn.
Suponha que uma mquina M receba alguns sinais de entrada e responda produzindo
alguns sinais de sada. Se no instante t for aplicado um sinal x(t) a M, sua resposta z(t)
depende de x(t), bem como das entradas de M nos instantes anteriores. Como M pode
ter uma variedade infinita de estados anteriores ou passados, seria necessrio uma
capacidade de armazenamento infinita. Vamos nos concentrar nas mquinas cujo
passado pode ser resumido em um conjunto finito de variveis (Mquinas
determinsticas ou markovianas).
x(t)
Circuito
Combinacional
z(t)
r entradas
{x1, x2, ..., xr}
Y
Elementos de
Memria
m sadas
{z1, z2, ..., zm}
K variveis de estado
93
0/0
1/0
Q2
1/0
Q1
0,1/0
1/0
0/0
0/0
Q3
Q(t)
Q0
Q1
Q2
Q3
1/1
0,1/
(Q(t) , z(t))
X=1
Q1,0
Q2,0
Q2,0
Q2,1
X=0
Q2,0
Q3,0
Q3,0
Q2,0
94
Moore
1
Q0 /0
Q1/0
0,1
Q2/0
0
Q3/0
0,1
1
Q4/1
Q(t+1)
Q(t)
Q0
Q1
Q2
Q3
Q4
X=1
Q1
Q2
Q2
Q4
Q2
X=0
Q2
Q3
Q2
Q2
Q2
Z(t)
0
0
0
0
1
95
12. Cdigos
12.1
decimais. Um grande nmero de mquinas, no incio, usou BCD e talvez at hoje este
sistema persista em grandes mquinas comerciais. Basicamente,
o que se faz
8
1
8 +
4
0
0 +
2
1
2 +
1
1
1 = (11)10
De modo geral, em um cdigo BCD pesado cada dgito decimal corresponde a uma
sequencia c1 c2 c3 c4 com valor
c w
i
i =1
96
Se forem usados apenas nmeros positivos para os pesos h apenas 17 BCD pesados
com 4 dgitos (wi > 0). Por exemplo:
0
1
2
3
4
5
6
7
8
9
w1 w2
2
4
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
w3 w4
2
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
2
3
4
5
6
7
8
9
w1 w2
7
4
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
w3 w4
2
1
0
0
0
1
1 0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
ou
0 1
0 0
0 1
1 0
1 1
1 0
0
1
0
1
0
1
ou
0 1 1 1
w1 w2
8
6
w3 w4
-4
1
97
0
1
2
3
4
5
6
7
8
9
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
98
E1
S0 S1 S2 S3
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 0
portanto x x x = x
(nmero mpar de x)
b) x x x = x
xx=0
portanto x x x x = 0
(nmero par de x)
101
102
14. Bibliografia
1. Bonatti, I. & Madureira, M.
Introduo anlise e sntese de circuitos lgicos. Editora da
Universidade Estadual de Campinas - Unicamp, Campinas, SP, 1990.
2. Fregni, E. & Saraiva, A. M.
Engenharia do projeto lgico digital: conceitos e prtica. Editora Edgar
Blucher Ltda., So Paulo, SP, 1995.
3. Bartee, T.; Lebow, I. L. & Reed, I. S.
Theory and design of digital machines. MIT publication, Massashusetts,
USA, 1962.
4. Langdon Jr., G. G. & Fregni, E.
Projeto de computadores digitais. Editora Edgar Blucher Ltda, So Paulo,
1974.
5. Ercegovac, M; Lang, T & Moreno, J H.
Introduo aos sistemas digitais. Editora Bookman, Porto Alegre, 2000.
6. McCluskey, EJ.
Logic Design Principles. Prentice Hall, Englewood Cliffs, 1986.
9. Halliday, D.; Resnick, R. & Walker, J.
Fundamentals of Physics. John Wiley & Sons, Inc., New York, 5th ed.,
1997
10. Tocci, RJ & Widmer, NS.
Sistemas Digitais. Princpios e Aplicaes. Prentice Hall, So Paulo, 8th
ed., 2003.
11. Boyer, CB
A history of mathematics, 2nd ed., John Wiley & Sons, Inc, New York,
1991
103
104