You are on page 1of 101

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M.

Bassani ____________________________________________________________________________________

EA - 772 CIRCUITOS LGICOS

Prof. Dr. Jos W. M. Bassani Reviso - 2008 DEB/FEEC/UNICAMP

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 e no se responsabiliza pela reproduo ou qualquer outra utilizao que no seja como material de estudo individual.

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

1. Introduo, motivao, objetivos ... ou pra que diabos serve a disciplina de circuitos lgicos?
O curso tem como objetivo ensinar como projetar circuitos bsicos que so utilizados no dia-a-dia do projeto e construo dos computadores e de outras mquinas. Outra meta o ensino de tcnicas que sero teis no entendimento e no projeto de sistemas de transmisso de dados. De modo mais geral vamos estudar e projetar circuitos digitais, tais como os circuitos de transferncia de dados, contadores, divisores, vrios tipos de detetores, somadores, temporizadores e outros. O desenvolvimento de circuitos lgicos fundamentado por uma lgebra prpria, a lgebra Booleana. Com base nesta lgebra pode-se desenvolver expresses que correspondem a circuitos complexos. Uma especificao organizada (e.g. na forma de uma tabela), do processo que se deseja sintetizar suficiente para possibilitar a construo de circuitos com base nas expresses algbricas. Utilizando regras e propriedades da operao algbrica pode-se realizar, formalmente, simplificaes nas expresses que possibilitam a construo de circuitos incrivelmente mais simples do que os circuitos originais. Isto, por si s, gera a oportunidade de se ver a importncia do desenvolvimento das novas teorias e mtodos matemticos para expandir o conhecimento nas outras reas e quo importante o aprendizado das regras e fundamentos bsicos das teorias para o desenvolvimento futuro da Engenharia Eltrica. O estudante dever tomar contato com tcnicas envolvidas na sntese de circuitos lgicos e ter bom conhecimento 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,

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

com criatividade para que a cincia possa buscando aproximar os modelos da verdade.

seguir seu caminho da auto-correo,

Alternativamente voc pode se lembrar que hora de cursar uma disciplina bsica, obrigatria, importante para o entendimento de muitas outras (e.g. comunicaes, processamento digital de sinais), e que preciso estudar muito para ser um bom engenheiro.

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

2. Evoluo histrica das mquinas de calcular


H uma grande necessidade de se desenvolver mtodos e mquinas para computar. Os engenheiros so, em princpio, os responsveis pela construo destas mquinas. Portanto, comeo com um apelo aos jovens estudantes, no tirem dos seres menos preparados, o prazer de poder us-las de modo cada vez mais simples. Mas, de onde vem este interesse pela computao. possvel que isto esteja ligado a alguma necessidade ancestral que temos de contar. J em 1871, Charles Darwin em sua obra The decent of man comenta que algumas espcies animais, possuem memria e imaginao (Boyer, 1991). Evolutivamente, saber se h um grupo de 2 ou de 4 predadores em ao pode ter sido importante para a sobrevivncia. muito estimulante pensar sobre, mas difcil de saber, quais os elementos mnimos 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 podia ser encontrado na civilizao Inca (National Geographic, Dec. 1973, 729-766). Identificar smbolos e cont-los computar!

1999 Simon Fraser University HTML Written by Alice Storey

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)

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

O primeiro dispositivo de clculo, contudo, parece ter sido o baco (do latim Abacus), introduzido pelos babilnios cerca de 3.000 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).

Milnios se passaram at que o homem, que j conhecia o baco, criasse a primeira mquina de calcular. A era das mquinas mecnicas durou aproximadamente de 1623 a 1945, um perodo bastante longo. J no sculo XVII os matemticos usavam algumas mquinas capazes de efetuar adio, subtrao, multiplicao e diviso. Dentre os nomes importantes esto Wilhelm Schickhard, Blaise Pascal e Gottfried Leibnitz. A primeira mquina programvel foi projetada por Charles Babbage em 1823, nunca tendo sido realmente construda. A primeira mquina de calcular que chegou a 6

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

traz a novidade dos processadores de entrada e sada que otimizaram a troca de informaes entre os dispositivos e a memria, que j nesta poca podia ser de acesso aleatrio. O conceito de supercomputadores j pde ser introduzido e implementado. So mquinas que devem possuir capacidade de computao cerca de uma ordem de magnitude acima das mquinas disponveis na poca. Na terceira gerao (1963-1972) surgem mquinas com grande ganho de "potncia computacional". Conta-se com a inovao dos chamados circuitos integrados (CI). As memrias de semicondutores passam a ser usadas no lugar das memrias de ncleo magntico da gerao anterior. O grau de integrao, nesta fase, era ainda pequeno com cerca de 10 dispositivos por CI evoluindo em seguida para cerca de 100 dispositivos por pastilha (chip). Muitas novas mquinas surgiram com vantagens de arquitetura e novas linguagens tambm foram desenvolvidas, como por exemplo, o CPL (Combined Programming Language) para ficar com apenas as caracteristicas mais importantes da ALGOL. nesta gerao que comeam a surgir os chamados computadores paralelos (e.g. SOLOMON da Westinghouse Co. e o ILLIAC IV da Burroughs em cooperao com o departamento de defesa e a universidade de Illinois). Na quarta gerao comea a chamada integrao em larga escala (Large Scale Integration, LSI), com 1.000 dispositivos por CI e j a escala muito grande de integrao (Very Large Scale Integration, VLSI) com 100.000 dispositivos por CI. Nesta ltima j se podia incluir processadores inteiros em um nico CI e para alguns sistemas o computador inteiro (processador, memria principal e controlador de entrada e sada). Surgem computadores com memria muito grande como por exemplo o CRAY 2. Muitas variantes do processamento paralelo comeam a ser implementadas. Comeam a surgir os microcomputadores e estaes de trabalho e o uso de grandes computadores operando em time-sharing. Nesta gerao surge a linguagem C e o sistema operacional UNIX que teve uma de suas verses escrita em C para o recm-desenvolvido DEC PDP-11 (Digital Equipment Co., USA). Nos anos 80 os Estados Unidos tomaram conhecimento de que o pas estava investindo muito pouco e dando (provavelmente por meio do chamado Lax report, relatorio editado por Peter Lax;
http://www.pnl.gov/scales/archives.stm)

poucas oportunidades para desenvolvimento de supercomputadores, por exemplo em 8

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

contraste com

o Japo. Isto deu origem a inmeros centros para estudo de

computao de alto desempenho (http://www.nsf.gov/news/news_summ.jsp?cntn_id=106875), um destes o famoso John von Neummann Center de Princeton. Ainda nos anos 80 (1984 a 1990) se inicia a quinta gerao de computadores que se caracterizou pela adoo definitiva da computao paralela. Nesta gerao algumas mquinas dispunham de centenas de processadores que podiam ao mesmo tempo atuar em diferentes partes do mesmo programa. J em 1990 era possvel integrar milhes de dispositivos no mesmo CI e as memrias de semicondutores passaram a ser padro em todos os computadores. Proliferam as redes de computadores e o uso das estaes de trabalho. O sistema DEC VAX-780 era um computador de uso geral, baseado no sistema operacional UNIX com vrios processadores cada qual "cuidando" do processo de usurios diferentes. Surge para competir o chamado Sequent Balance 8000 com 20 processadores, dividindo um nico bloco de memria com um bloco especialmente dedicado a cada processador. Surge em seguida o sistema apelidado de hypercubo da Intel, o iPSC-1 que usava um bloco de memria para cada processador, que estavam ligados em rede. Esta foi uma filosofia diferente para a arquitetura, a chamada arquitetura de memria distribuda. Esta verso evoluiu para mquinas com mais de uma centena de processadores e por fim um sistema com vrios milhares de processadores bem simples foi colocado a disposio. Ainda havia nesta fase o domnio do processamento vetorial ao invs de processamento paralelo. As redes evoluram bastante tanto as WANs (Wide area network) quanto as LANs (Local area network). Nestes casos com a idia de compartilhar um grande computador central parte do processamento passou a ser feito usando recursos de vrios modos: localmente, distribuido em servidores e ainda acessando recursos de supercomputadores todos ligados na rede. As estaes de trabalho e servidores ficaram mais eficientes e baratos com a entrada da chamada tecnologia RISC (Reduced Instruction Set Computer). Inicia-se o que podemos chamar de sexta gerao por volta de 1990. Cada vez mais fica difcil predizer o que significa uma nova gerao, a no ser retrospectivamente. possvel pela evoluo que se observa de hardware e de software que a computao paralela ir, definitivamente, predominar. No fundo, j no 9

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

incio dos anos 90, havia a idia de que talvez o sistema hbrido vetorial e paralelo deveria ser uma boa soluo. Nesta poca j se prometia sistemas hbridos capazes de operar na faixa dos teraflops (TFLOPS, 1012 FLOPS Floating point operations per second). As arquiteturas comeam a se fundir: RISC, pipelining e paralela. Ser que isto significa que os princpios bsicos das operaes computacionais estariam definitivamente determinados e agora s nos restaria combin-los? O que vem acontecendo hoje? Busque esta informao voc mesmo! A grande mudana nesta gerao parece ter sido nas interligaes de computadores. As taxas de transmisso aumentaram ordens de grandeza e a abrangncia das redes cresceu exponencialmente. A computao de alto desempenho e a pesquisa de sistemas muito mais eficientes que os convencionais tambm cresceu muito. A cada instante um novo centro de estudos avanados destas tecnologias aparece e recebe, nos pases evoludos, grandes somas de recursos para pesquisa. E ento, os investimentos a partir do famoso relatrio Lax fizeram efeito, pelo menos nos Estados Unidos? Veja o site sobre os 500 supercomputadores atuais (http://www.top500.org) e conclua por voc mesmo.

10

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 vrios milnios (Boyer, 1991). Este conceito est na origem de pensamentos sofisticados da matemtica atual como tambm das linguagens e dessa nossa compulso por ordenar, classificar e "atribuir nmeros", aparentemente para minimizar erros e prever o futuro ("adivinhar" onde e quando eventos importantes podem ocorrer). Isso nos confere maiores chances de sobrevivncia e provavelmente algum prazer e/ou conforto. Faz diferena ter que enfrentar com as mos limpas ou sem armas de fogo, um, dois ou muitos animais famintos. Faz diferena pescar um ou muitos peixes e ter um, dois ou cinco filhos. provvel ter sido confortante saber que seu exrcito primitivo continha 10.000 homens a mais que o dos seus opositores. De necessidades bsicas como estas deve ter surgido a necessidade de contar. A representao numrica e o reconhecimento de formas e padres tambm evoluram lentamente ao longo de milnios com experincias acumuladas por civilizaes diferentes. 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

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 ser escritas aqui sobre a capacidade de animais distinguirem

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

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

3.2 Sistemas de representao numrica Para que uma mquina digital execute clculos, primeiro preciso representar os dados numricos por meio de estados dos dispositivos fsicos disponveis na mquina. Estes por sua vez so, em geral, dispositivos bi-estveis, que podem operar a velocidades altas, de modo confivel, sendo usados, portanto, para representar 2 estados. Os dispositivos usados para operar como bi-estveis, principalmente nas mqinas de 2 gerao, eram colocados em pontos extremos de operao: os ncleos magnticos saturados em uma direo ou outra e os transistores "cortados" ou saturados. Posteriormente os projetos tem feito os dispositivos operar longe dos limites, em faixas de operao, mas de modo que a isso o binrio. Outra classe de mquinas utilizou a representao decimal codificado em binrio (BCD, Binary coded decimal) e embora a sua prevalncia no seja grande hoje em dia, o seu estudo ainda importante para se mostrar a diferena de processamento, necessria ao se usar diferentes representaes. As representaes surgem por alguma razo. A representao BCD no to eficiente sob o ponto de vista da mquina, mas pode ser mais conveniente do ponto de vista dos usurios das mquinas. bom lembrar que o sistema decimal o mais adequado para computao manual, manuteno de registros, etc. Na prtica o usurio da mquina raramente escreve suas instrues de modo que sequer se lembre a real linguagem que a mquina "entende". Qualquer computador atual equipado com programas de converso que transformam os smbolos usados pelo usurio em cdigos de mquina. Hoje em dia a comunicao com as mquinas pode ser feita praticamente em ingls, usando sistema decimal e expresses matemticas. A mquina se encarrega de fazer as converses. Contudo, futuros engenheiros e engenheiras: Quem faz as mquinas fazerem tudo isto? Resposta: Vocs! por isso que vocs precisam saber tudo sobre sistemas de numerao, exatamente para que o usurio comum, cada vez 13 possam ser tratados como dispositivos estveis em um ou outro estado. O sistema numrico que mais se adapta
a

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 de nmeros primos de Mersenne (nmeros da forma 2n -1) e outros. Contudo, no caso das mquinas de uso geral, a soma das vantagens do uso de sistemas no-binrios ainda no superou a soma das desvantagens. preciso desenvolver mais pesquisa sobre o assunto. 3.2.1 Notao posicional Um nmero decimal qualquer pode ser considerado como um polinmio de potncias de dez. Na verdade o nmero uma sequencia dos coeficientes do polinmio. Por exemplo, 423.12 corresponde ao polonmio: 4x102+2x101+3x100+1x10-1+2x10-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

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

(N)b = cnb + cn-1b ou de modo compacto:

n-1

+ ... + c0b + c-1b + c-2b + ... + c-mb

-1

-2

-m

(1)

( N )b =

i=m

i c b i

Os coeficientes do polinmio acima ficam no intervalo 0 ci

b-1. Para

nmeros decimais, o smbolo "." denominado de ponto decimal; no caso geral denomina-se ponto da raiz ou ponto da base. A parte do nmero direita do ponto denominada de parte fracionria e a parte esquerda de parte inteira.

Nmeros inteiros e bases numricas Nmeros expressos na base 2 so chamados de nmeros binrios. Estes so frequentemente usados nos computadores j que utilizam apenas dois coeficientes. Os valores de 0 a 15 so representados na Tabela 2.1 em vrias bases. Como no h coeficientes para valores maiores ou iguais a 10 so usadas letras de A a F. A base 8 chamada de octal e a 16 de hexadecimal. Nmeros escritos em octal ou hexadecimal so frequentemente usados para representar nmeros binrios de modo mais compacto. Nmeros escritos nestas bases podem ser convertidos para binrios pela converso de cada dgito individual. Esta propriedade vlida por que 8 e 16 so potncias de 2. Quando o nmero no for potncia de 2 a converso mais complexa e ser vista logo adiante.
Tabela 2.1 Nmeros inteiros em vrias bases 2 Binria 0000 0001 0010 0011 0100 0101 4 Quaternria 00 01 02 03 10 11 8 Octal 00 01 02 03 04 05 10 Decimal 00 01 02 03 04 05 12 Duodecimal 00 01 02 03 04 05 16 Hexadecimal 0 1 2 3 4 5

15

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________ 0110 12 06 06 06 6 0111 13 07 07 07 7 1000 20 10 08 08 8 1001 21 11 09 09 9 1010 22 12 10 0A A 1011 23 13 11 0B B 1100 30 14 12 10 C 1101 31 15 13 11 D 1110 32 16 14 12 E 1111 33 17 15 13 F

Converso entre bases Para fazer uso dos sistemas numricos no-decimais preciso ser capaz de converter um nmero expresso em uma base em outro nmero expresso em outra base. Uma maneira de fazer isto usar o polinmio (Eq. 1) que representa o nmero. Por exemplo, o nmero binrio (1011.101)2 tem como correspondente decimal: 1x2 +0x2 +1x2 +1x2 +1x2 +0x2 +1x2 ou 11 + 5/8 = 11.625 Esta tcnica uma maneira geral e converter da base b1 para outra base b2. Este mtodo ser chamado de mtodo polinomial. O mtodo consiste em: 1. Expressar o nmero (N) b1 como um polinmio, com os nmeros na base b1 usados como coeficientes do polinmio; 2. Avaliar o polinmio, usando aritmtica na base b2. claro que este mtodo muito usado quando se deseja converter para a base 10, por que, neste caso, utiliza-se aritmtica decimal. Aproveitamos para dizer que a lista de passos acima constitui um algoritmo. Um algoritmo um conjunto de passos ou uma lista de instrues, especificando uma sequencia de operaes, que ir dar a resposta para qualquer problema de um determinado tipo. As caractersticas 16
3 2 1 0 -1 -2 -3

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

importantes de um algoritmo so: (a) ser completo e no depender de intuio ou habilidade especial da pessoa que o executa; (b) sempre funcionar. Exemplos: (26) 8 ser (22)10 1) 2x81 + 6x80 2) 2x8 + 6x1 = (16) 10 + (6) 10 = (22) 10 ( 26) 8 = (42) 5 1) 2x81+6x80 2) 25x(13) 5 + (10) 5 + 15 = (31) 5 + (11) 5 = (42) 5 Como apresentado no lembrete, as operaes aritmticas devero ser efetuadas na base 5. Isto ser revisto mais adiante quando estudarmos as operaes aritmticas binrias. Contudo, no sempre conveniente usar aritmtica na base b2 para fazer a converso de b1 para b2. Um algoritmo para fazer esta converso usando aritmtica na base b1 ser discutido a seguir. Esta discusso ser especificamente para a base b1 = 10, mas pode ser extendida ao caso geral. Este ser denominado de mtodo iterativo, desde que envolve repetidas multiplicaes e divises. Na converso de (N)10 para (N)b a frao e a parte inteira so convertidas separadamente. Primeiro considere a parte inteira, ou seja, a poro esquerda do ponto decimal. O procedimento geral dividir (N)10 por b, resultando (N)10 / b e um resto. O resto, chamado de c0, o dgito menos significativo (mais direita) de (N)b. O prximo dgito menos significativo c1 ser o resto da diviso de (N)10 / b por b, e os dgitos sucessivos so obtidos continuando este processo. Uma forma conveniente de conduzir esta converso est apresentada nos exemplos a seguir. Lembrete: contas na base 5!

17

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

a) (23) 10 = (10111) 2 Divisor 2 2 2 2 2 Dividendo/Q 23 11 5 2 1 0 Resto 1 1 1 0 1 Sequncia - sig. c0 c1 c2 c3 + sig. c4

Exerccio: a) Faa a diviso apresentando os nmeros da forma que voc aprendeu dividir na escola; b) mostre claramente onde fica o dgito menos significativo. b) (23) 10 = (27) 8 Divisor 8 8

A seta indica a direo do dgito mais significativo para o dgito menos significativo.

Div/Quoc. 23 2 0

Resto 7 2 Resto 0 2 1 3

c) (410) 10 = (3120) 5 Divisor Div/Quoc. 5 410 5 82 5 16 5 3 0

Agora considere a poro do nmero direita do ponto decimal (i.. a parte fracionria). O procedimento para converter multiplicar a frao de (N)10 por b. Se o produto resultante for menor que 1, ento o dgito mais significativo (mais esquerda) da frao zero. Se o produto for maior que 1, dgito mais significativo da frao a parte inteira do produto resultante. O prximo dgito mais significativo formado multiplicando a parte fracionria deste produto por b e tomando a parte inteira. Os outros dgitos so obtidos pela repetio deste processo. Veja a seguir uma maneira conveniente de fazer esta converso.

18

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________ a) (0.625) 10 = (0.5) 8
0.625 x 8 = 5.000 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 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 0.0 0.00 0.001 0.0011 0.00111 0.001110 ... = (33.53) 8 0.5

(11011.101011 ...) 2

0.68 x 8 = 5.44 0.5 0.44 x 8 = 3.52 0.53

19

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Neste exemplo podemos ver a relao interessante entre as bases 2 (binria) e 8 (octal). Se agruparmos os dgitos binrios (tambm chamados de bits que uma contrao de Binary Digit) em grupos de 3 e expressarmos como nmeros decimais teremos os correspondentes dgitos octais. Veja novamente ( a seta indica a direo de agrupamento dos dgitos, independentemente para parte inteira e fracionria): (110 101 ( 6 5

0 011 101)2 0 3 5 )8

Esta converso to simples que muitas vezes nmeros octais so usados para representar os nmeros binrios por questes de compactao. Para avaliar o nmero em decimal, dentro de cada bloco de 3 usamos a notao posicional na base 2 com aritmtica decimal. Por exemplo: ( 1 101 011)2 = (1 5 3)8 onde 011 seria o dgito 3 por que seria, na notao posicional, 0x22+1x21+1x20 = 0 + 2+1 = 3. 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. 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

20

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 com e sem sinal 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 i =1

n i c b i

onde ci so dgitos, "" o ponto da raz e b a raiz ou base numrica. Na base 10 o ponto chamado de ponto decimal e na base 2, ponto binrio. Vamos agora considerar o problema da representao de nmeros negativos em uma mquina digital. A informao se um nmero positivo ou negativo pode ser armazenada em um nico dgito binrio. Vamos colocar o smbolo c0 na posio mais esquerda da sequncia e assumir que se c0 = 0 o nmero positivo e se c0 = 1 o nmero negativo. Denominamos c0 de bit de sinal. Agora, o valor da sequncia pode ser sintetizado por:

21

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

(1 2c0 ) ci b ni
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 o chamado complemento da base (true complement system) e o complemento da base diminuda. Ambos so usados para facilitar a adio e subtrao. O complemento da base de um nmero c = c1c2 ... cn definido como o nmero bn - 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: (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: bn - c - 1 22

n+m

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 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 nmero -988510. sequencias: 19 -9885 -9866 = 00019 10114 10133 Podemos adicionar os nmeros simplesmente adicionando as

preciso cuidado para ver se a soma ou diferena no maior ou menor que os nmeros que podem ser representados. No podemos, por exemplo, representar a soma de 9484 com 5966 neste sistema, nem a soma de -5966 e -5976 (verifique!). Outra regra necessrio obedecer: c0 interpretado como binrio e deve, assim, ser adicionado como tal, qualquer que seja a base do nmero. Se um vai um (carry) gerado do bit do sinal no sistema de base diminuda, ento 1 adicionado posio cn da soma. 23

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Exemplo: -27 -54 -81 19972 19945 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 +10 00 11110 00010 100000 (drop!) Assim 00000 zero e h apenas 1 zero neste sistema de representao. Podemos definir o valor de uma sequencia c = c0c1c2 ... cn na representao fracionria em complemento de 2 como: (retorno de vai um)

2 ( c ) = c0 +

c 2
i i =1

24

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Este sistema particular de representao de fraes binrias ir representar nmeros no intervalo: -1 2 1-2-n

O sistema de representao numrica binria de fraes em complemento de 1 fornece para o nmero c = c0c1c2...cn a seguinte definio geral:

2 (c ) = c0 ( 2

1) +

i =1

ci 2 i

De modo similar os complementos da base e base diminuida podem ser usados em outras bases. Podemos definir o valor de uma sequencia c = c0c1c2 ... cn na base b como frao em complemento da base por

b (c ) = c 0 +
e na base b-1

i =1

c i b i

b1 (c) = c0 (b

1) +

i =1

ci b i

25

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

No complemento da base as fraes podem, ento ser representadas no intervalo

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 subtrados de 9. Assim o negativo de 04454 15545 e o negativo de 12426 07573. Adio e subtrao podem ser feitas neste sistema usando somente adio. Dois pontos devem ser considerados: a formao do complemento de 9 ( no BCD o 9 representa a base diminuda) e o end-around-carry (retorno de vai um) que as vezes deve ser adicionado ao dgito cn da soma. Vamos primeiro considerar a formao do complemento de 9. Se dgitos decimais so representados em uma mquina usando BCD, a construo simplificada se o complemento de 9 de um certo cdigo representando um dgito decimal puder ser facilmente formado. O modo mais direto para formar o complemento de 9 seria simplesmente complementar cada dgito binrio no cdigo (grupo de bits para representar 1 decimal). Mas note que se isto for feito no cdigo 8421 o resultado no ser correto. Por exemplo, se complementarmos bit a bit o conjunto 10002, que corresponde ao decimal 810, obtemos 0111 que representa 710 e no 110. No cdigo 2421 iria funcionar: 1111 = 910 teria como complemento 0000 = 010; 0001 = 110

26

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

complementado seria 1110 = 810 e neste caso basta complementar cada dgito binrio para obter de qualquer nmero o seu complemento de 9. Outro cdigo que permite a formao do complemento de 9 facilmente o excesso de 3. Este foi usado nas primeiras mquinas da Harvard e formado pela adio de 310 = 00112 aos nmeros obtidos no cdigo 8421. Assim o cdigo excesso de 3 representa 310 = 01102 e 410 = 01112, 510 = 10002, etc. Veja o que ocorre com o complemento de 9. O nmero 01112 = 410 complementado fica 10002 = 510 e 01002 = 110 complementado fica 10112 = 810, etc. O cdigo excesso de 3 no um cdigo pesado havendo dificuldades quando os clculos envolvem nmeros positivos e negativos. (Veja pag. 315, Bartee, Lebow & Reed). No caso do 8421 o complemento de 9 pode ser formado, mas usando a subtrao ou soma em complemento de 1 ou 2, respeitando eventual gerao de retorno de vai um. Por exemplo: Dado o nmero 10002 = 810 9 deve ser 110, ou seja, 1001 = 910 1000 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. (retorno de "vai um" por causa da operao em complemento de 1) (complemento de 1 do nmero acima) o seu complemento de

27

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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. 4.1 Operaes bsicas Adio Binria S 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 0 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= 11 11 1001.011 1101.101 1 0111.0002 9.37510 13.62510 23.00010

Soma =

28

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

A subtrao feita colocando-se o minuendo sobre o subtraendo alinhados pelo ponto binrio. Se um borrow ocorre e o bit mais esquerda do minuendo 1 ele mudado para 0 e o processo de subtrao continua da direita para a esquerda. Transbordo: Trocas: Minuendo: Subraendo: Diferena: 1 0 10 01 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: Diferena:

1 011 11000 10001 00111

24 17 7

4.2 Aritmtica binria usando complementos possvel evitar este processo de subtrao, usando a representao de complemento para os nmeros negativos. Vamos discutir este assunto para nmeros binrios fracionrios e posteriormente faremos a generalizao. O complemento de 2 (2B) de uma frao binria B definido como se segue: 29

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________
2

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 desprezando (dropping) o 1 mais esquerda de A + 2B. Por exemplo: A= B= Diferena 0.1110 0.1101 0.0001 A= B= 0.1110 1.0011 1 0.0001

Se A-B < 0, ento A + 2B = (10 - mod(A-B))2 exatamente igual a 2A-B, o complemento de 2 de A-B. Por exemplo: A= B= Diferena 0.1101 0.1110 0.0001 A= B= 0.1101 1.0010 1.1111 =
2

(0.0001) = 1.1111 30

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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)

O complemento de 1 tambm bastante utilizado. A definio, neste caso, a seguinte:


1

B = (10 - 0.00 ... 1 - B)2

onde a localizao do 1 na frao 0.00 ... 1 corresponde ao dgito menos significativo de B. Uma vez que (10 - 0.00 ... 1)2 igual a 01.11 ... 1, possvel fazer 1B invertendo os dgitos de B e adicionando 1, antes do ponto da raiz. Assim, 1(0.1101) = (1.0010)2. Se somarmos A + 1B 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 menos significativo de A + 1B. Este procedimento denominado retorno de vai-um (end-around carry). Por exemplo: A = 0.1110 B = 0.1101 0.0001 A-B = A = 0.111. 1B = 1.0010 10.0000 = A + 1B

0.0001 (End-around carry) 0.0001

Se A-B < 0, ento A + 1B ser o complemento de 1 do mdulo de A-B, ou seja, 1 A-B. Por exemplo:

A = 0.1101 B = 0.1110 0.0001

A = 0.1101 B = 1.0001 1.1110 =


1 1

(0.0001) = 1.1110

Mostrar que: 2 B = 2(B*22) / 22

(0.1110 - 0.1101) =

31

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Generalizando o complemento de fraes: Agora, o complemento da base de uma frao F definida por
b

F = (10 - F)b

O complemento da base diminuda :


b-1

F = ( 10 - F - 0.00 ... 1)b

Estes procedimentos so usados para formar os complementos e eventualmente executar as operaes de subtrao. Generalizando o complemento de nmeros mistos: Neste caso estamos apresentando ao lado o conceito de mdulo e mostrando com isto o significado do complemento com base no mdulo do nmero.
b

N = (100 ...0. - N)b N = (100 ... 0. - N - 0.00 ...1)b

(M-N) + 1 M-N

M = 2n - 1 (definio de mdulo)

b-1

onde 100 ... 0 contm 2 dgitos a mais que qualquer inteiro encontrado na subtrao. Por exemplo: Se N = 11.01 ento
2

(N) = 1000.00 - 11.01 = 111.11 - 11.01 + 0.01 = 100.10 + 0.01 = 100.11


2

M = 11.10 N = 11.01 0.01

M = 11.10 N = 100.11 1000.01 Descarta (Drop!)

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.

32

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

( N )b =

i = m

ci b i = (c n cn1 c1c0 c1c 2 cm ) b

Deslocando k posies para a direita ou para a esquerda resulta:

i = m

c b
i

i+k

=b
k

i= m

c b
i

= b k ( N )b

Manipulao semelhante mostra o que ocorre com o deslocamento para a direita. Deslocar um nmero binrio k posies para a esquerda equivale a multiplic-lo por 2k. Por exemplo: (110.101)2= (6.635)10 (1.10101)2 = 2-2(6.625) = (6.625/4)10 = (1.65625)10

(11010.1)2 = 22(6.625)10 = (4x6.625)10 = (26.5)10 ou seja

i= m

ci b

ik

=b

i= m

ci b i =

( N )b bk

4.3 Multiplicao binria A tabela para multiplicao binria a seguinte; 0x0 = 0 0x1= 0 33

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

1x0= 0 1x1= 1 Exemplo: multiplicar 110.10 por 10.1 Multiplicando Multiplicador 110.10 10.1 11010 00000 11010 10000.010 Para cada dgito do multipliador que igual a 1, um produto parcial formado consistindo do multiplicando deslocado de modo que seu dgito menos significativo fique alinhado com o dgito 1 do multiplicador. Na verdade este produto nulo pode ser omitido. O produto final obtido pela soma dos produtos parciais. O ponto binrio colocado no produto, usando a mesma regra da multiplicao decimal. A tcnica mais simples para multiplicao de nmeros negativos usar o processo j descrito para multiplicar as magnitudes. O sinal do produto determinado separadamente, e o produto feito negativo se multiplicando e multiplicador tiverem sinais diferentes. possvel efetuar multiplicao direta de nmeros negativos representados em complemento. Isto feito usando um esquema de recodificao chamado de algoritmo de Booth que tambm acelera a multiplicao. 4.4 Diviso binria A diviso a operao aritmtica mais complexa. Divises longas em decimal requererem operaes de tentativa e erro. Por exemplo, ao dividir 362 por 46 preciso 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 34

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 quociente nmero de dgitos aps o ponto

0 0 0

Se o dividendo menor que o divisor, a primeira subtrao j ter resultado negativo. Outro ponto que a subtrao mostrada na verdade o divisor menos o dividendo e o sinal negativo indica que o mdulo foi obtido pela subtrao do menor do maior e o sinal negativo por que o dividor maior. Neste caso, ao q0 deve ser atribudo o valor 0 (zero). q0 q-1 ... 0. x ... 1111 1100. 0 1111 - 0011 + 1111 1100 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 q-5 x quociente nmero de dgitos aps o ponto 35 q-5 x

quociente nmero de dgitos aps o ponto

0 0 0

0 0 0

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

0011 1111 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 1100 11000 - 0 1111 10010 1111 000110 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 + 1111 0011 1111 1100 11000 - 0 1111 10010 1111 36 0 0 0 q-5 x quociente nmero de dgitos aps o ponto 0 0 0 nmero de dgitos aps o ponto

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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.

q0 q-1 q-2 q-3 q-4... 0. 1 1 0 0... 1111 1100. 0 1111 q0=0 - 0011 + 1111 1100 11000 - 0 1111 q1=1 q-2=1 q-3=0 10010 1111 000110 1111 - 1001 + 1111 0 0 0

q-5 x

quociente

nmero de dgitos aps o ponto

37

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

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 ... 1111 1100. 0 1111 - 00110 + 1111

q-5 x

quociente nmero de dgitos aps o ponto

0 0 0

q-0=0 desloca e soma 38

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

+ 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) 4.5 Operaes em outras bases Apenas para que no passe em branco, vamos exercitar algumas operaes em outras bases numricas. O exerccio pode ser til para estimular voc a pensar sobre o assunto a no ficar preso apenas ao que o convencional.

39

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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. Clula binria de armazenamento Vamos inicialmente imaginar a clula binria do ponto de vista ideal e depois sob o ponto de vista de dispositivos reais. A Figura 4.1 ilustra uma funo com os estados assumidos por uma clula binria, no tempo.

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.

40

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Primeiro vamos descrever a clula como um dispositivo primrio com as seguintes propriedades: 1. Possui dois estados possveis que iremos chamar de A e B; 2. Qualquer mudana de estado (de A para B ou de B para A) ocorre instantaneamente, isto , em instantes discretos de tempo t1, t2, ..., tj, ... 3. Uma medida de alguma propriedade fsica da clula tal como magnetizao, tenso ou corrente em algum ponto, sempre resulta em um nmero a se a clula est no estado A ou b se a clula est no estado B. Esta definio de medio implica que o dispositivo de medio no perturbe a clula, ou equivalentemente, no extraia ou drene energia da clula. Como, pela propriedade 2 a clula muda de estado instantaneamente, uma medio no tem nenhum significado nos instantes de transio t1, t2, ..., tj, ... Se fizermos um experimento no qual medimos o estado fsico da clula binria em todos os instantes t tj, e plotarmos os resultados destas medies como funo do tempo, ns obtemos uma funo binria como apresentada na Figura 5.1. Assumimos, sem perda de generalidade que a < b. Uma clula binria ento um dispositivo fsico que pode armazenar uma funo binria (que assume dois valores) do tempo. A determinao do estado da clula em um tempo t equivalente a "avaliar" a funo no instante t e ter como sada um bit de informao (mais tarde vero que estamos falando da informao no conceito definido por Shannon). A clula binria o elemento fundamental de armazenamento de um processador de dados digital. De modo correspondente a funo binria a funo matemtica fundamental para representao de variveis fsicas nas mquinas. O fato do elemento fundamental de armazenamento ser binrio e a funo matemtica bi-estvel ("two-valued") devido a maior facilidade de construo dos elementos fsicos. Existe uma correspondncia natural um-pra-um entre a clula binria e a funo que ela armazena. Vamos, as vezes, considerar a clula binria como uma funo tipo "two-valued function". Segue que em um instante t a clula x armazena a funo com valor a e ento pode ser tratada como uma funao x com valor x(t) = a. Exemplos de clulas binrias de armazenamento Na realidade nenhum dispositivo fsico pode apresentar as propriedades 2 e 3, i.., chavear instantaneamente e fornecer um valor de tenso to exato. Estas condies podem ser atenuadas de modo que dispositivos fsicos no-perfeitos podem ainda guardar funes bi-estveis. Um dispositivo bi-estvel no apresentar resultados precisos da leitura de seus estados mas, preferencialmente ele ir apresentar dois intervalos estreitos de valores, como apresentado na Figura 5.2. 41

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

1 a 2 = A 2 1 2 1
t1 t2 t3 t4

1 b 2 = B B

A
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.

O espalhamento no valor, ou seja a faixa ao invs de valor numrico, decorre do fato de que ambos, a clula e o mecanismo de medio esto afastados da condio ideal 3. Qualquer dispositivo real de medio absorve alguma energia da clula e isto por sua vez afeta o valor que est sendo medido. Se a faixa de valores for suficientemente pequena de modo que as faixas de variao dos dois valores no se interceptem, a propriedade 3 efetivamente satisfeita. Ns denominamos a medio que no afeta o valor armazenado na clula de no-destrutiva. De modo similar, qualquer dispositivo real requer um tempo finito para mudar de estado. Se o intervalo de tempo durante o qual a medio feita no intercepta o intervalo para mudana de estado, ento a propriedade 2 pode ser aceita. Veja o esquema da Figura 5.3.

2 1 2 1
t0 tf t1 t2

Intervalo de Medio

Intervalo de Transio Figura 5.3 Relao entre tempo de medio e tempo de transio. Os intervalos esto apontados pelas setas.

tempo

42

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

O intervalo t1- t2 pode ser pr-fixado junto com um intervalo de medio de modo a no haver interseco com o intervalo de chaveamento t0-tf. Talvez a clula binria de armazenamento mais comum seja o chamado FlipFlop (assunto que iremos tratar mais tarde em detalhe) esttico, como apresentado na Figura 5.4. Este um circuito, geralmente consistindo de dois circuitos ativos como transistores (voces vero este assunto em detalhe em outras disciplinas, mas vamos falar um pouco sobre os transistores mais adiante, tambm) e vrios elementos passivos, com a propriedade de entrar em regime permanente, ou de se estabilizar com apenas um transistor ativo, ou seja, conduzindo corrente, de cada vez. Na Figura 5.4 o estado A ocorre quando T1 est conduzindo corrente e estado B quando T2 est conduzindo. A medio da tenso de sada no terminal X dar um valor prximo de um valor a determinado pelos parmetros do circuito no estado A e prximo de um valor b no estado B. Esta medio ter significado ou valor desde que seja feita fora do tempo de transio de um estado para outro.

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).

43

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Atraso - T

Amplificador

Read in 0 T 2T 3T

(a)

(b)

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

Sai 1

Estado A

Estado B

Leitura

(a)

(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.

44

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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).

45

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

b
c2(t1)

a a b

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.

Como apresentado, os registradores so dispositivos fsicos que armazenam representaes dos valores numricos nas mquinas digitais. Ns demonstramos que o registrador armazena n-componentes de uma funo vetorial binria. Para completar a figura devemos definir um meio pelo qual os valores de um registro esto associados a um conjunto de valores numricos. A associao mais simples e mais natural entre 2n diferentes valores que um registrador de n clulas pode assumir e os nmeros inteiros de 0 a 2n - 1. Se associamos os inteiros 0 e 1 com os nmeros a e b, respectivamente, e imaginando o ponto binrio localizado direita do registrador, ento os valores do registrador so n-uplas de 0's e 1's que correspondem aos primeiros 2n inteiros no-negativos do sistema binrio de numerao. Ns chamamos isso de representao inteira do registrador. Assim, por exemplo, se o registrador de 4 clulas (c1, c2, c3, c4) tem o valor bbab, dizemos que na representao inteira o registrador armazena o inteiro binrio 1101. O valor decimal equivalente [I(c)] de um inteiro binrio armazenado em um registrador c obtido formando-se o polinmio:

I (c) =

i =1

ci 2 ni

com ci = 0, 1; i = 1, ..., n e onde os valores 2n-i e a soma I(c) so expressos como nmeros inteiros decimais. Assim, no exemplo acima, o decimal equivalente ao valor armazenado no registrador 1101 13. O sistema numrico octal tambm frequentemente usado. Se as n clulas do registrador c so agrupadas em K subregistradores de 3 clulas: R1 = 0 0 0 c1 c1 c2 c1 c2 c3 ... n = 3k-2 n= 3k-1 n= 3k

46

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

k-1 k

= cn-5

cn-4 cn-3 cn

R =

cn-2 cn-1

ento o octal equivalente da representao inteira de c uma k-upla I(R ), I(R ), ..., I(R ) Assim o octal equivalente de 1101 15. Veja como: K = 2 registradores de 3 clulas para um n = 4 R1= c-1c0c1 R2= c2c3c4 I(R1)= 1 I(R2)= 5
1 2 k

Exerccio: Construa uma tabela com os valores do registrador (combinaes aaaa, aaab, etc), valores binrios, valores octais e valores decimais para a representao inteira de um registrador de 4 bits. De agora em diante os valores de uma clula de um registrador, a ou b, sero sempre considerados representar os inteiros 0 e 1. Alm disso, se nada for especificado o valor contido em um registrador ser considerado inteiro. Consideraremos como sinnimos a representao inteira do nmero, em qualquer base, contida no registrador e o valor do registro. Vamos dizer que o valor do registrador X (10)10. Ou ainda , o registrador de 4 clulas com valor bbba ter o valor binrio 1110 ou o valor octal 16, ou o valor decimal 14. Outra representao de um registrador assumido o ponto binrio localizado do lado esquerdo do registrador. Assim, um registrador de 4 clulas 1110 ter a representao fracionria .1110. O valor decimal equivalente, neste caso, como j visto anteriormente ser dado pelo polinmio:

F (c ) =

c 2
i i =1

= 2 n I (c )

Similarmente, o equivalente octal obtido agrupando as clulas de 3 em 3 comeando agora da esquerda para a direita do registrador. Assim, a frao binria .1110 equivalente frao decimal 7/8 = .875 e a frao octal .70.

47

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Ambas as representaes inteira e fracionria so denominadas representaes n binrias uma vez que 2 valores do registrador de n clulas so feitos correspondentes n a 2 nmeros. De modo diferente so as representaes denominadas decimal-codificado em binrio, ou BCD, como apresentado anteriormente. Nestas, grupos de clulas so associados a dgitos decimais. Por exemplo, suponha que o registrador C contm n = 4k clulas onde k um inteiro. Divida C em k sub-registradores R = c1, c2, c3, c4 ... R = cn-3 cn-2 cn-1, cn Tomando o caso em que K = 2 e n = 8 R1 = c1, c2, c3, c4 R2 = c5, c6, c7, c8 Restringimos cada registrador a assumir os valores 0, 1, 2, ..., 9 e atribumos um nico valor decimal a cada sub-registrador. Assim, a representao BCD do registrador C uma k-upla I(R1), I(R2), ..., I(Rk) com valor decimal I(R )10
1 k-1 k 1

+ I(R )10

k-2

+ ... + I(R )10

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: R1 = 1000 e R2 = 0011

I(C) = I(1000)101 + I(0011)100 = 8 x 10 + 3 x 1 = 80 + 3 = 83

Claramente, muitas outras representaes binrias so possveis. O ponto binrio (ou decimal), por exemplo, pode estar localizado em qualquer lugar com relao s clulas do registrador. H tambm representaes para nmeros negativos.

48

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Representaes no-numricas so tambm possveis. Seja C um registrador 5 de 5 clulas com 2 = 32 possveis valores. As 26 letras do alfabeto podem ser representadas por C atribuindo a cada letra um dos 32 valores possveis do registrador, como na Tabela 3.2. Em geral qualquer lista de K coisas pode ser representada por um registrador de log2K clulas ou mais por uma associao de cada item com um nico valor do registrador. Tabela 5.2 Associao entre letras e valores de C Valor do registrador 00000 00001 00010 00011 00100 ... 11000 11001 Generalizao do conceito de registrador Chegamos a uma definio de registrador como o dispositivo bsico de um computador digital para o armazenamento de valores de variveis e mostramos como ambos dados numricos e no-numricos podem ser armazenados nos registradores pelo estabelecimento de correspondncia entre os nmeros ou dados e os vrios valores de um registrador. Esta definio, ainda independente da implementao fsica do registrador. Qualquer parte de um registrador (i.., um sub-registrador) um registrador. Ao considerar as representaes inteiras octal e decimal assumimos que o registrador um conjunto de sub-registradores no qual cada sub-registrador contm um valor octal ou decimal. Em qualquer registrador de n-clulas, cada uma das n clulas um registrador de uma clula. H Representao do alfabeto A B C D E ... Y Z

= n(n 1) / 2 2
n

registradores de 2 clulas diferentes que mantem a ordem, (n3) registradores de 3 clulas, etc. H

k =1
n

= 2n 1

49

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

registradores diferentes incluindo o prprio registrador de n clulas como o ltimo termo da soma. Nem todos estes sub-registradores possuem significados. Faz sentido considerar um sub-conjunto das clulas de um registrador como um sub-registrador separado somente se em deteminado instante o seu conjunto tratado independentemente do resto do registrador. Como um exemplo simples, suponha que um registrador C de 10 clulas as vezes sirva para armazenar binrios inteiros e algumas vezes 2 letras do alfabeto. Os sub-registradores que teriam significado seriam as duas metades de C (registradores de 5 clulas) e o registrador C propriamente dito. Nota: A notao apresentada acima representa o coeficiente binomial que definido por:

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: 50

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

D = (D1, D2, ..., Dn) que funo do registrador independente C = (C1, C2, ... Cn) onde cada componente Di deterninado por: Di = 0 quando Ci = 1 1 quando Ci = 0 Como veremos mais tarde o registrador dependente D chamado de complemento de C e uma funo bastante comum. Outro registrador dependente comum o registrador de n-clulas D definido por: Di = Ci+1 Dn = 0 i = 1, 2, ... n-1

Esta funo evidentemente equivalente a deslocar cada clula de C uma posio para a esquerda e introduzir 0 na clula Cn. De modo anlogo podemos introduzir funes de dois registradores. Seja C e D registradores independentes com componentes dados por: C = (C1, C2, ..., Cn) D= (D1, D2, ..., Dr) Uma funo de C e D um registrador de m clulas F (C, D) no qual cada componente de Fi (i = 1, 2, ..., m) uma funo binria de todos os Cj e Dk. Uma mquina digital essencialmente uma coleo de registradores dependentes e independentes. Nas mquinas diferentes, o nmero de registradores independentes e o nmero e natureza dos registradores dependentes pode variar muito de acordo com o propsito da mquina. A menos deste fato, qualquer mquina pode ser descrita considerando seus registradores dependente e independentes, e suas interaes. Para tratar da construo de mquinas sob este ponto de vista preciso tratar a questo das funces de registradores muito mais detalhadamente. Isto no ser feito neste curso. O objetivo aqui deixar clara a possibilidade de que a construo das mquinas digitais pode ser feita totalmente baseada em operaes matemticas com registradores. Fica para a imaginao do aluno fazer exerccios sobre isto e possibilitar que suas fantasias sobre as possibilidades imaginadas se tornem realidade no futuro. _____________________________________________________________________
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.

51

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________ Defina uma representao binria para o computador do exerccio anterior de modo que cada valor binrio contenha dois e somente 2 dgitos 1. Qual o mnimo nmero de clulas requerido? Suponha que as operaes do computador sejam O1, O2, ... O10. Defina uma representao binria para as operaes tal que os valores para as sucessivas operaes difiram em um e somente um dgito. Qual o mnimo nmero de clulas requeridas para este que chamado cdigo de Gray? (veremos mais tarde)

_____________________________________________________________________

52

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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. AND (E), smbolo: , 1) 0.0 = 0 2) 0.1 = 0 3) 1.0 = 0 4) 1.1 = 1 OR (OU), smbolo: +, 5) 0+0 = 0 6) 0+1 = 1 7) 1+0 = 1 9) 1+1 = 1

_____________________________________________________________________ XOR (OU exclusivo), smbolo: 10) 00 = 0 11) 01 = 1 12) 10 = 1 13) 11 = 0

Veja mais adiante o uso desta operao

53

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Postulado: proposio que se deve admitir antes de um raciocnio e que no ser posta em dvida. Para esta lgebra so vlidos os seguintes postulados: Postulados:
(Os smbolos + e so operadores que denominamos OU (OR) e E (AND). Os elementos do conjunto V so literais a serem usados em expresses como variveis booleanas)

P1: se a e b so elementos de V, ento P1.1 a+b=b+a P1.2 ab=ba P2: Se a, b, c so elementos de V, ento P2.1 a+(bc)=(a+b) (a+c) A operao OR distributiva sobre a operao AND P2.2 a(b+c)=(ab)+(ac) A operao AND se distribui sobre a OR P3: Para os dois elementos do conjunto V ={0,1}, h identidade tal que: P3.1 0+a=a+0=a P3.2 1a=a1=a P4: Para um elemento a de V existe a' denominado de complemento de a em V com as seguintes propriedades: P4.1 a+a' = 1 P4.2 aa' = 0 Vamos, a seguir, estudar os teoremas mais conhecidos da lgebra de Boole, procurando apresentar algumas demonstraes com o objetivo de introduzir o aluno a tcnicas usadas para provar os teoremas: Teoremas bsicos : proposies que podem ser demonstradas. T1: Comutatividade: a+b = b+a Se as operaes bsicas forem usadas pode-se verificar que as tabelas abaixo so simtricas com relao a diagonal. OR 0 1 0 1 0 1 1 1

AND 0 1 0 0 0 1 0 1 Verifique as operaes bsicas com cuidado e confirme.

54

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

T2: Distributividade: a (b+c) = ab + ac ou a(b+c) = ab+ac Pode-se mostrar por induo perfeita. Neste caso deve-se considerar todas as possibilidades de valores para as variveis: abc 000 001 010 011 100 101 110 111 a(b+c) 0 0 0 0 0 1 1 1 ab+ac 0 0 0 0 0 1 1 1

T3: Elemento identidade: a+0 =a Deduz-se das operaes bsicas que 0+0=0 e 0+1=1 portanto 0 o elemento identidade aditivo. O elemento identidade multiplicativo (a1=a) seria ento verificado por 01=0 e 11=1 ou seja 1 o elemento identidade multiplicativo. T4: Existncia de complemento: a + a' = 1 Vamos assumir que 0 o complemento de 1 e verificar que o postulado P4 se verifica: a a' a+a' aa' 1 0 1 0 0 1 1 0 ou seja dado a existe a' que satisfaa P4. T5: Princpio da Dualidade: Toda identidade algbrica da lgebra booleana permanece vlida se: 1) todos os operadores e + forem intercambiados; 2) todos os elementos 1 e 0 tambm forem intercambiados; Exemplo: a+b+cd=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 . T6: Unicidade do complemento: Prova (ref. 6). Vamos admitir que a V e que x e y sejam complementos de a. Podemos efetuar as seguintes operaes: x = x1 =x(a+y) =xa+xy =ax+xy P3.2 Por hiptese P2.2 P1.2 identidade y o complemento de a distributividade comutatividade 55

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

=0+xy =xy

Por hiptese P3.1

x o complemento de a identidade

Trocando x por y e vice-versa e repetindo todos os passos para y obtemos: = yx = xy e portanto, x = y. y P1.2

Aps demonstrada a unicidade do complemento podemos considerar o smbolo ' (NOT) como uma operao de complementao. T7: Elemento nulo: Para qualquer elemento a de V : a+1 = 1 e a0 = 0 a+1 = 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) T8: O complemento de 0 1 e o complemento de 1 0 Sabemos que a + a' = 1 (P4.1) e que o complemento nico (T6). Assim podemos dizer que se a' = 1 ento a ser 0 e vice-versa. Logo o complemento de 1 0 e viceversa. T9: Lei da Idempotncia: Para todo a pertencente a V a+a=a aa=a a+a = (a+a) 1 = (a+a) (a+a' ) = a+(a a' ) = a+0 P3.2 P4.2 P2.1 P4.2 56

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

=a

P3.1

a a = a prova-se pelo teorema da dualidade (T5). T10: Lei da Involuo: Para todo a pertencente a V podemos dizer que (a' ) ' = a Pode-se dizer que (a' )' e o prprio a so ambos complementos de a' e que pela unicidade do complemento (a' )' e a tem que ser iguais. T11: Lei da Absoro Para a e b pertencentes a V, a+ab = a a(a+b) = a a+ab = a1+ab = a(1+b) = a(b+1) = a1 =a a(a+b) = a P3.2 P2.2 P1.1 T7 P3.2 Princpio da dualidade T5

T12: Para todo par de elementos a e b de V, a + a'b = a+b a(a'+b)= ab a+a'b = (a+a' )(a+b) = 1 (a+b) = a+b a(a'+b)= ab P2.1 P4.1 P3.2 Princpio da dualidade (T5)

T13: Associatividade das operaes + e Para a e b pertencentes a V, a+(b+c)=(a+b)+c a(bc)=(ab)c Para demonstrar este teorema faremos uso de propriedades que s podem ser retiradas dos fundamentos da matemtica associados a lgebra booleana. Neste caso a terceira operao descrita acima () usada para definir um Anel Booleano que inclui propriedades especiais. No objetivo deste curso detalhar estes conceitos, 57

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

portanto vamos extrair as propriedades da matemtica fundamental e us-las como parte de operaes vlidas para a lgebra booleana. Deste modo as propriedades que vamos denominar de R1, ... Rn (Ring) apenas para lembrar a existncia de fundamentos bsicos da teoria dos anis faro parte do conjunto de opes para demonstaro de vrios teoremas, sem nenhum rigor matemtico no estabelecimento de cada uma das propriedades adicionais (Veja referncia 4 para se esclarecer sobre o assunto). Revendo a operao () denominada de OU exclusivo (XOR, de exclusive OR) XOR 00=0 01=1 10=1 11=0 a 0 = a a1 = a' a a = 0 aa' = 1 a b ab = a + b ab = ab' + a'b Provando T13, a+(b+c) = = a(bcbc) a(bcbc) = abcbcabacabc = (abab) c(abab)c a(bc)= (ab)c T14: Distributividade do produto sobre a soma: a(b+c) = ab + ac = abacabac = abacabc = a(bcbc) = a(b+c) T15: Teorema de De Morgan: (a b)' = a' + b' (a+b)' = a' b' 58 R5 distributiva comutativa e R5 Princpio da dualidade (T5) R1 R2 R3 R4 R5 R6

= (a+b)+c

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

(a+b)' = a' b' = (a1)(b1) R2 = abab1 = (a+b)1 = (a+b)' (ab)' = a' + b' = a'b'a'b' = a1b1(a1)(b1) = a1b1abab1 = aabb11ab1 = 000ab1 = 0ab1 = (ab)1 = (ab)'

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 Elemento nulo Idempotncia Complemento Involuo Comutativa Associativa

Identidade a+0=a a+1=1 a+a=a a + a' = 1 (a' )' = a a+b=b+a (a+b)+c = a+(b+c)

Identidade Dual a1=a a0=0 aa=a a a' = 0

ab=ba (ab)c = a(bc)

59

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Distributiva Cobertura Combinao Consenso

a(b+c) = ab + ac a + ab = a ab + ab' = a ab + a'c + bd = bc + bd (a b)' = a' + b'

(a+b)(a+c) = a+bc a(a+b) = a (a+b)(a+b') = a (a+b)(a'+c)(b+d) = (b+c)(b+d) (a+b)' = a' b'

De Morgan

( Retirado de ref.03, Tab.1.1, pag. 6) (Nem todas as propriedades aqui listadas foram demonstradas ou discutidas. Mais tarde sero utilizadas e ento apresentadas para melhor entendimento. Talvez fosse bom que o aluno se antecipasse em verificar algo sobre elas na bibliografia e ficasse preparado. No se sabe o dia de amanh, certo?)

60

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Analogia entre operaes lgicas e a teoria de conjuntos:

Outras funes podem ser tambm representadas. Experimente!

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 = 0 a b = a b

61

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 a b 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!

62

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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'

Funo: AND (E)

a b

ab

63

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Funo: NAND (NOT E)

a b
Esta operao comutativa, i.., L= (ABC)' = (BAC)', mas no associativa.

(ab)

Funo: OR (OU)

a b

a +b

64

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Funo: NOR

a b

(a + b)

Esta operao comutativa, i.., L= (A+B+C)' = (B+A+C)', mas no associativa.

Funo: XOR

a b
Esta operao comutativa e associativa!

(a + b)

65

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

A operao AB pode ser representada por meio de blocos lgicos j conhecidos conforme apresentado abaixo:

a b a b b' a'

a b'

(a + b)
a' b

Vamos trabalhar um pouco com os blocos lgicos. A idia construir circuitos gerados pela conexo, aleatria ou no, de blocos e determinar a funo final obtida. Neste ponto, podemos intuitivamente identificar os conceitos de simplificao, dualidade, falhas e custo.

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).

66

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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. 67

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

O smbolo do diodo apresentado abaixo:

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.

68

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

69

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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:

Quando a base de um transistor NPN ligada ao terra (0 V), no h fluxo de corrente do emissor para o coletor (diz-se que o transistor est "cortado"). Se uma polarizao direta suficiente para vencer a barreira de potencial de 0,6 V aplicada a base do transistor uma corrente ir fluir do emissor para o coletor. Se esta corrente for prxima de Vcc/R dizemos que o transistor est saturado. Operando com correntes de base que levem o componente sempre de cortado para saturado e vice-versa, dizemos que o transistor esta funcionando como chave. neste modo de operao que os transistores so usados para sntese de circuitos digitais e portanto apenas este caso ser estudado neste curso. Para que o transistor opere necessrio que seja polarizado. Isto significa aplicar uma tenso no coletor, positiva com relao a do emissor. Veja a figura a seguir:

70

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Se o transistor estiver polarizado, a corrente no coletor depender da corrente na base de modo que, para pequenas correntes de base, Ic = Ib onde o ganho de corrente do transistor (pode variar de algumas dezenas at algumas centenas). Se Ib for suficientemente grande, o transistor atingir a saturao. Este ponto ocorre quando a corrente no coletor tiver crescido tanto (voc sabe que Ic = Ib ) a ponto da tenso no coletor cair para zero (queda no resistor igual a Vcc). Ocorre saturao quando o que leva a Icsat Vcc / R, Ibsat Vcc / (R) O transistor vai operar em dois modos: cortado: Ib = 0, Ic = 0 e Vc = Vcc Saturado: Ib>= Vcc / (R), Ic = Vcc / R e Vc = 0 Veja o caso real em que Vcc= 10 V, R = 1k e = 50. Ibsat = Icsat / = 10 mA / 50 = 200 A. Exerccio: Icsat = 10V/1k = 10 mA e

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).

71

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

9. Funes booleanas e circuitos digitais


Como escrito no ttulo deste tem vamos falar um pouco sobre circuitos digitais. Os circuitos digitais podem ser classificados em dois grandes grupos. Os circuitos combinacionais (ou combinatrios) e os circuitos sequenciais. Os circuitos combinatrios so circuitos digitais nos quais a sada depende apenas das entradas atuais e nos circuitos sequenciais a sada depende das entradas e do estado interno do circuito, ou seja, so circuitos com memria. A representao esquemtica dos circuitos combinatrios a seguinte:

a1 a2 an-1 an

Circuito lgico combinacional

S= f(a1, a2, ... , 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: 72

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

x 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1

f 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!!!)

Esta tabela denominada de Tabela Verdade (como se tivssemos atribuido valor Verdade para a sada 1 em oposio a Falso para sada 0. O circuito iria ligar algo quando a sada fosse 1 ("alta"), etc... Veja mais tarde que a lgica poderia ser "invertida"! Continuando agora com a lgica no-invertida. E o oposto? Dada a tabela com as sadas desejadas como determinar a funo booleana correspondente? Da vem mais umas coisinhas para incrementar seu cabedal de conhecimento das palavras: mintermo e soma cannica de produtos. O produto lgico (AND, ) de todas as variveis da funo, complementadas se o seu valor na tabela 0, chamado de um mintermo. Pronto! ( o mintermo assume o valor 1 para apenas uma combinao das variveis). A soma lgica (OR, +) de todos os mintermos da tabela uma soma cannica e esta soma descreve a funo -- Essa boa!!! Vejamos no caso da funo descrita acima qual seria a soma cannica a partir da tabela. Siga em frente e faa alguma coisa.....Por exemplo, olhe para a tabela e comee a escrever os mintermos e v somando, somando,....Seria: f = x'y'z' + x'y'z + x'yz' + x'yz + xy'z + xyz' + xyz Muito interessante. O que esta funo tem a ver com a funo original, f = xy + z + x' ? Voc quer mesmo saber? Ento faa o exerccio de avaliar a funo cannica e colocar o resultado ao lado da sada da funo original, na tabela. Viu? Deu a mesma coisa, e agora? Espere a prxima aula ..... e saber. Ou melhor ainda, deixe a preguia de lado e leia a bibliografia at descobrir. Vamos agora verificar como seria o circuito digital correspondente a cada uma das funes, construido-o com blocos lgicos de apenas duas entradas. Quantas entradas tem os CIs que vocs viram nos manuais? Muito bem, faam como exerccio 73

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 74

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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 0 0 0 0 1 1 1 1

C2 0 0 1 1 0 0 1 1

C3 0 1 0 1 0 1 0 1

G 0 0 0 0 1 0 0 1

Y 0 1 0 0 0 0 0 1

R 0 0 1 0 0 0 0 1

E agora? So 3 sadas ! Problema novo! pra isto que existe professor... e livros! Vamos ento escrever os circuitos para cada sada e pronto. G = C1C2'C3' + C1C2C3 Y = C1'C2'C3 + C1C2C3 R = C1'C2C3' + C1C2C3 Pronto a esto as somas cannicas para cada sada. Como exerccio faam os circuitos equivalentes e testem o que fizeram (com lpis e papel mesmo...calma!). Veja um modo organizado de desenhar o circuito com o professor. .......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 75

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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:

a 0 1 2 0 0 0

b 0 0 1

c 0 1 0

y 1 1 0 76

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

Mapa para tres variveis:

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:

Vamos ento ver agora como seriam as configuraes para 4, 5 e 6 variveis: Mapa para 5 variveis:

77

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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:

A organizao das clulas no mapa de Karnaugh no fortuita! muito interessante notar que todas as clulas vizinhas difiram em apenas uma posio na sua notao binria. Revise o que voc j pensou anteriormente e confira. Esta organizao parte da base para a simplificao automtica de funes, usando o mapa de Karnaugh. O cdigo usado para identificar as linhas e colunas 78

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

extremamente importante. Graas a este cdigo, clulas com um lado em comum correspondem a combinaes que diferem no valor de uma nica varivel (voc se lembra da definio de combinao ou matching ? ). Estas clulas so chamadas de adjacentes. Observe que, no mapa de 3 variveis as clulas 0 e 4 so adjacentes. Deste modo a idia juntar clulas com valor 1 nos chamados subcubos compostos por 2n clulas. Um produto das variveis que assumem o mesmo valor pode ser gerado, de modo que as variveis apaream complementadas se o valor for 0 e no se o seu valor for 1. O valor da varivel aquele que voc observa lendo os 1s e 0s dispostos convenientemente no ndice das clulas do mapa. Um conjunto de 2n clulas, cada uma adjacente a n clulas do conjunto chamado de subcubo de ordem n. Dizemos que este subcubo cobre estas clulas. Todo subcubo cuja ocorrencia ("1") obriga a funo a ter valor 1, ou seja, Implica na funo dada um implicante da funo. Associamos a cada implicante um produto de literais. Uma certa funo pode ser expressa pela soma de todos os produtos implicantes correspondentes aos subcubos necessrios para cobrir todas as clulas com valor 1 no mapa. Exemplo:

Os subcubos escolhidos foram todos aqueles que cobririam a funo completamente, sem interseco entre eles. Cada subcubo deve ser escolhido como sendo o maior possvel (neste caso mais variveis sero eliminadas). No caso da existencia de don't care states eles devero ser usados convenientemente como 0s ou como 1s, de modo a favorecer a formao dos subcubos. Um implicante que obtido de um subcubo no contido em nenhum subcubo maior chamado de implicante primo (prime implicant). Custos e risco de falhas Como sempre, na prtica a teoria outra. No entanto sem saber a teoria voc pode cair no lema do velho ditado: "se voc no sabe o que est procurando, quando acha no sabe que achou". Supondo que saibamos representar e simplificar circuitos digitais, a idia ao se definir um circuito final a de procurar reduzir custos, desde que a qualidade seja preservada.

79

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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?). 80

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Correo do risco de falhas Quando a falha ocasionada por apenas um par de combinaes de entrada adjacentes que produzem a mesma sada e no houver na expresso mnima uma clula que contenha ambas as combinaes das entradas. O circuito gerado pelo mapa a seguir um destes casos e pode ser corrigido conforme apresentado no mapa seguinte.

Exerccio:

Resolver os exerccios da srie 1 (Que srie 1 ? )

81

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

10. Simplificao de funes booleanas


Agora vamos estudar como fazer para simplificar funes booleanas de modo sistemtico. Antes porm tentaremos fazer algum trabalho de simplificao de modo que possamos tomar contato com o mapa de Karnaugh, usado para esta funo. Vamos ento propor a construo de um circuito, construir a sua tabela verdade, expresso booleana (soma cannica) e mapa de Karnaugh. Em seguida vamos simplificar a funo no mapa de Karnaugh e obter a funo simplificada. Com isto teremos condies de desenhar o diagrama do circuito com os blocos lgicos conhecidos. Vamos iniciar com algumas definies no formais: Prime implicant (implicante primrio ou implicante primo ) Dado um circuito combinatrio descrito pelo mapa de Karnaugh, agrupamos as clulas com 1s nos maiores grupos retangulares de tamanho 2n. A cada grupo destes associamos um produto das variveis (complementadas ou no) que pode ser obtido da soma cannica de todos 1s do grupo, simplificados pelo teorema que diz que AB + AB' = A (combinao). Este produto chamado de Prime Implicant da funo. 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 82

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

1010 1011 1100 1101 1110 1111

1 0 1 0 0 0

O mapa de Karnaugh para quatro variveis seria:

Neste caso a vida no sorriu!!! Temos que escolher subcubos de apenas 1 elemento, o que torna a funo mnima identica soma canonica. Ficaramos com: F(a,b,c,d) = abc'd' + a'bc'd + ab'c'd + a'b'cd + a'bcd' + ab'cd' Vamos contudo sintetizar um circuito um pouco diferente. Neste caso vamos assumir que as entradas 1000 e 1101 (abcd) sejam don't care states. Neste caso teramos:

83

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Os prime implicants seriam: essenciais: a'b'cd, a'bcd', ac', bc'd, ab' O produto a'bc'd no um prime implicant porque est contido em um subcubo maior! Sm = a'b'cd + a'bcd' + ac' + bc'd + ab'

Exerccio:

proponha vrios outros mapas e descreva os conjuntos de prime-implicants

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) 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

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)

b b b b b b b b b b b b b b b b b

84

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

O Passo 2 consiste em comparar cada par de caracteres binrios dos produtos fundamentais para verificar se diferem em apenas uma coordenada (posio binria) e combin-los pelo teorema : XY+XY' = X As comparaes so feitas de modo guiado pela primeira coluna esquerda. Todos de ndice 0 com todos de ndice 1, todos de indice 1 com os de ndice 2 e assim por diante. Uma marca (a) colocada na coluna mais direita para indicar que o elemento da referida linha foi combinado com algum outro.

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 v' x' y' z' v' w x' y' z' v' w' x' y' z'

Assim, a tabela a seguir contm o resultado deste segundo passo. 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

(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)

b b b b b b b b b b b b b b
85

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

(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

Agora, novas combinaes so investigadas (faa em ordem crescente e no inclua na tabela as repeties) e aquelas possveis so marcadas. O produto que pode ser combinado com outro no implicante primo e portanto deve ser marcado. No Passo 3 os caracteres da tabela acima so comparados novamente, do mesmo modo para buscar possveis combinaes. Deste modo uma nova tabela ser montada como a seguir: V 0 0 0 0 0 0 W 0 0 1 X 0 0 1 Y 0 1 Z 0 0 0 0 0 0 0 marca

(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)

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: V 0 W X Y Z 0

(0,2,4,6,8,10,12,14)

Os produtos no marcados so os implicantes primos da funo: F = (0,2,4,6,8,10,12,14) + (0,2,16,18) + (14,30) + (13,29) + (18,19) + (12,13) + (10,11) + (6,7) 86

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

No entanto esta ainda no a soma mnima. Passemos para a segunda etapa do mtodo que corresponde a cobertura dos mintermos. Etapa 2. Cobertura de mintermos Nesta etapa sero procurados os mintermos que so cobertos pelos implicantes primos da funo. Um prime implicant que combre apenas um mintermo chamado de implicante primo essencial. Este dever fazer, necessariamente, parte da funo. Para isto montamos o seguinte tipo de tabela: Prime implicant
(0,2,4,6,8,10,12,14) (0,2,16,18) (14,30) (13,29) (18,19) (12,13) (10,11) (6,7)

Mintermo
0 2 4 6 7 8 10 11 12 13 14 16 18 19 29 30

0- - -0 -00-0 -1110 -1101 1001011001010011-

x x x x x x

x x

x x x x x x x x

x x x x x

Agora olhamos na tabela e identificamos os mintermos que so cobertos por apenas 1 prime implicant, por exemplo, o mintermo 7 que coberto pelo (6,7) apenas. Lembrese que a tabela foi montada simplesmente listando PI x (produtos fundamentais) Mintermos e marcando quais mintermos correspondem aos PIs. Por exemplo, colocamos x em 18 e 19 para o PI (18,19) e assim por diante. Todos os PIs que tem mintermos cobertos apenas por eles devem ser marcados na tabela com uma seta na linha correspondente. Estes j fazem parte da funo mnima. So essenciais. Marquei com um a linha que no contem um PI essencial. Veja que a linha 2, por exemplo, foi marcada por que o mintermo 16 unicamente coberto pelo PI (0,2,16,18) e a linha 4 foi marcada por que o mintermo 30 unicamente coberto pelo PI (13,29) e assim por diante. As setas esto indicando quem ser retirado da tabela porque j faz parte da funo. Neste caso apenas a lina 6 no satisfaz este requisito ( ). A linha (10,11) e coluna 11 caracterizam a linha como linha essencial e a coluna como distinta (importante). Nesta funo todas as colunas (mintermos) esto em alguma linha essencial e o nico PI que no essencial o (12,13). Desta forma a funo final : Fmin = v'z' + w'x'z' + wxyz' + wxy'z + vw'x'y + v'wx'y + v'w'xy Lembre-se que todas as colunas estavam marcadas com x em linha essencial. 87

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

11. Circuitos sequenciais


Os circuitos lgicos estudados at o momento so desprovidos de memria. Neste caso, a sada funo unicamente do estado atual das entradas. Nos circuitos lgicos sequenciais, elementos de memria podem informar o estado interno do circuito. Assim a sada ser funo das entradas e do estado anterior dos elementos de memria. Em outras palavras o circuito lembra estados anteriores. A Figura 8.1 ilustra um esquema geral de um circuito sequencial, na qual, uma rede combinacional realimentada por elementos de memria. As sadas zi, neste caso, sero funo das entradas xj e do estado dos elementos 1 a p dados por y1 ...yp.
Circuito lgico sequencial x1 x2 xn
y1

Circuito lgico combinacional


y1

yp

z1 z2 zn

Figura 8.1 Esquema geral de um circuito lgico sequencial. A rede ou circuito combinacional associada a elementos de memria (p elementos). O conjunto dos elementos de memria compe um registrador com definido no captulo x. Os elementos bsicos de memria so clulas binrias como definido no captulo (x). Vamos agora definir outras clulas de memria que do ponto de vista prtico so fundamentais para a construo de circuitos digitais, em particular dos registradores, elementos bsicos das mquinas digitais. Estas clulas so os diversos tipos de Flip-Flops. Flip-Flop - RS A sigla RS vem do ingls "Reset" que significa inicializar com zeros, "apagar" e "Set" que significa "ligar", carregar, colocar "1". Apresentamos a seguir duas maneiras de sintetizar um flip-flop - RS tambm chamado de "latch".

88

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

No primeiro caso o FF-RS sintetizado com portas NOR como apresentado na Figura 8.2.
S

Q'

SR Q' Q Anterior 0 1 1 0 1 0 0 1 1 1 0 0

Inativo 0 0 Reset Set Proibido

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

Flip-Flop RS com ativador ou clock Neste caso se CK = 0 haver bloqueio, ou seja, independente de R e S o circuito mantem o estado. Se CK=0 o que ocorre que S1 e R1 sero ambas iguais a

89

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

1, forando a condio de inatividade do FF e portanto manuteno do seu estado. Para CK = 1 o FF se comporta como um FF-RS comum.
S S1 CK Q Q

R1

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.

R S

0 0

CK 0 Q Q 0
Indeterminado

Figura 8.5 Temporizao e sinais correspondentes no FF-RS com controle. A seta indica um instante em que CK vai de 1 para 0 com S e R iguais a 1. Neste caso Q fica imprevisvel. Flip-Flop tipo D Procurando contornar este problema foi desenvolvido o flip-flop tipo D. Neste caso, o controle (CK) permite ou no que um certo dado (D) seja "copiado". Este FF 90

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

tem o inconveniente de ter as entradas para o latch, alteradas sempre que CK = 1, se o dispositivo for sensvel a nvel.

S1 CK

R1 CK = 0 D 0 1 Q Q Anterior Anterior D 0 1 CK = 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.

91

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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}

Q Elementos de Memria

Y m sadas {z1, z2, ..., zm} K variveis de estado

Estes valores definem o estado interno da mquina

Q1, Q2, ..., Qk

Tabelas e diagramas de estado Tabela p = 2r colunas (1 para cada ocorrncia do vetor de entrada) n = 2k linhas (1 para cada estado)

Diagrama de estados um grafo orientado, no qual cada estado da mquina corresponde a um dos ns. De cada n emanam p arcos orientados, correspondentes s transies de estado causadas pela ocorrncia da entrada. O arco rotulado com a entrada que determina aquela transio e com a sada gerada nas mquinas determinsticas ou markovianas.

92

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

A) Q(t+1) = f [Q(t), x(t)] Onde f a funo de transio de estados. O valor da sada z(t) funo do estado presente Q(t) e muitas vezes, das entradas presentes x(t). B) z(t) = g[Q(t)] C) z(t) = g[Q(t), x(t)] onde g a funo de sada. Mquinas que seguem A e B so chamadas de Mquinas de Moore e as que seguem A e C denominam-se Mquinas de Mealy. Mealy

Q(t)= f [Q(t), x(t)] Q0 1/0 Q1 0/0 Q3 1/0 0/0 1/1 0,1/ 1 Q2 0,1/0 1/0 0/0 z(t)= g [Q(t), x(t)]

Q(t) Q0 Q1 Q2 Q3

(Q(t) , z(t)) X=1 Q1,0 Q2,0 Q2,0 Q2,1

X=0 Q2,0 Q3,0 Q3,0 Q2,0

93

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Moore 1 Q1/0 0 Q3/0 1 Q4/1 Q0/0 1 0 0,1 0 0,1 Q2/0

Q(t+1) = f [Q(t), x(t)] z(t) = g[Q(t)]

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

94

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

12. Cdigos
12.1 Decimal codificado em binrio (BCD, Binary Coded Decimal) Neste sistema, conjuntos de dgitos binrios so tratados como pseudodecimais. 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 associar um nico nmero de m dgitos, m 4, a cada dgito decimal. O mais usado o mais bvio, chamado cdigo 8421. Neste caso 0000 0; 0001 1 ... 1001 9. Assim o decimal 243 seria representado em BCD como 0010 0100 0011. Em BCD cada decimal precisa ser representado por, pelo menos, 4 dgitos binrios. Neste caso h 16! / 6! maneiras diferentes de codificar os 10 dgitos decimais com 4 binrios. Destes, 3 x 109 cdigos apenas alguns tem sido realmente usados e com propsitos especficos. Normalmente h duas classes de BCDs: cdigos pesados e no-pesados. O 8421 um cdigo pesado. Cada posio vale o produto do dgito com o correspondente valor da base ( no caso 2) elevada ao ndice da posio. Cada dgito decimal equivalente soma dos pesos dos 1' s que representam a sequncia binria. Por exemplo: 1011 pode ser visto assim: 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
onde wi o peso e ci o dgito binrio.

95

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Se forem usados apenas nmeros positivos para os pesos h apenas 17 BCD pesados com 4 dgitos (wi > 0). Por exemplo: 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

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

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

ou 0 1 1 1

Observe que no h unicidade nestes cdigos. Apenas o cdigo 8421 apresenta unicidade na representao BCD. tambm possvel trabalhar com pesos negativos. Deste modo o nmero de cdigos cresce para 88 com 71 pesos negativos e positivos. Um destes cdigos o que est apresentado abaixo:

w1 w2 8 6

w3 w4 -4 1 96

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

Dos 71 cdigos deste tipo, 21 apresentam unicidade na representao dos dgitos decimais, como o apresentado acima. Muitos outros sistemas BCD tem sido usados e sugeridos. Um cdigo biquinrio no qual cada dgito decimal representado por dois grupos de cdigos binrios, um na base dois e outro na base 5 foi usado h muito tempo em mquinas dos laboratrios da Bell Telephone. Um cdigo 5 reduzido de 2 tambm foi usado com propsitos de comunicao. Este cdigo formado por grupos de cdigos de 5 dgitos binrios, todos contendo apenas dois 1's para cada dgito decimal. Assim, se um cdigo detectado contendo mais ou menos 1's claro que um erro ocorreu (na transmisso!). Por causa disso este cdigo chamado de cdigo detetor de erro. H muitos outros cdigos detetores e corretores de erro. O mais popular sem dvida o cdigo de teste de paridade. Neste caso, dgitos adicionais so juntados a cada grupo de dgitos binrios de modo que o nmero de 1's se torne sempre par ( ou eventualmente mpar). Se o nmero de 1's no for par algum erro ocorreu (por exemplo na transmisso do dado). Vamos falar mais sobre cdigos, mais tarde.

97

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

13. Alguns exemplos de circuitos digitais


13.1 Decodificador Este circuito pode ser generalizado
n

como um circuito digital com n

entradas e 2 sadas (Tabela 13.1 e Figura 13.1, decodificador de 2 entradas) das quais apenas uma ativada para cada combinao das entradas. Ns dizemos que o circuito decodifica (descobre qual o cdigo) a entrada. Imagine, por exemplo, que cada sada de um circuito de 3 entradas esteja ligada ao sistema de acionamento de 8 caixas-fortes se a combinao correta (que pode por exemplo ser uma senha) for aplicada na entrada a caixa correspondente aberta. Tabela 13.1 - Tabela Verdade Do Decodificador de 2 entradas E0 0 0 1 1 E1 0 1 0 1 S0 S1 S2 S3 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0

Veja em aula

Figura 13.1 Decodificador de 2 entradas. A- esquema e B- circuito 13.2 Circuitos de Paridade Para entender os circuitos de paridade importante antes de tudo demonnstrar que x x x ... x igual a zero para um nmero par de x e igual a x para um nmero mpar de x. 98

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

a) x x = 0 0x=x xx=0 portanto x x x = x portanto x x x x = 0 (nmero mpar de x) b) x x x = x (nmero par de x)

Existem dois tipos clssicos de circuitos de paridade: o gerador de paridade (Figura 13.2) e o detector ou verificador de paridad (Figura 13.3). Os circuitos de paridade so usados no processo de deteo de erros de transmisso de dados binrios. Veja em aula Figura 13.2 Gerador de paridade

Veja em aula Figura 13.3 Detector de paridade 14.3 Circuitos de prioridade So circuitos de n entradas e n sadas. Se uma nica entrada 1 a sada correspondente 0. Se mais que uma entrada for 1 ento a sada de maior prioridade ser 0 (Figura 13.4). Veja em aula Figura 13.4 Circuito gerador de sinal de prioridade 14.4 Portas de seleo

99

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

Nesta classe de circuitos esto os chamados multiplexadores. Estes circuitos selecionam um conjunto de bits da entrada para ser transferido para a sada (Figura 13.5) sob ativao de sinais de controle. Veja em aula Figura 13.5 Portas de seleo Outros exemplos sero discutidos e apresentados oportunamente em aula, como por exemplo: 14.5 Portas de distribuio 14.6 Conversor de cdigo 14.7 Registrador de 3 bits 14.8 Deslocador direita com giro 14.9 Somador de 4 bits com propagao de vai um 14.10 Mquina digital elementar 14.11 Deslocador direita sem giro 14.12 Contador mdulo 2 (divisor por 2) 14.13 Contador modulo 4 14.14 Mquina de estados finitos Mquina de vender chiclete (sem trco)

100

EA-772 Circuitos Lgicos - Reviso 2008 Prof. Dr. Jos W. M. Bassani ____________________________________________________________________________________

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

101