curso 3
Autor: Adão do Vale filho | Publicado: 2011-12-29T10:53:00-08:00


Voltagens e bits

Uma das características mais
importantes dos circuitos digitais é a representação dos bits 0 e 1 através
de dois valores de tensão. Em geral é usado um valor pequeno, entre 0 e 0,3
volts, para indicar o bit 0, e um valor um pouco maior, da ordem de alguns
poucos volts, para indicar o bit 1. Por exemplo, típicos chips de memória usam
cerca de 0,2 V para representar o bit 0 e em torno de 2,4 V para representar o
bit “1”. Valores diferentes podem ser usados, dependendo da tecnologia. Por
exemplo, no interior dos processadores modernos, os niveis de tensão são ainda
mais baixos. São usados internamente valores em torno de 1,0 a 1,5 volts para
representar o bit 1, e um valor sempre próximo de 0 V para representar o bit 0.
Seja qual for o caso, o nível de tensão que representa o bit 0 será sempre um
valor positivo, apesar de muito pequeno. Da mesma forma, o nível de tensão que
representa o bit 1 será sempre um valor um pouco menor que a tensão da fonte
de alimentação. A maioria dos chips existentes nas placas modernas opera com
alimentação de 3,3 volts, mas muitos já operam com apenas 2,5 volts. Há
alguns anos atrás a maioria dos chips operavam com 5 volts.

Teoricamente quaisquer níveis
de voltagem poderiam ser usados para representar os bits 0 e 1. Na prática são
usados valores pequenos, para que o consumo de energia e a dissipação do calor
também sejam pequenos, principalmente nos computadores. Valores maiores podem
ser encontrados em alguns cicuitos. Por exemplo, em um relógio despertador
digital alimentado por uma bateria de 9 volts, o bit 1 pode ser representado por
um valor superior a 8 volts, e o bit 0 por um valor menor entre 0 e 1 volt.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.46

Medindo as tensões
      que representam os bits em um chip alimentado por 3,3 volts.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


A figura 46 mostra uma medida
teórica das tensões em pinos de um chip, representando bits 0 e 1. O pino que
apresenta a tensão de 0,13 volts corresponde a um bit 0. Os outros dois pinos
indicados, com tensões de 2,83V e 2,74V representam bits 1. Os valores de tensão
que representam os bits podem variar sensivelmente de um chip para outro, ou
mesmo de um pino para outro. Não existe um valor exato, e sim, uma faixa de
valores.

Na prática esta medida nem
sempre pode ser feita com um multímetro. Quando um chip está trabalhando, seus
bits estão variando rapidamente, entre 0 e 1. Um multímetro não é capaz de
medir tensões variáveis em alta velocidade, é adequado a medir apenas tensões
constantes. Supondo que este chip esteja fornecendo bits constantes, mediríamos
valores como os da figura 46. Em alguns casos um chip pode realmente apresentar
valores constantes. Por exemplo, o chip que contém a interface de impressora
pode transmitir bits variáveis enquanto está sendo produzida uma listagem, mas
ao terminar, pode manter fixo em suas saídas o código binário do último dado
enviado para a impressora. Neste ponto poderámos fazer uma medida usando o multímetro,
como a apresentada na figura 46.

Observe na figura 46 mais um
detalhe importante sobre os níveis de tensão que representam os bits. Os
valores especificados não são exatos, e sim, valores extremos. Por exemplo, um
fabricante de memórias pode especificar:

VOHmin
= 2,4 V
 


VOLmax
= 0,4 V
 


Significa que a tensão de saída
nos seus terminais que representa o bit 1 (Voltage Output High) é de no mínimo
2,4 volts. Pode assumir valores maiores, como no exemplo da figura 46, onde
medimos 2,83 e 2,74 volts. Da mesma forma, este fabricante especifica que a tensão
de saída que representa o bit 0 (Voltage Output Low) é de no máximo 0,4
volts. Pode assumir valores menores, como os 0,13 volts indicados na figura. Os
projetistas de hardware sempre levam em conta faixas de valores, tensões máximas
e mínimas, e assim por diante.

Tristate ou alta impedância

Quando um circuito digital
está em operação normal, pode gerar na sua saída, tensões correspondentes
aos bits 0 e 1. Existe entretanto um terceiro estado no qual um circuito pode
operar. É o chamado terceiro estado (tristate) ou alta impedância.
Em inglês são usados também os termos high impedance ou float
(flutuar). É como se o circuito estivesse desconectado. Imagine por exemplo
dois módulos de memória, cada um encaixado em seu respectivo soquete. Digamos
que cada um desses módulos tenha 64 MB. Quando o processador acessa um endereço
de memória entre 0 e 64 MB, o primeiro módulo está ativo e o segundo fica em
tristate. Quando é acessado um endereço superior a 64 MB, e até 128 MB, o
segundo módulo estará ativo e o primeiro estará em tristate. O uso do
terceiro estado é necessário para que dois ou mais circuitos possam operar
ligados ao mesmo ponto, ou ao mesmo barramento, porém apenas um de cada vez
deverá entregar seus bits, e os demais devem ficar como se estivessem
desligados. No terceiro estado, os circuitos estão energizados, mas sua resistência
elétrica torna-se tão elevada que consomem uma corrente desprezivelmente
pequena, não afetando o funcionamento dos demais circuitos. É como aquele
velho ditado, “quando um burro fala o outro abaixa a orelha”. O burro que
está falando é o circuito ativo, gerando seus bits. Os burros de orelhas
abaixadas são os circuitos que estão no terceiro estado.

Existem vários exemplos de
uso do terceiro estado. Um deles é o uso do DMA (acesso direto à memória). Em
condições normais, o processador gera os endereços e os sinais de controle da
memória. Quando é feita uma transferência de dados por DMA, o processador
entra em tristate e deixa que o circuito controlador de DMA (que na verdade faz
parte do chipset) realize a transferência, gerando seus próprios endereços e
sinais de controle para a memória. Quando o processador está em uso normal, o
controlador de DMA fica em tristate.

Outro exemplo: várias placas
de expansão estão conectadas no barramento PCI de uma placa de CPU, e todas
elas podem transmitir dados através do seu slot, porém elas não podem fazer
transmissões no mesmo instante. No instante em que uma placa envia dados (ou
que o processador comanda uma leitura dos seus dados), as demais placas mantém
suas saídas em tristate.

A maioria dos chips tem a
capacidade de entrar em tristate. Eles possuem um pino (ou seja, uma
“perninha”) chamado CS, ou chip select. Quando este sinal está ativado, o
chip está em uso normal. Quando este sinal é desativado, o chip entra em
tristate.

Diagramas de tempo

Como mencionamos, os bits
representados pelos circuitos digitais variam bastante ao longo do tempo. Por
exemplo, em um moderno chip de memória, os bits podem variar mais de 100 milhões
de vezes a cada segundo, ora representando 0, ora representando 1. Um diagrama
de tempo é um gráfico simplificado que mostra os valores dos bits ao longo do
tempo, como o vemos na figura 47.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.47

Diagrama de
      tempo.
      &nbsp;
      

  


Um diagrama de tempo pode
representar um ou vários sinais digitais simultaneamente. Neste caso é usado
um único eixo Y, representando o tempo, e vários eixos X independentes, cada
um deles representando um sinal digital diferente. Cada sinal digital por sua
vez assume valores 0 e 1 ao longo do tempo. O diagrama da figura 47 representa
dois sinais digitais. Neste diagrama podemos observar, além dos trechos nos
quais o circuito gera bits 0 e 1, um pequeno intervalo de tempo em cada transição
de 1 para 0 ou de 0 para 1, representados por trechos inclinados do gráfico.
Esta transição deveria ser instantânea, do ponto de vista matemático, mas na
prática leva um certo tempo, bastante pequeno, Por exemplo, um chip que gera
bits diferentes a cada 10 ns (10 bilionésimos de segundo) pode demorar entre 1
e 2 ns para mudar seu estado de 0 para 1 ou de 1 para 0.

Observe ainda que um diagrama
de tempo não é a mesma coisa que um gráfico de tensão ao longo do tempo. Um
gráfico de tensão ao longo do tempo mostra os valores de tensão existentes em
um ponto de um circuito, e não os bits que representam. A figura 48 mostra um
exemplo de gráfico de tensão ao longo do tempo, com todas as suas imperfeições.
Este tipo de gráfico pode ser visualizado através de um aparelho chamado osciloscópio,
usado em laboratórios de eletrônica.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.48

Gráfico de
      voltagem ao longo do tempo.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


No gráfico da figura 48, a
tensão começa com um valor baixo, representando um bit 0. No instante T1 começa
a transição para representar um bit 1. O gráfico assume um trecho crescente e
rápido, mas não se estabiliza imediatamente no seu valor máximo. A tensão
atinge momentaneamente um valor máximo, em T2. A seguir reduz oscilando até se
estabilizar em um valor definitivo, ou então limitada em uma faixa pequena.
Este fenômeno é chamado de overshoot. No instante T3 o overshoot
terminou ou foi reduzido a um valor que não afeta os circuitos e a tensão é
considerada estabilizada. No instante T4 começa a transição de 1 para 0, que
termina em T5. Segue-se um trecho em que a tensão já tem o valor 0, mas ainda
não estabilizou no seu valor definitivo. Este trecho é o undershoot, e
dura até o instante T6.

Existem outras imperfeições
mesmo nos trechos em que a tensão está estabilizada há “bastante tempo”
em valores Low e High (0 e 1). Essas imperfeições são chamadas de ripple
(em português, ruído). São uma espécie de interferência vinda da fonte de
alimentação e de circuitos adjacentes. Quando dois circuitos estão próximos,
transições binárias em um deles pode irradiar ondas eletromagnéticas que
produzem interferências captados pelo outro. Essas interferências também pode
chegar da própria fonte de alimentação. Quando um chip faz transições rápidas
entre bits 0 e 1, seu consumo de corrente pode variar na mesma velocidade, e a
fonte de alimentação, ao tentar suprir esta variação de corrente, pode
sofrer uma pequena variação nas suas saídas. É o ripple da fonte de alimentação,
que é propagado para todos os demais circuitos. O ripple não pode ser muito
acentuado, caso contrário irá comprometer os valores dos bits.

Em um circuito digital bem
projetado, o overshoot e o undershoot devem assumir proporções não muito
exageradas para que não impeçam o correto funcionamento dos chips. Isto é
conseguido com o uso de uma fonte de alimentação bem projetada, com
capacitores de desacoplamento ao lado de cada chip e utilizando técnicas
apropriadas para o traçado das trilhas do circuito impresso da placa.
Respeitadas essas condições, o projetista não precisa se precisa se preocupar
com o overshoot, com o undershoot nem com o ripple da fonte de alimentação,
mas precisa se preocupar com o tempo gasto nas transições binárias, ou seja,
nas mudanças de 0 para 1 e de 1 para 0. Por isso são usados os diagramas de
tempo, onde são indicados os trechos inclinados que representam as transições,
mas não são mostrados os detalhes como overshoot, undershoot e ripple.

Durante o projeto de um
circuito digital, o projetista deve inicialmente desenvolver uma fase na qual é
levada em conta a qualidade das tensões dos circuitos. O ripple deve ser baixo,
assim como o overshoot e o undershoot. Deve ser levado em conta o valor, o tipo
e a qualidade dos capacitores de desacoplamento ligados em cada chip. Deve ser
levada em conta a qualidade da fonte de alimentação e o traçado das trilhas
de circuito da placa. O leitor pode não ser um projetista de placas, mas aqui
pode entender como a baixa qualidade da fonte e dos capacitores, aliado a um traçado
mal feito, contribuem para a ocorrência de erros que se manifestam no mau
funcionamento do computador.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.49

Glitch. O
      surgimento de um “pico de voltagem” indevido, mostrado no gráfico
      tensãoxtempo acima, corresponde a um bit 1 indevido que surge
      rapidamente, voltando a zero. Sendo indevidamente gerado, provoca
      resultados indevidos no funcionamento do circuito digital.


      &nbsp;
      

&nbsp;&nbsp;
      

  


A figura 49 mostra uma outra
imperfeição nas tensões de um circuito digital. É o que chamamos de glitch.
Trata-se de uma interferência na qual o valor de tensão especificado é
momentaneamente alterado no sentido do bit oposto, produzindo uma variação binária
indesejável. O glitch pode ocorrer quando o overshoot ou o undershoot são
muito exagerados, ou quando um capacitor de desacoplamento está mal
dimensionado ou defeituoso, ou mesmo quando existe um erro de projeto. Um
circuito digital que recebe na sua entrada uma tensão com glitch vai entendê-lo
como uma transição binária que na verdade não existe. O resultado é o mau
funcionamento do circuito. Você certamente já viu a palavra glitch no cinema
mas talvez não se lembre. No filme Robocop 1 (versão legendada), aquele imenso
robô aponta a metralhadora para um funcionário da OCP e diz “Polícia de
Detroit, largue a arma, você tem 30 segundos...”. A seguir, mesmo depois que
o sujeito joga a arma no chão, o robô avisa: “Você tem 20 segundos.. você
tem 10 segundos”, então metralha o infeliz (aliás, que filme ruim...). O
responsável pelo robô explica-se ao presidente da empresa: “foi apenas um
glitch...”.

Depois de garantir que o
circuito tem tensões estáveis, com imperfeições mínimas e sem glitch, o
projetista passa a uma fase em que leva em conta apenas os valores binários e
os períodos de transição. Essas são portanto as informações apresentadas
nos diagramas de tempo.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.50

Convenções
      usadas em um diagrama de tempo.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


A figura 50 mostra alguns símbolos
de eventos encontrados em diagramas de tempo:

a) Trigger positivo
Este símbolo indica que no instante em que um sinal digital sofre uma
transição de 0 para 1, um evento ou mudança em outro sinal digital será
ativado.

b) Trigger negativo
Similar ao positivo, exceto que o evento é disparado na transição binária
de 1 para 0.

c) Retardo entre dois
sinais
Mostra a dependência temporal entre dois sinais relacionados. É usado
quando é informação relevante saber que um determinado sinal será ativado
depois de um determinado tempo a partir do qual o primeiro é ativado.

d) Indicação de
barramento
Para evitar que um diagrama fique muito extenso, podemos agrupar vários
sinais relacionados em um único eixo. Usamos para representar, por exemplo, o
barramento de dados do processador ou memória, o barramento de endereços, o
conjunto de dados que estão trafegando através de uma interface. Não existe
interesse em especificar o valor individual de cada um dos sinais digitais. Eles
formam um grupo, e alguns deles podem ser 1 e outros serem 0, e o circuito
funcionará independentemente dos valores.

e) Mudança de estado em
ponto indeterminado
Todos os circuitos digitais apresentam pequenas variações, mas os
fabricantes sempre especificam valores máximos e mínimos. Por exemplo, um
determinado circuito pode apresentar um tempo médio de resposta de 15 ns, mas
alguns componentes podem chegar a 10 ns, outros a 20 ns. Em certos casos o
projetista precisa compatibilizar seu circuito com componentes mais lentos e
mais rápidos. Neste caso precisa levar em conta o primeiro instante e o último
instante em que um sinal digital pode ser ativado.

f) Don’t care
Significa “não importa”. O sinal digital poderá ter neste período,
qualquer valor (obviamente, 0 ou 1), sem afetar o funcionamento do circuito. Por
exemplo, se fizermos o diagrama da transmissão de dados por uma interface
paralela, este diagrama deve começar indicando o dado que estava presente nas
saídas da interface antes de começar a nova transmissão. Neste caso, não
importa o dado que existia antes. Fazemos então a sua indicação como
“don’t care”.

g) Tristate
Este símbolo é usado para representar períodos de tempo nos quais um
sinal digital encontra-se em tristate (terceiro estado, ou alta impedância).

Como exercício você poderá
agora fazer o download de manuais de chips, memórias e processadores,
encontrados nos sites dos seus fabricantes, e observar os diagramas de tempo
mostrados. Poderá então entender melhor o funcionamento de vários desses
chips. Ao longo deste livro usamos vários diagramas de tempo para explicar o
funcionamento dos circuitos de um PC.

OBS:
Quando um sinal tem valor 1 quando está em repouso e valor 0 quando está
ativo, dizemos que é um sinal de lógica negativa. Sinais com esta característica
são indicados com um traço horizontal sobre o seu nome, ou então com um símbolo
“#” à sua direita, ou um “n” à sua esquerda. Por exemplo, se um sinal
RESET é ativo em 0, indicamos como RESET# ou nRESET.

Microeletrônica

A microeletrônica consiste
em projetar e produzir circuitos utilizando componentes de tamanho microscópico.
Usando materias e técnicas apropriadas, é possível contruir transistores,
resistores, capacitores, diodos e indutores, cada um deles com tamanhos menores
que 1 milésimo de milímetro. Os componentes tradicionais, comprados em forma
avulsa no comércio e usados nos circuitos de som, rádio e TV, são chamados de
componentes discretos. Um circuito integrado ou chip é um
circuito complexo porém de tamanho reduzido. É equivalente ao circuito de uma
placa com componentes discretos, mas pelo fato de utilizar componentes
integrados microscópicos, seu tamanho total é da ordem de 1 centímetro
quadrado, ou mesmo menor.

Os componentes de um chip são
como se fossem “pintados” na sua minúscula base, chamada substrato.
O seu processo de fabricação é entretanto bem mais complexo que uma simples
pintura. Trata-se de um processo um pouco químico, um pouco fotográfico, uma
difusão de moléculas dentro da base de silício, formando camadas que compõem
os circuitos.

A maioria dos materiais são
divididos em duas categorias: condutores e isolantes. O condutor
é um material que tem facilidade em conduzir corrente elétrica. Todos os
metais são condutores. Já os isolantes são materiais que dificultam a
passagem da corrente elétrica. A borracha é um exemplo típico de isolante,
assim como o vidro, madeira, plásticos em geral, etc. Existem entretanto alguns
materiais que ora se comportam como condutores, ora como isolantes. São os
chamados semicondutores, e os principais deles são o silício e o
germânio. A maioria dos transistores e chips utilizam o silício em sua
fabricação. O germânio é utilizado em alguns componentes especiais, como
transistores para altas freqüências.

Para que os semicondutores
possam variar sua resistividade, é preciso que lhe sejam adicionados materiais
especiais, chamados de dopagem. Existem dopagens tipos N e P (negativa e
positiva), e a sua combinação é usada na formação dos transistores, diodos
e demais circuitos no interior de um chip.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.51

Foto ampliada do
      corte transversal de um microscópico trecho de um chip. A parte mostrada
      mede alguns poucos milésimos de milímetro.

&nbsp;
      


      &nbsp;
      

  


Um chip é formado por
sucessivas camadas de materiais diferentes. A base na qual um chip é construído
(substrato) é feita de silício puro, ou seja, sem dopagem. Sobre esta base são
aplicadas dopagens sucessivas, formando trechos tipos N e P. Eventuais ligações
são feitas com camadas de alumínio ou cobre. Em certos trechos também são
usadas camadas de óxidos como isolantes.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.52

Funcionamento de
      um transistor MOS e seu símbolo.


      


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


A figura 52 ilustra o
funcionamento de um tipo especial de transistor usado para formar os chips.
Trata-se do transistor MOS. Recebe este nome porque é formado por camadas de
metal, óxido e semicondutor (Metal Oxide Semiconductor). Este transitor possui
três terminais, chamados de source, drain e gate. O
terminal source é ligado à tensão positiva da fonte, através de um resistor.
Ele é a saída do circuito, que pode representar bits 0 ou 1. O terminal drain
é ligado ao terra, ou seja, o polo negativo da bateria. O terminal de entrada
é o gate, e é usado para controlar a corrente que passa entre source e drain.

Quando o gate é ligado a uma
tensão baixa (bit 0), não passa corrente entre source e drain. Sendo assim, o
source terá uma tensão elevada (bit 1), já que fica ligado ao polo positivo
da bateria, através de um resistor. Quando o gate é ligado a uma tensão alta
(bit 1), passará uma corrente entre source e drain. A resistência entre esses
dois pontos será baixa, e a tensão medida no source será próxima de 0 volt.
Teremos assim um bit 0 em sua saída. O circuito formado por este transistor e
um resistor é o que chamamos de inversor, e é mostrado na figura 53. A
operação lógica que realiza é a inversão de bits. Ao ser aplicado um bit 1
na sua entrada, produzirá um bit 0 na saída. Ao ser aplicado um bit 0 na
entrada, produzirá um bit 1 na saída.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.53

Inversor MOS.


      
      


      &nbsp;
      


      &nbsp;
      

  


Um fator bastante importante
é a medida dos microscópicos transistores que formam os chips, como os
mostrados na figura 52. Com o passar dos anos, dimensões cada vez menores têm
sido utilizadas. A unidade usada para medir esses transistores é o mícron (símbolo
m).
Cada mícron é equivalente a um milésimo de milímetro. Os chips modernos
apresentam transistores medindo uma fração do mícron. No ano 2001, os
processadores modernos usavam tecnologia de 0,18 mícron, e já existiam modelos
com a tecnologia de 0,13 mícron. Usar transitores menores significa:


    
Menor voltagem


    
Menor dissipação de calor


    
Menor custo de produção



A tabela que se segue mostra
a evolução das tecnologias de fabricação nos últimos anos:

  

    
      
Ano
      
      

    
      
Tecnologia
      
      

    
      
Voltagem
      
      

  

    
      
1989
      
      

    
      
1
      m
      
      

    
      
5
      V
      
      

  

    
      
1991
      
      

    
      
0,8
      m
      
      

    
      
5
      V
      
      

  

    
      
1993
      
      

    
      
0,5
      m
      
      

    
      
3,3
      V
      
      

  

    
      
1995
      
      

    
      
0,35
      m
      
      

    
      
2,5
      V
      
      

  

    
      
1997
      
      

    
      
0,25
      m
      
      

    
      
1,8
      V
      
      

  

    
      
1999
      
      

    
      
0,18
      m
      
      

    
      
1,5
      V
      
      

  

    
      
2001
      
      

    
      
0,13
      m
      
      

    
      
1,3
      V
      
      

  



 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.54

Foto ampliada de
      um transistor com 0,13m.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Não apenas transistores
podem ser construídos através de microeletrônica. Pequenos trechos de
semicondutores podem formar resistores. Placas paralelas de metal formam
capacitores, e trilhas de metal dispostas em forma espiral formam bobinas. Chips
usados em telecomunicações utilizam no seu interior, bobinas e capacitores, além
dos transistores e resistores. Chips usados em eletrônica digital
(processadores, memórias, chipsets, etc) em geral apresentam apenas
transistores e alguns resistores. A figura 55 mostra o trecho ampliado de um
chip usado em telecomunicações, onde podemos ver as espirais que formam as
bobinas e as grandes áreas que formam os capacitores.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.55

Foto ampliada do
      interior de um chip contendo bobinas e capacitores.


      

  


Os chips são produzidos em
grandes pastilhas circulares de 20 ou 30 cm de diâmetro chamadas waffers.
A indústria tem trabalhado durante os últimos anos com waffers de 20 cm, e
apenas em 2001 começaram a ser adotados os waffers de 30 cm, com várias
vantagens. Em cada waffer são construídas dezenas ou centenas de chips, como
vemos na figura 56. Depois de prontos os chips são separados um dos outros
através de corte. São testados e finalmente encapsulados.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.56

Vários chips em
      um waffer.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


O processo de encapsulamento
consiste em alojar a pastilha do chip em uma carcaça externa, que pode ser de
plástico ou cerâmica. Também é feita a ligação dos seus pontos de contato
nos terminais externos (as “perninhas” do chip).

CMOS

Os circuitos integrados
digitais devem ter o menor número possível de resistores. Esses componentes,
mesmo no interior dos chips, ocupam áreas muito maiores que os transistores. Além
disso produzem maior dissipação de calor e retardos que tornam os chips mais
lentos. Por isso os projetistas tentam na medida do possível usar os próprios
transistores para substituir os resistores. Daí surgiram os circuitos CMOS
(Complementary Metal Oxide Semiconductor). Consiste em utilizar no circuito da
figura 53, um segundo transistor no lugar do resistor. Este segundo transistor
possui características inversas às do primeiro. São chamados transistores
complementares. Um transistor é do tipo NMOS, e o outro é tipo PMOS.
Quando um transistor conduz, o outro não conduz, e vice-versa. O resultado é o
mesmo obtido com o uso do resistor, porém ocupando muito menos espaço,
consumindo menos energia e com mais velocidade. O arranjo completo é mostrado
na figura 57.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.57

Circuito
      equivalente de uma célula CMOS.

  


Este circuito é o inversor,
o mais simples dos operadores lógicos. Ele gera um bit 1 quando recebe um bit
0, e gera um bit 0 quando recebe um bit 1. Outras funções lógicas mais
complexas são implementadas com arranjos parecidos. Observe que ambos os
transitores possuem seus terminais gate interligados. Quando esta entrada
recebe um bit 1, ou seja, um nível de tensão elevado, o transitor inferior
conduzirá corrente, e o superior ficará cortado, ou seja, sem conduzir.
Isto fará com que a saída fique com tensão baixa, ou seja, um bit 0. Quando a
entrada receber um bit 0, o transistor inferior ficará cortado, sem conduzir, e
o transistor superior irá conduzir, fazendo com que sua saída fique com uma
tensão quase igual à da fonte de alimentação (bit 1). A figura 58 mostra
como o par CMOS é construído em um chip.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.58

Camadas que
      formam o par CMOS.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


A maioria dos chips modernos
utilizam a tecnologia CMOS. Existem outras tecnologias que são utilizadas em
aplicações nas quais o CMOS não pode ser aplicado. Por exemplo, os pares CMOS
não são indicados quando é necessário fornecer correntes elevadas, como por
exemplo, para alimentar os slots de um barramento. Nesses casos são usados
circuitos lógicos TTL, que consomem mais energia, mas também podem fornecer
mais corrente. Muitos chips utilizam internamente células CMOS e externamente
apresentam entradas e saídas TTL.

Muitas pessoas ouvem falar em
CMOS pela primeira vez ao tomarem contato com o chamado CMOS Setup de
placas de CPU. Acabam conhecendo o ”chip CMOS”, no qual existe uma
pequena área de memória para armazenar configurações do BIOS da placa de
CPU, além de um relógio permanente. O “chip CMOS” é alimentado por uma
bateria que o mantém em funcionamento mesmo quando o computador está
desligado. Aqui está um fato curioso: praticamente todos os chips do computador
utilizam a tecnologia CMOS. É errado pensar que apenas o popular “chip
CMOS” que armazena os dados do Setup e tem o relógio permanente utiliza esta
tecnologia.

Circuitos lógicos

Toda a eletrônica digital é
desenvolvida a partir da criação de circuitos capazes de executar operações
lógicas, também chamadas de operações booleanas. Os três
principais operadores lógicos são:


    
E
    (AND)
    
    


    
Ou
    (OR)
    
    


    
Não (NOT)



A partir desses operadores,
circuitos ainda mais complexos são construídos:


    
Somadores e Subtratores


    
Multiplicadores e
    divisores


    
Células de memória


    
Registradores,
    multiplexadores, decodificadores


    
etc...



A reunião desses circuitos
complexos forma chips bastante sofisticados, como processadores, memórias,
chips gráficos, chipsets, etc. Parece incrível que equipamentos tão
sofisticados possam ser construídos a partir de circuitos básicos tão
simples. Da mesma forma como livros inteiros podem ser feitos a partir de letras
e símbolos, e como um planeta inteiro é construído a partir de prótons, elétrons,
nêutrons e outras partículas sub-atômicas.

Um operador lógico é algo
que lembra um pouco um operador aritmético. Na aritmética temos operadores
como Adição, Subtração, etc. Da mesma forma como na aritmética temos, por
exemplo:

5 + 2 = 7

na lógica temos

1 AND 1 = 1
1 OR 0 = 1
NOT 1 = 0

Inicialmente, vejamos como
funcionam os três operadores citados. Eles podem ser definidos através da sua tabela
verdade. A seguir temos essas tabelas:
 &nbsp;


  

    
      
A
      
      

    
      
NOT
      A
      
      

    
      

      &nbsp;
      

    
      
A
      
      

    
      
B
      
      

    
      
A
      AND B
      
      

    
      

      &nbsp;
      

    
      
A
      
      

    
      
B
      
      

    
      
A
      OR B
      
      

  

    
      
0
      
      

    
      
1
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
0
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
0
      
      

    
      
0
      
      

  

    
      
1
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
1
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
1
      
      

    
      
1
      
      

  

    
      

      &nbsp;
      

    
      

      &nbsp;
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
0
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
0
      
      

    
      
1
      
      

  

    
      

      &nbsp;
      

    
      

      &nbsp;
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
1
      
      

    
      
1
      
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
1
      
      

    
      
1
      
      

  


Como vemos na tabela, o
operador NOT, também chamado de inversor, produz na sua saída o bit
inverso daquele recebido na entrada. Ao receber um bit 0, produz um bit 1 em sua
saída. Ao receber um bit 1, produz um bit 0. O operador AND possui duas
entradas. Sua saída será 1 quando as duas entradas também forem 1,
simultaneamente. Quando uma das suas entradas, ou ambas são 0, a saída do
operador AND será 0. Já o operador OR produz uma saída 1 quando pelo menos
uma das suas entradas tem o valor 1. Apenas quando ambas as entradas são 0, o
operador OR dará saída 0.

É relativamente fácil
produzir circuitos que realizam essas funções, usando transistores, resitores
e outros componentes.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.59

Inversor RTL.


      &nbsp;
      


      &nbsp;
      

  


O circuito mostrado na figura
59 implementa o operador lógico NOT. É formado a partir de um transistor e
dois resistores. Este método de construção de circuitos é chamado RTL
(Resistor-Transistor Logic). Seu funcionamento é bastante simples. Quando X é
um bit 1, a tensão correpondente é um valor alto (porém menor que Vcc, a tensão
da fonte de alimentação). Este valor alto faz com que exista uma corrente na
base do transistor, que irá conduzir uma corrente elevada entre seus outros
terminais. Ao mesmo tempo aparecerá uma baixa tensão (da ordem de 0,3 volts,
dependendo do transistor) no seu coletor, que é a saída Y. Temos então um bit
0 na saída. Da mesma forma, quando X é um bit 0, a tensão na entrada do
transitor será baixa. O transitor ficará então “cortado”, e praticamente
não passará corrente por ele. A tensão na saída Y dependerá apenas do
resistor ligado ao ponto Vcc. Teremos assim uma tensão alta em Y, o que
corresponde a um bit 1.

  

    
      

      
      
      

    
      
Figura 3.60

Circuito OR RTL.

&nbsp;
      


      &nbsp;
      

  


A figura 60 mostra como é
implementado o operador OR usando a lógica RTL. O primeiro transistor vai
conduzir corrente quando pelo menos uma das duas entradas, A ou B, estiver com
tensão alta (bit 1), ficando assim com um nível 0 no ponto X. Apenas quando
ambas as entradas A e B estiverem em 0, o primeiro transistor ficará cortado e
teremos um bit 1 no ponto X. Ora, este é exatamente o inverso da função OR.
Temos portanto no ponto X um outro operador lógico chamado NOR (ou NOT OR),
cuja tabela verdade é:

  

    
      
A
      
      

    
      
B
      
      

    
      
A
      NOR B
      
      

  

    
      
0
      
      

    
      
0
      
      

    
      
1
      
      

  

    
      
0
      
      

    
      
1
      
      

    
      
0
      
      

  

    
      
1
      
      

    
      
0
      
      

    
      
0
      
      

  

    
      
1
      
      

    
      
1
      
      

    
      
0
      
      

  


Para que o circuito final
tenha uma saída OR, e não NOR, temos que usar mais um inversor, representado
pelo segundo transistor e seus dois resistores.

A figura 61 mostra o circuito
que implementa um operador lógico AND, usando a técnica RTL. O primeiro estágio
é formado por dois transistores, sendo que cada um deles tem ligada na sua
base, uma das entradas (A ou B) do circuito. Para ter o valor 0 no ponto X é
preciso que ambos os transistores estejam conduzindo, o que é conseguido apenas
quando ambas as entradas A e B estão em 1. Se uma ou ambas as entradas estiver
com o valor 0, o transistor correspondente estará cortado, e não passará
corrente através de ambos. Isto fará com que o ponto X fique com o valor 1.

  

    
      

      
      
      

    
      
Figura 3.61

Circuito AND RTL.


      &nbsp;
      


      &nbsp;
      

  


Esta é exatamente o função
inversa do AND, e é chamada NAND. Sua tabela verdade é:

  

    
      
A
      
      

    
      
B
      
      

    
      
A
      NAND B
      
      

  

    
      
0
      
      

    
      
0
      
      

    
      
1
      
      

  

    
      
0
      
      

    
      
1
      
      

    
      
1
      
      

  

    
      
1
      
      

    
      
0
      
      

    
      
1
      
      

  

    
      
1
      
      

    
      
1
      
      

    
      
0
      
      

  


Para que tenhamos na saída
do circuito uma função AND, é preciso inverter o sinal presente no ponto X,
para isso utilizamos mais um inversor, representado pelo terceiro transistor e
seus resistores.

Circuitos lógicos como NOT,
AND, OR, NAND, NOR e outros operadores, podem ser costruídos utilizando várias
técnicas. Mostramos aqui o método RTL, porém existem outras formas de criar
circuitos equivalentes, como:

DTL:
Diode-Transistor Logic
 
ECL: Emitter Coupled Logic
 
TTL: Transistor-Transistor
Logic
CMOS: Complementary Metal Oxide Semiconductor Logic

As técnicas mais utilizadas
são a TTL, para chips mais simples, e CMOS para chips mais complexos.

Operadores lógicos

Quando projetamos ou
analisamos circuitos lógicos, não nos preocupamos com detalhes internos, como
seus transistores, diodos e resistores. Levamos em conta apenas as entradas e saídas.
Nos diagramas de circuitos digitais, desenhamos apenas os símbolos dos
circuitos que implementam as funções lógicas. Chamamos esses circuitos de portas
lógicas. A figbura 62 mostra os símbolos das principais portas lógicas.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.62

Símbolos das
      portas lógicas.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Nesta mesma figura
apresentamos também as portas lógicas XOR (eXclusive OR – “ou
exclusivo”) e XNOR (eXclusive NOR). A função XOR tem uma tabela verdade
bastante parecida com a da função OR. Seu significado é o seguinte: o bit de
saída será ligado se um dos bits de entrada estiver ligado, mas não ambos ao
mesmo tempo. Portanto a única diferença entre as funções OR e XOR é que:

1
OR 1 = 1
 


1
XOR 1 = 0
 


  

    
      
A
      
      

    
      
B
      
      

    
      
A
      XOR B
      
      

    
      

      &nbsp;
      

    
      
A
      
      

    
      
B
      
      

    
      
A
      XNOR B
      
      

  

    
      
0
      
      

    
      
0
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
0
      
      

    
      
1
      
      

  

    
      
0
      
      

    
      
1
      
      

    
      
1
      
      

    
      

      &nbsp;
      

    
      
0
      
      

    
      
1
      
      

    
      
0
      
      

  

    
      
1
      
      

    
      
0
      
      

    
      
1
      
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
0
      
      

    
      
0
      
      

  

    
      
1
      
      

    
      
1
      
      

    
      
0
      
      

    
      

      &nbsp;
      

    
      
1
      
      

    
      
1
      
      

    
      
1
      
      

  


Motramos também acima a
tabela verdade do operador XNOR, que é o inverso do operador XOR. Observe que a
função XNOR funciona como um comparador. Seu resultado é 1 quando os dois
bits de entrada são iguais, e 0 quando os dois bits de entrada são diferentes.

Circuitos lógicos
complexos

A construção de circuitos lógicos
complexos é uma simples questão de agrupar essas portas básicas, produzindo
funções mais elaboradas. A figura 63, por exemplo, mostra o circuito de um
comparador binário. Este circuito faz a comparação de dois valores binários
de 4 bits cada um. A saída do circuito será 1 quando os dois valores binários
de 4 bits presentes nas entradas forem iguais. Digamos que esses valores sejam
representados por A3A2A1A0
e B3B2B1B0.
A saída Y do circuito será ativada em 1 quando tivermos iguais esses valores.
Por exemplo A=0110 e B=0110. Este tipo de circuito é muito utilizado como
decodificador de endereços nas placas de CPU e nas placas de expansão. Os
valores do endereço A podem ser originados no barramento de endereços do
processador, e os valores de B são originados em um grupo de microchaves ou
jumpers, que dependendo da forma como são configurados, podem indicar bits 0 ou
1. O circuito comparador irá ativar sua saída em 1 quando o endereço recebido
for igual ao endereço definido pelas microchaves ou jumpers. Obviamente para
isto é necessário um comparador maior, operando com maior númeor de bits, mas
seu princípio de funcionamento é o mesmo.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.63

Comparador de 4
      bits.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Utilizando um número maior
de portas lógicas, podemos formar circuitos mais complexos. A figura 64 mostra
o circuito de um contador binário de 4 bits. Este circuito recebe um sinal de
clock e gera nas suas 4 saídas, números binários na seqüência 0000, 0001,
0010, etc. Pode ser programado para contar no modo decimal, ou seja, passando de
9 (1001) para 0 (0000), ou então no formato hexadecimal, passando de F (1111)
para 0 (0000). Gera ainda um bit de “vai 1” e pode ser agrupado com outros
circuitos iguais, formando assim contadores com qualquer número de dígitos.
Pode ainda ser programado para fazer contagem crescente ou decrescente.

  

    
      

      
      
      

    
      
Figura 3.64

Contador binário.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Um projetista de hardware
pode obter circuitos digitais de várias formas. A mais simples é utilizando
chips padrões de mercado, que normalmente apresentam encapsulamentos como os da
figura 65. Os encapsulamentos mostrados na figura são o DIP (Dual In-Line
Package) e SOIC (Small Outline Integrated Circuit). Existem circuitos com portas
AND, OR, NOR, NAND, inversores, e funções mais complexas mas de uso comum,
como decodificadores, comparadores, contadores, registradores, etc.

  

    
      

      
      
      

    
      
Figura 3.65

Chips com
      encapsulamento DIP plástico e SOIC.

&nbsp;&nbsp;
      

  


Nos manuais dos chips que
contém circuitos lógicos básicos, encontramos diagramas que indicam o que
existe no seu interior, como nos exemplos da figura 66. Os chips deste exemplo têm
o seguinte conteúdo:

4 portas NAND de 2 entradas
3 portas AND de 3 entradas
4 portas AND de 2 entradas
2 portas NAND de 4 entradas
4 portas XOR de 2 entradas
1 porta NAND de 8 entradas
4 portas NOR de 2 entradas
4 portas OR de 2 enrtadas
6 inversores (portas NOT)

  

    
      

      
      
      

    
      
Figura 3.66

Diagramas de
      alguns chips TTL.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Ao projetar um circuito
digital, usamos iniciamente as portas necessárias para implemenetar a função
desejada. Depois contamos quantas portas de cada tipo são necessárias.
Finalmente escolhemos os chips apropriados que contenham as portas desejadas, e
finalmente realizamos as ligações entre os pinos desses chips.

  

    
      

      
      
      

    
      
Figura 3.67

Diagrama interno
      do chip 74LS181 – unidade lógica e aritmética de 4 bits.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


A figura 67 mostra o diagrama
interno do chip 74LS181. Este chip é uma unidade lógica e aritmética de 4
bits, capaz de realizar 16 operações lógicas e aritméticas, entre adição,
subtração, AND, OR, etc. Vários chips desses podem ser ligados em cascata
para formar unidades com maior número de bits. Este chip tem pouco mais de 60
portas lógicas. Em um microprocessador existem vários milhões de portas lógicas,
executando entre outras, funções como as deste chip, porém com maior número
de bits. Como este capítulo destina-se apenas a dar noções sobre eletrônica,
não vamos analisar o funcionamento do circuito, mas acredite, ele realmente
soma, subtrai e faz várias outras operações. Desta forma podemos entender
como as portas lógicas podem ser interligadas para formar um computador.

Como construir uma memória
com portas lógicas

Para construir um computador,
não basta utilizar operadores lógicos e aritméticos. É preciso também ter
memória, uma característica fundamental dos circuitos digitais. Células de
memória podem ser facilmente construídas a partir do diagrama básico mostrado
na figura 68. Este circuito é chamado de FLIP FLOP.
 &nbsp;


  

    
      

      
      
      

    
      
Figura 3.68


      &nbsp;
      

Célula de memória.


      &nbsp;
      


      &nbsp;
      


      &nbsp;
      

  


Suas duas entradas R e S
devem permanecer com valores 1. Para armazenar um bit 1 na célula, basta
aplicar momentaneamente um bit 0 na entrada S (Set). Para armazenar um bit 0 na
célula, basta aplicar momentaneamente um bit 0 na entrada R (Reset). Vejamos
como isto ocorre, detalhadamente.

a) Suponha que as entradas
estejam em repouso, ou seja, R=1 e S=1.

b) Aplicamos momentaneamente
um bit 0 em S. A porta NAND ligada em S, ao receber 0 nesta entrada, produzirá
uma saída Y=1 (lembre-se da tabela verdade da função NAND: se pelo menos uma
das entradas é 0, a saída é 1).

c) A porta 2 está então
recebendo as entradas R=1 e Y=1 (note que a saída Y do circuito funciona como
entrada da porta 2). Como 1 NAND 1 = 0, teremos uma saída X=0 na saída da
porta 2. Este zero, ao entrar na porta 1, continuará produzindo saída Y=1, e
agora isto independe do valor de S, já que 0 NAND 0 = 1 e 0 NAND 1 =1.

d) Agora a entrada S pode
voltar ao seu valor de repouso 1, e a saída Y continuará sendo mantida em 1.
Temos então um bit 1 armazenado.

Da mesma forma, o circuito
também pode armazenar um bit 0, bastando manter S em 1, e momentaneamente
levando a entrada R ao valor 0. O que ocorre é o seguinte:

a) Ao receber uma entrada 0
em R, a porta 2 produzirá uma saída X=1. A porta 1 está recebendo neste
momento, X=1 e S=1. Portanto temos Y = 1 NAND 1, que vale 0.

b) O valor Y=0 chega à
entrada da porta 2. Como 0 NAND (qualquer coisa) vale 1, teremos X=1,
independentemente do valor de R, que agora pode voltar ao seu estado de
respouso, ou seja, com valor 1.

c) A porta 1 está recebendo
as entradas X=1 e S=1. Como 1 NAND 1 = 0, mais uma vez temos reforçado o bit 0
na saída Y.

d) As entradas R e S podem
voltar aos seus valores de repouso (R=1 e S=1) e o circuito manterá armazenado
um bit Y=0.

É um circuito extremamente
simples, mas é realmente uma surpresa a sua capacidade de “lembrar” um bit.
Circuitos como este são agrupados até formar células de memória com muitos
bits. Milhões dessas células são encontradas em um chip de memória, formando
vários megabytes.

Projetando chips

O método mais simples para
projetar circuitos lógicos é utilizar chips básicos como os mostrados na
figura 66. Este é um método indicado para a construção de protótipos ou
projetos de pequena complexidade. Para produção profissional entretanto, é
preciso utilizar métodos mais eficientes.

Circuitos lógicos de média
complexidade tornam-se muito grandes quando utilizamos chips básicos. Uma solução
para esses casos é utilizar microcontroladores. Esses chips são
microprocessadores que possuem em seu interior, uma unidade de processamento,
memória ROM, RAM e circuitos de apoio. Quando o circuito a ser projetado não
precisa ser extremamente veloz (por exemplo, uma placa lógica para controlar
uma máquina de refrigerantes, ou máquina de lavar, ou o painel de controle de
um videocassete), a melhor solução não é construir um circuito, e sim um
programa que receba as entradas e gere as saídas. Quando o circuito a ser
criado precisa ser muito veloz, os microcontroladores tornam-se ineficientes.
Uma solução bastante viável é utilizar chips programáveis. Esses chips
possuem em seu interior, um grande número de portas lógicas. Através de um
programa de CAD, criamos o circuito com o auxílio de um PC e simulamos o seu
funcionamento. Terminado o projeto, o circuito é “gravado” no chip programável.
Esta programação consiste em definir as conexões que são realizadas entre os
módulos internos do chip programável. Tais chips programáveis são chamados
de PLD (programmable logic devices) e EPLD (eraseable programmable logic
devices). Os dois principais fabricantes desses produtos são a Altera (www.altera.com)
e Xilinx (www.xilinx.com).

Utilizando PLDs e EPLDs,
projetos complexos podem ser criados em pouco tempo, e ficam extremamente
compactos. Até mesmo a produção em série pode ser feita, em pequena escala.
Quando a escala de produção é maior e os custos finais do produto precisam
ser reduzidos, a melhor coisa a fazer é projetar chips novos.

O projeto de chips é feito
através de programas especiais de CAD. Definimos os circuitos lógicos a serem
utilizados e simulamos o funcionamento do circuito final, tudo através de um
PC. Terminado o projeto, o programa de CAD irá gerar arquivos de impressão,
que transferidos para um equipamento apropriado, irão resultar em fotolitos.
Esses fotolitos são levadas a uma máquina de produção de chips, que podem
então ser produzidos aos milhares, com baixo custo unitário de produção.
Todo este equipamento é muito caro, e até mesmo a contratação de empresas
especializadas tem custo elevado, e só compensa quando os chips são produzidos
aos milhares.