Portas Lógicas Básicas
Portas Lógicas Básicas
Portas Lógicas Básicas
Objetivos .....................................................................................................................................3
Introdução ..................................................................................................................................3
1. Portas básicas ...................................................................................................................3
1.1. Porta E (AND) ..............................................................................................................3
1.2. Porta OU (OR)..............................................................................................................4
1.3. Porta NÃO (NOT) .........................................................................................................5
2. Portas compostas .............................................................................................................5
2.1. Porta NÃO-E (NAND) ..................................................................................................5
2.2. Porta NÃO-OU (NOR) .................................................................................................6
2.3. Porta OU-EXCLUSIVO (OR-EXCLUSIVO) ...............................................................6
3. Álgebra Booleana ..............................................................................................................8
4. Circuitos Combinacionais ............................................................................................. 14
4.1. Multiplexadores .......................................................................................................... 14
4.2. Decodificadores ......................................................................................................... 15
4.3. Matriz Lógica Programável ....................................................................................... 16
4.4. Comparador................................................................................................................ 17
4.5. Somador ..................................................................................................................... 18
4.6. Deslocador ................................................................................................................. 21
5. Circuitos Sequenciais ....................................................................................................21
5.1. Flip-Flop .......................................................................................................................... 22
5.2. Registrador de Deslocamento ...................................................................................... 28
5.3. Contadores ..................................................................................................................... 29
6. Minimização de Circuitos............................................................................................... 32
Referencias/Vídeos/Leituras .................................................................................................36
Objetivos
Introdução
As portas não têm nenhuma memória. O valor da saída depende somente do valor
atual das entradas. Esse fato torna possível usar uma tabela de verdade para
descrever inteiramente o comportamento de uma porta. Para representar
matematicamente a lógica digital, utilizamos a Álgebra de Boole1.
1. Portas básicas
Portas básicas são portas fundamentais que podem formar outras portas com
funções especiais. Nós consideramos geralmente três tipos básicos das portas: as
portas E, as portas OU e as portas NÃO (ou inversores).
1
Álgebra de Boole foi criada pelo matemático George Boole no século XIX com objetivo de definir uma
série de operações lógicas aplicadas a sistemas binários (0s e 1s). Esta álgebra permite realizar inferências
lógicas em computadores binários.
escolhido porque a saída é 1 se e somente se a primeira entrada e a segunda
entrada, e,…, e a n-ésima entrada forem 1.
A tabela de verdade para uma porta E com duas entradas é mostrada abaixo:
A tabela de verdade para uma porta OU com duas entradas é mostrada abaixo:
1.3. Porta NÃO (NOT)
A porta NÃO também é conhecida como inversor e tem exatamente uma entrada e
uma saída. O valor da saída é 1 se e somente se a entrada é 0. Se não, a saída é
0, ou seja, o valor da saída é exatamente o oposto do valor da entrada.
2. Portas compostas
Às vezes, é prático combinar funções das portas básicas em portas mais complexas
a fim reduzir o espaço em diagramas de circuito. Nesta seção, nós mostraremos
algumas portas compostas junto com suas tabelas de verdade.
desenha-se uma única porta-AND com um pequeno anel na saída, como este:
A porta NÃO-E (NAND), assim como a porta-E, pode ter um número arbitrário de
entradas.
A tabela de verdade para a porta NAND é semelhante à tabela para porta-AND,
exceto que todos os valores da saída são invertidos:
desenha-se uma única porta OU com um pequeno anel na saída como este:
A porta NÃO-OU (NOR) , assim como a porta OU (OR) pode ter um número
arbitrário de entradas.
A tabela de verdade para a porta NÃO-OU (NOR) é semelhante à tabela para porta
OU (OR), exceto que todos os valores da saída são invertidos:
A porta OU-EXCLUSIVO (XOR) é similar a uma porta OU. Apesar de poder ter um
número arbitrário de entradas, normalmente representamos apenas duas. O valor
da saída é 1 se somente uma das entradas é 1, e a outra é 0, por isso, se diz OU-
EXCLUSIVO (OR-EXCLUSIVO). Se não, a saída é 0. Assim, em vez de desenhar
diversas portas como esta,
A tabela de verdade para uma porta ou-exclusivo com duas entradas é mostrada
abaixo:
Mas para que serve uma porta OR-EXCLUSIVO? Ela é um bloco essencial
para a construção de um circuito muito útil em computadores, o SOMADOR.
̅ ̅
A Figura seguinte 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.
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 tabela acima, há quatro combinações
de variáveis de entrada que fazem com que M seja 1. 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, ABC 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 anterior que produzem
bits 1 na saída são: ̅ , , ̅e . A função, M, é verdadeira (isto é, 1) se
qualquer uma dessas quatro condições for verdadeira; daí, podemos escrever:
Como uma álgebra a álgebra booleana apresenta axiomas e leis. Algumas
identidades desta álgebra é mostrado na tabela abaixo:
A próxima Figura 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 uma força para
baixo no chip, garantindo que todas as plataformas do LGA façam contato com as
plataformas do soquete LGA.
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 picos segundos a alguns nanos segundos.
Vimos como executar tabelas verdade e outros circuitos simples usando portas
individuais. 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. Nas próximas seções,
examinaremos esses blocos de construção mais de perto e veremos como eles
podem ser construídos com base em portas individuais.
4.1. Multiplexadores
MUX
4.2. Decodificadores
Uma matriz lógica programável, também conhecido por PAL (Programable Array
Lógic) ou PLD (Programmable logic device) é um dispositivo eletrônico de lógica
digital programável que possibilita implementar uma grande variedade de circuitos
combinacionais.
Entretanto, ao contrário de uma porta lógica fixa, que tem uma função determinada,
um dispositivo de matriz lógica programável tem uma função indefinida no momento
de sua fabricação. O circuito deve ser programado para executar a função
desejada. Existe uma gama enorme de fabricantes de dispositivos programáveis e
de categorias de dispositivos, cada um com uma aplicação específica. Alguns
dispositivos são programáveis apenas uma vez, e outros podem ser programados
várias vezes. Alguns dispositivos reprogramáveis perdem sua programação
quando desligados, e outros mantêm a gravação mesmo quando a energia é
desligada.
A etapa seguinte é uma matriz de portas OR, que permite a combinação de todas
as entradas E. Nesse caso temos um fusível, queimado no processo de gravação,
que vai definir quais funções lógicas serão implementadas para cada saída. Essa
etapa gera as somas dos produtos desejados. Com essa organização, podemos
implementar qualquer função de lógica binária.
4.4. Comparador
4.5. Somador
Meio somado
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.
5. Circuitos Sequenciais
Para que um dispositivo sirva como uma memória, deve ter três
características:
• deve haver uma maneira de atribuir, pelo menos uma vez, o seu estado.
É possível produzir circuitos digitais com memória usando portas lógicas que já
foram vistas. Para fazer isso, nós precisamos introduzir o conceito de realimentação
(feedback).
Até agora, o fluxo lógico nos circuitos que estudamos foi da entrada à saída, ou um
circuito “acíclico”. Agora nós introduziremos um circuito em que a saída realimenta
a sua entrada, permitindo realizar a manutenção de um estado, mesmo quando a
informação na entrada cessa.
5.1. Flip-Flop
A saída da porta NOR é verdadeira somente quando ambas as entradas são falsas.
A saída de cada uma das portas NOR é realimentada de volta à entrada da outra
porta. Isso significa que, se a saída de uma porta NOR é verdadeira, a saída da
outra deve ser falsa. Se a saída Q da parte superior da porta NOR é verdadeira ou
1, isso significa que uma das entradas da porta do NOR de baixo, é verdadeira,
e a saída do NOR de baixo deve ser falsa.
Para que a saída do NOR superior ser verdadeira, ambas as suas entradas têm
que ser falsas.
Ao acionar a entrada S, a saída da porta NOR de baixo torna-se falso, e a saída
da porta Q NOR superior, é forçada a verdadeiro. Ao acionar S outra vez e desligá-
lo em seguida, a saída do circuito permanece inalterada. O que aconteceu é que
nós armazenamos o valor do S no circuito que permanece S mesmo que altere a
entrada. Os valores de saída Q e são sempre opostos.
Isto para impedir a possibilidade de uma condição indefinida que ocorre quando as
entradas de S e de R estão em nível 1 quando a entrada de relógio habilita a porta
E de um flip-flop SR, nós devemos garantir que as portas não deixarão ocorrer essa
2
Condição de corrida é uma falha em sistema eletrônico ou programa de computador em que o resultado
do processo é inesperadamente dependente da sequência ou sincronia de outros eventos.
situação. Ao mesmo tempo, nós ainda queremos que o flip-flop deve poder mudar
o estado em cada transição da entrada de relógio CLK, se os sinais da lógica da
entrada JK estiverem em 1.
Mas há uma diferença. Como uma das duas entradas da lógica é sempre
desabilitada de acordo com o estado de saída do flip-flop, o latch mestre não pode
mudar o estado enquanto a entrada de CLK estiver em 1. Em lugar disso, a entrada
de habilitação pode mudar o estado do latch mestre apenas uma vez, depois da
qual ele não mudará outra vez. Isso não acontecia com o flip-flop RS.
Uma vez que nós aplicamos a ideia de usar um relógio no nosso latch SR, nós
podemos começar nos livrando do problema de fazer S = R = 1 e simplificar a
entrada a nosso circuito.
O esquema do circuito de figura circuito é tal circuito. Tem uma entrada de dados
D e uma entrada de controle C usado apara relógio. A entrada de dados é
conectada através do E da porta à entrada de S de um latch SR. É conectada
igualmente através de um inversor e o E da porta à entrada de R. As portas são
conectadas à entrada de C do circuito. Se C é falso, nenhum sinal alcança a trava
e seu estado permanece inalterado. Se C é verdadeiro, e D é verdadeiro, a entrada
de S é verdadeira, e o valor armazenado tem um valor de verdade que é igual ao
D. Se C é verdadeiro, e D é falso, a entrada de R da trava está conduzida através
do inversor e um valor de falso, que é igual a D, é armazenado.
Agora nesse exemplo, o dado paralelo é aplicado as portas PA a PD. Observe que
o bit mais significativo é aplicado na extremidade direita do circuito, pois este será
o primeiro a ser transmitido, enquanto PD será o último. A cada ciclo de relógio, o
dado da porta D é transferido para a porta Q, que está ligada à porta D do flip-flop
seguinte. Ao final de 4 ciclos, em que 4 é o tamanho da palavra desse exemplo,
podemos ler os dados serializados através da porta Q do último flip-flop.
5.3. Contadores
Uma exigência comum em circuitos digitais é realizar contagem, tanto para frente
como para trás. Os relógios digitais pulsos estão em toda parte; os temporizadores
são encontrados em uma grande variedade de equipamentos, como, fornos de
micro-ondas, máquinas de lavar, além dos vários dispositivos em automóveis.
A figura seguiinte mostra o tipo o mais básico do circuito de contagem binário. Esse
contador é contruído com dois flip-flops JK, onde a saída Q do primeiro é ligada à
porta de relógio do segundo flip--flop. O flip-flop JK apresenta um comportamento
interessante: quando ambas as portas, J e K, estão em 1, na transição do relógio,
a saída Q vai mudar de estado. Assim, quando ocorre uma transição na porta de
relógio de 1 para 0, a saída Q vai trocar de nível.
Numa expressão booleana quando todos seus termos são representado por
funções AND contendo todas variáveis em funções OR, dizemos que temos
Termos Máximos (MAXTERMS) da função; isto porque a função é verdadeira
para o número máximo de parcelas verdadeiras, presentes na expressão. Assim:
Quando a expressão contem em cada um dos seus termos todas suas variáveis
em função NAND e conectados por uma função OR, denominamos Termos
Mínimos (MINTERMS). Assim:
Ou:
Ou:
Os métodos mais usados na minimização de funções são:
método algébrico;
mapas de Karnaugh (MK);
método tabular de Quine McCluskey e
algoritmos computacionais.