Escolar Documentos
Profissional Documentos
Cultura Documentos
DIGITAIS
1
Mensagens e Sinais
1.1 Conceito
Os seres não seriam perceptíveis se não existisse entre eles uma interação. Isto quer dizer que, de alguma forma, é
necessário que ocorra um processo de comunicação para se perceber a existência dos seres.
Só existe uma única maneira de um ser interagir com outro ser. Só existe uma única maneira de um ser tomar
conhecimento da existência de outro ser:
"Alguma coisa tem que sair de um e chegar até o outro."
Assim, as mensagens se propagam por meio de sinais ou de partículas. Na primeira situação, um ser perturba o
meio imediatamente próximo de si (ex: ar, água, etc.), e esta perturbação (sinal) caminha até chegar ao outro ser. É
uma situação semelhante à mostrada na figura abaixo onde o estado da última bola é alterado pela ação da primeira
bola, sem que tenha ocorrido o contato desta com a última bola. O que foi comunicado veio através de um sinal.
Na comunicação por partícula, a mensagem chega através do choque da partícula emitida por um ente, com outro
ser.
choque
ENTE ENTE
4
1.2 Tipos de Sinais Considerando que a bomba queimará se for acionada sem haver água no circuito hidráulico, projete um circuito
lógico para acionar a bomba sempre que a caixa superior estiver vazia, desde que tenha água na cisterna.
Intensidade
Os sinais são caracterizados por pelo menos duas informações:
• A intensidade (grau de força com que o sinal ocorreu ou chegou); Caixa
Resposta:
• A fase (o instante em que o sinal ocorreu ou chegou); Superior
a) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de Elabore a tabela verdade que representa esse circuito lógico.
distribuição de energia, p.ex., a Light) e um interruptor (nossas entradas ) e uma lâmpada (nossa saída). A lâmpada
acenderá se - e somente se Resposta:
• Houver energia disponível (se não estiver "faltando luz") e
• O interruptor estiver ligado. Energia Alimentação Interruptor Computador
Elabore uma tabela que represente esse circuito lógico. Comercial Auxiliar
Faltando Faltando Desligado Não operando
Resposta: Faltando Faltando Ligado Não operando
Faltando Disponível Desligado Não operando
Para este exemplo, os sinais que modelam o sistema são: Faltando Disponível Ligado Operando
• Energia – pode assumir dois estados: faltando ou disponível Disponível Faltando Desligado Não operando
• Interruptor – pode assumir dois estados: desligado ou ligado Disponível Faltando Ligado Operando
• Lâmpada – pode assumir dois estados: apagada ou acesa Disponível Disponível Desligado Não operando
Disponível Disponível Ligado Operando
Assim, uma tabela seria:
A implementação dos circuitos normalmente é feita através de circuitos elétricos e, assim sendo, os dois estados (0
e 1) são reconhecidos conforme haja ou não eletricidade em determinado ponto.
5 6
Nos últimos anos, grande parte dos fabricantes têm seguido uma padronização, conhecida como padrão TTL
(Lógica Transistor-Transistor). De acordo com este padrão, o estado O é reconhecido para tensões entre - 0.5V e
0.8V, e o estado 1 para o nível de tensão entre +2 e +5.5V, para fases com duração até 10 ns.
Portanto, em princípio é possível se construir máquinas lógicas, que utilize a luz como sinal binário de
processamento.
Variável X Função L X L
0 0
1 1
7 8
INVERSOR
2.3 Contatos em Série A X
X Y L(X, Y) X Y L A X
0 1
0 0 1 1 0
0 1 0
1 0 0
1 1 0 2.7 Implementação física das Portas Lógicas
L(X, Y) = X .Y
2.7.1 Síntese Mecânica
2.4 Inversão , Negação ou Complementação Utilizando sinais mecânicos pode-se construir Gates mecânicos, conforme mostrado a seguir
_
L=X
B B
9 10
2.7.4.2 Porta NAND
VCC
Dois transistores ligados em série:
O gate NOT utilizando sinais de luz é um pouco mais trabalhoso, pois envolve o fenômeno da interferência. Este
fenômeno ocorre quando dois feixes de luz que percorrem caminhos diferentes se superpõem (interferência de V2
Fraunhofer). Nesse ponto as duas ondas podem se somar (interferência construtiva) ou subtrair (interferência
destrutiva) produzindo franjas claras e escuras.
Assim se for utilizado numa das entradas do gate uma lâmpada constantemente acesa como referência e na outra
entrada um sinal luminoso qualquer (aceso ou apagado), posicionando-se a saída na região onde ocorre a 2.7.4.3 Porta NOR VCC
interferência destrutiva, pode-se obter o gate NOT. É importante observar que o tamanho do orifício de entrada e
saída devem ser da mesma ordem de grandeza do comprimento de onda de luz incidente. Dois transistores ligados em paralelo:
Como dois gates: OR e NOT pode-se montar o gate AND . É importante notar que alguns dos gates devem ser • Se qualquer entrada estiver alta, o VOUT
trabalhados para compensar as perdas de intensidade da luz devido ao processo de reflexão e refração. transistor correspondente fechará e a
saída será aterrada. V1 V2
• Se ambas as entradas estiverem baixas,
2.7.4 Síntese Eletrônica a saída permanecerá alta.
• Quando VIN é baixo, VOUT é alto, e vice-versa. Este circuito é, portanto, um inversor convertendo um 0
lógico em um 1 lógico, e um 1 lógico em um 0 lógico. 2.9 Definição Axiomática da Álgebra de Boole
Devido à simplicidade de projeto e construção, acarretando na redução de seu custo e maior confiabilidade, os
circuitos eletrônicos (que formam os computadores digitais) são capazes de distinguir apenas dois níveis de tensão -
computadores digitais binários. Estes sinais elétricos são tensões que assumem dois diferentes valores: um valor
positivo (cerca de +3 V - três volts positivos) para representar o valor binário 1 e um valor aproximado a 0 V (zero
11 12
volt) para representar o valor binário 0. Na realidade, estes valores não são absolutos, e sim faixas de valores, com
uma margem de tolerância (entre +2.5 e +3.5 V, representando o valor binário 1, e entre 0 e + 0,5 V representando
o valor binário 0).
A lógica que permite aos computadores operar baseados nestes dois valores é chamada Álgebra de Boole, em
homenagem ao matemático inglês George Boole (1815-1864). Esta lógica, incluindo o estudo de alguns Circuitos
Lógicos elementares, é baseada em um conjunto de axiomas conforme mostrado a seguir.
3
2.10 Axiomas de Boole Funções Lógicas de Variáveis
Seja um conjunto B que contém pelo menos 2 elementos (0 e 1) e duas operações internas (. e +) sobre E, isto é: B
= { E, . , +, 0, 1}. Para este conjunto são definidos 9 axiomas (denominados axiomas de Boole) : Binárias
Associatividade : Distributividade
Variáveis Uma Saída ativa Duas Saídas ativas Três Saídas ativas 4
X1 X2 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16
Nula And Nor ⊕ Comp Nand Implic OR Unit
0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1
0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1
1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1
1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1
13 14
3.4 Funções de n variáveis 3.7 Operador NOR
Existem ao todo: 2 2 funções
n
3.7.1 Definição
As funções são tabuladas com: 2 2 linhas e 2 2 colunas
n
_
1 variável Î 2 linhas e 4 colunas NOR de uma entrada: ↓ X = X (negação pura)
2 variáveis Î 4 linhas e 16 colunas _ _ _____
3 variáveis Î 8 linhas e 64 colunas NOR de duas entradas: X ↓ Y = X . Y = X + Y
4 variáveis Î 16 linhas e 256 colunas
X1 X2 Nor NOR
0 0 1 X
X+Y X ↓ Y = X∨Y = X ∧Y X
3.5 Teorema de Morgan 0 1 0
OR Z
Y
1 0 0 Y
X + Y = X .Y 1 1 0
X .Y = X + Y 3.7.2 Propriedades
Pelo teorema de Morgan bastam dois "gates" ( AND e NOT ou OR e NOT) para se obter o terceiro "gate". Isto é • O operador NOR é comutativo: X ↓ Y = Y ↓ X
fácil de se ver, pois o teorema mostra que: • O operador NOR não é associativo: X ↓ Y ↓ Z ≠ (X ↓ Y) ↓ Z ≠ X ↓ (Y ↓ Z)
a) A inversão de X + Y reproduz X . Y com cada sinal invertido, logo tendo os "gates" OR (+) e NOT (barra) e 3.7.3 Síntese de Operadores por meio do NOR
invertendo-se os sinais X e Y, pode obter-se o "gate" AND (.).
X X
X X.Y Operador OR Operador AND
X +Y X .Y AND
OR
Y NOR X X NOR
Y X .Y = X↓Y
X X↓Y X + Y = X↓Y
Y Y
Y
Y
b) A inversão de X . Y reproduz X + Y com cada sinal invertido, logo tendo os "gates" AND (.) e NOT (barra) e
invertendo-se os sinais X e Y, pode obter-se o "gate" OR (+).
X 3.8 Operador NAND
X
X
X .Y X +Y OR
X+Y
AND
Y Y 3.8.1 Definição
_
Y NAND de uma entrada: ↑ X = X (negação pura)
_ _ _____
O teorema de Morgan formaliza o fenômeno da dualidade das portas lógicas (ver item 2.8)
NOR de duas entradas: X ↑ Y = X + Y = X . Y
NAND
X1 X2 Nand
3.6 Regras para representação das condições de Saída 0 0 1 X
X X .Y X ↑ Y = X.Y = X +Y Z
Graças ao Teorema de Morgan, pode-se concluir que existem duas formas canônicas para representação das 0 1 1 AND
1 0 1 Y Y
condições de saída:
1 1 0
a) Formas que produzem saída 1 (e portanto as demais condições produzem saída 0) ou alternativamente,
b) Formas que produzem saída 0 (e portanto as demais condições produzem saída 1).
3.8.2 Propriedades
Assim, uma forma representa as condições que produzem saída 1 (SOMA DOS MINITERMOS) , a outra
representa as condições que produzirão saída 0 (PRODUTO DOS MAXITERMOS). Essas formas são alternativas, • O operador NAND é comutativo: X ↑ Y = Y ↑ X
isto é, a expressão poderá ser encontrada aplicando-se alternativamente UMA ou OUTRA das formas. • O operador NAND não é associativo: X ↑ Y ↑ Z ≠ (X ↑ Y) ↑ Z ≠ X ↑ (Y ↑ Z)
15 16
3.8.3 Síntese de Operadores por meio do NAND Assim, a aplicação do operador XOR à saída de um outro operador XOR com um dos sinais, restaura o outro sinal
X Z X R
0 0 0
0 1 1
1 1 0
1 0 1
Pela tabela anterior pode-se verificar que quando o XOR for aplicado em uma das variáveis X ou Y junto
com o valor do XOR das duas variáveis (X Y), o resultado reproduz uma das variáveis (no caso a
variável Y), isto é:
Se Z = X Y Î X Z = Y (resulta no valor original), e Y Z=X
17 18
4
Circuitos Lógicos
Tabela da Verdade:
X Y Z
0 0 1
0 1 0
1 0 0
1 1 1
19 20
_ _
Função Booleana: Z = (X . Y) + (X . Y)
X 4.6 Data Selector / Multiplexador
Diagrama de Blocos: AND
Y
Circuito combinacional onde a saída S depende de um controle K denominado chave. Assim, dependendo da chave
Z
OR uma das entradas será enviada à saída. A chave K seleciona qual das entradas se deseja na saída.
AND
S1 AND
S1 = X .Y
S 2 = X .Y AND
K1 S
S 3 = X .Y X AND
S2 AND OR
S 4 = X .Y
AND
Diagrama de Blocos: K2
Y AND
S3 AND
AND
AND
S4 AND
21 22
4.7 Produto dos Maxitermos 4.9 Circuito Somador (ADDER)
É produzida construindo: 4.9.1 O Half Adder
• Um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores
de entrada) em que a saída é 0,
• Cada um desses termos é formado pela SOMA (FUNÇÃO OR) das variáveis de entrada, sendo que: Considere a adição de 2 algarismos binários: a e b, gerando um algarismo s de saída e um algarismo c do vai 1
- Quando a variável for 0, mantenha; (carrier)
- Quando a variável for 1, complemente-a (função NOT).
• A função booleana será obtida unindo-se os termos SOMA (ou maxitermos) por uma porta AND (ou seja, a b S C a S ... saída
"forçando-se" a saída 0 caso qualquer minitermo resulte no valor 0). 0 0 0 0 Half
0 1 1 0 Adder C ... carrier (vai 1)
b
Dessa forma, ligando os termos-soma (também chamados maxitermos) pela porta AND, caso QUALQUER UM 1 0 1 0
dos minitermos seja 0 (portanto, caso qualquer uma das condições de valores de entrada que produz saída 0 se 1 1 0 1
verifique), a saída pela porta AND será também 0. Ou seja, basta que se verifique qualquer uma das alternativas de
valores de entrada 0 expressos em um dos maxitermos, e a saída será também 0, forçada pelo AND. Caso nenhuma Este circuito pode ser sintetizado com as seguintes funções:
dessas alternativas se verifique, produz-se a saída 1. S=a⊕b A B
C=a.b
Assim, o half adder é um circuito combinacional composto de dois S
elementos: um XOR (exclusive-or) e um gate AND.
4.8 Demultiplexador
C
Circuito combinacional que conforme o valor de K conecta a entrada E à uma das saídas S
Tabela da Verdade:
K1 K2 S1 S2 S3 S4 Circuito half-adder
0 0 E 0 0 0
0 1 0 E 0 0
1 0 0 0 E 0
4.9.2 O Adder
1 1 0 0 0 E
A adição de dois algarismos binários ai e bi, considerando um carrier c i anterior, é feita através de um circuito
ADDER.
Função Booleana:
(
S1 = E.K1.K 2 ) (
S 2 = E.K1.K 2 ) (
S 3 = E.K1.K 2 ) S 4 = (E.K1.K 2 )
ci
Entrada
ai bi si
Saída
ci+1 ai
0 0 0 0 0 Adder si ... saída
Diagrama de Blocos: E
Decodificador 0 0 1 1 0 bi
S1 ci+1 ... carrier (vai
AND 0 1 0 1 0 ci
AND 0 1 1 0 1
1 0 0 1 0
AND
S2 1 0 1 0 1
K1 AND 1 1 0 0 1
1 1 1 1 1
AND
S3
K2 Neste caso:
[ ] [ ( )]
AND
si = ci .(a ⊕ b ) + ci . a ⊕ b logo si = ai ⊕ bi ⊕ c i+1
S4 Ai Bi Ci
AND ci +1 = ai .bi + ai .bi .ci + bi .ai .ci
ci +1 = [ai .bi ] + [(ai ⊕ bi ).ci ]
AND Si
Ci+1
23 24
4.9.3 O Full Adder
Permite a adição de 2 números binários de tamanho “n”, pela utilização de circuitos ADDER
a3 b3 a2 b2 a1 b1 a0 b0
c0=0 5
ADDER ADDER ADDER ADDER
Circuitos Seqüenciais
c4 c3 c2 c1
s3 s2 s1 s0
Por esse método, pode-se encontrar a expressão que represente qualquer tabela verdade.
B Q
Após se encontrar uma expressão que represente o comportamento esperado, é possível que não seja uma expressão OR
A
simples que possa ser construída com poucas portas lógicas. Antes de projetar o circuito, é útil SIMPLIFICAR a
expressão, de forma a possibilitar construir um circuito mais simples e portanto mais barato.
O circuito acima consiste de apenas uma porta “Ou” realimentada.
Portanto, o fluxo de procedimento será: DESCRIÇÃO VERBAL ---> TABELA VERDADE ---> FORMA
CANÔNICA ---> FUNÇÃO SIMPLIFICADA ---> CIRCUITO Se A e Q estão no nível lógico “0” Î B está também no nível lógico “0”
Se A muda para “1” Î Q irá para “1” Î B muda para “1”
Se A retorna para “0” com B ainda em “1” Î Q não muda e permanece em “1” Î Elemento guarda a saída lógica
“1” para sempre Î A porta “OU” lembrará o último “1” recebido
Assim, o circuito acima é uma unidade lógica básica com memória monoestável (só tem um estado lógico estável
que é o “1”)
O comportamento de um circuito seqüencial tem de ser especificado em função do tempo para todos os possíveis
valores das entradas e dos estados internos das memórias.
Assim, nos circuitos seqüenciais existem dispositivos que memorizam resultados, são as “unidades de memória” de
modo a que os valores das saídas num dado instante dependem também do estado desses dispositivos.
OR
A
C
AND
B
No circuito da Figura acima suponhamos que A e B estão com o valor 1. Então a saída da porta “OR” é 1, e assim,
as entradas na porta “AND” são 1 e a sua saída é C = 1. Se A tiver o valor 0, o valor de C não se altera. No entanto,
25 26
se B for zero o valor de C também passa a ser 0, independentemente do valor de A. Î o circuito memorizou o sinal Na prática, os elementos de memória, são mais complexos e, em particular, tem associados um circuito de relógio
colocado em B (neste caso A = 1 funciona como um sinal “memorize B” para o circuito). que permite controlar temporalmente (sincronizar) as várias componentes dos circuitos sequenciais. Os circuitos de
relógio são elementos que apenas emitem um sinal com uma frequência bem determinada.
5.2.1 Circuito Astável ou Gerador de Onda de Relógio (CLK) As primeiras tecnologias utilizadas em memórias foram as memórias de núcleos magnéticos, hoje apenas uma
curiosidade. As memórias modernas, conforme visto, são compostas por circuitos semicondutores, com novas
Um circuito astável tem dois estados, sendo os 2 quase-estável. Sem a ajuda de um sinal de disparo externo, a
tecnologias sendo criadas a cada ano permitindo que grandes quantidades de células de memória sejam
configuração astável fará sucessivas transições de um estado quase-estável para o outro. Assim o circuito astável é
encapsuladas em pequenas pastilhas.
um oscilador e é usado como um gerador de ondas quebradas ou uma forma de onda de relógio.
5.4 Flip-Flop
É um elemento lógico biestável (possui 2 estados lógicos estáveis).
Gráfico de um sinal de relógio
Tem uma ou mais entradas e duas saídas (geralmente complementares: Q e Q ).
V1
CP1 Q1
É um circuito que permanecerá em seu último estado a menos que um sinal de entrada cause uma mudança.
CP2 Q2
Um destes circuitos muito simples é apresentado na Figura a seguir. O circuito é controlado pela linha de entrada L
(Store), que permite a atualização do valor ``guardado'' pelo circuito. Normalmente, o valor dessa linha é 0 e o (a) Se S= 0 e R = 1 Î Q = ( S .Q) = (0.Q) = (0) = 1 Î Q=1 independente do estado anterior Î Q =0
valor da saída permanece, ao longo do tempo, sempre o mesmo.
A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de S) Î S=1 e R=1 Î Q = 1 (o
estado anterior é conservado)
(b) Se S=1 e R = 0 Î Q = ( R.Q) = (0.Q) = (0) = 1 Î Q = ( S .Q ) = (1.1) = (1) = 0 (independente do nível lógico
de R)
A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de R) Î S=1 e R=1 Î Q = 0 (o
“1 “ AND
estado anterior é conservado) e Q = 1
AND
RESET
Porta b (c) Se R=0 e S=0 Î Q=1 e Q =0
Inversor a
(d) Por (a) S=1 e R=1 Î Q = 1 (o estado anterior é conservado)
Por (b) S=1 e R=1 Î Q = 0 (o estado anterior é conservado)
STORE L OR Logo, se S=1 e R=1 Î Q=0 ou Q=1 (dependendo da velocidade de chaveamento):
O AND
DATA
AND Se a porta de R é mais rápida Î ela vê em suas entradas R=Q=1 Î força a saída Q =0 Î na entrada da porta de S
Porta d
Porta c
tem-se S=1 e Q =0 Î força a saída Q=1 Î Q = ( R.Q ) = (1.1) = (1) = 0 Î Q não muda
READ
É impossível se saber à priori qual porta é a mais rápida ou mais lenta Î não se pode afirmar quais serão os níveis
lógicos nas saídas Î situação indeterminada
Se L=0 e O=1 então, as entradas na porta b são ambas 1 e portanto a saída da porta d é 1, isto é, se o valor de O é 1
permanece 1. S R Q
Se o valor de L=0 e O=0, então uma das entradas da porta b é 0, o que significa que a sua saída é também 0.
Q
Assim as duas entradas da porta d são 0, produzindo um valor 0 para O. Reset 0 1 1 0 R recebe “1” Î Q vai para 1 independente de S
Se o valor de L passa a 1, então, por causa do inversor a a saída da porta b é 0. 1 1 1 0 Conserva estado anterior de Q e Q (qualquer pulso em S não tem
Se a primeira entrada da porta c é 1, então o valor da saída desta porta é o valor de I (entrada “Data”) e que será efeito na saída)
também o valor de O. Set 1 0 0 1 S recebe “1” Î Q vai para 0 independente de R
Assim, se L=1 o valor de saída do circuito é valor da entrada I. 1 1 0 1 (qualquer pulso em R não tem
Conserva estado anterior de Q e Q
Se L passar para 0, o valor de saída do circuito permanecerá esse valor. efeito na saída)
Ambos 0 0 1 1 R e S após assumirem “0” retornam a “1”
1 1 ? ? Indeterminado
Em uma montagem com portas Nor, o FF-RS manteria o estado anterior quando ambos S e R forem 0.
27 28
5.6 Flip-Flop RS com Relógio PR (Preset) e CLR (Clear) atuam independentes do relógio CLK Î podem ser acionados de modo assíncrono (sem
estar em sincronismo com o relógio)
C
S
S1
A O estado normal das entradas PR e CLR é “1”
Q
Quando CLK = 1:
Se PR = 0 e CLR = 1 Î Q = 1 e Q = 0
CLK
B __
Se PR = 1 e CLR = 0 Î Q = 0 e Q = 1
D Q
R1 Quando CLK = 1 Î tanto S quanto PR atuam como “Set” enquanto as entradas R e CLR atuam como “Reset”
R Quando CLK = 0 Î as entradas PR e CLR atuam como S e R
CLK = entrada do relógio Através das entradas PR e CLR é possível a modificação do estado do FF mesmo que CLK esteja no nível “0”
Portas A e B: formam um FF-RS
Portas C e D: permitem a passagem dos sinais S e R se CLK = 1 Mas o Flip-flop continua apresentando o problema da indeterminação
Os instantes de subidas e descidas do relógio são muito bem definidos no tempo Î O relógio serve como
referência para os demais sinais
5.8 Flip-Flop D sensível ao nível do pulso de Relógio
PR
Condições:
• As informações já devem estar presentes nas entradas S e R quando chegar o pulso do relógio
C A
• A duração do pulso do relógio deve ser suficiente para que a informação passe para as saídas Q e Q , pois a S
S1 Q
transferência de informação não é instantânea (devido aos diversos tempos de atraso e de propagação).
• As entradas S e R não variam enquanto o pulso do relógio estiver presente.
CLK
Se CLK = 0 Î S1 = R1 = 1 (independente de S e R) Î S e R estão inibidas pois não conseguem acionar o FF-RS D B
__
Se CLK = 1 Î S1 = ( S .CLK ) = (S .1) = S e R1 = ( R.CLK ) = (R.1) = R Î funciona como simples FF-RS Î R1 Q
FF-RS tem condições de armazenar as informações de S ou de R R
Vantagem: as saídas Q e Q estarão sincronizadas com o restante do circuito que use o mesmo relógio
CLR
Entradas Durante o pulso Após o pulso
S R Q Q As entradas S e R são sempre uma inversa da outra Î R = S Î Não existe mais a situação de porta mais rápida
Q Q que a outra Î Resolve a condição de indeterminação do flip-flop RS.
0 1 0 1 0 1
1 0 1 0 1 0
0 0 Conserva Estado Conserva Estado S R Q Q
1 1 1 1 Indeterminado
0 1 1 0
1 0 0 1
5.7 Flip-Flop RS com Preset, Clear e Relógio
Problema: só tem uma única entrada S (pois R é automaticamente determinado pela inversão de S)
PR
5.9 Flip-Flop JK
C A
S
S1 Q
Mestre Escravo
J Q1
S1 S2
G C Q
CLK E A
D B
__
R1 Q
CLK
R
__
Q
F B
R1 R2
H D
K Q2
CLR
29 30
V2
5V
+V Q0 Q1 Q2 Q3
Consiste de dois flip-flop RS com relógio, um denominado mestre (master) e o outro escravo (slave)
Permite duas entradas (J e K)
Resolve a condição de indeterminação do flip-flop RS V1
U1A U1B U2B U2A
S S S S
CP1 Q1 J Q J Q J Q J Q
CP _ CP _
Quando CLK = 1: CP2 Q2 K Q K Q
CP
K
_
Q
CP
K
_
Q
R R
Se J = 0 , K = 0 Î S1 = R1 = 1 e CLK = 0 Î S2 = R2 = 1 Î o Flip-flop escravo não muda Î V3 R R
0V
A informação para o escravo é passada quando o pulso do relógio retorna ao nível o (CLK = 0 Î CLK = 1) Î
Contador Binário Assíncrono Módulo 16 Crescente
Q = Qanterior e Q = Q anterior
Para que a contagem seja decrescente, basta trocar a saída Q pela Q negada na entrada de clock seguinte.
Entradas Saídas
J K Q Q 5.11 Registradores
0 0 Qanterior Q anterior
0 1 1 0 Registradores são conjuntos de flip-flops que podem ou não estar interconectados entre si, conforme mostrado
1 0 Qanterior abaixo:
Q anterior
1 1 1 1 • Registradores de Armazenamento – quando os flip-flops não estão interconectados entre si
• Registradores de Deslocamento – quando os flip-flops estão interconectados entre si
74LS76
Assim, um registrador de n-bits é um conjunto de n memórias de 1 bit. Normalmente, os registradores são de 8, 16
74LS75 74LS74
D3 __
Q3 CP1 J1 __
Q1 ou 32 bits. Numa CPU (unidade central de processamento) existem habitualmente vários registradores (fixos) para
__ K1 Q1
D2
E23
Q3
__
Q2
D1
S1
Q1
Q1 CP1 tarefas específicas ou para tarefas gerais (registradores programáveis). Nesses registradores, são efetuadas as
SD1
D1
Q2
__
Q1
R1
RD1 operações de leitura ou de escrita simultaneamente em cada um dos seus bits.
D0 Q1 CP2 J2 __
Q2
E01 __
Q0 D2 __
Q2 K2 Q2
Q0 S2
R2
Q2 CP2
SD2 Registradores são VOLÁTEIS, isto é, dependem de estar energizados para manter armazenado seu conteúdo.
RD2
Latches e Flip-Flops : CI´s: 74LS74, 74LS75 e 74LS76 Registradores são dispositivos de armazenamento temporário, localizados na CPU, extremamente rápidos, com
capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como
parte da própria pastilha ("chip") da CPU, é muito caro. O conceito de registrador surgiu da necessidade da CPU de
5.10 Contadores armazenar temporariamente dados intermediários durante um processamento. Por exemplo, quando um dado
resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para
São circuitos digitais que variam os seus estados, sob o comando de um clock, de acordo com a seqüência pré- com ele realizar uma nova operação.
determinada. São utilizados principalmente para contagens, geradores de palavras, divisores de freqüência, medidas
de freqüência e tempo, geradores de forma de onda, conversão de analógico para digital, sequenciamento de Máquinas RISC são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados
operações de máquinas etc. para o mais próximo possível da CPU, de forma a que o programa opere sempre sobre dados que estão em
registradores.
5.10.1 Contadores Assíncronos U7 U6
4076 74LS298
I0d S
Consistem de vários Flip-Flops conectados em série que avançam de um estado para o outro em resposta a um D3
D2
Q3
Q2 I0c CP
evento, que pode ser o clock. D1
D0
Q1
Q0
I0b
I0a Qd
I1d Qc
ED1 I1c Qb
Módulo de um contador é o número de diferentes estados de saída que este contador pode apresentar, antes de ED0 I1b
I1a
Qa
EO1
retornar ao seu estado inicial. EO0
CP
MR
Num contador constituído com n Flip-Flops pode, no máximo, ter um módulo de 2n, mas se quisermos, podemos Exemplos de registradores : 4076 e 74LS298 (72298)
fazer com que o contador não passe por todos os estados possíveis. Neste caso o módulo seria menor que 2n.
31 32
5.11.1 Registradores de Deslocamento
V5
5V
+V Q0 Q1 Q2 Q3 6
V7
5V
S
U4B
S
U4A
S
U3A
S
U3B
Sistemas Digitais Aplicados na
Computação
U5A J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
V4
5V
V6
CP1 Q1
CP2 Q2
A cada pulso de relógio, o Registrador de Deslocamento (Shift Register) irá deslocar a informação armazenada
entre os flip-flops, da seguinte maneira:
A informação do primeiro flip-flop é passada para o segundo
A informação do segundo flip-flop é passada para o terceiro 6.1 Introdução
....................
O último flip-flop recebe a informação do penúltimo e perde a que estava nele armazenada O Objetivo deste capítulo, é mostrar de que forma os circuitos digitais, combinacionais e seqüenciais, possibilitam
a criação de uma infra-estrutura lógica e física para a construção de máquinas de processamento genéricas.
U9 U8 Serão abordados dois circuitos necessários ao funcionamento da arquitetura conceitual de Von Neuman, e que estão
74LS95 74LS96 presentes de alguma forma, nos computadores digitais. O primeiro dos circuitos a ser estudado será o Sistema de
S S MR
CP1 PE Leitura e Escrita Indexada de Dados, onde serão mostrados projetos dos subsistemas necessários para o
CP2 CP
D3 PstA QA armazenamento e recuperação de dados em memória principal. O segundo circuito é a Unidade Lógica e Aritmética
D2
D1
Q3
Q2
PstB
PstC
QB
QC (ULA ou ALU), parte integrante de qualquer unidade central de processamento (CPU), e responsável pelas
D0
DS
Q1
Q0
PstD
PstE
QD
QE operações lógicas e aritméticas necessárias durante a execução das operações pré-programadas de uma CPU.
Vale lembrar que esses sistemas mencionados, são ainda enquadrados, em parte ou em todo, na classificação
Exemplos de registradores de deslocamento: 74LS95 e 74LS96
mostrada no capítulo 4: combinacionais e seqüenciais, e portanto, requerem pleno conhecimento dos conceitos já
Dados digitais podem ser apresentados na forma série ou paralela. abordados anteriormente.
Na apresentação série, os bits individuais de uma palavra são conduzidos por um único fio e são apresentados em
seqüência temporal, um bit após o outro. 6.2 Sistema Digital para Armazenamento e Recuperação de Dados
Na apresentação paralela todos os bits da palavra são apresentados simultaneamente, usando tantos fios quantos
forem necessários. O formato série economiza circuitos. Por outro lado, o formato paralelo economiza tempo. Para entendermos de que forma podemos acessar um determinado dado, armazenado em um lugar específico da
Exemplo: determinado nível lógico leva 1µs para ser reconhecido. O formato série usaria 8µs para transmitir uma memória de um computador, temos inicialmente que definir alguns conceitos relativos à organização de
palavra de 8 bits, ao passo que o formato paralelo levaria apenas 1µs. computadores, em particular, a estrutura fundamental da memória principal (MP).
Diversas vezes é preciso passar de uma forma de apresentação para outra. O registrador de deslocamento pode ser
usado para este fim. 6.2.1 Estrutura da MP – Células e Endereços
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando
necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa
informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre
exatamente onde a informação foi armazenada (lembrando nossa analogia com o computador hipotético, imagine
encontrar uma informação guardada ao acaso, se nosso escaninho tivesse 1 milhão de compartimentos ...).
Em virtude desse problema, precisamos definir dois elementos necessários à estrutura organizacional de qualquer
sistema de acesso à memória principal computacional. São eles:
33 34
Célula é a unidade de armazenamento do computador. A memória principal é organizada em células. Registrador de endereço (MAR – Memory Address Register) – que contém o endereço de uma posição de
Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" memória a que se quer gravar.
da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um
determinado número de células ou posições. Cada célula é composta de um determinado número de Registrador de conteúdo (MBR – Memory Buffer Register) – que contém um valor a escrever na memória ou que
bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células irá conter um valor lido da memória.
daquele computador terão o mesmo número de bits.
O registrador MAR tem 2 bits, o registro MBR tem 3 bits e cada uma das posições de memória, à esquerda, também
Endereço é o “localizador” da célula, que permite identificar univocamente cada célula da memória. É tem 3 bits. Cada bit é um elemento de memória, como o exemplificado anteriormente.
utilizado pelo sistema e pelos programas para referenciar posições de memória. As células são
numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula. Habitualmente, uma memória de um bit é representada por um quadrado que pode conter o valor 0 ou 1, consoante
o valor da sua linha de saída O. A esse valor chama-se também o seu conteúdo.
Assim, identificamos uma célula específica pelo seu endereço associado.
Supondo-se que o registro MAR contenha num dos elementos o valor 0 e no outro o valor 1, então a seqüência de
O tamanho em bits das células e dos endereços de uma memória, está altamente acoplada à arquitetura interna do bits 01 corresponde em binário ao endereço da posição de memória que se irá manipular.
processador em questão. Em geral o tamanho de uma célula poder ser igual aos da palavra (unidade de
processamento da CPU) e da unidade de transferência (quantidade de bits que vem e vai da MP à CPU), porém, Obs: Em publicações na língua portuguesa é comum o uso dos termos RDM (registro de dados de memória) e
por razões técnicas e de custo, são freqüentemente diferentes. REM (registro de endereço de memória) ao invés de MBR e MAR respectivamente.
6.2.2 Número de bits para representar um endereço 6.2.4.1 Esquema do Circuito de Escrita
Para uma operação de escrita, supomos que existe uma linha W tal que só se o seu valor for 1 é que a alteração da
A memória principal é constituída por posições memória (células) todas com o mesmo número de bytes (1 byte =
posição de memória é realizada.
8bits), tendo cada uma delas um endereço (valor numérico).
W
Expressão geral: MP com endereços de 0 a (N-1)
Memória
N = 2x logo: x = log2 N
Decodificador
Bit-0 Bit-1 0 0 0
MAR
6.2.3 Capacidade da Memória Principal I1
Bit-1 Bit-2 1 0 1
I2
Num computador a capacidade memória (número de posições de memória) pode variar, mas está normalmente Bit-3 0 1 1
condicionado pelo número de endereços que a CPU pode aceitar. I3
A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.
MBR (Memory Buffer
T = capacidade da memória em bits Register)
T=NxM
N = nº de endereços ( como vimos anteriormente, N=2x sendo x = nº de bits do endereço) Bit-0 Bit-1 Bit-2
M = nº de bits de cada célula
Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e depois dividir por 8 (cada byte O registrador de endereço MAR está ligado a um decodificador que ativa uma das suas 2n saídas de acordo com o
contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. valor da seqüência de n bits de entrada (no decodificador). Para o caso com n=2, o decodificador ativa uma das
suas 4 saídas, cada uma das quais está ligada a uma das posições de memória. Assim colocando-se o endereço de
O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1). memória no MAR, o sistema identifica a posição de memória que se pretende alterar.
6.2.4 Projeto Simplificado de Uma Memória O registrador de conteúdo MBR, isto é, cada um dos seus bits, está ligado com cada uma linhas de entrada I de cada
posição de memória (isto é, com cada um dos respectivos bits). No esquema, a linha com uma seta na extremidade
Para exemplificar o acesso de leitura/escrita a uma posição de memória, vamos considerar um módulo de memória - que liga o MBR a cada posição de memória - , corresponde na realidade a 3 linhas uma para cada um dos bits das
com: posições de memória.
• 4 posições de memória Î 4 endereços de memória
• Cada posição com 3 bits. Para uma posição de memória (que tem 3 bits) têm-se
• A cada posição de memória associa-se um endereço (que é um inteiro de 0 a 3). Î Serão necessários 2 bits
para representar um endereço (no caso geral, para 2n posições de memória serão necessários n bits – ver item
5.12).
35 36
De acordo com o valor correspondente às linhas de controle, são selecionadas as 3 linhas da posição de memória
cujo endereço é esse valor. Assim o conteúdo dessa posição de memória é “lido” e guardado no registro de depósito
MBR.
W
MBR (Memory Buffer
Register) Bit-0 do endereço-0
(Memory Address Register)
1 0 0
Bit-0 1 0 1 Bit-0 do endereço-1
0 0 0
Decodificador
Bit-0=1 Bit-1
Bit-0 do endereço-2
MAR
Bit-1=0 Bit-2
1 1 0 1
Bit-0 do endereço-3
0 1 1
Bit-3
Multiplexador
Decodificador
AND
AND
Memória 1 Para o
RAM 1 0 1 bit-0 do
AND MBR
Bit-0 do MAR=1
AND OR
Quando o valor de W é 1 então, considerando os circuitos dos elementos de memória e o decodificador, facilmente
se conclui que cada um dos bits da posição de memória apontada pelo MAR vai ficar com os valores dos AND
Bit-1 do MAR=1
respectivos bits do MBR. Neste caso, a posição de memória 3 (Bit-2 ativo) ficaria com a seqüência 101. AND
Bit-0
Uma abordagem interessante e de uso intensivo para aumentar a taxa de transferência de informações da MP sem a
necessidade de se aumentar o tamanho do barramento (fios conectores entre as diversas partes da cpu e os
Multiplexador
Decodificador
Bit-0 Bit-1
elementos externos a ela) é a "n-way interleaving", que consiste em conjunto de memórias de mesmo tamanho com
MAR
Quando, na CPU, um microprograma necessita buscar uma nova palavra, ele divide o endereço de 16 bits do nível
MBR (Memory Buffer convencional de máquina em duas partes. A parte mais direita, formada por dois bits especifica qual das memórias
Register) será usada: 0, 1, 2 ou 3. A parte mais a esquerda, formada por 14bits, especifica o endereço real da memória em
questão.
Bit-0 Bit-1 Bit-2
Após o microprograma, ter determinado qual memória usar, ele coloca os 14bits mais a esquerda do endereço
Na Figura anterior apresenta-se um esquema desse circuito. Além do registrador de endereço (MAR), do envolvido no MAR associado a memória selecionada, e inicia o processo de leitura. Enquanto o microprograma
registrador de depósito de conteúdo (MBR) e das posições de memória, é necessário um multiplexador. Este aguarda o termino da leitura, ele pode acionar a leitura de outras memórias em paralelo para buscar outros dados.
multiplexador tem:
• Uma linha de entrada para cada bit de cada uma das posições de memória ( 3 x 4 = 12) Note que as informações de endereços consecutivos k, k+1, k+2 e k+3, sempre estarão em memórias diferentes, e
• Duas linhas de entrada de controle. como resultado, ate 4 endereços (ou instruções) podem ser buscadas em paralelo. Note que este método independe
do tamanho do MBR (no exemplo 16 bits).
37 38
Memória 0 (00) 2 Memória 1 (01) 2 Memória 2 (10) 2 Memória 3 (11)2
0 Palavra 0 0 Palavra 1 0 Palavra 2 0 Palavra 3
1 Palavra 4 1 Palavra 5 1 Palavra 6 1 Palavra 7
2 Palavra 8 2 Palavra 9 2 Palavra 10 2 Palavra 11 6.3 ULA (Unidade Lógica e Aritmética)
A ULA ou ALU, pode ser vista como o coração de um processador por ser ela a responsável em realizar todas as
operações lógicas e aritméticas que constantemente ocorrem em uma maquina de von newmann.
A ULA é um circuito combinacional capaz de realizar operações elementares, que em conjunto, formam operações
complexas: soma, subtração, incremento, and, or, xor, not e etc.
Uma ULA típica possui dois barramentos de entrada de dados (X) e (Y), e um barramento de saída para os
resultados (S).
Alem dos barramentos de e/s, uma ULA também possui um barramento de controle, através do qual determina-se a
operação a ser realizada em um determinado instante, e quais linhas de saída adicionais (flags) serão acionadas para
sinalizar a ocorrência de condições especiais(e. g. carry-out, overflow, e etc)
Seleção da Seleção da
Operação Operação
Campo de 2-bits seleciona ULA
uma das quatro memórias :
Endereço de 14-bits 0,1,2 ou 3
16-bit address
Quatro memórias distintas de 214 palavras cada podem ser usadas para implementar um único espaço de endereçamento de 216 palavras S
Barramento para Saída de Dados
Observação :
Apesar de uma ULA trabalhar com dois operandos, ela também pode executar operações que envolvam apenas um
operando (armazenado no acumulador). Por esta razão, o acumulador possui uma lógica adicional além da
Define-se como barramento um conjunto de fios em paralelo, realizando uma conexão elétrica cuja representando
necessária para torná-lo um registrador de uso geral como o registrador B.
em cada fio equivale a um bit. Em geral, são usados para conectar registradores entre si. Dois registradores de 16-
bits serão conectados entre si por uma barramento de 16 fios.
O registrador de flags mostra o status referente à última operação executada. Por exemplo, se o resultado da
operação for zero, um flag (Z) é setado, indicando tal situação. Outros flags possíveis são : Carry, Paridade, Sinal,
A largura de um barramento deste tipo é dito como de 16-bits, portanto, a arquitetura de um processador
overflow, e etc.
específico que determina o tamanho das palavras e dos registradores, também é determinativo quanto ao tamanho
do barramento.
39 40
Operações com Um Operando : Clear, complementação, incremento, decremento, deslocamento à esquerda,
deslocamento à direita, carga e saída de dados são exemplos de operações que ocorrme sobre um único operando.
Operações com Dois Operandos : Soma, Subtração, Comparação, AND, OR e XOR são exemplos de operações
que ocorrem sobre dois operandos.
41