Buscar

Módulo 07a - Circuitos Combinatórios Blocos Básicos I

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais