Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Digitais Aula 08 Codificadores Circuitos de Paridade Departamento de Engenharia Elétrica Faculdade de Tecnologia Universidade de Braśılia 1 / 22 Sumário Aula 08 Codificadores Codificadores em Cascata Circuitos de Paridade 2 / 22 Codificadores Codificadores 3 / 22 Codificadores Em geral, um decodificador tem mais bits no código de sáıda do que no código de entrada. Se o código de sáıda de um dispositivo tem menos bits do que o código de entrada, chamamos esse dispositivo de codificador. O codificador mais simples é o 2n-para-n codificador binário, que tem a função oposta ao n-para-2n decodificador binário. 4 / 22 Codificadores As equações para um 8-para-3 codificador com entradas I0-I7 e sáıdas Y 0-Y 2 são: Y 0 = I1 + I3 + I5 + I7 Y 1 = I2 + I3 + I6 + I7 Y 2 = I4 + I5 + I6 + I7 Binary encoder Y0 Y1I1 I0 I2 I2n–1 Y n–1 2n inputs n outputs (a) (b) I0 I1 I2 I3 I4 I5 I6 I7 Y0 Y1 Y2 5 / 22 Priority Encoder Uma das principais aplicações de codificadores é em um circuito de requisição de serviços, como o encontrado em subsistemas de entrada/sáıda de microprocessadores, onde as entradas podem ser pedidos de interrupção. Por exemplo, podemos ter várias fontes de interrupção (as entradas) e o microprocessador vai atender apenas uma delas (a sáıda). Request encoder Requests for service Requestor's number REQ1 REQ2 REQ3 REQN 6 / 22 Priority Encoder O encoder que acabamos de montar tem um defeito: ele só funciona da forma correta se apenas uma de suas entradas estiver ativa a cada momento. Por exemplo, se as entradas I2 e I4 estiverem ativas, a sáıda é 110, que é a codificação binária do número 6. Na aplicação de requisição de serviços, tanto 2 ou 4 seriam sáıdas úteis, mas 6 não é. Mas como decidir qual a sáıda para esta entrada? Uma solução comum é assinalar prioridade às entradas. Por exemplo, podemos dizer que a entrada Ij tem maior prioridade que a entrada Ik se i > k. Assim, a sáıda é sempre a mesma sáıda da entrada com a maior prioridade. 7 / 22 Priority Encoder 8-para-3 Um codificador de prioridade de 8-para-3 tem 8 variáveis de entrada e 3 sáıdas. Portanto, pode ser dif́ıcil utilizar apenas as técnicas que vimos até agora para projetar o circuito (afinal, são 256 possibilidades de entrada). No entanto, podemos utilizar uma forma indireta: defina a variável Hi, de forma que Hi é 1 apenas se Ii é a entrada ativa com maior prioridade. Assim: H7 = I7 H6 = I7 · I6 H5 = I7 · I6 · I5 ... H0 = I7 · I6 · I5 · I4 · I3 · I2 · I1 · I0 8 / 22 Priority Encoder 8-para-3 Usando estes sinais, podemos usar o mesmo circuito visto antes (note que apenas um Hi estará ativo a cada momento!). A2 = H4 +H5 +H6 +H7 A1 = H2 +H3 +H6 +H7 A0 = H1 +H3 +H5 +H7 É comum também definir uma sáıda IDLE, que é 1 apenas se nenhuma das entradas for 1. IDLE = (I0 + I1 + I2 + I3 + I4 + I5 + I6 + I7) 9 / 22 O CI 74x148 Este CI tem 9 entradas, sendo uma delas um enable, e 5 sáıdas: I7-I0: entradas. EI (Enable Input) : deve estar ativa para que qualquer sáıda esteja ativa. A2-A0: sáıdas. GS (Group Select) (ou Got Something): indica se alguma das entradas está ativa. EO (Enable Output) : usada para cascatear o CI. É ativa se EI estiver ativa mas nenhuma outra entrada está ativa (ou seja, um outro 74x148 de menor prioridade pode ser ativado). I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO EI 6 7 9 14 15 10 11 12 13 1 2 3 4 5 74x148 10 / 22 O CI 74x148 Entradas Sáıdas EI L I0 L I1 L I2 L I3 L I4 L I5 L I6 L I7 L A2 L A1 L A0 L GS L EO L 1 x x x x x x x x 1 1 1 1 1 0 x x x x x x x 0 0 0 0 0 1 0 x x x x x x 0 1 0 0 1 0 1 0 x x x x x 0 1 1 0 1 0 0 1 0 x x x x 0 1 1 1 0 1 1 0 1 0 x x x 0 1 1 1 1 1 0 0 0 1 0 x x 0 1 1 1 1 1 1 0 1 0 1 0 x 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 11 / 22 Usando o CI 74x148 para formar um encoder de 16-para-4 V16 V15 V14 V13 V12 V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V1 U4A GSS0S1S2S3 U3D U3C U3B U3A 74148 EI I7 I6 I5 I4 I3 I2 I1 I0 EO A0 A1 A2 GS U2 74148 EI I7 I6 I5 I4 I3 I2 I1 I0 EO A0 A1 A2 GS U1 12 / 22 Usando o CI 74x148 para formar um encoder de 32-para-5 I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO EI 6 7 9 14 15 10 11 12 13 1 2 3 4 5 74x148 I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO EI 6 7 9 14 15 10 11 12 13 1 2 3 4 5 74x148 I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO EI 6 7 9 14 15 10 11 12 13 1 2 3 4 5 74x148 74x148 REQ31_L REQ30_L REQ29_L REQ28_L REQ27_L REQ26_L REQ25_L REQ24_L REQ23_L REQ22_L REQ21_L REQ20_L REQ19_L REQ18_L REQ17_L REQ16_L REQ15_L REQ14_L REQ13_L REQ12_L REQ11_L REQ10_L REQ9_L REQ8_L REQ0_L REQ1_L REQ2_L REQ3_L REQ4_L REQ5_L REQ6_L REQ7_L I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO EI 6 7 9 14 15 10 11 12 13 1 2 3 4 5 RGS RA0 RA1 RA2 RA3 RA4 U1 U2 U3 U4 G3A2_L G3A1_L G3A0_L G3GS_L G3EO_L G2A2_L G2A1_L G2A0_L G2GS_L G2EO_L G1A2_L G1A1_L G1A0_L G1GS_L G1EO_L G0A2_L G0A1_L G0A0_L G0GS_L 74x00 1 2 3 U5 74x00 4 5 6 U5 74x20 U7 9 10 12 8 13 74x20 U7 1 2 4 6 5 74x20 U6 9 10 12 8 13 74x20 U6 1 2 4 6 5 13 / 22 Circuitos de Paridade Circuitos de Paridade 14 / 22 Circuitos de Paridade Já vimos as portas XOR e XNOR e algumas de suas implementações X Y X⊕Y X⊕Y 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 X Y X Y F F = X ⊕ Y (a) (b) = X ⊕ Y 15 / 22 Circuitos de Paridade Note que, se complementamos quaisquer dois sinais (entradas ou sáıdas) das portas XOR e XNOR, continuamos com a mesma função lógica! Na lógica bubble-to-bubble, é comum encontrarmos algumas delas ao invés dos śımbolos usuais. (a) (b) 16 / 22 Circuitos de Paridade Já vimos também o circuito de detecção de paridade ı́mpar (odd-parity circuit), em que a sáıda é 1 se um número ı́mpar de entradas for 1 (o circuito de detecção de paridade par, ou even-parity circuit, pode ser obtido simplesmente complementando a sáıda do circuito de paridade ı́mpar). I1 I2 I3 I4 I1 I2 I3 I4 IN IM IN ODD ODD (a) (b) 17 / 22 Standard MSI Parity Generator Como essa é uma função bastante utilizada, temos o CI 74x280 que gera a paridade de 9 bits (por que 9 bits?). (a) (b) A B C (8) (9) (10) D E F (11) (12) (5) (6) (13) G H I (1) (2) (4) EVEN ODD 74x280 D E F G H I 12 5 EVEN ODD 13 1 2 4 A B C 9 8 10 11 6 18 / 22 Parity Generation and Checking for an 8-bit memory 74x280 D E F G H I 12 5 2 EVEN ODD 13 1 2 4 A B C 9 8 1 10 11 6 D0 D1 D2 D3 D4 D5 D6 D7 U2 U4 U1 U1D[0:7] RP 1 2 3 4 5 6 Memory Chips DIN3 DIN4 DIN5 DIN6 DIN7 PIN DIN0 READ WRITE DIN1 DIN2 DOUT3 DOUT4 DOUT5 DOUT6 DOUT7 POUT DOUT0 DOUT1 DOUT2 D0 D1 D2 D3 D4 D5 D6 D7 D4 D5 D0 D1 D2 D3 D6 D7 74x541 G2 G1 Y1 Y2 Y3 1 19 15 14 16 17 18 13 A1 A2 A3 A4 A5 A6 A7 A8 Y4 Y5 Y6 Y7 Y8 2 12 11 3 4 5 6 7 8 9 DO0 DO1 DO2 DO3 DO4 DO5 DO6 DO7 74LS04 U3 74x08 74x08 ERROR RD_L PI PO RD WR 19 / 22 Error-correcting circuit for a 7-bit Hamming code 74x280 D E F G H I 12 5 EVEN ODD 13 1 2 4 A B C 9 8 10 11 6 DU7 DU5 DU3 DU1 U1 74x280 D E F G H I 12 5 EVEN ODD 13 1 2 4 A B C 9 8 10 11 6 DU7 DU6 DU3 DU2 U2 U4 74x280 D E F G H I 12 5 EVEN ODD 13 1 2 4 A B C 9 8 10 11 6 DU7 DU6 DU5 DU4 U3 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 6 15 3 14 13 7 4 5 1 2 B A C Y4 Y5 Y6 Y7 1 12 11 10 9 2 3 +5V R SYN0 SYN1 SYN2 74x86 U5 DU1 DC_L1 E1_L 6 4 5 74x86 U5 DU2 DC_L2 E2_L 8 10 9 74x86 U5 DU3 DC_L3 E3_L 11 13 12 74x86 U5 DU4 DC_L4 E4_L 3 1 2 74x86 U6 U6 U6 DU5 DC_L5 E5_L 6 4 5 74x86 DU6 DC_L6 E6_L 810 9 74x86 DU7 DC_L7 E7_L DU[1:7] DC_L[1:7] NOERROR_L 20 / 22 Exerćıcios Exerćıcio - Prova 01/2015 Outro circuito importante para o RoboCop é o circuito de detecção de ameaça. Ele possui 16 sensores de ameaça, I15 − I0, organizados por ordem de prioridade conforme a figura. Cada uma das entradas do circuito indicam se aquela ameaça está detectada no ambiente atual. O circuito tem duas sáıdas: P, que indica a presença de alguma ameaça, e C, que indica o código da ameaça detectada de mais alta prioridade (naturalmente, a sáıda C não tem importância caso não haja nenhuma ameaça detectada). Projete este circuito utilizando quaisquer CIs encontrados no Anexo II mais portas lógicas adicionais. O seu circuito pode ter entradas e sáıdas ativas em ńıvel alto ou baixo, mas o ńıvel de ativação deve estar devidamente especificado no projeto. 21 / 22 Referências Referências Wakerly, Seções 6.5 e 6.8 Exerćıcios Sugeridos Wakerly: 6.50, 6.52, 6.53 e 6.71. 22 / 22
Compartilhar