Circuitos combinatórios
• Organização:
–
–
–
–
Formas básicas de representação
Síntese por mapas de Karnaugh
Projectos com blocos SSI / MSI
Análise e teste
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 1
A representação de
sistemas digitais
• Formas básicas de representação:
– Tabular (tabela de verdade)
– Algébrica (por extenso ou abreviada)
– Gráfica (diagrama lógico ou mapa de Karnaugh)
• Nível da representação:
– Comportamental
– Funcional
– Estrutural
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 2
Tabelas de verdade
• Apresentam o valor da(s) saída(s) para todas as
combinações possíveis nas entradas
• Só é viável em casos com
A
B
C
F
0
0
0
0
reduzida complexidade
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 3
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
Equações algébricas
• Forma canónica da soma de produtos:
F = /A*/B*C + /A*B*C + A*B*/C + A*B*C
• Forma canónica do produto de somas:
F = (A+B+C) * (A+/B+C) * (/A+B+C) * (/A+B+/C)
• Forma canónica abreviada:
F = ABC (1,3,6,7)
F = ABC (0, 2, 4, 5)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 4
A
B
C
F
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
Diagrama lógico
A
7404
5
7404
C
3
1
7404
B
A
B
C
F
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
6
4
2
1
2
13
12
7411
3
4
5
6
F
7411
9
10
11
8
7411
1
2
13
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 5
12
7411
Mapas de Karnaugh
A
B
C
F
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
• Os mapas de Karnaugh são usados
1
mais como formalismo de simplificação 1
do que como alternativa para a
/D
representação
/C
/C
C
/C
/B
/A
A
0
4
/B
B
/A
1 1 13
5
1
7
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 6
B
2
1
6
A
/B
D
/D
C
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
Simplificação de funções
por mapas de Karnaugh
• Teorema subjacente:
X*Y + X*/Y = X
• No caso considerado:
A
B
/C
/C
/B
/A
C
C
1 1 13
0
1
A
/A*/B*C
B
4
5
1
7
2
1
7404
2
1
3
2
1
3
7408
2
4
6
5
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 7
7408
7432
F
/A*B*C
6
Simplificação de funções
por mapas de Karnaugh (2)
/A* C
/A*/B* C* D + /A*/B* C*/D = /A*/B* C
/A*/B*/C + /A* B*/C = /A*/C
/A* B* C* D + /A* B* C*/D = /A* B* C
/C
C
/C
/B
/A
A
1
A*/B*/C A*/B*C
4
/A
B
/A*/B*/C /A*/B*C /A*B*C
0
/B
3
A*B*C
5
7
6
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 8
/C
A
0
4
12
/B
/D
C
/A/B/C/D /A/B/CD /A/BCD /A/BC/D
AB/C/D
2
A*B*/C
D
1
/AB/C/D /AB/CD
B
/A*B*/C
/D
5
AB/CD
13
A/B/C/D A/B/CD
8
9
3
/ABCD
7
ABCD
15
A/BCD
11
2
/ABC/D
6
ABC/D
14
A/BC/D
10
Um adicionador de quatro
bits
• A síntese do circuito completo pelo processo descrito
é inviabilizada pelo número de entradas (mapas de
Karnaugh com quantas células?)
A [0..3]
4
/
B [0..3]
4
/
5

Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 9
/
F [0..4] = A [0..3] + B [0..3]
A adição bit-a-bit
• A alternativa mais prática consiste em recorrer à
síntese por mapa de Karnaugh para um adicionador
de um bit, construindo o somador pretendido por
concatenação destes módulos elementares
Cin (entrada de transporte)
1 0
+ 1 0
1 0 0
1
0
0
1
1
0
0
1
1 (
0
(
soma)
A
transporte)
B
8
+ ao 11
Introdução
Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 10
19

(1 bit)
S (soma)
Cout (saída de transporte)
O somador de um bit
01234567-
A
B
C
Cout
S
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
Cout
0
A
S
A
C
/C
/B
/A
/A
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 11
/C
4
/C
B
1
1
15 1
3
2
7
16
C
/B
/C
B
0
11
3
12
14
5
17
6
O somador de um bit (2)
A
B
5
6
14
3
5
0
7404
12
7411
B
11
A e B: Entradas de dados
C: Entrada de transporte
1
2
13
/C
/B
/A
A
C
7404
4
2
S
/C
3
1
7404
C
3
4
5
12
17
6
9
10
11
6
8
Cout
/A
A
C
0
4
1
B
1
1
15 1
12
7411
/C
/B
Saída de
soma
7411
1
2
13
/C
S
7411
3
2
7408
4
3
2
7
16
6
Saída de
transporte
7408
9
8
10
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 12
Cout
5
7408
O adicionador de quatro
bits
• Concatenando quatro módulos adicionadores de um
bit, teremos o somador pretendido:
S0
A0
B0
A
B
S1
A1
C
S
Cout
B1
A
B
S2
A2
C
S
Cout
B2
A
B
S3
A3
C
S
Cout
B3
A
B
C
S
Cout
S4
• Qual o tempo de adição para a implementação
modular?
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 13
Um comparador de quatro
bits
• As mesmas razões já invocadas para o adicionador
de quatro bits inviabilizam a síntese directa do
comparador de quatro bits
A [0..3]
4
/
B [0..3]
4
/
Comparador
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 14
/
1
A<B
A comparação bit-a-bit
• Começando pelo bit mais significativo:
– Sendo A[i] = B[i] o resultado é inconclusivo e temos que
passar ao bit seguinte ([i-1], à direita deste)
– Sendo A[i] > B[i] e assumindo que a comparação foi
inconclusiva para todos os bits anteriores, então resulta
A<B falso, quaisquer que sejam os restantes bits
– Sendo A[i] < B[i] e assumindo que a comparação foi
inconclusiva para todos os bits anteriores, então resulta
A<B verdadeiro, quaisquer que sejam os restantes bits
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 15
O comparador de um bit
Inc_in
A<B_in
A[i]
B[i]
0
0
X
X
0
0
0
1
X
X
0
1
1
X
0
0
1
0
1
X
0
1
0
1
1
X
1
0
0
0
1
X
1
1
1
0
A<B_out
/B[i]
A<Bin
Inc_in
0
1
4
12
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
/A<Bin
8
Circuitos combinatórios - 16
/B[i]
B[i]
/A[i]
/A<Bin
/Inc_in
Inc_out A<B_out
A[i]
1
1
Inc_out
5
3
1
7
6
113
15
14
19
11
10
/A<Bin
/Inc_in
A<Bin
Inc_in
/A<Bin
/B[i]
B[i]
/A[i]
2
1
/B[i]
A[i]
0
1
3
2
4
5
7
6
112
13
115
14
18
9
111
10
O comparador de um bit (2)
Inc_in
A<B_in
A[i]
B[i]
Inc_out
/B[i]
/A[i]
9
5
1
7404
/A<Bin
/Inc_in
7404
7404
A<Bin
Inc_in
8
6
2
/A<Bin
1
2
13
/B[i]
B[i]
A<B_out
/B[i]
/A[i]
A[i]
0
1
3
2
4
5
7
6
112
13
115
14
18
9
111
10
/A<Bin
/Inc_in
A<Bin
Inc_in
/A<Bin
0
1
4
3
4
5
3
4
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 17
7411
6
10
7432
6
A<B_out
7432
1
11
2
8
7
19
1
9
10
11
1
8
Inc_out
5
5
2
14
7411
7408
1
3
15
3
6
1
113
1
2
A[i]
12
12
7411
/B[i]
B[i]
O comparador de quatro
bits
• Uma vez mais, concatenando os quatro módulos
elementares, teremos o comparador de quatro bits:
A[3]=1 B[3]=1
A[2]=0 B[2]=1
A[1]=1 B[1]=0
A[0]=1 B[0]=1
+5 V
Inc_in
1
Inc
1
0
Inc
0
0
Inc
0
A<B_in
0
A<B
0
1
A<B
1
1
A<B
1
Comp[3]
Comp[2]
Comp[1]
1
Comp[0]
A<B=1
• Também para este caso teremos um tempo de
propagação superior à implementação não modular...
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 18
O projecto com blocos SSI /
MSI
• Principais blocos SSI / MSI:
–
–
–
–
–
–
Portas lógicas elementares (incluindo os buffers)
Codificadores e descodificadores
Multiplexadores e desmultiplexadores
Comparadores e circuitos de paridade
Adicionadores, subtractores e multiplicadores
Unidades lógicas e aritméticas
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 19
O buffer 74ALS241
Entradas
1
/OEA
EN1
IA
Saídas
OEB
IB
YA
YB
/OEA
1
20
VCC
IA0
2
19
OEB
YB0
3
18
YA0
2
IA1
4
17
IB0
4
16
YB1
5
16
YA1
6
14
6
15
IB1
8
12
H = Nível lógico "alto" (1)
IA2
3
L = Nível lógico "baixo" (0)
15
5
X = "tanto faz" (don't care)
19
EN2
2D
17
1
2
18
YB2
7
14
YA2
IA3
8
13
IB2
13
7
YB3
9
12
YA3
11
9
GND
10
11
IB3
L
L
H
L
L
L
L
H
H
H
H
H
H
X
L
X
Z
Z
Z = Alta impedância
IA0
YA0
2
18
4
16
IA1
Tipo
Tempo de propagação típico
Corrente típica
de alimentação
74ALS241A
4,5 ns
18 mA
74ALS241A-1
4,5 ns
18 mA
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 20
YA1
IA2
YA2
6
/OEA
17
3
15
5
YB1
IB2
YB2
13
YA3
1
YB0
IB1
14
IA3
8
IB0
7
IB3
12
YB3
11
10
OEB
9
O codificador 74HCT147
11
1
12
2
13
3
1
4
2
5
3
6
4
7
5
8
10
9
HPRI/BCD
Entradas
/A0
/A1
/A2
/A3
/A4
/A5
/A6
/A7
/A8
/Y3
/Y2
/Y1
/Y0
H
H
H
H
H
H
H
H
H
H
H
H
H
X
X
X
X
X
X
X
X
L
L
H
H
L
X
X
X
X
X
X
X
L
H
L
H
H
H
X
X
X
X
X
X
L
H
H
H
L
L
L
X
X
X
X
X
L
H
H
H
H
L
L
H
X
X
X
X
L
H
H
H
H
H
L
H
L
14
X
X
X
L
H
H
H
H
H
H
L
H
H
6
X
X
L
H
H
H
H
H
H
H
H
L
L
7
X
L
H
H
H
H
H
H
H
H
H
L
H
/A2
L
H
H
H
H
H
H
H
H
H
H
H
L
/A1
H = Nível lógico "alto" (1)
/A0
L = Nível lógico "baixo" (0)
1
9
2
7
4
6
8
14
10
5
4
3
2
1
13
12
11
Saídas
/A8
/A7
/A6
/Y3
/A5
/Y2
/A4
/Y1
/A3
/Y0
9
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 21
X = "tanto faz" (don't care)
O descodificador 74ALS138
6
5
4
E2
O7
E1
O6
E0
O5
O4
3
2
A2
O3
O2
A1
O1
1
A0
O0
1
2
&
Entradas
10
11
/E0
/E1
12
H
13
Saídas
E2
A0
A1
A2
X
X
X
X
X
H
X
X
14
X
X
L
15
L
L
L
0
G
7
4
5
9
0
2
3
7
/O0
/O1
/O2
/O3
/O4
/O5
/O6
/O7
X
H
H
H
H
H
H
H
H
X
X
H
H
H
H
H
H
H
H
X
X
X
H
H
H
H
H
H
H
H
H
L
L
L
L
H
H
H
H
H
H
H
L
H
H
L
L
H
L
H
H
H
H
H
H
L
L
H
L
H
L
H
H
L
H
H
H
H
H
L
L
H
H
H
L
H
H
H
L
H
H
H
H
L
L
H
L
L
H
H
H
H
H
L
H
H
H
L
L
H
H
L
H
H
H
H
H
H
L
H
H
11
L
L
H
L
H
H
H
H
H
H
H
H
L
H
10
L
L
H
H
H
H
H
H
H
H
H
H
H
L
9
H = Nível lógico "alto" (1)
0
15
1
14
2
13
3
12
L = Nível lógico "baixo" (0)
7
Introdução ao6Projecto com Sistemas Digitais e Microcontroladores
X = "tanto faz" (don't care)
Circuitos combinatórios - 22
O multiplexador 74ALS151
Entradas
7
11
EN
9
4
3
S2
S1
S0
/E
Y
/Y
MUX
X
X
X
H
L
H
0
7
L
L
L
L
I0
/I0
L
L
H
L
I1
/I1
L
H
L
L
I2
/I2
L
H
H
L
I3
/I3
0
10
G
2
I0
I1
Saídas
Y
/Y
5
6
2
I2
1
I3
H
L
L
L
I4
/I4
I4
H
L
H
L
I5
/I5
I5
H
H
L
L
I6
/I6
H
H
H
L
I7
/I7
15
14
13
12
I6
I7
H = Nível lógico "alto" (1)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 23
L = Nível lógico "baixo" (0)
X = "tanto faz" (don't care)
Implementação de uma
função com um mux
• Qualquer função com N entradas pode ser
implementada por um mux de 2(N-1) para 1
Mux 4:1
W
X
Y
F
0
0
0
0
Y
0
0
1
1
0
1
0
1
/Y
0
1
1
0
/Y
1
0
0
1
1
0
1
0
Y
1
1
0
0
1
1
1
1
0
1
F
2
3
W X
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 24
74x253 – Adicionador
completo de 1 bit
• Construir um adicionador completo de 1 bit
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 25
74x253 – Adicionador
completo de 1 bit
X
Y
Cin
S
Cout
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
X
Y
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 26
Cin
/Cin
+5V
6
5
4
3
10
11
12
13
14
2
1
15
1C0
1C1
1C2
1C3
1Y
2C0
2C1
2C2
2C3
2Y
A
B
1G
2G
74LS253
7
S
9
Cout
74x157 – Votador com três
entradas
• Construir um circuito votador com três entradas e
uma saída (que deve assumir o valor que for comum
à maioria das entradas)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 27
74x157 – Votador com três
entradas
A
B
C
F
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
C
+5V
B
2
3
5
6
11
10
14
13
1
15
1A
1B
2A
2B
3A
3B
4A
4B
A/B
G
74LS157
1Y
2Y
3Y
4Y
4
2
3
5
6
11
10
14
13
7
9
12
A
1
15
1A
1B
2A
2B
3A
3B
4A
4B
1Y
2Y
3Y
4Y
4
7
9
12
A/B
G
74LS157
Sugestão: Altere o circuito de forma a
proporcionar também uma saída de erro
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 28
F
O desmultiplexador
74ALS155
Entradas
/1G 2
1C
1
A
13
B
3
X/Y
&
ENa
/2G 14
/2C 15
Selecção
1
0a
7
1Y0
1a
6
1Y1
2a
5
1Y2
3a
4
1Y3
2
&
ENb
0b
9
2Y0
1b
10
2Y1
2b
11
2Y2
3b
12
2Y3
Habilita
(strobe)
Saídas
Dados
(data)
1Y0
1Y1
1Y2
1Y3
B
A
/1G
1C
X
X
H
X
H
H
H
H
L
L
L
H
L
H
H
H
L
H
L
H
H
L
H
H
H
L
L
H
H
H
L
H
H
H
L
H
H
H
H
L
X
X
X
L
H
H
H
H
H = Nível lógico "alto" (1) Para a outra metade é
idêntico, a menos do nível
L = Nível lógico "baixo" (0)activo na entrada /2C
X = "tanto faz" (don't care)(estará em L para
funcionar)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 29
O comparador 74HCT85
10
Entradas de comparação
COMP
0
12
A3, B3 A2, B2 A1, B1 A0, B0 I_A>B
9
11
3
2
3
4
P < Q
7
P = Q
6
P > Q
5
0
Q
14
1
I_A<B
I_A=B
Saídas
O_A>B
O_A<B
O_A=B
P
13
15
Entradas de cascata
3
<
=
>
A3>B3
X
X
X
X
X
X
H
L
L
A3<B3
X
X
X
X
X
X
L
H
L
A3=B3
A2>B2
X
X
X
X
X
H
L
L
A3=B3
A2<B2
X
X
X
X
X
L
H
L
10
A0
A3=B3
A2=B2
A1>B1
X
X
X
X
H
L
L
9
B0
A3=B3
A2=B2
A1<B1
X
X
X
X
L
H
L
12
A1
11
B1
A3=B3
A2=B2
A1=B1
A0>B0
X
X
X
H
L
L
13
A2
14
B2
15
A3
1
B3
O_A<B
7
A3=B3
A2=B2
A1=B1
A0<B0
X
X
X
L
H
L
O_A=B
6
A3=B3
A2=B2
A1=B1
A0=B0
H
L
L
H
L
L
5
A3=B3
A2=B2
A1=B1
A0=B0
L
H
L
L
H
L
O_A>B
A3=B3
A2=B2
A1=B1
A0=B0
L
L
H
L
L
H
2
I_A<B
A3=B3
A2=B2
A1=B1
A0=B0
X
X
H
L
L
H
3
I_A=B
A3=B3
A2=B2
A1=B1
A0=B0
H
H
L
L
L
L
4
I_A>B
A3=B3
A2=B2
A1=B1
A0=B0
L
L
L
H
H
L
H = Nível lógico "alto" (1)
L = Nível lógico "baixo" (0)
X = "tanto faz" (don't care)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 30
74HCT85 – Um comparador
de 12 bits
B[0..3]
A[0..3]
B[4..7]
A[4..7]
U2
U1
+5 V
10
12
13
15
9
11
14
1
2
3
4
A0
A1
A2
A3
B0
B1
B2
B3
A<Bi
A=Bi
A>Bi
B[8..11] A[8..11]
A<Bo
A=Bo
A>Bo
7
6
5
74HCT85
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 31
10
12
13
15
9
11
14
1
2
3
4
A0
A1
A2
A3
B0
B1
B2
B3
A<Bi
A=Bi
A>Bi
74HCT85
U3
A<Bo
A=Bo
A>Bo
7
6
5
10
12
13
15
9
11
14
1
2
3
4
A0
A1
A2
A3
B0
B1
B2
B3
A<Bi
A=Bi
A>Bi
74HCT85
A<Bo
A=Bo
A>Bo
7
6
5
A<B
A=B
A>B
74HCT85 – Detector de
janela [2,11[
U1
10
12
13
15
9
11
14
1
2
3
4
A0
A1
A2
A3
B0
B1
B2
B3
A<Bi
A=Bi
A>Bi
U3A
A<Bo
A=Bo
A>Bo
7
6
5
1
2
74HCT85
74HC04
X0
+5 V
X2
X1
U4A
X2
X3
10
12
13
15
9
11
14
1
2
3
4
U2
1
A0
A1
A2
A3
B0
B1
B2
B3
A<Bi
A=Bi
A>Bi
2
F
3
X < 11
A<Bo
A=Bo
A>Bo
74HCT85
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 32
+5 V
7
6
5
74HC08
O adicionador 74HCT283
5
5
A1
6
B1
3
A2
4
2
1
B2
14
A3
15
B3
12
A4
11
B4
2
C_IN
0
3
P
14
12
6
2
0
7
13
10
3
Q
15
11
0
3
3
CI
Pinos
9
CO
C_IN A1

10

13

1

4
C_OUT
9
A2
A3
A4
B1
B2
B3
B4




C_OUT
Exemplo
Nível lógico
L
L
H
L
H
H
L
L
H
H
H
L
L
H
Activo a 1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
Nota 3
Activo a 0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
Nota 4
H = Nível lógico "alto" (1)
Nota 3: 9+10 = 19 (activo a 1)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
L
= Nível
lógico
Nota 4: C_IN+6+5 = 12 (activo a 0)
Circuitos
combinatórios
- 33 "baixo" (0)
Unid. lógicas e aritméticas
S0
6
S1
5
S2
4
S3
3
M
8
Dados activos a 1
0
M
0
31
4
Entradas
15
X
17
Y
14
A=B
16
/Cn+4
/Cn 7
A0 2
B0 1
P
A1 23
B1 22
P
(1)
9
Q
(2)
10
(3)
11
(4)
13
Q
A2 21
B2 20
P
Q
A3 19
B3 18
P
Q
M=H
M=L Funções Aritméticas
/Cn=H (sem transporte - no carry)
/Cn=L (com transporte - with carry)
S3
S2
S1
S0
Funções
Lógicas
L
L
L
L
/A
A
A Mais 1
L
L
L
H
/(A+B)
A+B
(A+B) Mais 1
L
L
H
L
/A*B
A+/B
(A+/B) Mais 1
L
L
H
H
0
Menos 1 (compl. 2)
Zero
L
H
L
L
/(A*B)
A Mais A*/B
A Mais A*/B Mais 1
L
H
L
H
/B
(A+B) Mais A*/B
(A+B) Mais A*/B Mais 1
L
H
H
L
A:+:B
A Menos B Menos 1
A Menos B
L
H
H
H
A*/B
A*/B Menos 1
A*/B
H
L
L
L
/A+B
A Mais A*B
A Mais A*B Mais 1
H
L
L
H
/(A:+:B)
A Mais B
A Mais B Mais 1
H
L
H
L
B
(A+/B) Mais A*B
(A+/B) Mais A*B Mais 1
H
L
H
H
A*B
A*B Menos 1
A*B
H
H
L
L
1
A Mais A
A Mais A Mais 1
H
H
L
H
A+/B
(A+B) Mais A
(A+B) Mais A Mais 1
H
H
H
L
A+B
(A+/B) Mais A
(A+/B) Mais A Mais 1
H
H
H
H
A
A Menos 1
A
F0
F1
F2
F3
Entrada Cn Saída Cn+4 Dados activos a 0 Dados activos a 1
H
H
A > ou = B
A < ou = B
H
L
A < B
A > B
L
H
A > B
A < B
L
L
A < ou = B
A > ou = B
Nota: A ALU deve estar em modo
subtracção (S3,S2,S1,S0 = 0110)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 34
(:+: representa o OU-EXCLUSIVO)
Análise e teste
• A análise permite-nos passar de uma implementação
para uma especificação, sendo necessária em tarefas
como, por exemplo, a manutenção ou a modificação
de funcionalidade
• Também para o teste, e nomeadamente para a
geração de vectores de teste, a análise desempenha
um papel fundamental
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 35
O modelo de faltas ss@
• Um modelo de faltas proporciona-nos uma
representação alternativa para os factores que
podem impedir o bom funcionamento de um circuito
• No modelo ss@ (single stuck-at) considera-se que:
– Só um nó de cada vez pode ter uma falta presente (por
isso se diz single)
– A falta presente no nó pode ser de um de dois tipos: Ou
permanentemente a VCC ou permanentemente à massa
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 36
Vantagens do modelo ss@
• As vantagens deste modelo de faltas são as
seguintes:
– É suficientemente simples para permitir na prática a
geração de vectores de teste (a complexidade da análise
cresce linearmente com a dimensão do circuito)
– É suficientemente abrangente para cobrir uma larga
variedade de defeitos físicos, dando-nos confiança que a
percentagem de componentes com defeito que passam
este teste é suficientemente reduzida
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 37
O conceito de
controlabilidade
• Trata-se de uma
medida da facilidade
com que conseguimos
impor num nó um
determinado valor
lógico
A
1
2
Y
1
3
2
7404
7408
B
1
3
2
C
7432
X
3
4
7404
A
B
C
Contr. de Y=1
A
B
C
Contr. de X=0
0
0
X
-
X
X
0
-
0
1
X

X
X
1

1
0
X
-
1
1
X
-
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 38
F
O conceito de
observabilidade
• Trata-se de uma
medida da facilidade
com que podemos
observar o valor lógico
presente num nó
A
1
2
Y
1
3
2
7404
7408
B
1
3
2
C
X
3
4
7404
A
B
C
Observ. de Y
A
B
C
Observ. de X
X
X
0
-
0
0
X

X
X
1

0
1
X
-
1
0
X
1
1
X


Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 39
7432
F
O algoritmo D para a
geração de vectores de teste
• O algoritmo D recorre a uma notação que considera
valores compostos para representar o efeito da
presença de faltas nos nós
Valor lógico composto
Representação
0/0
0
Nó a 0, sem falta presente
0/1
/D
Nó s@1, tenta-se aplicar 0
1/0
D
Nó s@0, tenta-se aplicar 1
1/1
1
Nó a 1, sem falta presente
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 40
Situação no nó
Procedimento principal do
algoritmo D
• Por cada nó e por cada falta (s@0 e s@1):
– Forçar no nó o valor oposto ao da falta (activar a falta)
– Propagar para jusante o sinal de erro (D ou /D), até uma
saída primária
– Justificar para montante os valores lógicos que permitiram
a propagação, até se chegar às entradas primárias
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 41
Exemplo: Detecção de uma
falta s@0
A
1
2
Y s@0
1
A
1
2
1
Y s@0
1
3
3
2
2
1/0
7404
7408
B
7404
1
3
F
1
B
1/0
7408
1
3
2
7432
C
3
7432
C
4
3
7404
4
7404
(a) Nó Y s@0.
A
1
2
1
(b) Activação da falta (passo 1).
Y s@0
1
A 0
1
2
1
Y s@0
1
3
3
2
7404
1
B
2
7408
1/0
7404
1
3
F
1
B 1
7408
1/0
1
3
2
0
C
3
F
2
F
2
7432
4
7404
(c) Propagação da falta (passo 2).
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 42
1/0
0
C 1
3
7432
4
7404
(d) Justificação da falta (passo 3).
1/0
Exemplo: Uma falta não
detectável
A
1
2
Y s@0
1
A
1
2
1
Y s@0
1
3
3
2
2
7404
7404
7408
B
1
3
F
1
B
1/0
7408
1
3
2
7432
3
7432
4
3
7404
1
4
7404
(a) Nó Y s@0.
A
2
1
(b) O valor oposto a s@0 é aplicado no nó Y.
Y s@0
1
A
0
1
2
1
Y s@0
1
3
3
2
7404
1
B
2
7408
1/0
7404
1
3
F
1
B
7408
1/0
1
3
2
0
3
F
2
2
0
7432
4
3
1
7404
(c) Propagação (tentativa).
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 43
7432
4
7404
(d) Justificação (não é possível).
F
Backtracking na geração do
vector
A
1
2
Y s@0
1
A
0
1
2
1
Y s@0
1
3
3
2
2
7404
7404
7432
B
1
3
F
0
B
1/0
7432
1
3
2
0
7432
3
4
3
1
7404
(a) Nó Y s@0.
A
1
2
0
4
7404
A
1
1
2
0
Y s@0
1
3
3
2
7404
1
B
2
7432
1/0
7404
1
3
F
1
B
7432
1/0
1
3
2
0
3
7432
(b) Primeira tentativa (não é possível).
Y s@0
1
F
2
F
2
7432
1/0
0
4
3
1
7404
(c) Escolha alternativa.
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 44
7432
4
7404
(d) Propagação e justificação.
1/0
Redundância e
testabilidade
• A presença de termos redundantes implica
normalmente problemas de testabilidade
A
B
C
/C
5
7404
6
F
C
/B
/C
B
1
3
/A
2
7408
F
4
6
5
7408
9
8
10
X s@0
7408
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 45
A
0
1
13
14
5
17 16
2
Redundância para corrigir a
resposta temporal
• A presença de redundância, no entanto, pode impedir
a ocorrência de impulsos extemporâneos nas saídas
A
B
C
5
7404
6
1
3
F
2
1
3
7408
2
4
6
5
7408
7432
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 46
Conclusão
• Objectivo principal do capítulo: Introduzir o projecto
de sistemas digitais (restrito, neste caso, aos circuitos
combinatórios)
• Pistas para a continuação do estudo:
– Outros algoritmos de simplificação de funções lógicas
– Implementação multi-nível
– Aprofundar as questões associadas ao funcionamento em
regime dinâmico
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos combinatórios - 47
Download

Circuitos Combinatórios