Baixe o app para aproveitar ainda mais
Prévia do material em texto
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD CAPÍTULO 6 CIRCUITOS DE MANUSEIO DE DADOS Circuitos de manuseio de dados são circuitos combinacionais que fazem translações lógicas paralelas, tais como conversão de códigos, codificação, decodificação e formatação de dados digitais. Esses circuitos são empregados em seleção de endereços de dispositivos e memórias, conversões de códigos, decodificadores de mostradores e codificação de teclados, entre outros. 6.1 CONVERSORES DE CÓDIGO Conversores de código são empregados na conversão de códigos ou formatos de dado binários. Como exemplo de aplicação, considere dois circuitos previamente projetados usando códigos diferentes que devem ser conectados, ou ainda, por questões econômicas/segurança, dados devem ser convertidos para um formato (código) específico antes de ser enviado. Nestes casos, usam-se os conversores de códigos. De forma prática, o número de linhas do código de entrada corresponde ao número de variáveis em cada mapa de Karnaugh, e o número de linhas de saída corresponde ao número de mapas de Karnaugh. As capacidades dos códigos de entrada e saída devem ser iguais. Como exemplo, considere a conversão do código BCD5311 para o código BCD8421, como ilustrado na Tabela 6.1. Nesse exemplo são necessários quarto mapas; A, B, C e D, com as variáveis H, G, F e E. Tabela 6.1 – Conversão de códigos BCD5311 para BCD8421. Código BCD5311 BCD8421 Pesos 5 3 1 1 8 4 2 1 Variáveis H G F E D C B A 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 1 0 0 1 0 3 0 1 0 0 0 0 1 1 4 0 1 0 1 0 1 0 0 5 0 1 1 1 0 1 0 1 6 1 0 0 1 0 1 1 0 7 1 0 1 1 0 1 1 1 8 1 1 0 0 1 0 0 0 9 1 1 0 1 1 0 0 1 Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD A combinação HGFE = 0100 na Tabela 6.1 corresponde ao valor DCBA = 0011, assim, a localização HGFE = 0100 nos mapas de Karnaugh deve receber 0011. Em outras palavras, o mapa D recebe 0, o mapa C recebe 0, o mapa B recebe 1 e o mapa A recebe 1, como mostrado a seguir. HG HG FE 00 01 11 10 FE 00 01 11 10 00 0 00 0 01 01 11 11 10 10 D C HG HG FE 00 01 11 10 FE 00 01 11 10 00 1 00 1 01 01 11 11 10 10 B A A combinação HGFE = 0000 corresponde ao valor DCBA = 0000, assim, os mapas DCBA recebem 0000, como apresentado a seguir. HG HG FE 00 01 11 10 FE 00 01 11 10 00 0 0 00 0 0 01 01 11 11 10 10 D C HG HG FE 00 01 11 10 FE 00 01 11 10 00 0 1 00 0 1 01 01 11 11 10 10 B A Notas As co Depen (geralm implem s de Aula – Da mesm ombinações ndendo da mente não p Após com mentado, co HG FE 00 01 11 10 HG FE 00 01 11 10 F D B ELTD01 ma forma, as s não utili aplicação pertencente mpletar os omo mostra 00 01 0 0 0 0 0 0 ‐ ‐ 00 01 0 1 0 0 1 0 ‐ ‐ Figura 6.1 - Cir HGD GEGH s demais co zadas rece , essas co ao código d s mapas, s ado pela Fig 11 10 1 ‐ 1 0 ‐ 0 ‐ ‐ 11 10 0 ‐ 0 1 ‐ 1 ‐ ‐ G H G H G H E G F G H E G H G F G H E G H E F G H G H E rcuito lógico d GHFG ombinações ebem o va ombinações de saída) pa são feitas gura 6.1. do conversor de são carreg alor “opcio s podem r ara indicar e as suas l HG FE 00 01 11 10 HG FE 00 01 11 10 D C B A e códigos BCD C FGHA Prof. Tal gadas nos m nal” para receber um entrada invá leituras, e 00 01 0 0 0 1 0 1 ‐ ‐ 00 01 0 1 1 0 0 1 ‐ ‐ D5311 para BCD HGEH EGHEF les C Pimen mapas de Ka facilitar a m valor es álida. o seu cir 11 10 0 ‐ 0 1 ‐ 1 ‐ ‐ 11 10 0 ‐ 1 0 ‐ 1 ‐ ‐ D8421. GH HGEGF nta, PhD arnaugh. leitura. specífico rcuito é HFE Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 6.2 CODIFICADORES Codificador é um circuito que codifica M linhas de entrada em N linhas de saída, em que somente uma de suas linhas de entrada é ativa por vez, cuja representação gráfica é apresentada na Figura 6.2. O código referente à entrada ativa é apresentado nas N saídas, sendo que o número de entradas M é menor ou igual a 2N. Codificador M ≤ 2N 0 1 M-1 0 1 N-1 Figura 6.2 - Representação gráfica do um codificador. Como exemplo clássico de um codificador, considere o codificador de um teclado decimal para BCDXS3, como ilustrado na Figura 6.3. Por simplicidade, o desenho mostra a forma de acionamento apenas da tecla X9, porém todas as teclas têm o mesmo tipo de acionamento. Considerando-se que somente uma tecla seja acionada por vez, o código referente à tecla pressionada aparece nas saídas. A As expressões lógicas de cada variável são dadas por: D=X5 + X6 + X7 + X8 + X9 C=X1 + X2 + X3 + X4 + X9 B=X1 + X3 + X4 + X7 + X8 A=X0 + X2 + X4 + X6 + X8 Tabela 6.2 lista a codificação BCD das linhas do codificador de teclado. Assim, como exemplo, se a tecla X4 for pressionada, tem-se na saída o código 0111. Se nada for pressionado, tem-se 0000 na saída. Figura 6.3 - Codificador de teclado. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD As expressões lógicas de cada variável são dadas por: D=X5 + X6 + X7 + X8 + X9 C=X1 + X2 + X3 + X4 + X9 B=X1 + X3 + X4 + X7 + X8 A=X0 + X2 + X4 + X6 + X8 Tabela 6.2 – Codificador de teclado. Entrada Selecionada Saídas D C B A X0 0 0 1 1 X1 0 1 0 0 X2 0 1 0 1 X3 0 1 1 0 X4 0 1 1 1 X5 1 0 0 0 X6 1 0 0 1 X7 1 0 1 0 X8 1 0 1 1 X9 1 1 0 0 A sua implementação usando portas lógicas é apresentada na Figura 6.4. X5 D X6 X7 X8 X9 X1 C X2 X3 X4 X9 X1 B X3 X4 X7 X8 X0 A X2 X4 X6 X8 Figura 6.4 - Circuito lógico do codificador de teclado. 6.2.1 Codificador de Prioridade Se eventualmente forem pressionadas simultaneamente duas ou mais teclas no codificador anterior, as saídas poderão apresentar códigos inválidos. Para evitar esse erro, deve-se ter uma prioridade nas teclas, isto é, se mais de uma for pressionada ao mesmo tempo, somente uma delas deve ter efeito na saída. Como exemplo, considere o codificador decimal para BCDXS3 anterior, com a condição de prioridade. A sua tabela de operação é apresentada na Tabela 6.3. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Tabela 6.3 – Codificador de prioridade. Entradas Saídas X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 D C B A 1 0 0 0 0 0 0 0 0 0 0 0 1 1 - 1 0 0 0 0 0 0 0 0 0 1 0 0 - - 1 0 0 0 0 0 0 0 0 1 0 1 - - - 1 0 0 0 0 0 0 0 1 1 0 - - - - 1 0 0 0 0 0 0 1 1 1 - - - - - 1 0 0 0 0 1 0 0 0 - - - - - - 1 0 0 0 1 0 0 1 - - - - - - - 1 0 0 1 0 1 0 - - - - - - - - 1 0 1 0 1 1 - - - - - - - - - 1 1 1 0 0 Como exemplo, observe, pela tabela, que se a tecla X6 for pressionada, independente do valor das entradas X0, X1, X2, X3, X4 e X5, a saída apresenta o código 1001. Para a implementação desse codificador, torna-se necessário primeiramente fazer a conversão da tabela original para a tabela em que somente o bit válidofica ativo, como apresentado na Tabela 6.4. Observe agora que se a tecla X6 for pressionada, independente do valor das entradas X0, X1, X2, X3, X4 e X5, a linha intermediária Y6 torna-se 1. Tabela 6.4 – Codificação intermediária com somente um bit em 1. Entradas Linhas Intermediárias X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 - - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 - - - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 - - - - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 - - - - - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 - - - - - - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 - - - - - - - 1 0 0 0 0 0 0 0 0 0 1 0 0 - - - - - - - - 1 0 0 0 0 0 0 0 0 0 1 0 - - - - - - - - - 1 0 0 0 0 0 0 0 0 0 1 As linhas intermediárias, em ordem reversa são: ଽܻ ൌ ܺଽ଼ܻ ൌ ଼ܺ. ܺଽതതത ܻ ൌ ܺ. ଼ܺതതത. ܺଽതതത ܻ ൌ ܺ. ܺതതത. ଼ܺതതത. ܺଽതതത ହܻ ൌ ܺହ. ܺതതത. ܺതതത. ଼ܺതതത. ܺଽതതത ସܻ ൌ ܺସ. ܺହതതത. ܺതതത. ܺതതത. ଼ܺതതത. ܺଽതതത ଷܻ ൌ ܺଷ. ܺସതതത. ܺହതതത. ܺതതത. ܺതതത. ଼ܺതതത. ܺଽതതത ଶܻ ൌ ܺଶ. ܺଷതതത. ܺସതതത. ܺହതതത. ܺതതത. ܺതതത. ଼ܺതതത. ܺଽതതത ଵܻ ൌ ଵܺ. ܺଶതതത. ܺଷതതത. ܺସതതത. ܺହതതത. ܺതതത. ܺതതത. ଼ܺതതത. തܺ ܻ ൌ ܺ. ଵܺതതത. ܺଶതതത. ܺଷതതത. ܺସതതത. ܺହതതത. ܺതതത. ܺതതത. ଼ܺതതത. ܺଽതതത Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Estas linhas também podem ser descritas como: ଽܻ ൌ ܺଽ଼ܻ ൌ ଼ܺ. ଽܻഥ ܻ ൌ ܺ. ଼ܻഥ ܻ ൌ ܺ. ܻഥ ହܻ ൌ ܺହ. ܻഥ ସܻ ൌ ܺସ. ହܻഥ ଷܻ ൌ ܺଷ. ସܻഥ ଶܻ ൌ ܺଶ. ଷܻഥ ଵܻ ൌ ଵܺ. ଶܻഥ ܻ ൌ ܺ. ଵܻഥ Deve-se, entretanto observar que a primeira forma de implementação resulta em um circuito maior, porém mais rápido. Na primeira implementação, o atraso máximo é dado por inversores e pela porta E. No segundo caso, Y0 depende de Y1, que por sua vez depende de Y0, e assim sucessivamente, criando um longo atraso. Adicionalmente, cada saída apresenta um atraso diferente. Dispondo-se das linhas intermediárias (Y0, Y1, ... , Y9), pode-se implementar o circuito da mesma forma apresentada anteriormente para codificadores sem prioridade. 6.2.2 Codificador de Prioridade Tipo Termômetro Se os opcionais da Tabela 6.4 forem substituídos por 1, tem-se o codificador de prioridade do tipo termômetro, como mostrado na Tabela 6.5. Nesse codificador um novo sinal não elimina o sinal com menor prioridade. Como exemplo, esse codificador é encontrado em conversores AD do tipo flash. Tabela 6.5 – Codificação intermediária do codificador tipo termômetro. Entradas Linhas Intermediárias X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD As linhas intermediárias, em ordem reversa são: 99 XY 988 XXY 877 XXY 766 XXY 655 XXY 544 XXY 433 XXY 322 XXY 211 XXY 100 XXY 6.2.3 Codificador de Teclado Uma das maneiras de se reduzir o número de linhas de dados em teclados é por meio de codificação, sem o uso de portas lógicas. Como exemplo, considere o teclado típico de terminais bancários de autoatendimento, ilustrado na Figura 6.5. Além das teclas numéricas, há também as teclas * e #. Figura 6.5 - Teclado numérico típico. Um codificador de teclado pode ser implementado por meio de uma matriz formada por linhas (conectadas à terra por meio de resistências) e por colunas (ligadas a VDD) como ilustrado na Figura 6.6. O código referente às chaves é implementado por meio de diodos. Assim, se nenhuma tecla for pressionada, tem-se as linhas A, B, C e D em nível baixo (através das resistências). Como exemplo de operação, se for pressionada a tecla 6, as linhas D e A, passam para nível alto devido aos diodos, e as linhas C e B permanecem em nível baixo, e desta forma tem-se DCBA=1001. Da mesma forma, se for pressionada a tecla 9, as linhas D e C, passam para nível alto devido aos diodos, e as demais linhas permanecem em nível baixo. Nesse exemplo, foi utilizado o código BCDXS3 para os números e os valores DCBA=1101 e DCBA=1110 para * e #, respectivamente. Qualquer código pode ser utilizado, entretanto não se pode atribuir a combinação DCBA=0000 para nenhuma tecla, pois não haveria diferença entre pressionar essa tecla e não pressionar nada (ambas condições resultariam em DCBA=1110. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD D C B A Vcc 0 1 2 3 4 5 6 7 8 9 * # Figura 6.6 - Codificador de teclado implementado por matriz de diodos. 6.3 DECODIFICADORES Decodificador é um circuito que decodifica N linhas de entrada em M linhas de saída, em que o código presente nas entradas corresponde à saída que deve ser ativa, cuja representação gráfica é apresentada na Figura 6.7. Somente uma de suas saídas é ativa por vez. O número de saídas M é menor ou igual a 2N. O decodificador executa o papel oposto ao do codificador. Figura 6.7 - Representação gráfica do um decodificador. Como exemplo, considere o decodificador BCD para decimal complementado, como ilustrado na Figura 6.8, cuja operação é dada pela Tabela 6.6. Figura 6.8 - Decodificador BCD para decimal complementado. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Tabela 6.6 – Decodificador BCD para decimal complementado. Entradas Saídas D C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 Observe que as saídas permanecem normalmente em nível alto e somente a saída selecionada vai para nível baixo. Assim, como exemplo, se for aplicado DCBA=0110, somente Y9 fica em 0 e as demais saídas em 1. As expressões lógicas de cada saída são dadas por: ABCDY 0 ABCDY 1 ABCDY 2 BACDY 3 ABCDY 4 ABCDY 5 ACBDY 6 CBADY 7 ABCDY 8 ABCDY 9 6.3.1 Decodificadores BCD e Binário para Sete Segmentos Por questões históricas, os conversores de códigos BCD para displays de sete segmentos são conhecidos como decodificadores. Os displays apresentam o formato ilustrado na Figura 6.9. Figura 6.9 - Mostrador LED de 7 segmentos. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Cada segmento do display corresponde a um diodo emissor de luz – LED. Dependendo do arranjo dos LEDs acesos e apagados, tem-se a formação de números, como indicado na Figura 6.10. Figura 6.10 - Números apresentados no mostrador de 7 segmentos. Podem-se ter também algumas letras, como exemplificado pela Figura 6.11. Figura 6.11 - Algumas letras apresentadas no mostrador de 7 segmentos. Para reduzir o número de terminais, os displays podem estar conectados na configuração catodo comum ou na configuração anodo comum, como visto na Figura 6.12. Figura 6.12 - Conexões catodo comum e anodo comum de mostradores LED de 7 segmentos. Na configuração catodo comum, para que um dado segmento acenda, é necessário que fornecer corrente ao display, ao passo que no anodo comum, deve-se drenar corrente. Algumas famílias lógicas, como exemplo TTL são melhores absorvedores do que fornecedores de corrente, e nesse caso deve-se usar a configuração anodo comum. Desta forma, para que um segmento acenda a saída do circuito TTL deve apresentar nível lógico baixo em sua saída. Considerando que o nível lógico da saída deva ser baixo para acender um segmento, a tabela de operação deum decodificador BCD para sete segmentos é dada pela Tabela 6.7. Nesse caso particular, de DCBA=0000, a saída apresentará o número 0. a b c d e f g Vddcba d gfe GND Notas s de Aula – Ta A seguir, DC BA 00 01 11 10 a DC BA 00 01 11 10 c DC BA 00 01 11 10 e DC BA 00 01 11 10 g ELTD01 abela 6.7 – Dec D 0 0 0 0 0 0 0 0 1 1 montam-se 00 01 0 1 1 0 0 0 0 0 CABCD 00 01 0 0 0 0 0 0 1 0 ABC 00 01 0 1 1 1 1 1 0 0 ABCA 00 01 1 0 1 0 0 1 0 0 CBCD codificador BC Entradas C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 mapas de K 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ ABC 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ 11 10 ‐ 0 ‐ 1 ‐ ‐ ‐ ‐ 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ CBA CD display sete S a b c 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 Karnaugh p e segmentos at Saídas d e f 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 ara se obter DC BA 00 01 11 10 b DC BA 00 01 11 10 d DC BA 00 01 11 10 f Prof. Tal ivo por nível b f g 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 r as expressõ 00 01 0 0 0 1 0 0 0 1 CBABC 00 01 0 1 1 0 0 1 0 0 CABCD 00 01 0 0 1 0 1 1 1 0 BCBA les C Pimen baixo. ões de cada 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ AB 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ CBAABC 11 10 ‐ 0 ‐ 0 ‐ ‐ ‐ ‐ ACD nta, PhD a saída. A Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 6.3.2 Implementação de funções Funções Booleanas podem ser implementadas utilizando-se decodificadores. Como exemplo, considere a implementação de CBAF utilizando um decodificador de 3 entradas e oito saídas. O mapa de Karnaugh dessa função é dado por: A BC 0 1 00 0 1 01 1 1 11 0 1 10 0 1 Assim, para CBA=000, a função deve ter valor 0. Portanto quando essa combinação for aplicada à entrada do decodificador, a saída 0 torna-se 1. Como essa saída não está ligada à porta lógica OU, F fica em 0. Da mesma forma, para CBA=001, a função deve ter valor 1 e se essa combinação for aplicada à entrada do decodificador, a saída 1 torna-se 1. Como essa saída está ligada à porta lógica OU, F fica em 1. Conclui-se que as saídas do decodificador, correspondentes aos valores que tornam a função igual à 1, como mostradas na Tabela 6.8, devem ser ligadas à porta lógica OU, como ilustrado na Figura 6.13. Tabela 6.8 – Função ۴ ൌ ۯ ۰ഥ۱. Entradas Saída Decodificador Valor Função C B A 0 0 0 S0 0 0 0 1 S1 1 0 1 0 S2 0 0 1 1 S3 0 1 0 0 S4 1 1 0 1 S5 1 1 1 0 S6 1 1 1 1 S7 1 Figura 6.13 - Implementação da função ۴ ൌ ۯ ۰ഥ۱ usando decodificador. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 6.4 MULTIPLEXADOR Para um melhor entendimento de multiplexadores, torna-se necessário apresentar o princípio da multiplexagem. 6.4.1 Multiplexagem O conceito de multiplexagem pode ser melhor entendido com o auxílio da Figura 6.14, que apresenta duas chaves mecânicas rotativas de quatro pólos. Estando a Chave 1 na posição A e estando a Chave 2 também na posição A, significa que toda informação da saída A será a mesma da entrada A. Da mesma forma, passando a Chave 1 para a posição B e passando a Chave 2 também para a posição B, significa que toda informação da saída B será a mesma da entrada B, e assim sucessivamente. A condição de operação adequada deste sistema é que ambas as chaves devam estar sincronizadas. Se for admitido que seja necessário somente amostrar as informações de entrada, este sistema funciona perfeitamente para se transmitir informações entre pontos distantes através da linha M. Figura 6.14 - Conceito de multiplexação. 6.4.2 Multiplexador O multiplexador, também conhecido como circuito seletor de dados, faz o papel da Chave 1 na figura anterior, porém implementado de forma digital. O multiplexador nada mais é que um circuito em que a informação de apenas uma de suas entradas atinja a saída. A seleção de qual entrada de dados atingirá a saída é determinado por entradas seletoras. Em outras palavras, o multiplexador é uma chave multiposição controlada digitalmente. A Figura 6.15 ilustra um multiplexador de duas entradas de canal simples, conhecido como MUX 2*1. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Figura 6.15 - Multiplexador MUX 2x1. Nesse multiplexador, se a entrada de seleção Es for 0, a saída Y recebe A e se Es for 1, a saída Y recebe B, como representado na Tabela 6.10. Essa tabela pode ser simplificada, gerando a tabela resumo, vista na Tabela 6.10 – Tabela resumida do MUX 2x1. Tabela 6.9 – Tabela de operação do MUX 2x1. Es A B Y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 Tabela 6.10 – Tabela resumida do MUX 2x1. Es Y 0 A 1 B A partir da tabela, e usando-se Karnaugh, a expressão de saída é dada por BEsAEsY .. , e o seu circuito é mostrado na Figura 6.16. Figura 6.16 - Circuito lógico do multiplexador MUX 2x1. Da mesma forma, pode-se implementar um multiplexador de quatro entradas de canal simples, MUX 4x1, como ilustrado na Figura 6.17. A sua tabela de operação pode ser obtida da mesma forma que no caso anterior, o MUX 2x1. Entretanto, por simplicidade a Tabela 6.11 ilustrada somente a sua tabela resumo. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Figura 6.17 - Multiplexador MUX 4x1. Tabela 6.11 – Tabela resumida do MUX 4x1. E1 E0 Y 0 0 A 0 1 B 1 0 C 1 1 D Assim, se E1E0 = 00, a saída Y recebe A, para E1E0 = 01, a saída Y recebe B, com se E1E0 = 10, a saída Y recebe C e finalmente se E1E0 = 11, a saída Y recebe D. A partir da tabela resumida, obtém-se a expressão de saída, dada por DEECEEBEEAEEY 01010101 , de onde o circuito pode ser implementado. 6.4.3 Composição de Multiplexadores Multiplexadores podem ser associados para formar multiplexadores maiores, ou para formar multiplexadores com um maior número de canais. Como exemplo, considere dois MUX 4x1 ligados com os mesmos sinais de controle, como indicado na Figura 6.18. Nessa configuração os multiplexadores estão ligados em paralelo, e formam um multiplexador de dois canais, sendo cada canal de 4 entradas. Figura 6.18 - Dois MUX 4x1 para formar um MUX 4x2. Este novo multiplexador, chamado de MUX 4x2, pode ser desenhado de duas formas, como ilustradas pela Figura 6.19. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Figura 6.19 - Duas formas gráficas de representar o MUX 4x2. Como exemplo de operação, se E1E0 = 00, tem-se Y1Y0 = A1A0, para E1E0 = 01, tem- se Y1Y0 = B1B0, como indicado pelo percurso de dados, respectivamente, nas Figura 6.20 e Figura 6.21. Note entanto, que essa indicação corresponde apenas ao percurso dos dados e não uma conexão física. Figura 6.20 - Fluxo de dados para E1E0 = 00 no MUX 4x2. Figura 6.21 - Fluxo de dados para E1E0 = 01 no MUX 4x2. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Neste ponto, deve-se fazer uma explanação mais adequada daterminologia usada. Ao se expressar MUX MxN, entende-se que o multiplexador tem M canais (ou saídas) e cada canal tem N linhas de entrada. O número total dado pela multiplicação de M por N corresponde ao número total de entradas de dados do multiplexador. O valor de M deve ser menor ou igual a 2n, onde n é o numero de entradas de seleção. Desta forma, o multiplexador anterior MUX 4x2, tem dois canais de 4 entradas cada. Este valor 4 corresponde a 22, pois o circuito tem 2 entradas de seleção. O número total de entradas de dados é 8, isto é, o produto de 4 por 2. 6.5 DEMULTIPLEXADOR O demultiplexador executa atividade inversa a do multiplexador, isto é, o dado de uma única entrada atinge a saída determinada pelas entradas de seleção. Como exemplo, a Figura 6.22 ilustra um demultiplexador de 4 linhas de um canal. Figura 6.22 - DEMUX 1x4. Por conveniência, será adotada uma nomenclatura similar a de multiplexadores. Ao se expressar DEMUX NxM, entende-se que o multiplexador tem N canais (ou entradas) e cada canal tem M linhas de saída. O número total dado pela multiplicação de M por N corresponde ao número total de saídas de dados do multiplexador. O valor de M deve ser menor ou igual a 2n, onde n é o numero de entradas de seleção. Como exemplo, a Figura 6.23 ilustra as duas formas de representação gráfica de um demultiplexador de dois canais de 4 linhas cada, ou seja DEMUX 2x4. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Figura 6.23 - Representações gráficas do DEMUX 2x4. 6.6 UTILIZAÇÃO DE MULTIPLEXADORES Multiplexadores podem ser agrupados para formar multiplexadores maiores, ou para formar multiplexadores com um maior número de canais, assim como podem ser utilizados para implementar funções lógicas. 6.8.1 Arranjo Paralelo de Multiplexadores Pode-se aumentar o número de canais e manter o número de linhas através de um arranjo paralelo de multiplexadores. No arranjo paralelo, a informação não passa em mais de um multiplexador. Como exemplo, a Figura 6.24 ilustra a formação de um MUX 4x2 a partir de MUX 4x1. Figura 6.24 - MUX 4x2 a partir de MUX 4x1. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 6.8.2 Arranjo Serial de Multiplexadores Arranjos seriais de multiplexadores são empregados para formar multiplexadores com maior número de linhas de entrada, porém com o mesmo número de canais. No arranjo serial, a informação passa em pelo menos dois multiplexadores. Como exemplo, a Figura 6.25 ilustra um MUX16x1 e a sua formação de a partir de MUX 4x1. Nesta figura, observe a ordem das linhas de seleção! Tomando-se como exemplo E3E2E1E0 = 1001, tem-se Y = J, como esperado. Como os multiplexadores (a), (b), (c) e (d) têm as mesmas linhas de seleção (E1E0), todos selecionam posições equivalentes. Assim, para E1E0 = 01, tem-se Y0 = B, Y1 = F, Y2 = J e Y3 = N. Porém, por E3E2 = 10 tem-se Y =Y2, ou seja, Y =J. MUX 4x1 (a) E1 E0 MUX 4x1 (b) A B C D Y MUX 4x1 (c) MUX 4x1 (d) MUX 4x1 (e) E F G H I J K L M N P Q E3 E2 Y2 Y1 Y0 Y3 Figura 6.25 - MUX 16x1 e sua implementação utilizando MUX 4x1. Adicionalmente, podem-se fazer arranjos mais complexos de multiplexadores para se aumentar tanto o número de canais quanto o número de linhas. 6.8.3 Sistema de Comunicação Uma aplicação muito interessante para o par multiplexador/demultiplexador é em sistemas de comunicação. Considere que se deseja transmitir 16 canais. Se for utilizada a transmissão convencional por fio, seriam necessários 16 fios. Entretanto, se o sinal for multiplexado na origem e enviado por um único fio de dados e demultiplexado no destino, além do fio de dados, seriam necessários 4 fios para as linhas de seleção. Assim, utiliza-se um total de apenas 5 fios. Essa ideia está ilustrada na Figura 6.26. Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD MUX 16x1 E1 E0 A B C D E F G H I J K L M N P Q E3 E2 DEMUX 16x1 A B C D E F G H I J K L M N P Q Figura 6.26 - Sistema de comunicação utilizando multiplexação. Essa vantagem de redução do número de linhas se torna ainda mais aparente para quantidades maiores de canais. Para um sistema de 1024 canais, ao invés de se ter 1024 fios, bastam ter 10 fios para as linhas de seleção e mais uma linha de dados. Neste caso, usa-se cerca de apenas 1% da quantidade de fios originais! A taxa de varredura dos canais deve ser maior (ou igual) que taxa de variação dos. Adicionalmente admite-se que haja algum tipo de armazenamento de dados tanto na origem quanto no destino. Nos sistemas reais de comunicação, geralmente não se transmitem as linhas de seleção. Estas são obtidas no destino a partir da linha de dados, como indicado na Figura 6.27. Entretanto este assunto não é objetivo deste estudo e não será explanado. Figura 6.27 - Sistema de comunicação utilizando multiplexação com restauração de sincronismo. Notas 6.8.4 exemp implem E, usa somas a funç saída d implem multip anterio Karna s de Aula – Implemen Expressõe plo, consi mentada co Figura 6. Essa mesm ando-se som s, utilizando Na verdad ção CAF deve aprese Da mesm mentar essa plexador di or. Para a augh da exp ELTD01 ntação de Fu es Boolean dere a f omo mostrad A B C D .28 - Implemen ma função p mente porta o decodifica de, não imp CBADC entar uma d ma forma a função. C ispõe de 4 implement ressão, com unções Lógi nas podem função lóg do na Figura ntação da funç poderia ter s NÃO-OU ador, etc. orta a form BACD eterminada multiplexa Considere in linhas de tação da fu mo mostrado AB CD 00 01 11 10 icas m ser impl gica F a 6.28. ção ۴ ൌ ۯഥ۱ത۲ sido implem U, usando-se ma que tenha DC , isto é resposta. adores tam nicialmente seleção, qu unção faz-s o na Figura 00 01 0 0 1 1 1 0 1 1 ementadas CBADCA ۯഥ۰ഥ۱ ۯ۱۲ mentada us e uma expr a sido imple é, dada um mbém pode e que se dis ue correspo se necessár 6.29. 11 10 0 0 0 0 1 1 1 0 Prof. Tal de divers ACDC ۰۱۲ഥ com po ando-se som ressão na fo ementada, m a combinaç m ser em spõe de um ondem às v ria a monta les C Pimen sas formas DBC , po F ortas lógicas. mente porta orma de pro mas sim que ção nas ent mpregados m MUX 16x variáveis da tagem do m nta, PhD . Como ode ser as NÃO- oduto de e execute tradas, a para se x1. Esse a função mapa de Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD Figura 6.29 - Implementação da função ۴ ൌ ۯഥ۱ത۲ ۯഥ۰ഥ۱ ۯ۱۲ ۰۱۲ഥ com MUX 16x1. Obseva-se o valor de cada combinação das entradas no mapa de Karnaugh e aplica- se esse valor à respectiva entrada do multiplexador. Assim, a primeira combinacao no mapa é ABCD=0000, resultando em F=0. Esse valor 0 é colocado na primeira entrada do multiplexador, afinal quando for aplicado ABCD=0000 em suas entradas, a sua saída será F=0. Da mesma forma, a segunda combinacao no mapa é 0001 tendo como saída o valor 1. Esse valor 1 é colocado na segunda entrada do multiplexador. Este procedimento continua até o preenchimento de todas as entradas do multiplexador. Desta forma, como exemplo, ao se aplicar 0010 nas entradas do circuito usando-se portas lógicas, tem-se na saída o valor 1. Da mesma forma, ao se aplicar 0010 nas entradas de seleção do multiplexador, também tem-se também na saída o valor 1. Essa função também pode ser implementada com um MUX 8x1. Como esse multiplexador tem três linhas de entrada, devem-se selecionar três variáveis para essas linhas de seleção.Desta forma, as leituras no mapa de Karnaugh devem envolver essas variáveis, e os valores das leituras no mapa de Karnaugh e os valores são colocados no multiplexador. Como exemplo, considere a seleção das linhas A, B e D. A primeira combinação destas variáveis, ou seja, ABD=000 é marcada no mapa de Karnaugh em verde e o seu conteúdo é lido. O valor dessa leitura é exatamente igual a C, isto é, se C vale 0, a função vale 0 e se C vale 1, a função vale 1. Em outras palavras, para essa combinação de variáveis ABD=000 é, a função tem o mesmo valor de C, e assim, o multiplexador recebe C para sua primeira entrada. Da mesma forma, na próxima combinação, isto é, ABD=001, a leitura de Karnaugh (indicada em laranja) é sempre 1, independente de C, portanto a segunda entrada do multiplexador recebe 1. Este procedimento é seguido até que se obtenham todas as entradas do multiplexador, como ilustrado na Figura 6.30. Ressalta-se que se fossem utilizada outras variáveis (ou sequências) no multiplexador, o mapa apresentaria outra leitura. Notas variáv Karna variáv lido. entrad verde seja, a Este p ilustra variáv s de Aula – Considere veis para atu augh. Como veis, ou seja Figura Neste cas da. Da mesm no mapa d a segunda l procedimen ado pela F veis (ou sequ Figura ELTD01 e agora que uar como li o exemplo, a, CD=00 é a 6.30 - Implem so o conteú ma forma, a e Karnaugh leitura vale nto segue at igura 6.31. uências) no a 6.31 - Implem AB CD 00 01 11 10 e se deseja u nhas de sel selecionam é marcada e mentação da fun údo é 0 e a a segunda c h e o seu co A e, porta té que se o Deve-se l o multiplexa AB CD 00 01 11 10 0 A A+B A+B mentação da fun 00 01 0 0 1 1 1 0 1 1 utilizar um leção no mu m-se as linh em laranja n MU 8x1 C 1 C 0 C C C A B C nção ۴ ൌ ۯഥ۱ത۲ assim, o m combinação onteúdo é 1 anto a segu obtenham to lembrar en ador, o mapa 00 01 0 0 1 1 1 0 1 1 MUX 4x1 DC B B nção ۴ ൌ ۯഥ۱ത۲ 11 10 0 0 0 0 1 1 1 0 MUX4x1. ultiplexador as C e D. A no mapa de X 1 D F ۲ ۯഥ۰ഥ۱ ۯ۱۲ multiplexado o destas vari para A igua unda entrada odas as entr ntretanto qu a apresentar 11 10 0 0 0 0 1 1 1 0 F ۲ ۯഥ۰ഥ۱ ۯ۱۲ Prof. Tal Neste caso r e para as l A primeira e Karnaugh ۲ ۰۱۲ഥ com M or recebe 0 iáveis (CD= al a 0, e 0 p a do multip radas do m ue se fosse ria outra lei ۲ ۰۱۲ഥ com M les C Pimen o, escolhem leituras no combinaçã e o seu con MUX 8x1. 0 para sua =00) é mar para A igua plexador rec multiplexado em utilizad itura. MUX 4x1. nta, PhD m-se duas mapa de ão destas nteúdo é primeira rcada em al a 1, ou cebe A . or, como a outras Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 6.7 CIRCUITOS DE MANUSEIO DE DADOS UTILIZANDO VERILOG Circuitos de manuseio de dados utilizando Verilog. 6.8 EXERCÍCIOS 1. Projete um conversor do código BCDXS3 para o código BCD6311. 2. Projete um conversor do código BCD6311 para o código BCDXS3. 3. Altere os projetos anteriores para que valores de entrada inválidos resultem em todas saídas em 1. 4. Projete um conversor do código BCDXS3 para o código ASCII. 5. Codificadores de teclado usualmente devem ter a sua saída complementada para evitar que “não pressionar nenhuma tecla” seja diferente de pressionar o 0. Projete um codificador para o teclado da Figura 6.5, com saída em BCD complementado. 6. Reprojete o codificador de teclado da Figura 6.6 de modo que a saída seja em BCD não complementado. Nesse caso deve-se adicionar uma linha para sinalizar que uma tecla foi pressionada. 7. Quando se apresentam números decimais de dois ou mais dígitos em mostradores LED de 7 segmentos, evita-se colocar 0 à esquerda do dígito mais significativo. Como exemplo, evita-se 027 e escreve-se 27. Em outras palavras, os zeros sem valor devem ficar apagados. Projete um decodificador BCDXS3 para 7 segmentos, de modo que se for um zero sem valor, deve ficar apagado. 8. Implemente a função DBCACDCBADCAF utilizando um decodificador 4 para 16. 9. É possível implementar um decodificador 3 para 8 utilizando um DEMUX 1x8? E o contrário, é possível? 10. Implemente um multiplexador 2x4 utilizando MUX 2x1. 11. Implemente um multiplexador 2x4 utilizando MUX 4x1. 12. Implemente um multiplexador 8x1 utilizando MUX 4x1. Como seria a implementação de um MUX 8x2? 13. Implemente as seguintes funções lógicas utilizando MUX 16x1: a. CABDCBBAF b. DABACBDDBADBAG c. H = A(BC)+BCD d. I = (AB)(AC)+ACD Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 14. Implemente as funções lógicas anteriores utilizando MUX 8x1, com as seguintes linhas de controle: a. ABC b. BCD c. ABD 15. Implemente as funções lógicas anteriores utilizando MUX 4x1, com as seguintes linhas de controle: a. AB b. BC c. AD d. AC e. CD f. BD
Compartilhar