Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Circuitos combinacionais 1 Circuitos combinacionais Circuitos digitais Combinacionais Circuitos onde em qualquer instante de tempo o valor da saída depende unicamente do valor das entradas Todos circuitos vistos até agora Sequênciais Circuito onde o valor das saídas é determinado não somente a partir do valor das entradas mas também a partir do estado do circuito Possuem internamente elementos de memória Circuitos combinacionais Modelo Saídas dependem apenas das entradas Podem conter diversas saídas, cada uma regida por uma equação booleana distinta Circuitos combinacionais Fluxo de projeto Tabela verdade Equações booleanas Especificação Circuito lógico Simplificação algébrica Mapas de Karnaugh Equações booleanas simplificadas Circuitos combinacionais Circuitos digitais básicos (blocos básicos) Circuitos simples que são recorrentes no projeto de sistemas mais complexos Construídos a partir de um conjunto de portas lógicas Comparadores Somadores/Subtratores Elementos de memória … Circuitos mais complexos são criados a partir da interconexão de circuitos digitais básicos ao invés de portas lógicas Comparando com software, circuitos básicos podem ser vistos como funções que são reutilizadas em diversos programas (e.g. printf(), scanf()) Circuitos combinacionais Processador MIPS Organização/Arquitetura de computadores Circuitos combinacionais Decodificadores Circuito combinacional que converte o código binário presente na entrada em um outro código com mais bits na saída Símbolo 2 bits de entrada 4 bits de saída O número de entradas e saídas depende do decodificador 2 4 A S Circuitos combinacionais Decodificador BCD-7 segmentos A partir de um código BCD de 4 bits, gera um código de 7 bits para acionar os segmentos de um display de 7 segmentos BCD-7 segmentos a b c d e f g B3 B2 B1 B0 Circuitos combinacionais Decodificador BCD-7 segmentos CMOS 4511 Encontrado em qualquer loja de componentes eletrônicos VCC Circuitos combinacionais Decodificadores n:m Lê-se decodificador de n para m n bits de entrada e m bits de saída O número de bits de m é dado por 2n: m = 2n Decodificadores 2:4 (n=2; m=4) Decodificadores 3:8 (n=3; m=8) Decodificadores 4:16 (n=4; m=16) ... Diferente do decodificador BCD-7 segmentos, decodificadores n:m ativam apenas um bit de saída Circuitos combinacionais Decodificadores n:m Decodificador 2:4 Entrada de 2 bits Saída de 4 bits 2 4 A S A1 A0 S3 S2 S1 S0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 Número do bit de saída ativo Circuitos combinacionais Decodificadores n:m Decodificador 2:4 Entrada de 2 bits Saída de 4 bits A1 A0 S3 S2 S1 S0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 S0 = !A1.!A0 S3 = A1.A0 S1 = !A1.A0 S2 = A1.!A0 Número do bit de saída ativo Circuitos combinacionais Decodificadores n:m Logisim Circuitos combinacionais Decodificadores n:m Decodificador 3:8 Entrada de 3 bits Saída de 8 bits 3 8 A S A2 A1 A0 S7 S6 S5 S4 S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 S0 = !A2.!A1.!A0 S1 = !A2.!A1.A0 S2 = !A2.A1.!A0 S3 = !A2.A1.A0 S4 = A2.!A1.!A0 S5 = A2.!A1.A0 S6 = A2.A1.!A0 S7 = A2.A1.A0 Circuitos combinacionais Decodificadores n:m Decodificador 2:4 com enable (habilitação) Entrada en de habilitação Quando en = 0, todos bits de saída estão inativos Quando en = 1, o bit de saída ativo depente do valor de A en A1 A0 S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 Saídas desabilitadas Saídas habilitadas 2 4 A S en Quando en=0, don’t care A0 e A1 Circuitos combinacionais Decodificadores n:m Decodificador 2:4 com enable (habilitação) Entrada en de habilitação Quando en = 0, todos bits de saída estão inativos Quando en = 1, o bit de saída ativo depente do valor de A en A1 A0 S3 S2 S1 S0 0 X X 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 Saídas habilitadas 2 4 A S en Quando en = 0, as saídas são 0 independente do valor das entradas A1 e A0 Circuitos combinacionais Decodificadores n:m Decodificador 2:4 com enable (habilitação) Entrada en de habilitação Quando en = 0, todos bits de saída estão inativos Quando en = 1, o bit de saída ativo depente do valor de A en A1 A0 S3 S2 S1 S0 0 X X 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 S0 = en.!A1.!A0 S3 = en.A1.A0 S1 = en.!A1.A0 S2 = en.A1.!A0 A1 A0 en S0 S1 S2 S3 Circuitos combinacionais Decodificadores n:m Decodificador 2:4 com enable (habilitação) Entrada en de habilitação Quando en = 0, todos bits de saída estão inativos Quando en = 1, o bit de saída ativo depente do valor de A A1 A0 en S0 S1 S2 S3 S0 S1 S2 S3 A1 A0 Decodificador 2:4 sem enable Entrada en ligada em todas portas Circuitos combinacionais Decodificadores n:m Logisim Circuitos combinacionais Decodificadores n:m TTL 74138 – Decodificador 3:8 com habilitação TTL 74139 – 2 decodificadores 2:4 com habilitação Circuitos combinacionais Decodificadores n:m Decodificadores maiores podem ser criados a partir da interconexão de decodificadores menores Solução mais simples que a combinação de portas lógicas Exemplo Decodificador 3:8 criado a partir de 2 decodificadores 2:4 Circuito criado sem ter como base equações booleanas, apenas o conhecimento do funcionamento dos circuitos utilizados Mesma idéia utilizada em software quando se cria um novo programa a partir de funções já prontas Decodificador 3:8 Circuitos combinacionais Decodificadores n:m Logisim Circuitos combinacionais Decodificadores n:m Decodificador 4:16 Decodificadores 3:8 Circuitos combinacionais Decodificadores n:m Decodificador 4:16 Decodificadores 2:4 Controla a habilitação dos outros decodificadores Circuitos combinacionais Decodificador específico Exemplo: projetar um decodificador com 2 bits de entrada e e 6 bits de saída com o seguinte comportamento Entrada: 00 → Saída: 001100 Entrada: 01 → Saída: 010010 Entrada: 10 → Saída: 100001 Entrada: 11 → Saída: 101101 A1 A0 S5 S4 S3 S2 S1 S0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 → Mapas de Karnaugh → Equações → Circuito Circuitos combinacionais Codificadores Codificadores realizam a função oposta dos decodificadores Reduzem o número de bits necessários para a representação de alguma informação através de um código Os principais tipos de codificadores são Binários Prioridade Não têm um símbolo específico que os caracteriza Circuitos combinacionais Codificadores Codificador binário Número de entradas é sempre potência de 2 2n bits de entrada e n bits de saída Apenas combinações de entradas contendo somente um bit igual a 1 são consideradas válidas (OK = 1) Na saída tem-se o número que identifica a entrada ativa As combinações restantes são inválidas (OK=0) 4 (22) entradas 2 saídas 8 (23) entradas 3 saídas Codificador 2 bits D0 D1 D2 D3 C0 C1 OK Codificador 3 bits D0 D7 C0 C2 C1 OK Circuitos combinacionais Codificadores Codificador de 2 bits D3 D2 D1 D0 C1 C0 OK 0 0 0 0 X X 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 X X 0 0 1 0 0 1 0 1 0 1 0 1 X X 0 0 1 1 0 X X 0 0 1 1 1 X X 0 1 0 0 0 1 1 1 1 0 0 1 X X 0 1 0 1 0 X X 0 1 0 1 1 X X 0 1 1 0 0 X X 0 1 1 0 1 X X 0 1 1 1 0 X X 0 1 1 1 1 X X 0 Apenas combinações de entradas contendo somente um bit ativo são consideradas válidas Codificador 2 bits D0 D1 D2 D3 C0 C1 OK Circuitos combinacionais Codificadores Codificador de 2 bits C0 D1D0 D3D2 00 01 11 10 00 01 11 10 C1 D1D0 D3D2 00 01 11 10 00 01 11 10 D3 D2 D1 D0 C1 C0 OK 0 0 0 0 X X 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 X X 0 0 1 0 0 1 0 1 0 1 0 1 X X 0 0 1 1 0 X X 0 0 1 1 1 X X 0 1 0 0 0 1 1 1 1 0 0 1 X X 0 1 0 1 0 X X 0 1 0 1 1 X X 0 1 1 0 0 X X 0 1 1 0 1 X X 0 1 1 1 0 X X 0 1 1 1 1 X X 0 Circuitos combinacionais Codificadores Codificador de 2 bits C0 D1D0 D3D2 00 01 11 10 00 X 0 X 1 01 0 X X X 11 X X X X 10 1 X X X C1 D1D0 D3D2 00 01 11 10 00 X 0 X 0 01 1 X X X 11 X X X X 10 1 X X X C1 = !D1.!D0 C0 = !D2.!D0 D3 D2 D1 D0 C1 C0 OK 0 0 0 0 X X 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 X X 0 0 1 0 0 1 0 1 0 1 0 1 X X 0 0 1 1 0 X X 0 0 1 1 1 X X 0 1 0 0 0 1 1 1 1 0 0 1 X X 0 1 0 1 0 X X 0 1 0 1 1 X X 0 1 1 0 0 X X 0 1 1 0 1 X X 0 1 1 1 0 X X 0 1 1 1 1 X X 0 Circuitos combinacionais Codificadores Codificador de 2 bits OK D1D0 D3D2 00 01 11 10 00 0 1 0 1 01 1 0 0 0 11 0 0 0 0 10 1 0 0 0 OK = !D2.!D3.!D2.D3 + !D2.!D3.D2.!D3 + !D2.D3.!D2.!D3 + D2.!D3.!D2.!D3 D3 D2 D1 D0 C1 C0 OK 0 0 0 0 X X 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 X X 0 0 1 0 0 1 0 1 0 1 0 1 X X 0 0 1 1 0 X X 0 0 1 1 1 X X 0 1 0 0 0 1 1 1 1 0 0 1 X X 0 1 0 1 0 X X 0 1 0 1 1 X X 0 1 1 0 0 X X 0 1 1 0 1 X X 0 1 1 1 0 X X 0 1 1 1 1 X X 0 Circuitos combinacionais Codificadores Codificador de 2 bits D3 D2 D1 D0 C1 C0 OK 0 0 0 0 X X 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 X X 0 0 1 0 0 1 0 1 0 1 0 1 X X 0 0 1 1 0 X X 0 0 1 1 1 X X 0 1 0 0 0 1 1 1 1 0 0 1 X X 0 1 0 1 0 X X 0 1 0 1 1 X X 0 1 1 0 0 X X 0 1 1 0 1 X X 0 1 1 1 0 X X 0 1 1 1 1 X X 0 C1 = !D1.!D0 C0 = !D2.!D0 OK = !D2.!D3.!D2.D3 + !D2.!D3.D2.!D3 + !D2.D3.!D2.!D3 + D2.!D3.!D2.!D3 Circuitos combinacionais Codificadores Codificador de 2 bits C1 = !D1.!D0 C0 = !D2.!D0 OK = !D2.!D3.!D2.D3 + !D2.!D3.D2.!D3 + !D2.D3.!D2.!D3 + D2.!D3.!D2.!D3 D3 D2 D1 D0 C1 C0 OK 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 Entradas inválidas removidas (OK=0 para as linhas removidas) Tabela verdade compactada Circuitos combinacionais Codificadores Codificador de 2 bits Circuitos combinacionais Codificadores Codificador de 3 bits Tabela verdade compacta D7 D6 D5 D4 D3 D2 D1 D0 C2 C1 C0 OK 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 Codificador 3 bits D0 D7 C0 C1 C2 OK Entradas inválidas removidas (OK=0 para as linhas removidas) Circuitos combinacionais Codificadores Codificador + Decodificador 2 4 A S 4 Codificador 2 bits Decodificador 2:4 D C OK en Apenas entradas válidas são decodificadas 0100 10 0100 1 Circuitos combinacionais Codificadores Codificador + Decodificador 2 4 A S 4 Decodificador 2:4 D C OK en Apenas entradas válidas são decodificadas 0110 XX 0000 0 Codificador 2 bits Circuitos combinacionais Codificadores Codificador de prioridades Codificador que implementa, adicionalmente à função codificadora, uma função de prioridade Combinações de entradas contendo mais de um bit ativo são consideradas válidas Exemplo, se dois ou mais bits de entrada são iguais a 1, o código gerado indica a entrada de maior prioridade igual a 1 Circuitos combinacionais Codificadores Codificador de prioridades A saída S indica a entrada de maior prioridade igual a 1 A prioridade das entradas (exemplo) R2 > R1 > R0 Quando nenhuma entrada estiver ativa IDLE ← 1 R0 R1 R2 S 2 Codificador de prioridades IDLE Circuitos combinacionais Codificadores Codificador de prioridades A saída S indica a entrada de maior prioridade igual a 1 A prioridade das entradas (exemplo) R2 > R1 > R0 Quando nenhuma entrada estiver ativa IDLE ← 1 R2 R1 R0 S1 S0 IDLE 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 R0 R1 R2 S 2 Codificador de prioridades IDLE Circuitos combinacionais Codificadores Codificador de prioridades A saída S indica a entrada de maior prioridade igual a 1 A prioridade das entradas (exemplo) R2 > R1 > R0 Quando nenhuma entrada estiver ativa IDLE ← 1 R2 R1 R0 S1 S0 IDLE 0 0 0 X X 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 R0 R1 R2 S 2 Codificador de prioridades IDLE Circuitos combinacionais Codificadores Codificador de prioridades A saída S indica a entrada de maior prioridade igual a 1 A prioridade das entradas (exemplo) R2 > R1 > R0 Quando nenhuma entrada estiver ativa IDLE ← 1 R2 R1 R0 S1 S0 IDLE 0 0 0 X X 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 S1 = R2 + R1 S0 = !R1 + R2 IDLE = !R2.!R1.!R0 Mapas de Karnaugh
Compartilhar