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 X2 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