A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 O decodificador é um circuito digital que recebe um conjunto.

Apresentações semelhantes


Apresentação em tema: "Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 O decodificador é um circuito digital que recebe um conjunto."— Transcrição da apresentação:

1 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 O decodificador é um circuito digital que recebe um conjunto de entradas que representa um número binário e ativa apenas a saída que corresponde ao número recebido. Um circuito decodificador analisa as entradas, determina o número binário que está presente e ativa a saída correspondente ao número na entrada. Todas as outras saídas permanecem desativadas............ 2 N Saídas N entradas Decodificador

2 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001

3 Decodificador 2 para 4 (2 : 4) Um decodificador N:2 N apresenta: N entradas 2 N saídas.

4 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 Descrição Verilog: module decodificador2x4_descricao1 (output reg S0, S1, S2, S3, input A0, A1); always @ (*) begin S0 = (!A0)&(!A1); S1 = (A0)&(!A1); S2 = (!A0)&A1; S3 = A0&A1; end endmodule

5 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 Esquema elétrico Simulação

6 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 Esquema elétrico Simulação

7 Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 module decodificador2x4_descricao1 (output reg S0,S1,S2,S3, input [1:0] controle); always @ (*) begin case (controle) 2'b00: begin S0 = 1; S1 = 0; S2 = 0; S3 = 0; end 2'b01: begin S0 = 0; S1 = 1; S2 = 0; S3 = 0; end 2'b10: begin S0 = 0; S1 = 0; S2 = 1; S3 = 0; end 2'b11: begin S0 = 0; S1 = 0; S2 = 0; S3 = 1; end endcase end endmodule

8 Decodificador 3 para 8 (3 : 8)

9 Observe que uma Saída i do decodificador acima implementa o minitermo m i das variáveis S2,S1 e S0

10 Decodificador 3 : 8 O símbolo utilizado para o decodificador é:

11 Codificador O codificador é um circuito digital que possui um certo número de entradas das quais apenas uma delas é ativada por vez e produz um código de saída de N bits, dependendo de qual entrada está ativada. O diagrama de blocos abaixo mostra um codificador de M entradas e N saídas. As entradas são ativadas em nível ALTO............ M entradas Codificador Código de saída de N bits Apenas uma em nível ALTO de cada vez

12 Codificador Exemplo 1 : Projetar um codificador octal para binário (8 entradas e 3 saídas) Solução:............ 8 entradas Codificador Código de saída de 3 bits Apenas uma em nível ALTO de cada vez

13 Codificador Octal - binário............ 8 entradas Codificador Código de saída de 3 bits Apenas uma em nível ALTO de cada vez A7A6A5A4A3A2A1A0O2O1O0 00000000000 00000010001 00000100010 00001000011 00010000100 00100000101 01000000110 10000000111 Entradas Saídas

14 Codificador Octal - binário A7A6A5A4A3A2A1A0O2O1O0 00000000000 00000010001 00000100010 00001000011 00010000100 00100000101 01000000110 10000000111 Entradas Saídas O 0 = A1 + A3 + A5 + A7 O 1 = A2 + A3 + A6 + A7 O 2 = A4 + A5 + A6 +A7 Equações booleanas

15 Codificador Octal - binário module codificador_octal_binario (output reg O0, O1, O2, input A0, A1, A2, A3, A4, A5, A6, A7); always@(*) begin O0 = A1 | A3 | A5 | A7; O1 = A2 | A3 | A6 | A7; O2 = A4 | A5 | A6 | A7; end endmodule A7A6A5A4A3A2A1A0O2O1O0 00000000000 00000010001 00000100010 00001000011 00010000100 00100000101 01000000110 10000000111 Entradas Saídas

16 Codificador Octal - binário A7A6A5A4A3A2A1A0O2O1O0 00000000000 00000010001 00000100010 00001000011 00010000100 00100000101 01000000110 10000000111 Entradas Saídas

17 Codificador Decimal - BCD (Binary Coded Decimal) Código BCD 8421 – Binary Coded Decimal (Decimal Codificado em Binário), é composto por quatro bits, tendo cada bit um peso equivalente ao do sistema numérico binário: DecimalBCD 00000 10001 20010 30011 40100 50101 60110 70111 81000 91001 Ao invés de se converter um número formado por diversos dígitos para o sistema binário os sistemas digitais que utilizam este código podem converter cada dígito do número para o BCD. Por exemplo: 45623 = 0100 0101 0110 0010 0011 45623

18 Codificador Decimal - BCD (Binary Coded Decimal) A9A8A7A6A5A4A3A2A1A0S3S2S1S0 00000000010000 00000000100001 00000001000010 00000010000011 00000100000100 00001000000101 00010000000110 00100000000111 01000000001000 10000000001001 S3 = A8 + A9 S2 = A4 + A5 + A6 + A7 S1 = A2 + A3 + A6 + A7 S0 = A1 + A3 + A5 + A7 + A9 Equações booleanas Entradas Saídas

19 Codificador Decimal - BCD (Binary Coded Decimal) module codificador_decimal_BCD (output reg S0, S1, S2, S3, input A1, A2, A3, A4, A5, A6, A7, A8, A9); always@(*) begin S3 = A8 | A9; S2 = A4 | A5 | A6 | A7; S1 = A2 | A3 | A6 | A7; S0 = A1 | A3 | A5 | A7 | A9; end endmodule

20 Codificador Decimal - BCD (Binary Coded Decimal) Simulação

21 Um multiplexador 2 N :1 apresenta: 2 N entradas de dados N entradas de seleção; 1 saída. Um multiplexador 2 N :1 conecta uma de suas 2 N entradas à saída

22 Abaixo está representado um multiplexador 8:1 como sendo uma chave cuja posição corresponde ao número binário apresentado nas entradas de controle A, B e C. A posição da chave mostrada na figura abaixo corresponde aos valores: A = 1, B = 1 e C = 0.

23 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 MUX 4:1 Z I0I0 I1I1 I2I2 I3I3 AB

24 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 MUX 4:1 Z I0I0 I1I1 I2I2 I3I3 AB Z = I 0 A+ I 1 BAB + I 2 AB+B+ + I 3 AB

25 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 Z = I 0 A+ I 1 BAB + I 2 AB+B+ + I 3 AB Descrição Verilog: module multiplexador4x1_descricao1 (output reg Z, input A, B, I0, I1, I2, I3); always @ (*) begin Z = I0&(!A)&(!B)|I1&B&(!A)|I2&(!B)&A|I3&A&B; end endmodule

26 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 + I 3 ABZ = I 0 A+ I 1 BAB + I 2 AB+B+

27 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 module multiplexador4x1_descricao2 (output reg Z, input A, B, I0, I1, I2, I3); always @ (*) begin case ({A, B}) 2'b00: Z = I0; 2'b01: Z = I1; 2'b10: Z = I2; 2'b11: Z = I3; endcase end endmodule

28 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 module multiplexador4x1_descricao2 (output reg Z, input A, B, I0, I1, I2, I3); always @ (*) begin case ({A, B}) 2'b00: Z = I0; 2'b01: Z = I1; 2'b10: Z = I2; 2'b11: Z = I3; endcase end endmodule Diagrama Esquemático do mux

29 ABZ 00I0I0 01I1I1 10I2I2 11I3I3 Tabela Verdade Multiplexador 4:1 module multiplexador4x1_descricao3 (output reg Z, input A, B, I0, I1, I2, I3); always @(*) begin Z = 0; if ({A,B} == 0) Z = I0; else if ({A,B} == 1) Z = I1; else if ({A,B} == 2) Z = I2; else if ({A,B} == 3) Z = I3; end endmodule Diagrama Esquemático do mux

30 O Multiplexador como um Bloco Lógico Básico Um multiplexador 2 N :1 pode implementar qualquer função de N variáveis: Exemplo: Implementar a função booleana:

31 O Multiplexador como um Bloco Lógico Básico Solução: 1. Mapa de Karnaugh da função

32 O Multiplexador como um Bloco Lógico Básico 2. conectar as variáveis às entradas de seleção do multiplexador; 3. conectar "0" ou "1" apropriadamente em cada entrada de dados, dependendo do valor de saída desejado; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 f A3 A2 A1 A0 A B C D MUX 16:1 00001111100001110000111110000111

33 Multiplexadores em Cascata Multiplexadores maiores podem ser implementados utilizando-se multiplexadores menores em cascata: Exemplo1: MUX 8:1 construído a partir de dois MUX 4:1 e um MUX 2:1

34 Multiplexadores em Cascata Exemplo2: MUX 8:1 construído a partir de quatro MUX 2:1 e um MUX 4:1

35 Demultiplexador

36 Um demultiplexador N:2 N apresenta: 1 entrada de dados. 2 N saídas. N entradas de seleção representando o índice binário i da saída à qual a entrada de dado está conectada; Exemplo: Demultiplexador Estrutura interna do demultiplexador 1:2 é: D A D = Dado A = Seleção Saída 0 = D.A Saída 1 = D.A

37 Demultiplexador D A D = Dado A = Seleção Saída 0 = D.A Saída 1 = D.A ASaída 0 Saída 1 0D0 10D Tabela Verdade

38 Demultiplexador 2 : 4

39 AB Y 0 Y 1 Y 2 00D 0 0 0 010 D 0 0 100 0 D 0 110 0 0 D Tabela Verdade D Y3 Y 0 = D AB AB+B+ ABY 1 = D Y 2 = D B+B+ Y 3 = DA+A+

40 Demultiplexador 2 : 4 AB Y 0 Y 1 Y 2 00D 0 0 0 010 D 0 0 100 0 D 0 110 0 0 D Tabela Verdade Y3 Y 0 = D AB AB+B+ ABY 1 = D Y 2 = D B+B+ Y 3 = DA+A+ Descrição: module demultiplexador2x4_descricao1 (output reg Y0, Y1, Y2, Y3, input A, B, D); always @ (*) begin Y0 = D&(!A)&(!B); Y1 = D&(!A)& B; Y2 = D&A&(!B); Y3 = D&A&B; end endmodule Esquemático Equações booleanas

41 Demultiplexador 2 : 4 Descrição: module demultiplexador2x4_descricao1 (output reg Y0, Y1, Y2, Y3, input A, B, D); always @ (*) begin Y0 = D&(!A)&(!B); Y1 = D&(!A)& B; Y2 = D&A&(!B); Y3 = D&A&B; end endmodule Simulação

42 Demultiplexador 2 : 4 module demultiplexador2x4_descricao2 (output reg Y0, Y1, Y2, Y3, input A, B, D); always @(*) begin Y0 = 0; Y1 = 0; Y2 = 0; Y3 = 0; if ({A,B} == 0) Y0 = D; else if ({A,B} == 1) Y1 = D; else if ({A,B} == 2) Y2 = D; else if ({A,B} == 3) Y3 = D; end endmodule Simulação

43 Multiplexadores e Demultiplexadores podem ser utilizados em conexões multi- ponto. No exemplo abaixo é possível selecionar múltiplas fontes de entrada e múltiplos destinos de saída: Conexões multi-ponto

44 Controlador para display de 7 segmentos Controlador Display de 7 segmentos Entrada Binária De 4 bits a b c d e f g

45 Controlador para display de 7 segmentos Podemos formar qualquer algarismo de 0 a 9 usando uma combinação de 7 segmentos de um mostrador.

46 Tabela Verdade do controlador Dígito decimal entradassaídas

47 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 Controlador para display de 7 segmentos DECODIFICADOR CODIFICADOR A B C D a b c d e f g A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 CONTROLADOR A0 A1 A2 A3

48 Controlador para display de 7 segmentos module controlador_7_segmentos (output reg [7:1] seg, // seg[7] = a; seg[6] = b... seg[1] = g input [3:0] digito); always @(*) begin case (digito) 4'b0000: seg = 7'b1111110; 4'b0001: seg = 7'b0110000; 4'b0010: seg = 7'b1101101; 4'b0011: seg = 7'b1111001; 4'b0100: seg = 7'b0110011; 4'b0101: seg = 7'b1011011; 4'b0110: seg = 7'b1011111; 4'b0111: seg = 7'b1110000; 4'b1000: seg = 7'b1111111; 4'b1001: seg = 7'b1111011; default : seg = 7'b0000000; endcase end endmodule Simulação


Carregar ppt "Decodificador 2 para 4 (2 : 4) Tabela Verdade A1A0S0S1S2S3 00 1000 01 0100 10 0010 11 0001 O decodificador é um circuito digital que recebe um conjunto."

Apresentações semelhantes


Anúncios Google