Parte # 3 - Circuitos Combinato´riosjacoud/cefet/EletronicaDigital02a.pdf · • VHDL fornece os...

57
CEFET Departamento de Engenharia El´ etrica - DEPEL GELE 7163 Eletrˆ onica Digital Parte # 3 - Circuitos Combinat´ orios Prof. Alessandro Jacoud Peixoto 1

Transcript of Parte # 3 - Circuitos Combinato´riosjacoud/cefet/EletronicaDigital02a.pdf · • VHDL fornece os...

CEFET

Departamento de Engenharia Eletrica - DEPEL

GELE 7163 Eletronica Digital

Parte # 3 - Circuitos Combinatorios

Prof. Alessandro Jacoud Peixoto

1

GELE 7163 Eletronica Digital 2

Referencias :

• Notas de Aula.

• Mendonca, Alexandre e Zelenovsky, Ricardo, Eletronica Digital: Curso Pratico

e Exercıcios, MZ Editora Ltda, 2004, ISBN: 85-87385-10-0.

• Tocci, R.J., Widmer, N.S., Moss, G.L. - Sistemas Digitais, Princıpios e

Aplicacoes, 10a Edicao, Sao Paulo: Pearson Prentice Hall, 2007, 804 p., ISBN

9788576050957.

• Ercegovac, Milos , Lang, Tomas - Introducao aos Sistemas Digitais - Bookman.

• Wakerly, John F., Digital Designs Principles and Practices, 3o edicao, Prentice

Hall, 1990.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 3

3 - Programmable Logic Array (PLA)

• Um PLA e um dispositivo combinacional com 2 nıveis de AND-OR que pode

ser programado para realizar qualquer expressao logica de soma-de-produtos.

• Um PLA e limitado por: (i) Numero de entradas (n), (ii) Numero de saıdas

(m), (iii) Numero de termos produto (p).

• Utiliza-se a nomenclatura: “n × m PLA com p termos produto”. Geralmente,

p << 2n.

• Um n × m PLA com p termos produto contem p portas AND de 2n-entradas e

m portas OR de p-entradas.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 4

2 - Programmable Logic Array (PLA)

• E o primeiro PLD (Programmable Logic Device).

• Cada entrada e conectada a um buffer que produz duas versoes: original e

complementar.

• Conexoes potenciais sao indicadas por um ×.

• As conexoes sao feitas por fusıveis.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 5

2 - Programmable Logic Array (PLA)

• Um 4 × 3 PLA com 6 termos produto.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 6

2 - Programmable Logic Array (PLA)

Representacao compacta do 4 × 3 PLA com 6 termos produto.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 7

2 - Programmable Logic Array (PLA)

O1 = I1.I2 + I1.I2.I3.I4 O2 = I1.I3 + I1.I3.I4 + I2 O3 =?

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 8

2 - Programmable Array Logic (PAL)

• Um dispositivo PAL possui uma matriz fixa de portas OR e termos produto nao

sao compartilhados pelas saıdas.

• Um PAL e geralmente mais rapido do que um PLA similar.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 9

2 - Programmable Array Logic (PAL) – PAL16L8

Parte de um diagrama logico do PAL 16L8.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 10

2 - Decodificadores

• Um decodificador e um circuito que converte entradas codificadas em saıdas

codificadas.

• Geralmente, a entrada possui menos bits do que a saıda.

• O decodificador mais usado e o decodificador n-para-2n (decodificador binario).

• Apenas uma das 2n saıdas e ativada de acordo com a entrada de n bits.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 11

2 - Exemplo: Decodificadores 2-para-4

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 12

2 - Outro Exemplo: Decodificadores 74 × 139

O CI 74 × 139 possui dois decodificadores independentes 2-para-4.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 13

2 - Mais um Outro Exemplo: Decodificadores 74 × 138

O CI 74 × 138 possui um decodificador 3-para-8.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 14

2 - Combinacao de Decodificadores

• Decodificadores podem ser combinados (cascateados de forma hierarquica)

para decodificar palavras maiores.

• Um decodificador 4-para-16 (= 24) pode ser construıdo com dois

decodificadores de 2-para-4.

• Um decodificador 5-para-32 pode ser construıdo com um decodificador de

2-para-4 e quatro decodificadores de 3-para-8.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 15

2 - Exemplo: Decodificador de 4-para-16

U1 e habilitado quando N3 = 0 e U2 e habilitado quando N3 = 1.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 16

2 - Exemplo: Decodificador de 5-para-32

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 17

2 - Decodificador em VHDL

Descricao estrutural equivalente ao circuito:

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 18

2 - Decodificador em VHDL

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 19

2 - Decodificador em VHDL – Fluxo de Dados

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 20

2 - Decodificador em VHDL – Metodo Comportamental

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 21

2 - Decodificadores de 7 Segmentos

• Um display de 7-segmentos e usado em relogios, calculadoras e outros

dispositivos para mostrar dados decimais. Um dıgito e mostrado iluminando

um subconjunto dos 7 segmentos.

• Decodificador de 7-segmentos

– entrada: 4-bit BCD

– saıda: codigo de 7-segmentos.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 22

2 - Decodificadores de 7 Segmentos: Exercıcios

• Ex1: Obter as expressoes minimizadas para as saıdas do decodificador de

7-segmentos.

• Ex2: Escrever uma descricao comportamental VHDL para o decodificador de

7-segmentos.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 23

2 - Tabela Verdade para os Exercıcios 1 e 2

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 24

2 - Codificadores

• Um codificador e um circuito cujo codigo de saıda possui normalmente menos

bits do que o codigo de entrada.

• O codificador mais simples e o 2n-para-n (codificador binario). Ele tem funcao

oposta ao decodificador binario. Apenas 1 entrada e ativada por vez.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 25

2 - Codificadores 8-para-3

Equacoes para um codificador 8-para-3:

Y 2 Y 1 Y 0

0 0 0 I0

0 0 1 I1 Y 0 = I1 + I3 + I5 + I7

0 1 0 I2

0 1 1 I3 Y 1 = I2 + I3 + I6 + I7

1 0 0 I4

1 0 1 I5 Y 2 = I4 + I5 + I6 + I7

1 1 0 I6

1 1 1 I7

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 26

2 - Codificadores de Prioridade

• Para implementar pedidos de interrupcao (por exemplo), o codificador binario

nao funciona! Ele assume que apenas 1 entrada esta ativa por vez.

• Quando varios pedidos ocorrem simultaneamente (ou nao), um codificador com

prioridade produz o numero referente ao pedido de prioridade mais alta.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 27

2 - Codificadores de Prioridade

• A entrada I7 tem prioridade mais alta. Saıdas A2-A0 contem o numero da

entrada ativa de maior prioridade. A saıda IDLE e ativada se nenhuma entrada

for ativada (IDLE = I0.I1.I2.I3.I4.I5.I6.I7).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 28

2 - Multiplexadores (MUX)

• Um MUX e uma chave digital que conecta dados de n fontes para a sua saıda.

A entrada SEL seleciona entre as n fontes ⇒ s = ⌈log2(n)⌉. Se

EN = 0 ⇒ Y = 0. Se EN = 1 o MUX esta habilitado.

• Multiplexadores sao usados em computadores para selecionar entre os varios

conjuntos de registradores aquele que deve ser conectado a ULA.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 29

2 - MUX – Exemplo 74 × 151

• Um CI 74 × 151 possui um MUX de 8-entradas e 1-saıda. As entradas de

selecao sao chamadas A,B,C, onde C e o bit MSB. A entrada enable (habilita)

ENL e ativa em nıvel baixo. Duas versoes da saıda (H) e (L).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 30

2 - MUX – Outro Exemplo 74 × 157

• Um CI 74 × 157 possui um MUX de 2-entradas de 4 bits cada e 1-saıda de 4

bits. A entrada de selecao e S. A entrada enable (habilita) GL e ativa em nıvel

baixo. Duas versoes da saıda (H) e (L).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 31

2 - MUXs e Demultiplexadores (DMUXs)

• Um multiplexador (MUX) pode ser usado para selecionar uma fonte de dados

(de n fontes possıveis) que deve ser transmitida atraves de um barramento.

• Um demultiplexador (DMUX) pode ser usado para rotear o barramento para

um destino (de m destinos possıveis) – funcao inversa do MUX.

• Um DMUX de 1-entrada e n-saıdas possui 1 entrada de dados e S-entradas

para selecionar uma das n = 2S saıdas de dados.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 32

2 - MUXs em VHDL – Fluxo de Dados

• E facil descrever multiplexadores em VHDL. Declaracao SELECT !

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 33

2 - MUXs em VHDL – Descricao Comportamental

• Declaracao CASE !

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 34

2 - Funcoes XOR e XNOR

• Uma porta Exclusive-OR (XOR) e uma porta de 2-entradas (X e Y ) cuja saıda

e 1 se as entradas forem de ”paridade” distinta (01 ou 10).

• Uma porta Exclusive-NOR (XNOR) e apenas o oposto: saıda = 1 se X = Y .

• A operacao XOR usa o sımbolo ⊕: X ⊕Y = (X + Y ).(X + Y ) = X.Y + X.Y .

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 35

2 - Sımbolos para as funcoes XOR e XNOR

• Dois sinais quaisquer (entradas ou saıda) de uma porta XOR ou XNOR pode

ser complementada sem mudanca da funcao logica resultante.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 36

2 - XOR e Circuitos de Paridade

• N portas XOR podem ser cascateadas para formarem um circuito com N + 1

entradas e uma unica saıda que e 1 se um numero ımpar de entradas for 1

(circuito de paridade ımpar – ODD).

• Se a saıda de qualquer um dos circuitos for invertida obtem-se um circuito de

paridade par (EVEN).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 37

2 - Paridade - VHDL - Fluxo de Dados

• VHDL fornece os operadores primitivos xor e xnor.

• Um dispositivo XOR de 3-entradas pode ser descrito em VHDL por:

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 38

2 - Paridade - VHDL - Comportamental

• Uma funcao de paridade de 9-entradas pode ser descrita por:

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 39

2 - Comparadores

• Um comparador e um circuito que indica se 2 palavras binarias sao iguais.

• Comparadores de magnitude interpretam suas entradas como numeros com ou

sem sinais e indica uma relacao de ordem entre eles (maior ou menor que).

• Exemplo 7485: Portas XOR e XNOR podem ser vistas como comparadores de

1-bit (A saıda DIFF e ativada se as entradas sao diferentes).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 40

2 - Comparador de 4-Bits

• A saıda DIFF e ativada se qualquer um dos pares de bits de entrada forem

diferentes. Este circuito pode ser facilmente adaptado para qualquer numero de

bits por palavra.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 41

2 - Comparador Iterativo

• Dois valores X e Y de n-bits podem ser comparados usando um circuito

combinacional (circuito iterativo) com a seguinte estrutura:

• Cada bloco pode ser implementado da seguinte forma:

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 42

2 - Exemplo: Comparador de 4-Bits – 74 × 85

• O 74 × 85 fornece uma saıda maior-que (Greater Than), uma saıda menor-que

(Lower Than) e uma saıda igual-a (Equal To). Alem disso, possui entradas em

para combinar multiplos chips e criar comparadores com mais de 4 bits:

– AGTBOUT = (A > B) + (A = B).AGTBIN

– AEQBOUT = (A = B).AEQBIN

– ALTBOUT = (A < B) + (A = B).ALTBIN

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 43

2 - Exemplo: Comparador de 12-Bits – 74 × 85

• Tres 74 × 85 resultando em um comparador de 12-bits:

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 44

2 - Circuito Iterativo Generico

• O circuito contem n modulos identicos, cada um tem entradas e saıdas

primarias e em cascata. As primeiras entradas em cascata sao geralmente

conectadas a valores fixos.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 45

2 - Comparadores – VHDL

• VHDL possui operadores de comparacao para todos os tipos pre-definidos.

Igualdade (=) e diferenca (/ =) sao aplicaveis a todos os tipos.

• Para tipos matriz e record, os operandos devem possuir tamanho e estrutura

iguais, e os operandos sao comparados componente por componente.

• Outros operadores de comparacao VHDL (>, <, >=, <=) sao aplicaveis

somente a inteiros, tipos enumerados e matrizes unidimensionais de tipos

enumerados ou de inteiros.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 46

2 - Somadores - Meio Somador (2-Bits)

• O somador mais simples, chamado de half adder (meio somador), adiciona dois

operandos de 1-bit X e Y, produzindo uma soma de 2-bits.

• A soma pertence a faixa de 0 a 2, o que exige dois bits

(0 + 0 = 00 , 0 + 1 = 01 , 1 + 0 = 01 , 1 + 1 = 10).

• O bit menos significativo da soma e chamado de HS (half sum):

HS = X ⊕ Y = X.Y + X.Y

• O bit mais significativo da soma e chamado de CO (carry out – vai um):

CO = X.Y

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 47

2 - Somadores - Somador Completo (3-Bits)

• Full adder (somador completo): Alem dos bits de entrada X e Y, um somador

completo possui mais um bit de entrada – o bit carry-in (ou vem um) CIN.

• A soma dos 3 bits pertence a faixa de 0 a 3 ⇒ bastam 2 bits.

• Note que: S = X ⊕ Y ⊕ CIN , COUT = X.Y + X.CIN + Y.CIN

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 48

2 - Somador de Palavras Binarias

• Duas palavras de n bits podem ser somadas usando um somador em cascata.

• O CIN do estagio somador completo menos significativo (c0) e colocado em 0

e o COUT de cada estagio e conectado ao CIN do proximo (mais significativo).

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 49

2 - Subtratores

• A operacao de subtracao binaria e analoga a operacao de adicao.

• Subtrator completo: entradas X (minuendo), Y (subtraendo) e BIN (borrow in

- toma emprestado) e saıdas D (diferenca) e BOUT (borrow out-empresta).

• As seguintes equacoes podem ser escritas:

D = X ⊕ Y ⊕ BIN , BOUT = X.Y + X.BIN + Y.BIN .

• Estas equacoes sao similares as equacoes do somador completo:

D = X ⊕ Y ⊕ ¯BIN , BOUT = X.Y + X. ¯BIN + Y . ¯BIN

• Um subtrator completo pode ser construıdo a partir de um somador completo.

X − Y = X + (−Y ) = X + (Y + 1)

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 50

2 - Subtrator de Palavras Binarias

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 51

2 - Arithmetic and Logic Unit (ALU)

• Uma Unidade Logica e Aritmetica (ULA) e um circuito combinacional que

pode realizar varias operacoes logicas e aritmeticas em 2 operandos de n-bits.

• A operacao a ser realizada e especificada por um conjunto de entradas de

selecao de funcoes.

• As (MSI) ALUs tıpicas possuem operandos de 4-bits e 3 a 5 entradas de

selecao de funcoes (ate 32 funcoes diferentes).

• Um CI 74 × 181 possui uma ALU de 4-bits. A operacao realizada e selecionada

pelas entradas M (operacao aritmetica ou logica) e S3-S0.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 52

2 - Exemplo: ALU 74 × 181

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 53

2 - Exemplo: ALU - VHDL

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 54

2 - Multiplicadores

• A maioria das abordagens para multiplicadores utiliza o algoritmo tradicional

para obter o resultado ⇒ deslocamentos e adicao.

⇒ Entretanto, nao e a unica solucao !!!

• Dadas 2 entradas X e Y de n bits, pode-se escrever uma tabela verdade que

expressa o produto P = X × Y de 2n bits e implementar P (X, Y ) como uma

funcao combinacional de X e Y.

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 55

2 - Multiplicadores - Abordagem Tradicional

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 56

2 - Multiplicadores - Abordagem Tradicional

Prof. Alessandro Jacoud Peixoto

GELE 7163 Eletronica Digital 57

2 - Multiplicadores - VHDL

Prof. Alessandro Jacoud Peixoto