View
7
Download
0
Category
Preview:
Citation preview
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
1
MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS
A maioria dos computadores modernos consiste de dois ou mais níveis. Existem
máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível
0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos
executam os programas em linguagem de máquina do nível 1. Por razões de
precisão, temos que mencionar a existência de outro nível abaixo do nosso nível
0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da
engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de
dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos
de mais baixo nível para projetistas de computador. Se alguém quiser saber
como os transistores funcionam no interior, isso nos levará para o campo da
física no estado sólido.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
2
NÍVEL LÓGICO DIGITAL
Na parte inferior da hierarquia encontramos o nível lógico digital, o real hardware
do computador. Examinaremos muitos aspectos da lógica digital, como um
fundamento para o estudo de níveis mais altos em capítulos subsequentes. Esse
assunto está no limiar entre a ciência da computação e a engenharia elétrica,
mas o material é independente, portanto, não há necessidade de experiência
prévia de hardware nem de engenharia para entendê-lo.
Os elementos básicos que fazem parte de todos os computadores digitais são
surpreendentemente simples. Iniciaremos nosso estudo examinando esses
elementos básicos e também a álgebra especial de dois valores (álgebra
booleana) usada para analisá-los. Em seguida, examinaremos alguns circuitos
fundamentais que podem ser construídos usando simples combinações de
portas, entre eles os circuitos que efetuam a aritmética. O tópico que vem depois
desse é o modo como essas portas podem ser combinadas para armazenar
informações, isto é, como as memórias são organizadas. Logo após, chegamos
à questão das CPUs e, em especial, de como é a interface entre CPUs de um
só chip, a memória e os dispositivos periféricos. Mais adiante serão estudados
diversos exemplos da indústria de computadores.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
3
1. Portas e álgebra booleana
1.1. Portas
1.2. Álgebra booleana
1.3. Execução de funções booleanas
1.4. Equivalência de circuito
2. Circuitos lógicos digitais básicos
2.1. Circuitos integrados
2.2. Circuitos combinatórios
• Multiplexadores
• Decodificadores
• Comparadores
2.3. Circuitos aritméticos
• Deslocadores
• Somadores
• Unidades lógica e aritmética
2.4. Clocks
3. Memória
3.1. Memórias de 1 bit
3.2. Flip-flops
3.3. Registradores
3.4. Organização da memória
3.5. Chips de memória
3.6. RAMs e ROMs
• Chips de memória não volátil
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
4
1. PORTAS E ÁLGEBRA BOOLEANA
Circuitos digitais podem ser construídos com um pequeno número de elementos
primitivos combinando-os de inúmeras maneiras. Nas seções seguintes,
descreveremos tais elementos, mostraremos como eles podem ser combinados
e introduziremos uma poderosa técnica matemática que pode ser usada para
analisar seu comportamento.
1.1. PORTAS
Um circuito digital é aquele em que estão presentes somente dois valores
lógicos. O normal é que um sinal entre 0 e 0,5 volt represente um valor (por
exemplo, 0 binário) e um sinal entre 1 e 1,5 volt represente o outro valor (por
exemplo, 1 binário). Não são permitidas tensões fora dessas duas faixas.
Minúsculos dispositivos eletrônicos, denominados portas (gates), podem calcular
várias funções desses sinais de dois valores. Essas portas formam a base do
hardware sobre a qual todos os computadores digitais são construídos. Os
detalhes do funcionamento interno das portas estão fora do escopo, pois
pertencem ao nível de dispositivo, que está abaixo do nível 0. Não obstante,
agora vamos divagar um pouco e examinar rapidamente a ideia básica, que não
é difícil. No fundo, toda a lógica digital moderna se apoia no fato de que um
transistor pode funcionar como um comutador binário muito rápido. Na Figura
1(a), mostramos um transistor bipolar (representado pelo círculo) inserido em um
circuito simples. Esse transistor tem três conexões com o mundo exterior: o
coletor, a base e o emissor. Quando a voltagem de entrada, Vin, está abaixo de
certo valor crítico, o transistor desliga e age como uma resistência infinita, isso
faz com que a saída do circuito, Vout, assuma um valor próximo a Vcc, uma
voltagem regulada externamente, em geral +1,5 volt para esse tipo de transistor.
Quando Vin excede o valor crítico, o transistor liga e age como um fio, fazendo
Vout ficar conectado com a terra (por convenção, 0 volt). O importante é notar
que, quando Vin é baixa, Vout é alta, e vice-versa. Assim, esse circuito é um
inversor, que converte um 0 lógico em um 1 lógico e um 1 lógico em um 0 lógico.
O resistor (linha serrilhada) é necessário para limitar a quantidade de corrente
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
5
drenada pelo transistor, de modo que ele não queime. O tempo típico exigido
para passar de um estado para outro é tipicamente de um nanossegundo ou
menos. Na Figura 1.1(b), dois transistores estão ligados em série. Se ambas, V1
e V2, forem altas, ambos os transistores conduzirão e Vout cairá. Se qualquer
das entradas for baixa, o transistor correspondente se desligará e a saída será
alta. Em outras palavras, Vout será baixa se, e somente se, ambas, V1 e V2,
forem altas. Na Figura 1.1(c), os dois transistores estão ligados em paralelo em
vez de em série. Nessa configuração, se qualquer das entradas for alta, o
transistor correspondente ligará e conectará a saída com a terra. Se ambas as
entradas forem baixas, a saída permanecerá alta. Esses três circuitos, ou seus
equivalentes, formam as três portas mais simples e são denominadas portas
NOT, NAND e NOR, respectivamente. Portas NOT costumam ser denominadas
inversoras; usaremos os dois termos indiferentemente. Se agora adotarmos a
convenção de que “alta” (Vcc volts) é um 1 lógico e “baixa” (terra) é um 0 lógico,
podemos expressar o valor de saída como uma função dos valores de entrada.
Os símbolos usados para representar essas portas são mostrados nas figuras
1.2(a)-(c) junto com o comportamento funcional de cada circuito. Nessas figuras,
A e B são entradas e X é a saída. Cada linha especifica a saída para uma
combinação diferente das entradas.
Figura 1.1: (a) Inversor de transistor, porta NOT. (b) Porta NAND. (c) Porta NOR.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
6
Se o sinal de saída da Figura 1.1(b) for alimentado em um circuito inversor,
obtemos outro circuito com o inverso exato da porta NAND, a saber, um cuja
saída é 1 se, e somente se, ambas as entradas forem 1. Esse circuito é
denominado uma porta AND; seu símbolo e descrição funcional são dados na
Figura 1.2(d).
De modo semelhante, a porta NOR pode ser conectada a um inversor para
produzir um circuito cuja saída é 1 se quaisquer das saídas, ou ambas, for um 1,
mas 0 se ambas as entradas forem 0. O símbolo e a descrição funcional desse
circuito, denominado uma porta OR, são dados na Figura 1.2(e). Os pequenos
círculos usados como parte dos símbolos para o inversor, porta NAND e porta
NOR, são denominados bolhas de inversão. Também são usadas em outros
contextos para indicar um sinal invertido.
As cinco portas da Figura 1.2 são os principais elementos de construção do nível
lógico digital. A discussão precedente deve ter deixado claro que as portas
NAND e NOR requerem dois transistores cada, ao passo que as portas AND e
OR requerem três cada. Por essa razão, muitos computadores são baseados em
portas NAD e NOR em vez das portas mais conhecidas, AND e OR. (Na prática,
todas as portas são executadas de modo um pouco diferente, mas as NAND e
NOR ainda são mais simples do que as AND e OR) A propósito, vale a pena
observar que as portas podem perfeitamente ter mais de duas entradas. Em
princípio, uma porta NAD, por exemplo, pode ter, arbitrariamente, muitas
entradas, mas na prática não é comum encontrar mais de oito.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
7
Embora a questão do modo como são construídas as portas pertença ao nível
do dispositivo, gostaríamos de mencionar as principais famílias de tecnologia de
fabricação porque elas são citadas com muita frequência. As duas tecnologias
principais são bipolar e MOS (Metal Oxide Semiconductor – semicondutor
de óxido metálico).
Os dois principais tipos bipolares são:
• TTL (transistor-transistor Logic – lógica transistor-transistor), que há
muitos anos é o burro de carga da eletrônica digital;
• ECL (Emitter-Coupled Logic – lógica de emissor acoplado), que era usada
quando se requeria uma operação de velocidade muito alta.
Para circuitos de computador, o que predomina agora é a tecnologia MOS.
Portas MOS são mais lentas do que as TTL e ECL, mas exigem bem menos
energia elétrica e ocupam um espaço muito menor, portanto, um grande número
delas pode ser compactado e empacotado. Há muitas variedades de MOS, entre
as quais PMOS, NMOS e CMOS. Embora os modos de construção dos
transistores MOS e dos transistores bipolares sejam diferentes, sua capacidade
de funcionar como comutadores eletrônicos é a mesma. A maioria das CPUs e
memórias modernas usa tecnologia CMOS, que funciona a +1,5 volt. E isso é
tudo o que diremos sobre o nível de dispositivo.
1.2. ÁLGEBRA BOOLENA
Para descrever os circuitos que podem ser construídos combinando portas, é
necessário um novo tipo de álgebra, no qual variáveis e funções podem assumir
somente os valores 0 e 1. Essa álgebra é denominada álgebra booleana, nome
que se deve a seu descobridor, o matemático inglês George Boole (1815–1864).
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
8
Figura 1.2: Símbolos e comportamento funcional das cinco portas básicas.
Em termos estritos, estamos nos referindo a um tipo específico de álgebra
booleana, uma álgebra de comutação, mas o termo “álgebra booleana” é tão
utilizado no lugar de “álgebra de comutação” que não faremos a distinção. Assim
como há funções na álgebra “ordinária” (isto é, a álgebra do colegial), também
há funções na álgebra booleana. Uma função booleana tem uma ou mais
variáveis de entrada e produz um resultado que depende somente dos valores
dessas variáveis. Uma função simples, f, pode ser definida ao se dizer que f(A)
é 1 se A for 0 e f(A) é 0 se A for 1. Essa função é a função NOT da Figura 1.2(a).
Como uma função booleana de n variáveis só tem 2𝑛 combinações possíveis de
valores de entrada, ela pode ser completamente descrita por uma tabela com 2𝑛
linhas, na qual cada linha informa o valor da função para uma combinação
diferente de valores de entrada. Ela é denominada tabela verdade. As tabelas
da Figura 1.2 são todos exemplos de tabelas verdade. Se concordarmos em
sempre listar as linhas de uma tabela verdade em ordem numérica (base 2), isto
é, para duas variáveis na ordem 00, 01, 10 e 11, a função pode ser
completamente descrita pelo número binário de 2𝑛 bits obtido pela leitura vertical
da coluna de resultado da tabela verdade. Assim, NAD é 1110, NOR é 1000,
AND é 0001 e OR é 0111. É óbvio que só existem 16 funções booleanas de duas
variáveis, correspondentes às 16 possíveis sequências de 4 bits resultantes. Por
outro lado, a álgebra ordinária tem um número infinito de funções de duas
variáveis, nenhuma das quais pode ser descrita por meio de uma tabela de
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
9
saídas para todas as entradas possíveis, porque cada variável pode assumir
qualquer valor de um número infinito de valores possíveis.
A Figura 1.3(a) mostra a tabela verdade para uma função booleana de três
variáveis: M = f(A, B, C). Essa função é a de lógica majoritária, isto é, ela é 0 se
a maioria de suas entradas for 0, e 1 se a maioria de suas entradas for 1. Embora
qualquer função booleana possa ser completamente especificada dada sua
tabela verdade, à medida que aumenta o número de variáveis, essa notação fica
cada vez mais trabalhosa. Portanto, costuma-se usar outra notação no lugar
dela.
FIGURA 1.3: (a) Tabela verdade para a função majoritária de três variáveis. (b) Circuito para (a).
Para ver como ocorre essa outra notação, observe que qualquer função
booleana pode ser especificada ao se dizer quais combinações de variáveis de
entrada dão um valor de saída igual a 1. Para a função da Figura 1.3(a), há
quatro combinações de variáveis de entrada que fazem com que M seja 1.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
10
Por convenção, marcaremos a variável de entrada com uma barra para indicar
que seu valor é invertido. A ausência de uma barra significa que o valor não é
invertido. Além disso, usaremos a multiplicação implícita ou um ponto para
representar a função booleana AND e + para representar a função booleana
OR.
Assim, por exemplo, 𝐴�̅�𝐶 assume o valor 1 somente quando A = 1 e B = 0 e C
= 1. Além disso, 𝐴�̅� + 𝐵𝐶̅ é 1 somente quando (A = 1 e B = 0) ou (B = 1 e C =
0). As quatro linhas da Figura 3(a) que produzem bits 1 na saída são
�̅�𝐵𝐶, 𝐴�̅�𝐶, 𝐴𝐵𝐶̅ 𝑒 𝐴𝐵𝐶. A função, M, é verdadeira (isto é, 1) se qualquer uma
dessas quatro condições for verdadeira; daí, podemos escrever
𝑀 = �̅�𝐵𝐶 + 𝐴�̅�𝐶 + 𝐴𝐵𝐶̅ + 𝐴𝐵𝐶
como um modo compacto de dar a tabela verdade. Assim, uma função de n
variáveis pode ser descrita como se desse uma “soma” de no máximo 2𝑛 termos
de “produtos” de n variáveis. Essa formulação é de especial importância, como
veremos em breve, pois leva diretamente a uma execução da função que usa
portas padronizadas.
É importante ter em mente a distinção entre uma função booleana abstrata e sua
execução por um circuito eletrônico. Uma função booleana consiste em
variáveis, como A, B e C, e operadores booleanos, como AND, OR e NOT.
Ela é descrita por uma tabela verdade ou por uma função booleana como
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
11
𝐹 = 𝐴�̅�𝐶 + 𝐴𝐵𝐶̅
Uma função booleana pode ser executada por um circuito eletrônico (muitas
vezes de vários modos diferentes) usando sinais que representam as variáveis
de entrada e saída e portas como AND, OR e NOT.
1.3. Execução de funções booleanas
Como já mencionamos, a formulação de uma função booleana como uma soma
de até 2𝑛 termos produtos leva a uma possível implementação. Usando a Figura
1.4 como exemplo, podemos ver como essa implementação é efetuada. Na
Figura 1.4(b), as entradas, A, B e C, aparecem na extremidade esquerda, e a
função de saída, M, na extremidade direita. Como são necessários
complementos (inversos) das variáveis de entrada, eles são gerados tomando
as entradas e passando-as pelos inversores rotulados 1, 2 e 3. Para evitar
atravancar a figura, desenhamos seis linhas verticais, três das quais conectadas
às variáveis de entrada e três aos complementos dessas variáveis.
Tais linhas oferecem uma fonte conveniente para as entradas das portas
subsequentes. Por exemplo, as portas 5, 6 e 7 usam A como uma entrada. Em
um circuito real, essas portas provavelmente estariam ligadas direto a A sem
usar nenhum fio “vertical” intermediário.
O circuito contém quatro portas AND, uma para cada termo da equação para M
(isto é, uma para cada linha da tabela verdade que tenha um bit 1 na coluna de
resultado). Cada porta AND calcula uma linha da tabela verdade, como indicado.
Por fim, todos os termos produtos alimentam a porta lógica OR para obter o
resultado final.
O circuito da Figura 1.4(b) usa uma convenção que utilizaremos repetidas vezes
neste livro: quando duas linhas se cruzam, não há nenhuma ligação implícita a
menos que haja um ponto negro bem visível na intersecção. Por exemplo, a
saída da porta 3 cruza todas as seis linhas verticais, mas está ligada apenas a
C. É bom lembrar que alguns autores usam outras convenções.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
12
Pelo exemplo da Figura 1.4 deve ficar claro como colocar em prática um circuito
para qualquer função booleana:
1. Escreva a tabela verdade para a função.
2. Providencie inversores para gerar o complemento de cada entrada.
3. Desenhe uma porta AND para cada termo que tenha um 1 na coluna de
resultado.
4. Ligue as portas AND às entradas adequadas.
5. Alimente a saída de todas as portas AND a uma porta OR.
Embora tenhamos mostrado como qualquer função booleana pode ser
executada usando portas NOT, AND e OR, muitas vezes é conveniente realizar
circuitos usando só um tipo de porta. Felizmente, converter circuitos gerados
pelo algoritmo precedente à forma NAND pura ou NOR pura é uma operação
direta. Para fazer essa conversão, basta que tenhamos um modo de implementar
NOT, AND e OR usando um único tipo de porta. A linha superior da Figura 1.4
mostra como todas essas três podem ser implementadas usando apenas portas
NAND; a fileira de baixo mostra como isso pode ser feito usando apenas portas
NOR. (Essas operações são diretas, mas também há outras maneiras.)
Um modo de implementar uma função booleana usando somente portas NAND
ou somente portas NOR é primeiro seguir o procedimento dado anteriormente
para construí-la com NOT, AND e OR. Em seguida, substituir as portas de
múltiplas entradas por circuitos equivalentes usando portas de duas entradas.
Por exemplo, A + B + C + D pode ser computada como (A + B) + (C + D),
empregando três portas OR de duas entradas. Por fim, as portas NOT, AND e
OR são substituídas pelos circuitos da Figura 1.4.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
13
Figura 1.4 Construção de portas (a) NOT, (b) AND e (c) OR usando somente portas NAND ou
somente portas NOR.
Embora esse procedimento não resulte em circuitos ótimos, no sentido do
número mínimo de portas, ele mostra que sempre há uma solução viável. Ambas
as portas, NAND e NOR, são denominadas completas porque qualquer função
booleana pode ser calculada usando quaisquer das duas. Nenhuma outra porta
tem essa propriedade, o que é outra razão para elas serem preferidas como
blocos de construção de circuitos.
1.4. 3.1.4 Equivalência de circuito
Projetistas de circuitos muitas vezes tentam reduzir o número de portas em seus
produtos para reduzir a área da placa de circuito interno necessária para
executá-las, diminuir o consumo de potência e aumentar a velocidade. Para
reduzir a complexidade de um circuito, o projetista tem de encontrar outro circuito
que calcule a mesma função que o original, mas efetue essa operação com um
número menor de portas (ou talvez com portas mais simples, por exemplo, com
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
14
duas em vez de com quatro entradas). A álgebra booleana pode ser uma
ferramenta valiosa na busca de circuitos equivalentes.
Como exemplo de como a álgebra booleana pode ser usada, considere o circuito
e a tabela verdade para AB + AC mostrados na Figura 1.5(a). Embora ainda não
as tenhamos discutido, muitas das regras da álgebra comum também são válidas
para a booleana. Em particular, a expressão AB + AC pode ser fatorada para
A(B + C) usando a lei distributiva. A Figura 1.5(b) mostra o circuito e a tabela
verdade para A(B + C). Como duas funções são equivalentes se, e somente se,
elas tiverem a mesma saída para todas as entradas possíveis, é fácil ver pelas
tabelas verdade da Figura 1.5 que A(B + C) é equivalente a AB + AC. Apesar
dessa equivalência, o circuito da Figura 1.5(b) é claramente melhor do que o da
Figura 1.5(a), pois contém menos portas.
Figura 1.5: Duas funções equivalentes. (a) AB + AC. (b) A(B + C).
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
15
2. CIRCUITOS LÓGICO DIGITAIS BÁSICOS
Na prática, poucos circuitos são construídos porta por porta, embora tenha
havido uma época em que isso era comum. Hoje, os blocos de construção mais
comuns são módulos que contêm várias portas. Examinaremos esses blocos de
construção mais de perto e veremos como eles podem ser construídos com base
em portas individuais.
2.1. CIRCUITOS INTEGRADOS
Portas não são fabricadas nem vendidas individualmente, mas em unidades
denominadas circuitos integrados, muitas vezes denominados ICs ou chips. Um
IC é um pedaço quadrado de silício de tamanho variado, dependendo de quantas
portas são necessárias para executar os componentes do chip. Substratos
pequenos medirão cerca de 2 × 2 mm, enquanto os maiores podem ter até 18 ×
18 mm. ICs costumam ser montados em pacotes retangulares de plástico ou
cerâmica, que podem ser muito maiores que os substratos que eles abrigam, se
forem necessários muitos pinos para conectar o chip ao mundo exterior. Cada
pino se conecta com a entrada ou saída de alguma porta no chip ou à fonte
de energia, ou ao terra.
A Figura 4.1 mostra uma série de pacotes de IC comuns, usados para os chips
de hoje. Chips menores, como os usados para microcontroladores domésticos
ou chips de RAM, usarão pacotes duplos em linha (DIPs – Dual Inline Packages).
Um DIP é um pacote com duas fileiras de pinos que se encaixam em um soquete
correspondente na placa-mãe. Os pacotes mais comuns têm 14, 16, 18, 20, 22,
24, 28, 40, 64 ou 68 pinos. Para chips grandes costumam ser usados pacotes
quadrados com pinos nos quatro lados ou na parte de baixo. Dois pacotes
comuns para chips maiores são Pin Grid Arrays, ou PGAs, e Land Grid Arrays,
ou LGAs. PGAs possuem pinos na parte inferior do pacote, que se encaixam em
um soquete correspondente na placa-mãe. Soquetes PGA normalmente utilizam
um mecanismo com força de inserção nula, onde uma alavanca aplica pressão
lateral sobre todos os pinos do PGA, mantendo-o firmemente no soquete PGA.
LGAs, por outro lado, possuem pequenas plataformas planas na parte inferior do
chip, e um soquete LGA terá uma capa que se encaixa sobre o LGA e aplica
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
16
uma força para baixo no chip, garantindo que todas as plataformas do LGA
façam contato com as plataformas do soquete LGA.
FIGURA 4.1: Tipos comuns de pacotes de circuito integrado, incluindo um pacote dual-in-line,
ou DIP (a), PGA (b) e LGA (c).
Como muitos pacotes de IC têm forma simétrica, descobrir a orientação correta
é um problema constante com a instalação de IC.
• DIPs normalmente têm um entalhe em uma ponta, que combina com uma
marca corresponde no soquete DIP.
• PGAs, em geral, possuem um pino faltando, de modo que, se você tentar
inserir o PGA no soquete incorretamente, o PGA não se encaixará.
• Como os LGAs não possuem pinos, a instalação correta é imposta
colocando-se um entalhe em um ou dois lados do LGA, que corresponde
a um entalhe no soquete LGA. O LGA não entrará no soquete a menos
que os dois entalhes combinem.
Para todos os efeitos, todas as portas são ideais no sentido de que a saída
aparece logo que a entrada é aplicada. Na realidade, os chips têm um atraso de
porta finito que inclui o tempo de propagação de sinal pelo chip e o tempo de
comutação. Atrasos típicos são de centésimos de picossegundos a alguns
nanossegundos.
A tecnologia moderna vigente permite colocar mais de 1 bilhão de transistores
em um chip. Como qualquer circuito pode ser construído com base em portas
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
17
NAND, você bem poderia imaginar que um fabricante poderia produzir um chip
muito geral que contivesse 500 milhões de portas NAND. Infelizmente, um chip
como esse necessitaria de 1.500.000.000 pinos. Como o espaço-padrão entre
pinos é 1 milímetro, um chip LGA teria 38 metros de comprimento para acomodar
todos esses pinos, o que talvez tivesse um efeito negativo sobre as vendas. É
claro que a única maneira de tirar proveito da tecnologia é projetar circuitos com
uma alta relação porta/pino.
2.2. CIRCUITOS COMBINATÓRIOS
Muitas aplicações de lógica digital requerem um circuito com múltiplas entradas
e múltiplas saídas, no qual as saídas são determinadas exclusivamente pelas
entradas em questão. Esses circuitos são denominados circuitos combinatórios.
Nem todos os circuitos têm essa propriedade. Por exemplo, um circuito que
contenha elementos de memória pode perfeitamente gerar saídas que
dependem de valores armazenados, bem como de variáveis de entrada. Um
circuito que esteja executando uma tabela verdade como a da Figura 3(a) é um
exemplo típico de um circuito combinatório. Nesta seção, examinaremos alguns
circuitos combinatórios de uso frequente.
• Multiplexadores
No nível lógico, um multiplexador é um circuito com 2𝑛 entradas de dados, uma
saída de dados e 𝑛 entradas de controle que selecionam uma das entradas de
dados. Essa entrada selecionada é dirigida (isto é, roteada) até a saída. A Figura
4.1 é um diagrama esquemático de um multiplexador de oito entradas. As três
linhas de controle, A, B e C, codificam um número de 3 bits que especifica qual
das oito linhas de entrada é direcionada até a porta OR e dali até a saída. Não
importa qual valor esteja nas linhas de controle, sete das portas AND sempre
produzirão saída 0; a outra pode produzir ou um 0 ou um 1, dependendo do valor
da linha de entrada selecionada. Cada porta AND é habilitada por uma
combinação diferente das entradas de controle. O circuito do multiplexador é
mostrado na Figura 4.1.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
18
FIGURA 4.1: Circuito multiplexador de oito entradas.
Usando o multiplexador, podemos executar a função majoritária da Figura 3(a),
como mostrado na Figura 4.2(b). Para cada combinação de A, B e C, uma das
linhas de dados é selecionada. Cada entrada é ligada ou a Vcc (1 lógico) ou ao
terra (0 lógico). O algoritmo para ligar as entradas é simples: a entrada 𝐷𝑖 é a
que tem o mesmo valor da linha 𝑖 da tabela verdade. Na Figura 3(a), as linhas 0,
1, 2 e 4 são 0, portanto, as entradas correspondentes estão aterradas; as linhas
restantes são 1, portanto, estão ligadas a 1 lógico. Dessa maneira, qualquer
tabela verdade de três variáveis pode ser executada usando o chip da Figura
4.1(a).
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
19
FIGURA 4.2: (a) Multiplexador com oito entradas. (b) O mesmo multiplexador ligado para calcular
a função majoritária.
Acabamos de ver como um chip multiplexador pode ser usado para selecionar
uma das diversas entradas e como ele pode implementar uma tabela verdade.
Outra de suas muitas aplicações é como um conversor de dados paralelo para
serial. Colocando 8 bits de dados nas linhas de entrada e então escalonando as
linhas em sequência de 000 a 111 (binário), os 8 bits são colocados em série na
linha de saída. Uma utilização típica da conversão paralela para serial é um
teclado, onde cada acionamento de uma tecla define implicitamente um número
de 7 ou 8 bits que deve ser enviado por um enlace serial, como USB.
O inverso de um multiplexador é um demultiplexador, que dirige sua única
entrada até uma das 2𝑛 saídas, dependendo dos valores das 𝑛 linhas de
controle. Se o valor binário das linhas de controle for k, é selecionada a saída k.
• Decodificadores
Como um segundo exemplo, agora vamos examinar um circuito que toma um
número de 𝑛 bits como entrada e o usa para selecionar (isto é, definir em 1)
exatamente uma das 2𝑛 linhas de saída. Tal circuito, ilustrado para 𝑛 = 3 na
Figura 4.3, é denominado decodificador. Para ver como um decodificador pode
ser útil, imagine uma pequena memória que consiste em oito chips, cada um
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
20
contendo 256 MB. O chip 0 tem endereços de 0 a 256 MB, o chip 1 tem
endereços de 256 MB a 512 MB e assim por diante. Quando um endereço é
apresentado à memória, os 3 bits de ordem alta são usados para selecionar um
dos oito chips. Usando o circuito da Figura 4.3, esses 3 bits são as três entradas,
A, B e C.
Dependendo das entradas, exatamente uma das oito linhas de saída, 𝐷0, ..., 𝐷7,
é 1; o resto é 0. Cada linha de saída habilita um dos oito chips de memória. Como
só uma linha de saída é colocada em 1, apenas um chip é habilitado.
FIGURA 4.3: Circuito decodificador 3 para 8.
A operação do circuito da Figura 4.3 é direta. Cada porta AND tem três entradas,
das quais a primeira é 𝐴 ou �̅�, a segunda é 𝐵 ou �̅� e a terceira é 𝐶 ou 𝐶̅. Cada
porta é habilitada por uma combinação diferente de entradas:
𝐷0 por �̅� �̅� 𝐶̅,
𝐷1 por �̅� �̅� 𝐶, e assim por diante.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
21
• Comparadores
Outro circuito útil é o comparador, que compara duas palavras de entrada. O
comparador simples da Figura 4.4 toma duas entradas, A e B, cada uma de 4
bits de comprimento e produz um 1 se elas forem iguais e um 0 se elas não o
forem. O circuito é baseado na porta XOR (EXCLUSIVE OR), que produz um 0
se suas entradas forem iguais e um 1 se elas forem diferentes. Se as duas
palavras de entrada forem iguais, todas as quatro portas xor devem produzir 0.
Então, pode-se efetuar uma operação OR nesses quatro sinais; se o resultado
for 0, as palavras de entrada são iguais; caso contrário, não. Em nosso exemplo,
usamos uma porta NOR como o estágio final para reverter o sentido do teste:
𝐴 𝐵 𝐴 𝑋𝑂𝑅 𝐵
0 0 0
0 1 1
1 0 1
1 1 0
1 significa igual, 0 significa diferente.
𝐴 ⟹ 𝐴0, 𝐴1, 𝐴2, 𝐴3
𝐴3 𝐴2 𝐴1 𝐴0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
𝐵 ⟹ 𝐵0, 𝐵1, 𝐵2, 𝐵3
𝐵3 𝐵2 𝐵1 𝐵0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
Figura 4.4: Comparador simples de 4 bits.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
22
2.3. CIRCUITOS ARITMÉTICOS
Começaremos com um simples deslocador de 8 bits e em seguida veremos
como são construídos os somadores e, por fim, estudaremos as unidades de
lógica e aritmética, que desempenham um papel fundamental em qualquer
computador.
• Deslocadores
Nosso primeiro circuito aritmético é um deslocador de oito entradas e oito saídas
(veja a Figura 2.3.1). Oito bits de entrada são apresentados nas linhas D0, ...,
D7. A saída, que é apenas a entrada deslocada de 1 bit, está nas linhas S0, ...,
S7. A linha de controle, C, determina a direção do deslocamento, 0 para a
esquerda e 1 para a direita. Quando o deslocamento for para a esquerda, um 0
é inserido no bit 7. De modo semelhante, quando o deslocamento for para a
direita, um 1 é inserido no bit 0.
FIGURA 2.3.1: Deslocador esquerda/direita de 1 bit.
Para ver como o circuito funciona, observe os pares de portas AND para todos
os bits, exceto as portas na extremidade. Quando C = 1, o membro da direita de
cada par é ligado, passando o bit de entrada correspondente para a saída. Como
a porta AND da direita está ligada à entrada da porta OR à sua direita, é
executado um deslocamento para a direita. Quando C = 0, o membro da
esquerda do par da porta AND é ligado, o que provoca um deslocamento para a
esquerda.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
23
• Somadores
Um computador que não possa somar números inteiros é quase inimaginável.
Por consequência, um circuito de hardware para efetuar adição é uma parte
essencial de toda CPU. A tabela verdade para adição de inteiros de 1 bit é
mostrada na Figura 2.3.2(a). Há duas saídas presentes: a soma das entradas, A
e B, e o transporte (vai-um) para a posição seguinte (à esquerda). Um circuito
para calcular o bit de soma e o de transporte é ilustrado na Figura 2.3.2 (b). Esse
circuito simples é conhecido como um meio-somador.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
24
Figura 2.3.2: (a) Tabela verdade para adição de 1 bit. (b) Circuito para um meio-somador.
Embora um meio-somador seja adequado para somar os bits de ordem baixa de
duas palavras de entrada de múltiplos bits, ele não servirá para uma posição de
bit no meio da palavra porque não trata o transporte de bit da posição à direita
(vem-um). Em seu lugar, precisamos do somador completo da Figura 2.3.2. Pela
inspeção do circuito, deve ficar claro que um somador completo é composto de
dois meios-somadores. A linha de saída Soma é 1 se um número ímpar A, B e o
vem-um (carry in) forem 1. O vai-um (carry out) é 1 se A e B forem ambos 1
(entrada esquerda para a porta or) ou se exatamente um deles for 1 e o bit de
vem-um (carry in) também é 1. Juntos, os dois meios-somadores geram a soma
e também os bits de transporte.
Para construir um somador para palavras de 16 bits, por exemplo, basta repetir
o circuito da Figura 2.3.2(b) 16 vezes. O vai-um de um bit é usado como vem-
um para seu vizinho da esquerda. O vem-um do bit da extrema direita está ligado
a 0. Esse tipo de somador é denominado somador de transporte encadeado
porque, na pior das hipóteses, somando 1 a 111...111 (binário), a adição não
pode ser concluída até que o vai-um tenha percorrido todo o caminho do bit da
extrema direita até o da extrema esquerda. Também existem somadores que
não têm esse atraso e, portanto, são mais rápidos – em geral, são os preferidos.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
25
Como exemplo simples de um somador mais rápido, considere subdividir um
somador de 32 bits em uma metade inferior e uma metade superior de 16 bits
cada. Quando a adição começa, o somador superior ainda não pode trabalhar
porque não sabe qual é o vem-um por 16 tempos de adição.
Figura 2.3.2: Tabela verdade para somador completo. (b) Circuito para um somador completo.
Contudo, considere essa modificação no circuito. Em vez de uma única metade
superior, vamos dar ao somador duas metades superiores em paralelo
duplicando o hardware da metade superior. Desse modo, agora o circuito
consiste em três somadores de 16 bits: uma metade inferior e duas metades
superiores, U0 e U1 que funcionam em paralelo. Um 0 é alimentado em U0 como
vai-um; um 1 é alimentado em U1 como vai-um. Agora, ambos podem iniciar ao
mesmo tempo do que a metade inferior, mas somente um estará correto. Após
16 tempos de adição de bits, já se saberá qual é o vem-um que deve ir para a
metade superior, portanto, agora já se pode selecionar a metade superior correta
com base em duas respostas disponíveis. Esse estratagema reduz o tempo de
adição por um fator de dois. Um somador como esse é denominado somador de
seleção de transporte. Então, o estratagema pode ser repetido para construir
cada somador de 16 bits com base em somadores de 8 bits repetidos e assim
por diante.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
26
• Unidades lógica e aritmética
Grande parte dos computadores contém um único circuito para efetuar AND, OR
e soma de duas palavras de máquina. No caso típico, tal circuito para palavras
de n bits é composto de n circuitos idênticos para as posições individuais de bits.
A Figura Figura 2.3.3 é um exemplo simples de um circuito desses, denominado
unidade lógica e aritmética (ULA) (Arithmetic Logic Unit – ALU). Ela pode calcular
qualquer uma das quatro funções:
𝐴 and 𝐵, 𝐴 or 𝐵, �̅� ou 𝐴 + 𝐵,
dependendo de as linhas de entrada de seleção de função 𝐹0 e 𝐹1 conterem 00,
01, 10 ou 11 (binário). Note que, aqui, 𝐴 + 𝐵 significa a soma aritmética de 𝐴 e
𝐵, e não a operação booleana OR.
O canto inferior esquerdo de nossa ULA contém um decodificador de 2 bits
para gerar sinais de enable (habilitação) para as quatro operações, com
base nos sinais de controle 𝐹0 e 𝐹1. Dependendo dos valores de 𝐹0 e 𝐹1,
exatamente uma das quatro linhas de habilitação é selecionada. Ativar essa linha
permite que a saída para a função selecionada passe por ela até a porta OR
final, para saída.
O canto superior esquerdo contém a lógica para calcular 𝑨 AND 𝑩, 𝑨 OR, 𝑩
e �̅�, mas no máximo um desses resultados é passado para a porta or final,
dependendo das linhas de habilitação que saem do decodificador. Como
exatamente uma das saídas do decodificador será 1, exatamente uma das
quatro portas AND que comandam a porta OR será habilitada; as outras três
resultarão em 0, independente de 𝐴 e 𝐵.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
27
Figura 2.3.3: ULA de 1 bit.
Além de poder usar A e B como entradas para operações lógicas ou aritméticas,
também é possível forçar quaisquer delas para 0 negando ENA ou ENB,
respectivamente. Também é possível obter �̅� ativando INVA. Em condições
normais, ENA e ENB são ambas 1 para habilitar ambas as entradas e INVA é 0.
Nesse caso, A e B são apenas alimentados na unidade lógica, sem modificação.
O canto direito inferior da ULA contém um somador completo para calcular
a soma de A e B, incluindo manipulação de transportes (vai-um e vem-um),
porque é provável que, em seu devido tempo, vários desses circuitos serão
ligados juntos para efetuar operações de palavra inteira. Na verdade, existem
circuitos como o da Figura 2.3.3 que são conhecidos como segmentos de bits
(bit slices). Eles permitem que o projetista do computador monte uma ULA da
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
28
largura que quiser. A Figura 2.3.4 mostra uma ULA de 8 bits montada com 8
segmentos (slices) de ULA de 1 bit. O sinal inc só é útil para operações de
adição. Quando presente, aumenta o resultado (isto é, soma 1 a ele),
possibilitando o cálculo de somas como A + 1 e A + B + 1.
Figura 2.3.4: Oito segmentos (slices) de ULA de 1 bit conectados para formar uma ULA de 8
bits. Os sinais de habilitação e inversão não são mostrados por simplicidade.
2.4. Clocks
Em muitos circuitos digitais, a ordem em que os eventos ocorrem é crítica. Às
vezes um evento deve preceder outro, às vezes dois eventos devem ocorrer
simultaneamente. Para permitir que os projetistas consigam as relações de
temporização requeridas, muitos circuitos digitais usam clocks para prover
sincronização. Nesse contexto, um clock é um circuito que emite uma série de
pulsos com uma largura de pulso precisa e intervalos precisos entre pulsos
consecutivos. O intervalo de tempo entre as arestas correspondentes de dois
pulsos consecutivos é denominado tempo de ciclo de clock. Em geral, as
frequências de pulso estão entre 100 MHz e 4 GHz, correspondendo a ciclos de
clock de 10 nanossegundos a 250 picossegundos. Para conseguir alta precisão,
a frequência de clock normalmente é controlada por um oscilador de cristal.
Muitos eventos podem ocorrer dentro de um computador durante um único ciclo
de clock. Se eles devem ocorrer em uma ordem específica, o ciclo de clock deve
ser dividido em subciclos. Uma maneira comum de prover resolução superior à
do clock básico é aproveitar a linha de clock primária e inserir um circuito com
um atraso conhecido, gerando assim um sinal de clock secundário deslocado em
certa fase em relação ao primeiro, conforme mostra a Figura 2.4.1 (a). O
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
29
diagrama de temporização da Figura 2.4.1(b) dá quatro referências de tempo
para eventos discretos:
1. Fase ascendente de C1.
2. Fase descendente de C1.
3. Fase ascendente de C2.
4. Fase descendente de C2.
Vinculando diferentes eventos às várias fases, pode-se conseguir a sequência
requerida. Se forem necessárias mais do que quatro referências de tempo dentro
de um ciclo de clock, podem-se puxar mais linhas da linha primária, com
diferentes atrasos, se for preciso.
Em alguns circuitos, estamos interessados em intervalos de tempo em vez de
instantes discretos de tempo. Por exemplo, pode-se permitir que algum evento
aconteça toda vez que C1 estiver alto, em vez de exatamente na fase
ascendente. Outro evento só poderá acontecer quando C2 estiver alto. Se forem
necessários mais de dois intervalos diferentes, podem ser instaladas mais linhas
de clock ou pode-se fazer com que os estados altos dos dois clocks se
sobreponham parcialmente no tempo. No último caso, podem-se distinguir
quatro intervalos distintos: 𝐶1̅̅̅̅ AND 𝐶2̅̅̅̅ , 𝐶1̅̅̅̅ AND 𝐶2, C1 AND 𝐶2̅̅̅̅ e C1 AND 𝐶2.
A propósito, clocks são simétricos, com o tempo gasto no estado alto igual ao
tempo gasto no estado baixo, como mostra a Figura 3.20(b). Para gerar um trem
de pulsos assimétrico, o clock básico é deslocado usando um circuito de atraso
e efetuando uma operação AND com o sinal original, como mostra a Figura 2.4.1
abaixo como C.
Figura 2.4.1: (a) Um clock. (b) Diagrama de temporização para o clock. (c) Geração de um clock
assimétrico.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
30
3. MEMÓRIAS
3.1. Memórias de 1 bit
Para criar uma memória de 1 bit (“latch”), precisamos de um circuito que “se
lembre”, de algum modo, de valores de entrada anteriores. Tal circuito pode ser
construído com base em duas portas NOR, como ilustrado na Figura 3.1(a).
Circuitos análogos podem ser construídos com portas NAND, porém, não vamos
mais mencioná-los porque são conceitualmente idênticos às versões nor.
O circuito da Figura 3.1(a) é denominado latch SR. Ele tem duas entradas, S,
para ativar (setting) o latch, e R, para restaurá-lo (resetting), isto é, liberá-lo. O
circuito também tem duas saídas, 𝑄 e �̅�, que são complementares, como
veremos em breve. Ao contrário de um circuito combinacional, as saídas do latch
não são exclusivamente determinadas pelas entradas atuais.
Figura 3.1: (a) Latch nor no estado 0. (b) Latch nor no estado 1. (c) Tabela verdade para nor.
Para ver como isso ocorre, vamos supor que ambos, S e R, sejam 0, o que é
verdade na maior parte do tempo. Apenas para polemizar, vamos supor que 𝑄 =
0. Como Q é realimentado para a porta NOR superior, ambas as suas entradas
são 0, portanto, sua saída, �̅�, é 1. O 1 é realimentado para a porta inferior que,
então, tem entradas 1 e 0, resultando em Q = 0. Esse estado é no mínimo
coerente e está retratado na Figura 3.1(a).
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
31
Agora, vamos imaginar que Q não seja 0, mas 1, com R e S ainda 0. A porta
superior tem entradas de 0 e 1, e uma saída, �̅�, de 0, que é realimentada para a
porta inferior. Esse estado, mostrado na Figura 3.21(b), também é coerente. Um
estado com as duas saídas iguais a 0 é incoerente, porque força ambas as portas
a ter dois 0 como entrada, o que, se fosse verdade, produziria 1, não 0, como
saída. De modo semelhante, é impossível ter ambas as saídas iguais a 1, porque
isso forçaria as entradas a 0 e 1, o que resultaria 0, não 1. Nossa conclusão é
simples: para R = S = 0, o latch tem dois estados estáveis, que denominaremos
0 e 1, dependendo de Q.
Agora, vamos examinar o efeito das entradas sobre o estado do latch. Suponha
que S se torna 1 enquanto Q = 0. Então, as entradas para a porta superior são
1 e 0, forçando a saída �̅� a 0. Essa mudança faz ambas as entradas para a porta
inferior serem 0, forçando a saída para 1. Portanto, ativar S (isto é, fazer com
que seja 1) muda o estado de 0 para 1. Definir R em 1 quando o latch está no
estado 0 não tem efeito algum porque a saída da porta NOR inferior é 0 para
entradas de 10 e entradas de 11.
Usando raciocínio semelhante, é fácil ver que definir S em 1 quando em estado
Q = 1 não tem efeito algum, mas definir R leva o latch ao estado Q = 0.
Resumindo, quando S é definido em 1 momentaneamente, o latch acaba no
estado Q = 1, pouco importando seu estado anterior. Da mesma maneira, definir
R em 1 momentaneamente força o latch ao estado Q = 0. O circuito “se lembra”
se foi S ou R definido por último. Usando essa propriedade podemos construir
memórias de computadores.
• Latches SR com clock
Muitas vezes é conveniente impedir que o latch mude de estado, a não ser em
certos momentos especificados. Para atingir esse objetivo, fazemos uma ligeira
modificação no circuito básico, conforme mostra a Figura 3.2, para obter um latch
SR com clock.
Arquitetura de Computadores
Nível 0: Lógico Digital – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
32
Figura 3.2: Latch SR com clock.
Esse circuito tem uma entrada adicional, o clock, que em geral é 0. Com o clock
em 0, ambas as portas AND geram saída 0, independentemente de ser S e R, e
o latch não muda de estado. Quando o clock é 1, o efeito das portas AND
desaparece e o latch se torna sensível a S e R. Apesar de seu nome, o sinal do
clock não precisa ser gerado por um clock. Os termos enable e strobe também
são muito usados para indicar que a entrada do clock é 1; isto é, o circuito é
sensível ao estado de S e R.
Até aqui evitamos falar no que acontece quando ambos, S e R, são 1, por uma
boa razão: o circuito se torna não determinístico quando ambos, R e S,
finalmente retornam a 0. O único estado coerente para S = R = 1 é 𝑄 = �̅� = 0;
porém, assim que ambas as entradas voltam para 0, o latch deve saltar para um
de seus dois estados estáveis. Se quaisquer das entradas cair para 0 antes da
outra, a que permanecer em 1 por mais tempo vence, porque, quando apenas
uma entrada for 1, ela força o estado. Se ambas as entradas voltarem a 0 ao
mesmo tempo (o que é muito improvável), o latch salta aleatoriamente para um
de seus estados estáveis.
Recommended