Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 1 1 PCS 2215 Fundamentos de Engenharia de Computação II Módulo 07a – Circuitos Combinatórios Blocos Básicos I Decodificadores, Multiplexadores, Codificadores, Drivers de Display; Transcoders (BCD – 7 segmen- tos); Paridade; Código de Hamming. Andrade, Marco Túlio Carvalho de Saraiva, Antônio Mauro Professores Responsáveis versão: 2.0 (outubro de 2.013) © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 2 2 Circuitos Combinatórios – Blocos básicos 1. Decodificadores; 2. Multiplexadores; 3. Codificadores; Drivers de Display; Transcoders (BCD – 7 segmentos); 4. Gerador/Detector de Paridade; 5. Código de Hamming; 6. Exercícios; 7. Bibliografia; 8. Apêndice. Conteúdo 2 2 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 3 3 1. Decodificadores Decodificador ou Decoder – É um Bloco Lógico Funcional (ou Bloco Combinatório Lógico) que possui n entradas e (até) 2n saídas – Para cada combinação de valores das n entradas apenas uma saída é ativada d n-1 d1 d0 .. .. s0 s1 s 2n - 1 Decoder n x 2n n entradas 2n saídas © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 4 4 1. Decodificadores Qual saída é ativada? » As entradas formam uma palavra binária de n bits » A palavra pode assumir os valores de 0 a 2n -1 » As 2n saídas são numeradas de 0 a 2n -1 » A saída ativada corresponde àquela cujo índice corresponde ao valor da palavra binária de entrada Exemplo – Entradas = 011 (310); ativa-se a saída S3 – Entradas = 101 (510); ativa-se a saída S5 3 3 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 5 5 1. Decodificadores – Notação Símbolo funcional (convenção): – Entradas à esquerda – Saídas à direita – Índice menor indica bit menos significativo na palavra binária 23 = 8 saídas d 0 d 1 d 2 s 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 Decodificador 3 x 83 entradas Denominação – Decodificador 3 por 8 – Decodificador 3 x 8 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 6 6 1. Decodificadores – Tabela da Verdade ENTRADAS SAÍDAS d2 d1 d0 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 Ex: Decodificador 3 por 8 4 4 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 7 7 S0 = D2’ .D1’ .D0’ S1 = D2’ .D1’ .D0 S2 = D2’ .D1 .D0’ S3 = D2’ .D1 .D0 S4 = D2 .D1’ .D0’ S5 = D2 .D1’ .D0 S6 = D2 .D1 .D0’ S7 = D2 .D1 .D0 1. Decodificadores – Circuito interno Si= mi S0 S1 S2 S3 S4 S5 S6 S7 D0 D1 D2 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 8 8 1. Decodificadores – Entradas adicionais Enable – Permite habilitar/desabilitar o bloco todo » SE Enable ativo –Funcionamento normal: apenas uma saída ativa » SE Enable inativo –Nenhuma saída ativa, independente do código nas entradas de endereço – Atua em todos os mintermos 5 5 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 9 9 ENTRADAS SAÍDAS EN d2 d1 d0 S7 S6 S5 S4 S3 S2 S1 S0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 Ex: Decodificador 3 por 8, com ENABLE (EN) 1. Decodificadores – Tabela da Verdade © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 10 10 1. Decodificadores – Circuito interno d 0 d 1 d 2 s 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 Decodificador 3 x 8 EN S0 = EN .D2’ .D1’ .D0’ . .. S7 = EN . D2 .D1 .D0 S0 S1 S2 S3 S4 S5 S6 S7 D0 D1 D2 ENABLE Com Enable 6 6 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 11 11 1.Decodificadores – Saídas invertidas Decodificadores podem ter as saídas invertidas ou complementadas – Diz-se saídas active-low – ativas em ZERO » Saídas inativas em 1, a única saída ativa = 0 – Implicações » na tabela verdade: inversão nas saídas » no circuito: uso de NAND » Nomenclatura: Si’ ou » Cada saída é um maxtermo: Si’ = Mi iS © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 12 12 1.Decodificadores – Entradas active low Entrada ENABLE também pode ser active-low – SE Enable’=0, circuito habilitado – SE Enable’=1, saídas todas desabilitadas – Implicações » na tabela verdade: inversão na entrada » no circuito: uso de inversor »Nomenclatura: EN’ ou EN 7 7 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 13 13 1. Decodificadores – Saídas active low Entradas Saídas EN’ d1 d0 S’3 S’2 S'1 S’0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 X X 1 1 1 1 d 0 d 1 s 0’ s 1’ s 2’ s 3’ Decodificador 2 x 4 EN D0 D1 ENABLE’ S'0 S'1 S'2 S'3 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 14 14 1.Decodificadores – Decimal Decodificador BCD para decimal –Entrada: 1 dígito BCD (4 bits) »Palavras válidas 0000 → 1001 –Saída: 10 saídas (<24) »Saída ativa: corresponde à palavra de entrada »Saídas inativas (todas): SE Enable = Falso OU SE palavra de entrada >1001 8 8 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 15 15 1.Decodificadores – Decimal d 0 d 1 d 2 s 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 Decodificador 4 x 10 (Decimal) EN d 3 10 saídas (< 24)4 entradas entrada de habilitação © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 16 16 1.Decodificadores – Decimal EN d3 d2 d1 d0 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 . . . . 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 X X X X 0 0 0 0 0 0 0 0 0 0 9 9 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 17 17 1. Decodificadores – Símbolo alternativo © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 18 18 1. Decodificadores – Uso Síntese de funções de chaveamento – Saídas dos Decoders são os mintermos para as variáveis de entrada – 1ª.forma canônica: Função = Σmintermos Exemplo: – F(d,c,b,a) = Σ(0,1,5,9,12) 10 10 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 19 19 1. Decodificadores – Síntese de funções F(d,c,b,a) = Σ(0,1,5,9,12) 0 1 2DEC 4:16 3 s5 E = 1 s0 s12 s9 s1 E f a b c d 0 1 2 3 a b c d © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 20 20 Decoder [1/4] library IEEE; use IEEE.std_logic_1164.all; entity decoder is port(D0, D1, D2: in std_logic; S0, S1, S2, S3, S4, S5, S6, S7: out std_logic); end decoder; 11 11 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 21 21 Decoder [2/4] architecture simpleDecoder of decoder is begin S0 <= not D0 and not D1 and not D2; S1 <= D0 and not D1 and not D2; S2 <= not D0 and D1 and not D2; S3 <= D0 and D1 and not D2; S4 <= not D0 and not D1 and D2; S5 <= D0 and not D1 and D2; S6 <= not D0 and D1 and D2; S7 <= D0 and D1 and D2; end simpleDecoder; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 22 22 Decoder [3/4] architecture componentDecoder of decoder is signal NOTD0, NOTD1, NOTD2: std_logic; component \NOT\ port(\IN\: in std_logic; \OUT\: out std_logic); end component; component and3 port(IN1, IN2, IN3: in std_logic; \OUT\: out std_logic); end component;. 12 12 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 23 23 Decoder [4/4] begin inv_0: \NOT\ port map(D0, NOTD0); inv_1: \NOT\ port map(D1, NOTD1); inv_2: \NOT\ port map(D2, NOTD2); and_0: and3 port map(NOTD0, NOTD1, NOTD2, S0); and_1: and3 port map( D0, NOTD1, NOTD2, S1); and_2: and3 port map(NOTD0, D1, NOTD2, S2); and_3: and3 port map( D0, D1, NOTD2, S3); and_4: and3 port map(NOTD0, NOTD1, D2, S4); and_5: and3 port map( D0, NOTD1, D2, S5); and_6: and3 port map(NOTD0, D1, D2, S6); and_7: and3 port map( D0, D1, D2, S7); end componentDecoder; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 24 24 Decoder_en [1/4] library IEEE; use IEEE.std_logic_1164.all; entity decoder_en is port(D0, D1, D2: in std_logic; enable: in std_logic; S0, S1, S2, S3, S4, S5, S6, S7: out std_logic); end decoder_en; 13 13 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 25 25 Decoder_en [2/4] architecture enabledDecoder of decoder_en is begin S0 <= not D0 and not D1 and not D2 and enable; S1 <= D0 and not D1 and not D2 and enable; S2 <= not D0 and D1 and not D2 and enable; S3 <= D0 and D1 and not D2 and enable; S4 <= not D0 and not D1 and D2 and enable; S5 <= D0 and not D1 and D2 and enable; S6 <= not D0 and D1 and D2 and enable; S7 <= D0 and D1 and D2 and enable; end enabledDecoder; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 26 26 Decoder_en [3/4] architecture componentDecoderEn of decoder_en is signal NOTD0, NOTD1, NOTD2: std_logic; component \NOT\ port(\IN\: in std_logic; \OUT\: out std_logic); end component; component and4 port(IN1, IN2, IN3, IN4: in std_logic; \OUT\: out std_logic); end component; 14 14 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 27 27 Decoder_en [4/4] begin inv_0: \NOT\ port map(D0, NOTD0); inv_1: \NOT\ port map(D1, NOTD1); inv_2: \NOT\ port map(D2, NOTD2); and_0: and4 port map(NOTD0, NOTD1, NOTD2, enable, S0); and_1: and4 port map( D0, NOTD1, NOTD2, enable, S1); and_2: and4 port map(NOTD0, D1, NOTD2, enable, S2); and_3: and4 port map( D0, D1, NOTD2, enable, S3); and_4: and4 port map(NOTD0, NOTD1, D2, enable, S4); and_5: and4 port map( D0, NOTD1, D2, enable, S5); and_6: and4 port map(NOTD0, D1, D2, enable, S6); and_7: and4 port map( D0, D1, D2, enable, S7); end componentDecoderEn; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 28 28 Decoder 4x16 [1/3] library IEEE; use IEEE.std_logic_1164.all; entity decoder4x16 is port(D0, D1, D2, D3: in std_logic; S : out std_logic_vector(15 downto 0)); end decoder4x16; 15 15 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 29 29 Decoder 4x16 [2/3] architecture simpleDecoder4x16 of decoder4x16 is begin S(0) <= not D0 and not D1 and not D2 and not D3; S(1) <= D0 and not D1 and not D2 and not D3; S(2) <= not D0 and D1 and not D2 and not D3; S(3) <= D0 and D1 and not D2 and not D3; S(4) <= not D0 and not D1 and D2 and not D3; S(5) <= D0 and not D1 and D2 and not D3; S(6) <= not D0 and D1 and D2 and not D3; S(7) <= D0 and D1 and D2 and not D3; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 30 30 Decoder 4x16 [3/3] S(8) <= not D0 and not D1 and not D2 and D3; S(9) <= D0 and not D1 and not D2 and D3; S(10) <= not D0 and D1 and not D2 and D3; S(11) <= D0 and D1 and not D2 and D3; S(12) <= not D0 and not D1 and D2 and D3; S(13) <= D0 and not D1 and D2 and D3; S(14) <= not D0 and D1 and D2 and D3; S(15) <= D0 and D1 and D2 and D3; end simpleDecoder4x16; 16 16 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 31 31 2. Multiplexadores – Conceito Correspondente mecânico de um Multiplexador: Chave seletora Multiplexação – Conceito © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 32 32 2. Multiplexadores Multiplexador ou Multiplexer ou Mux – É um Bloco Lógico Funcional (ou Bloco Combinatório Lógico) que possui 2n entra- das de dados e uma saída – Só uma das 2n entradas é “conectada” à saída – N entradas adicionais de seleção indicam qual entrada de dados vai para a saída 17 17 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 33 33 2.Multiplexadores – Entradas e saídas S0 . . . . I 0 I 1 I 2n - 1 Mux 2n x 1 n entradas de seleção 2n entradas de dados 1 saída de dados Z S n-1 . © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 34 34 2. Multiplexadores Qual entrada de dados vai para a saída ? – As entradas de seleção formam uma palavra binária de n bits – A palavra pode assumir os valores de 0 a 2n -1 – As 2n entradas de dados são numeradas de 0 a 2n -1 – A saída recebe a entrada de dados cujo índice corresponde ao valor da palavra binária das entradas de seleção Exemplo – Entradas de seleção = 011 (310); Z recebe I3 18 18 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 35 35 2.Multiplexadores – Notação S0 I 3 I 2 I 0 Mux 4 x 1 2 entradas de seleção 22 = 4 entradas de dados 1 saída de dados Z S 1 I 1 Símbolo funcional (convenção): – Entradas de dados à esquerda – Saídas à direita – Índice menor indica bit menos significativo na palavra binária Denominação – Mux 8 por 1 – Multiplexador 8 x 1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 36 36 2. Multiplexadores – Tabela da Verdade Entradas de Seleção Saída S1 S0 Z 0 0 I0 0 1 I1 1 0 I2 1 1 I3 Ex: Mux 4 por 1 0 1 0 I0 I2 1 I1 I3 S1 S0 Mapa Z = S1’.S0’.I0 + S1’.S0.I1 + S1.S0’.I2 + S1.S0.I3 19 19 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 37 37 2. Multiplexadores – Circuito interno Z = S1’.S0’.I0 + S1’.S0.I1 + S1.S0’.I2 + S1.S0.I3 I 0 I 1 I 2 I 3 S1 S0 Z © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 38 38 Enable –Permite habilitar/desabilitar o bloco todo »SE Enable ativo –Funcionamento normal »SE Enable inativo –Saída inativa independentemente do código nas entradas de seleção e das entradas de dados –Atua em todos os produtos (portas E) 2. Multiplexadores – Entradas adicionais 20 20 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 39 39 Entradas Saída EN S1 S0 Z 1 0 0 I0 1 0 1 I1 1 1 0 I2 1 1 1 I3 0 X X 0 Ex: Mux 4 por 1 com Enable (EN) Z = EN.S1’.S0’.I0 + EN.S1’.S0.I1 + EN.S1.S0’.I2 + EN.S1.S0.I3 2. Multiplexadores – Tabela da Verdade © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 40 40 S0 I 3 I 2 I 0 EN Mux 4 x 1 Z S 1 I 1 Z = EN.S1’.S0’.I0 + EN.S1’.S0.I1 + EN.S1.S0’.I2 + EN.S1.S0.I3 I 0 I 1 I 2 I 3 S1 S0 ENABLE Z 2. Multiplexadores – Circuito interno com Enable 21 21 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 41 41 2. Multiplexadores – Saídas invertidas Multiplexadores podem ter a saída in- vertida ou complementada –Diz-se saída active-low – Ativa em ZERO; – Implicações: »Na tabela da verdade – Inversão na saída (Z’ = Ii’);; »No circuito – Uso de NOR; »Nomenclatura – Z’ ou Z © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 42 42 2. Multiplexadores – Entradas active low Entrada ENABLE também pode ser active- low – SE Enable’=0, circuito habilitado – SE Enable’=1, saídas todas desabilitadas – Implicações » na tabela verdade: inversão na entrada » no circuito: uso de inversor »Nomenclatura: EN’ ou EN 22 22 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 43 43 Entradas Saída EN’ S1 S0 Z’ 0 0 0 I0 ’ 0 0 1 I1 ’ 0 1 0 I2 ’ 0 1 1 I3 ’ 1 X X 1 S0 I 3 I 2 I 0 EN Mux 4 x 1 Z’ S 1 I 1 I 0 I 1 I 2 I 3 S1 S0 ENABLE’ Z’ 2. Multiplexadores – Entradas e saídas active low © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 44 44 2. Multiplexadores – Símbolo alternativo 23 23 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 45 45 2. Multiplexadores – Uso Síntese de funções – Qualquer função de chaveamento de n variáveis pode ser implementada com um único MUX 2n : 1 – Exemplo: Função de 2 variáveis e Mux 4x1 Z = S1’.S0’.I0 + S1’.S0.I1 + S1.S0’.I2 + S1.S0.I3 S0 I 3 I 2 I 0 Mux 4 x 1 Z S 1 I 1 0 1 0 I0 I2 1 I1 I3 S1 S0 Mapa do Mux 4x1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 46 46 2. Multiplexadores – Síntese de funções Da comparação dos dois mapas obtém-se: I0 = 0, I1 = 1, I2 = 1, I3 = 0 0 1 0 I0 I2 1 I1 I3 S1 S0 Mapa do Mux 4x1 0 1 0 1 1 1 b a Mapa da Função F(b,a) F(b,a) = Σ(1,2) 24 24 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 47 47 a I 3 I 2 I 0 Mux 4 x 1 F(b,a) = Σ(1,2) b I 1 “0” “1” Z S0 S 1 2. Multiplexadores – Síntese de funções © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 48 48 Síntese de funções com Mux de menor ordem – Implementar função de chaveamento de n variáveis com um único MUX 2n-1 : 1 – Exemplo: » Função de 4 variáveis » Mux 8x1 (3 variáveis de seleção) 2. Multiplexadores – Síntese de funções 25 25 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 49 49 Solução com Mux de 16x1 0I I I 1 I I I I I I I I I I I I I 00 01 1011 DC BA 00 10 11 01 2 3 5 4 7 6 12 13 15 8 9 10 11 14 MAPA DE MUX 16:1 00 01 1011 DC BA 00 10 11 01 1 1 1 1 1 1 1 F= Σ(0,1,5,6,7,10,11) 6 0 1 2 3 4 5 6 7 f + - MUX 16:1 8 9 10 11 12 13 14 15 "1" x x x x x x x x x x x x x x x ENABLE = "1" D C AB "0" E 2. Multiplexadores – Síntese de funções © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 50 50 Solução com Mux de 8x1 (solução 1) pois f = D‘C‘B' + D‘CB‘A + D‘CB + DC‘B BC + - D A 0 1 2 3 4 5 6 7 MUX 8:1 "1" "0" "1" "0" "1" "0" "0" f 00 01 1011 DC BA 01 1 1 1 10 1 1 00 11 1 1 2. Multiplexadores – Síntese de funções 26 26 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 51 51 Solução com Mux de 8x1 (solução 2) pois f = D‘C‘B‘A' + D‘C‘B’A + D‘CBA' + D‘CA + DC‘BA' + DC‘BA C + - D 0 1 2 3 4 5 6 7 MUX 8:1 f x x x x B "0" "1" A B' 00 01 1011 DC BA 01 1 1 1 10 1 00 11 11 1 1 2. Multiplexadores – Síntese de funções © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 52 52 Solução com Mux de 4x1 00 01 1011 DC BA 01 10 00 11 1 1 1 2 0 1 3 D B + - fMUX 4:1 C' "0" C C' 1 1 1 11 A 2. Multiplexadores – Síntese de funções 27 27 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 53 53 Mux 4 x 1 en [1/4] library IEEE; use IEEE.std_logic_1164.all; entity mux4x1en is port(I0, I1, I2, I3: in std_logic; S0, S1: in std_logic; enable: in std_logic; Z: out std_logic); end mux4x1en; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 54 54 Mux 4 x 1 en [2/4] architecture simpleMux of mux4x1en is signal inter0, inter1, inter2, inter3 : std_logic; begin inter0 <= I0 and not S0 and not S1 and enable; inter1 <= I1 and S0 and not S1 and enable; inter2 <= I2 and not S0 and S1 and enable; inter3 <= I3 and S0 and S1 and enable; Z <= inter0 or inter1 or inter2 or inter3; end simpleMux; 28 28 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 55 55 Mux 4 x 1 en [3/4] architecture componentMux of mux4x1en is signal inter0, inter1, inter2, inter3: std_logic; signal NOTS0, NOTS1: std_logic; component \NOT\ port(\IN\: in std_logic; \OUT\: out std_logic); end component; component and4 port(IN1, IN2, IN3, IN4: in std_logic; \OUT\: out std_logic); end component; component or4 port(IN1, IN2, IN3, IN4: in std_logic; \OUT\: out std_logic); end component; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 56 56 Mux 4 x 1 en [4/4] begin inv_0: \NOT\ port map(S0, NOTS0); inv_1: \NOT\ port map(S1, NOTS1); and_0: and4 port map(I0, NOTS0, NOTS1, enable, inter0); and_1: and4 port map(I1, S0, NOTS1, enable, inter1); and_2: and4 port map(I2, NOTS0, S1, enable, inter2); and_3: and4 port map(I3, S0, S1, enable, inter3); orFinal: or4 port map(inter0, inter1, inter2, inter3, Z); end componentMux; 29 29 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 57 57 Mux 4 x 1 [1/4] library IEEE; use IEEE.std_logic_1164.all; entity mux4x1 is port(I0, I1, I2, I3: in std_logic; S0, S1: in std_logic; Z: out std_logic); end mux4x1; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 58 58 Mux 4 x 1 [2/4] architecture simpleMux of mux4x1 is signal inter0, inter1, inter2, inter3 : std_logic; begin inter0 <= I0 and not S0 and not S1; inter1 <= I1 and S0 and not S1; inter2 <= I2 and not S0 and S1; inter3 <= I3 and S0 and S1; Z <= inter0 or inter1 or inter2 or inter3; end simpleMux; 30 30 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 59 59 Mux 4 x 1 [3/4] architecture componentMux of mux4x1 is signal inter0, inter1, inter2, inter3: std_logic; signal NOTS0, NOTS1: std_logic; component \NOT\ port(\IN\: in std_logic; \OUT\: out std_logic); end component; component and3 port(IN1, IN2, IN3: in std_logic; \OUT\: out std_logic); end component; component or4 port(IN1, IN2, IN3, IN4: in std_logic; \OUT\: out std_logic); end component; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 60 60 Mux 4 x 1 [4/4] begin inv_0: \NOT\ port map(S0, NOTS0); inv_1: \NOT\ port map(S1, NOTS1); and_0: and3 port map(I0, NOTS0, NOTS1, inter0); and_1: and3 port map(I1, S0, NOTS1, inter1); and_2: and3 port map(I2, NOTS0, S1, inter2); and_3: and3 port map(I3, S0, S1, inter3); orFinal: or4 port map(inter0, inter1, inter2, inter3, Z); end componentMux; 31 31 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 61 61 3. Codificadores Codificadores ou transcodificadores – Geram um código específico, ou – Transformam de um código em outro – Codificadores: caso particular » Código binário → código “1 entre 2n “ d 0 d 1 d n s 0 s 1 . . s m Codificador Entradas Código X Saídas Código Y © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 62 62 3. Codificadores – Para 7 segmentos Codificadores ou transcodificadores – de BCD para 7 segmentos – de binário para 7 segmentos Entradas: 4 bits Saídas: 7 bits, código 7 segmentos Uso: acionamento de displays de 7 segmentos 32 32 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 63 63 3. Codificadores – Para 7 segmentos a b ce f g d O traçado dos algarismos Os sete segmentos Display de 7 segmentos © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 64 64 Tabela da verdade 3. Codificadores: BCD – 7 segmentos Decimal EN d3 d2 d1 d0 a b c d e f g 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 2 1 0 0 1 0 1 1 1 1 1 3 1 0 0 1 1 1 1 1 1 1 4 1 0 1 0 0 1 1 1 1 5 1 0 1 0 1 1 1 1 1 1 6 1 0 1 1 0 1 1 1 1 1 1 7 1 0 1 1 1 1 1 1 8 1 1 0 0 0 1 1 1 1 1 1 1 9 1 1 0 0 1 1 1 1 1 1 1 10 1 1 0 1 0 0 0 0 0 0 0 0 . . . . 15 1 1 1 1 1 0 0 0 0 0 0 0 0 X X X X 0 0 0 0 0 0 0 33 33 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 65 65 3. Codificadores: BCD – 7 segmentos Extraído de [Tocci-2.003] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 66 66 3. Codificadores: BCD – 7 segmentos Extraído de [Fregni/Saraiva-1.995 34 34 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 67 67 Decodificador Binario_7Segmentos [1/4] library IEEE; use IEEE.std_logic_1164.all; entity bin_7seg is port(D0, D1, D2, D3: in std_logic; enable: in std_logic; a, b, c, d, e, f, g: out std_logic); end bin_7seg; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 68 68 architecture decoderBIN_to_7seg of bin_7seg is signal v : std_logic_vector(15 downto 0); component decoder4x16 port(D0, D1, D2, D3: in std_logic; S: out std_logic_vector(15 downto 0)); end component; Decodificador Binario_7Segmentos [2/4] 35 35 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 69 69 begin decoder: decoder4x16 port map(D0, D1, D2, D3, v); a <= enable and (v(0) or v(2) or v(3) or v(5) or v(6) or v(7) or v(8) or v(9) or v(10) or v(12) or v(14) or v(15)); b <= enable and (v(0) or v(1) or v(2) or v(3) or v(4) or v(7) or v(8) or v(9) or v(10) or v(13)); c <= enable and (v(0) or v(1) or v(3) or v(4) or v(5) or v(6) or v(7) or v(8) or v(9) or v(10) or v(11) or v(13)); Decodificador Binario_7Segmentos [3/4] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 70 70 d <= enable and (v(0) or v(2) or v(3) or v(5) or v(6) or v(8) or v(9) or v(11) or v(12) or v(13) or v(14)); e <= enable and (v(0) or v(2) or v(6) or v(8) or v(10) or v(11) or v(12) or v(13) or v(14) or v(15)); f <= enable and (v(0) or v(4) or v(5) or v(6) or v(8) or v(9) or v(10) or v(11) or v(12) or v(14) or v(15)); g <= enable and (v(2) or v(3) or v(4) or v(5) or v(6) or v(8) or v(9) or v(10) or v(11) or v(13) or v(14) or v(15)); end decoderBIN_to_7seg; Decodificador Binario_7Segmentos [4/4] 36 36 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 71 71 Decodificador BCD_Decimal [1/5] library IEEE; use IEEE.std_logic_1164.all; entity bcd_dec is port(D0, D1, D2, D3: in std_logic; S0, S1, S2, S3, S4, S5, S6, S7, S8, S9: out std_logic); end bcd_dec; © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 72 72 architecture simpleBCDDecoder of bcd_dec is begin S0 <= not D0 and not D1 and not D2 and not D3; S1 <= D0 and not D1 and not D2 and not D3; S2 <= not D0 and D1 and not D2 and not D3; S3 <= D0 and D1 and not D2 and not D3; S4 <= not D0 and not D1 and D2 and not D3; S5 <= D0 and not D1 and D2 and not D3; S6 <= not D0 and D1 and D2 and not D3; S7 <= D0 and D1 and D2 and not D3; S8 <= not D0 and not D1 and not D2 and D3; S9 <= D0 and not D1 and not D2 and D3; end simpleBCDDecoder; Decodificador BCD_Decimal [2/5] 37 37 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 73 73 architecture componentBCDDecoder of bcd_dec is signal NOTD0, NOTD1, NOTD2, NOTD3: std_logic; component \NOT\ port(\IN\: in std_logic; \OUT\: out std_logic); end component; component and4 port(IN1, IN2, IN3, IN4: in std_logic; \OUT\: out std_logic); end component; Decodificador BCD_Decimal [3/5] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 74 74 begin inv_0: \NOT\ port map(D0, NOTD0); inv_1: \NOT\ port map(D1, NOTD1); inv_2: \NOT\ port map(D2, NOTD2); inv_3: \NOT\ port map(D3, NOTD3); and_0: and4 port map(NOTD0, NOTD1, NOTD2, NOTD3, S0); and_1: and4 port map( D0, NOTD1, NOTD2, NOTD3, S1); and_2: and4 port map(NOTD0, D1, NOTD2, NOTD3, S2); and_3: and4 port map(D0, D1, NOTD2, NOTD3, S3); Decodificador BCD_Decimal [4/5] 38 38 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 75 75 and_4: and4 port map(NOTD0, NOTD1, D2, NOTD3, S4); and_5: and4 port map( D0, NOTD1, D2, NOTD3, S5); and_6: and4 port map(NOTD0, D1, D2, NOTD3, S6); and_7: and4 port map( D0, D1, D2, NOTD3, S7); and_8: and4 port map(NOTD0, NOTD1, NOTD2, D3, S8); and_9: and4 port map( D0, NOTD1, NOTD2, D3, S9); end componentBCDDecoder; Decodificador BCD_Decimal [5/5] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 76 76 Decodificador BCD_7Segmentos [1/6] library IEEE; use IEEE.std_logic_1164.all; entity bcd_7seg is port(D0, D1, D2, D3: in std_logic; enable: in std_logic; a, b, c, d, e, f, g: out std_logic); end bcd_7seg; 39 39 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 77 77 architecture simpleBCD_to_7seg of bcd_7seg is begin a <= enable and ((not D3 and D1) or (not D2 and not D1 and not D0) or (D3 and not D2 and not D1) or (not D3 and D2 and not D1 and D0)); b <= enable and ((not D3 and not D2) and (not D3 and not D1 and not D0) and (not D3 and D1 and D0) and (D3 and not D2 and not D1)); c <= enable and ((not D3 and not D1) and (not D3 and D2) and (not D3 and D0) and (not D2 and not D1)); d <= enable and ((not D3 and not D2 and D1) and (not D3 and D1 and not D0) and (not D2 and not D1 and not D0) and (D3 and not D2 and not D1) and (not D3 and D2 and not D1 and D0)); Decodificador BCD_ 7Segmentos [2/6] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 78 78 e <= enable and ((not D2 and not D1 and not D0) and (not D3 and D1 and not D0)); f <= enable and ((not D3 and not D1 and not D0) and (not D3 and D2 and not D1) and (D3 and not D2 and not D1) and (not D3 and D2 and D1 and not D0)); g <= enable and ((not D3 and not D2 and D1) and (not D3 and D2 and not D1) and (not D3 and D1 and not D0) and (D3 and not D2 and not D1)); end simpleBCD_to_7seg; Decodificador BCD_ 7Segmentos [3/6] 40 40 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 79 79 architecture decoderBCD_to_7seg of bcd_7seg is signal v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 : std_logic; component bcd_dec port(D0, D1, D2, D3: in std_logic; S0, S1, S2, S3, S4, S5, S6, S7, S8, S9: out std_logic); end component; Decodificador BCD_ 7Segmentos [4/6] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 80 80 begin decoder: bcd_dec port map(D0, D1, D2, D3, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); a <= enable and (v0 or v2 or v3 or v5 or v6 or v7 or v8 or v9); b <= enable and (v0 or v1 or v2 or v3 or v4 or v7 or v8 or v9); c <= enable and (v0 or v1 or v3 or v4 or v5 or v6 or v7 or v8 or v9); d <= enable and (v0 or v2 or v3 or v5 or v6 or v8 or v9); Decodificador BCD_ 7Segmentos [5/6] 41 41 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 81 81 e <= enable and (v0 or v2 or v6 or v8); f <= enable and (v0 or v4 or v5 or v6 or v8 or v9); g <= enable and (v2 or v3 or v4 or v5 or v6 or v8 or v9); end decoderBCD_to_7seg; Decodificador BCD_ 7Segmentos [6/6] © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 82 82 4. Gerador/Detector de Paridade Detector de Anti-coincidência A B C D E I ¦OOD ¦EVEN Número Par de “1’s” ¦EVEN = 1 Número Ímpar de “1’s” ¦OOD = 1 Detector de Coincidência ¦OOD ¦EVEN 42 42 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 83 83 4. Gerador/Detector de Paridade <Bit de Paridade;Cadeia de bits de Informação> Bit de Paridade – Bit extra gerado e anexado (concatenado) a um conjunto (cadeia) de bits de informação que vai ser transmitido. O bit de paridade pode ser 0 ou 1, dependendo do número de 1’s da cadeia e da convenção adotada para Transmissão/Recepção: Paridade PAR X Paridade ÍMPAR Deve ser calculado de maneira que confira à cadeia total (bit de paridade mais cadeia de informação) a paridade convencionada. © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 84 84 4. Gerador/Detector de Paridade Transmissão; Dados de 8 bits; Convenção Pari- dade PAR; Verificação na Recepção [1/2]: A B C D E F G H I EVEN ODD Dados: 8 bits 9 8 9 8 8 DadoBom DadoBom Tx Rx A B C D E F G H I EVEN ODD Dados: 8 bits 8 8 9 1 0 43 43 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 85 85 4. Gerador/Detector de Paridade Transmissão; Dados de 8 bits; Convenção Pari- dade PAR; Verificação na Recepção [2/2]: A B C D E F G H I EVEN ODD Dados: 8 bits 9 8 9 8 8 DadoBom DadoBom Tx Rx A B C D E F G H I EVEN ODD Dados: 8 bits 8 8 9 1 1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 86 86 4. Gerador/Detector de Paridade Transmissão; Dados de 8 bits; Convenção Pari- dade ÍMPAR; Verificação na Recepção [1/2]: A B C D E F G H I EVEN ODD Dados: 8 bits 9 8 9 8 8 DadoBom DadoBom Tx Rx A B C D E F G H I EVEN ODD Dados: 8 bits 8 8 9 1 0 44 44 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 87 87 4. Gerador/Detector de Paridade Transmissão; Dados de 8 bits; Convenção Pari- dade ÍMPAR; Verificação na Recepção [2/2]: A B C D E F G H I EVEN ODD Dados: 8 bits 9 8 9 8 8 DadoBom DadoBom Tx Rx A B C D E F G H I EVEN ODD Dados: 8 bits 8 8 9 1 1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 88 88 4. Gerador/Detector de Paridade Associação de Blocos Calculadores de Paridade: A B C D E F G H I EVEN ODD 7 Entradas 9 Entradas 9 Entradas A B C D E F G H I ODDEVEN A B C D E F G H I ODD EVEN 45 45 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 89 89 5. Código de Hamming Código de distância mínima 3 – A dis- tância mínima n de um código é o nú- mero máximo de bits em que podem diferir dois caracteres quaisquer do código. Posições de potência de 2 são reserva- das para bits de verificação de paridade. Assume, por definição, que se houve er- ro na transmissão, foi UM único erro. © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 90 90 5. Código de Hamming Legenda: C = Bit de Correção; P = Bit de Paridade; X = Bit de Informação. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 P1 P2 X3 P4 X5 X6 X7 P8 X9 X10 X11X12 X13X14X15 P16 3 bits 7 bits 15 bits 4 bits de paridade11 bits de informação 2 bits de paridade 1 bit de informação 3 bits de paridade 4 bits de informação 46 46 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 91 91 5. Código de Hamming P1, P2, P4 e P8 são escolhidos de maneira que: P1 impõe paridade Par sobre X3 X5 X7 ...... X15 0011 0101 0111 1111 P2 impõe paridade Par sobre X3 X6 X7 ...... X15 0011 0110 0111 1111 P4 impõe paridade Par sobre X5 X6 X7 ...... X15 0101 0110 0111 1111 P8 impõe paridade Par sobre X9 X10 X11 ...... X15 1001 1010 1011 1111 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 92 92 5. Código de Hamming Legenda: C = Bit de Correção; P = Bit de Paridade; X = Bit de Informação. P1 = X3 X5 X7 X9 X11 X13 X15 P2 = X3 X6 X7 X10 X11 X14 X15 P4 = X5 X6 X7 X12 X13 X14 X15 P8 = X9 X10 X11 X12 X13 X14 X15 47 47 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 93 93 5. Código de Hamming Legenda: C = Bit de Correção; P = Bit de Paridade; X = Bit de Informação. P1 X3 X5 X7 X9 X11 X13 X15 = 0 = C1 P2 X3 X6 X7 X10 X11 X14 X15 = 0 = C2 P4 X5 X6 X7 X12 X13 X14 X15 = 0 = C4 P8 X9 X10 X11 X12 X13 X14 X15 = 0 = C8 Ou, em outras palavras: © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 94 94 5. Código de Hamming Hipótese: Existe apenas UM erro – Aplicada em Código de Hamming para 7 bits (4 bits de Informação e 3 bits de Paridade): C4 C2 C1 0 0 0 Não há erro 0 0 1 Há erro em P1 0 1 0 Há erro em P2 0 1 1 Há erro em X3 1 0 0 Há erro em P4 1 0 1 Há erro em X5 1 1 0 Há erro em X6 1 1 1 Há erro em X7 C1 = P1 X3 X5 X7 C2 = P2 X3 X6 X7 C4 = P4 X5 X6 X7 48 48 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 95 95 5. Código de Hamming Hipótese: Existe apenas UM erro – Aplicada em Código de Hamming para 7 bits (4 bits de Informação e 3 bits de Paridade): Não há erro: C4 = C2 = C1 = 0 Há erro: Ou C4, ou C2, ou C1 z‘s 0 P1 P2 P4 X3 X7X5 X6 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 96 96 5. Código de Hamming Exemplo – Determinar a cadeia a ser trans- mitida, codificada em Hamming, e corres- pondente à informação: X3X5X6X7 = 1010. P1 = X3 X5 X7 = 1 0 0 = 1 P2 = X3 X6 X7 = 1 1 0 = 0 P4 = X5 X6 X7 = 0 1 0 = 1 Cadeia a ser transmitida: P1 P2 X3 P4 X5 X6 X7 = 1 0 1 1 0 1 0 49 49 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 97 97 5. Código de Hamming Exemplo – Recebeu-se a informação contida na cadeia P1P2X3P4X5X6X7 = 0100100. Há erro na informação? Se sim, em qual bit? C4 = P4 X5 X6 X7 = 0 1 0 0 = 1 Como C4C2C1 = 111, há erro em X7. Recebeu-se a cadeia de informação X3X5X6X7 = 0100, mas a cadeia de informação correta é X3X5X6X7 = 0101. C2 = P2 X3 X6 X7 = 1 0 0 0 = 1 C1 = P1 X3 X5 X7 = 0 0 1 0 = 1 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 98 98 6. Exercícios 6.1. Sintetize a função de chaveamento abaixo utilizando um decodificador 4x16. F(d,c,b,a) = Σ(0,1,3,8,10) 6.2. Sintetize a função de chaveamento dada pela tabela verdade ao lado utilizando um decodificador 3x8. c b a F 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 50 50 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 99 99 6. Exercícios 6.3. Sintetize a função de chaveamento do exercício 4.1. utilizando um decodificador 4x16 com saídas active low. 6.4. Sintetize a função de chaveamento do exercício 4.2. utilizando um decodificador 3x8 com saídas active low. © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 100 100 6. Exercícios 6.5. Considere um codificador de Binário(Hexa) para 7 segmentos. Apresente a sua tabela verdade. 6.6. Sintetizar um codificador BCD-7 segmentos a partir de um decodificador 4x16. 51 51 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 101 101 6. Exercícios 6.7. Sintetize a função F(d,c,b,a) abaixo utilizando: – a. Um Mux de 16x1 – b. Um Mux de 8x1 – c. Um Mux de 4x1 F(d,c,b,a) = Σ(0,1,3,8,10) © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 102 102 Lição de Casa Leitura Obrigatória: –Capítulo 6 do Livro Texto, ênfase em 6.4, 6.5, 6.7, 6.8. Exercícios obrigatórios: –Capítulo 6 do Livro Texto. 52 52 © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 103 103 8. Bibliografia Adicional Fregni, Edson; Saraiva, Antônio. Engenharia do Projeto Lógico Digital. Editora Edgard Blücher Ltda. São Paulo, SP, Brasil, 1.995; Ranzini, Edith; Fregni, Edson. Teoria da Comutação: Introdução aos Circuitos Digitais (Partes 1 e 2). Notas de Aula de PCS214, PCS/EPUSP, Agosto de 1.996. © Andrade, Corrêa, Gomi e Margi, 2.013 <Circ. Combinatórios – Bl. básicos> PCS 2215 - Fund. Eng. Comp. II 104 104 8. Bibliografia Adicional Tocci, Ronald; Widmer, Neal S. Sistemas Digitais – Princípios e Aplicações. 8a Edição, Pearson/Prentice-Hall, São Paulo, 2.003. Wakerly, John F. Digital Design: Principles and Practices. Prentice-Hall, 3rd. edition, 2.001.
Compartilhar