Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Digitais Aula 07 Práticas de Projetos Lógicos Combinacionais Decodificadores e Multiplexadores Departamento de Engenharia Elétrica Faculdade de Tecnologia Universidade de Braśılia 1 / 49 Sumário Aula 07 Padrões de Documentação Diagramas de Tempo Decodificadores Decodificadores em Cascata Multiplexadores Multiplexadores em Cascata 2 / 49 Práticas de Projetos Lógicos Combinacionais Práticas de Projetos Lógicos Combinacionais 3 / 49 Práticas de Projetos Lógicos Combinacionais Já vimos como construir circuitos que implementam uma determinada tabela verdade. Também vimos como minimizar esses circuitos, e representá-los de diversas formas. Porém, um circuito prático pode ter dezenas de entradas e sáıdas, e pode precisar de milhares de termos para descrevê-lo como uma soma de produtos e milhões de linhas para descrevê-lo como uma tabela verdade. Como proceder nesse caso? O problema é claramente muito grande para tentarmos resolvê-lo utilizando força bruta. 4 / 49 Práticas de Projetos Lógicos Combinacionais A resposta é pensamento estruturado. Um circuito complexo é concebido como uma coleção de circuitos menores, cada um deles com uma descrição simples. Veremos agora os circuitos clássicos, que aparecem regularmente na construção de sistemas complexos: decodificadores, multiplexadores, comparadores, somadores, etc... 5 / 49 A importância da série 74 No nosso estudo, veremos com detalhes vários CIs da série 74 que realizam funções lógicas como multiplexadores, decodificadores, etc.. É importante entender esse “blocos” porque sua funcionalidade muitas vezes casam com o pensamento do designer quando este está particionando o problema. Mesmo que você utilize PLDs ou FPGAs para realizar seus circuitos, as funções da faḿılia 74 muitas vezes aparecem como bibliotecas (entidades VHDL, funções ou macros), muitas vezes até mesmo com o mesmo nome do CI que realiza aquela função! 6 / 49 Padrões de Documentação Um pacote de documentação contém: Especificação : o que o circuito faz. Diagrama de Blocos Esquemático : componentes, interconexões, pinagem,.. Diagrama de Tempo Descrição do Dispositivo Lógico : descrição em VHDL, Verilog, etc... Descrição do Circuito : como o circuito foi projetado e como ele funciona. Deve conter o “pulo do gato”. 7 / 49 Diagramas de Blocos R/W ADDR BYTE EN IN OUT 16-word x 32-bit RAM CONTROL RESET LOAD RUN DISPLAY LDA LDB 4 32 32 32 32 32 A REGISTER B REGISTER direct left right INBUS 2 32 32 32 SEL MULTIPLEXER 4 to 1 CARRY LOOKAHEAD ADDER OUTBUS SHIFT-AND-ADD MULTIPLIER 8 / 49 Diagramas de Blocos 32 32 32 8 8 8 8 8 8 8 8 32-BIT REGISTER 32 32 32-BIT REGISTER 32 4 x 74LS377 (a) (c) (b) 74LS377 74LS377 74LS377 74LS377 9 / 49 Inversão, Bolha e De Morgan AND NAND OR NOR INVERTER BUFFER 10 / 49 Nomenclatura de Sinais e Ńıvel de Ativação Por um motivo ou outro, alguns sinais são ativados quando tem um valor lógico 1 enquanto outros são ativados com o valor lógico 0. É interessante dizer isso no nome do sinal utilizado pelo circuito: ENABLE Ativo em 1 ENABLE L Ativo em 0 ENABLE . . . . . . . . . DO MY THING . . . . . . ENABLE . . . . . . . . . DO MY THING . . . . . . (a) (b) 11 / 49 Bubble To Bubble Logic Design Quando escrevemos o diagrama do circuito usamos śımbolos e nomes de sinais que facilitam o entendimento. (a) (b) (c) (d) READY GO REQUEST READY_L GO_L REQUEST_L READY_L GO REQUEST_L READY GO_L REQUEST 12 / 49 Desenhando o Diagrama Page 1 Page 4 Page 2 Page 5 Page 3 Page 6 13 / 49 Desenhando o Diagrama Page 1 Page 3 Page 5 Page 4 Page 6 Page 2 14 / 49 BUS Microprocessor A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 ALE ADDR15 ADDR14 ADDR13 ADDR12 ADDR11 ADDR10 ADDR9 ADDR8 ADDR8 ADDR7 ADDR6 ADDR5 ADDR4 ADDR3 ADDR2 ADDR1 ADDR0 ALE ALE ADDR15 LA15 LA14 LA13 LA12 LA11 LA10 LA7 LA8 ADDR14 ADDR13 ADDR12 ADDR11 ADDR10 ADDR9 D7 DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 D6 D5 D4 D3 D2 D1 D0 MIORDY MEMIO RD_L READ WR_L RD_L WR_L WRITE CONTROL DATA[7:0] ADDR[15:0] LA[15:0] DB[7:0] DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 READY LA7 LA6 LA5 LA4 LA3 LA2 LA1 LA0 ADDR7 ADDR6 ADDR5 ADDR4 ADDR3 ADDR2 ADDR1 ADDR0 2,3 2 2 15 / 49 Diagrama de Tempo O Diagrama de Tempo do circuito mostra o comportamento dos sinais como uma funçao do tempo. A especificação de tempo mais importante é o atraso. GO READY DAT (b) GO READY DAT (c)(a) t GO ENB READY DAT DAT RDY RDYmin DATmax DATmin RDYmax DAT RDY t t t t t t t 16 / 49 Especificação de Tempo Máxima: em certas condições (temperatura, tensão, carga capacitiva), mostra qual é o atraso máximo de um dado caminho no circuito T́ıpica: em condições próximas do ideal Mı́nima: o menor atraso posśıvel. Em geral, trabalhamos para que o circuito funcione mesmo que o atraso seja zero. 17 / 49 Especificação de Tempo Quão t́ıpico é t́ıpico? A maioria dos CIs, digamos 99%, funcionam com um atraso perto do t́ıpico. Porém, se você projetar um circuito com 100 CIs que só funciona se todos os 100 CIs forem “t́ıpicos”, 63% deles não funcionarão (1− 0.99100). 18 / 49 Decodificadores Decodificadores 19 / 49 Decodificadores Um decodificador é um circuito de múltiplas entradas e múltiplas sáıdas que converte códigos de entrada em códigos de sáıda, onde os dois códigos são diferentes. Em geral, o código de entrada tem menos bits que o código de sáıda, e existe um mapeamento um-pra-um do código de entrada para o código de sáıda. O código de sáıda mais utilizado é o 1-de-m, que usa m bits para m códigos e, para cada código, apenas um dos m bits está ativo. Por exemplo: Ativo em alto Ativo em baixo 1000 0111 0100 1011 0010 1101 0001 1110 20 / 49 Decodificadores Decoder input code word enable inputs output code word m ap Para que o decodificador funcione, todas as suas entradas de enable (habilitadoras) devem estar ativadas. Caso qualquer uma delas não esteja ativa, o decodificador mapeia qualquer entrada para um código “desativado”. 21 / 49 Decodificadores O decodificador mais comum é o n-para-2n, ou decodificador binário, que mapeia um código binário de n bits para um de 2n códigos diferentes (em geral, números decimais de 0 a 2n − 1). Às vezes, utilizamos menos que os 2n valores posśıveis. Por exemplo, é comum utilizar um decodificador BCD, que tem 4 entradas e 10 sáıdas (os números BCD, de 0 a 9). 22 / 49 Decodificadores Exemplo: Decodificador 2-para-4. 2-to-4 decoder I0 I1 EN Y0 Y1 Y2 Y3 (a) (b) I0′ I0 I1′ I1 EN I0 I1 EN Y0 Y1 Y2 Y3 23 / 49 Decodificadores Exemplo: Decodificador 2-para-4. Entradas Sáıdas EN I1 I0 Y3 Y2 Y1 Y0 0 x x 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 24 / 49 O CI 74x138 A B C G2A_L G2B_L G1 Y0_L Y1_L Y2_L Y3_L Y4_L Y5_L Y6_L Y7_L A B C G2A G2B G1 74X138 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 25 / 49 O CI 74x138 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 (b)(15) 6 15 14 13 7 4 5 B A C Y4 Y5 Y6 Y7 1 12 11 10 9 2 3 (14) (13) (12) Y0_L Y1_L Y2_L Y3_L C (11) (10) (9) (7)(3) B (2) Y4_L Y5_L Y6_L Y7_L A (1) G2B_L (5) G2A_L (4) G1 (6) (a) 26 / 49 O CI 74x138 Entradas Sáıdas G1 G2A L G2B L C B A Y 7 L Y 6 L Y 5 L Y 4 L Y 3 L Y 2 L Y 1 L Y 0 L 0 x x x x x 1 1 1 1 1 1 1 1 x 1 x x x x 1 1 1 1 1 1 1 1 x x 1 x x x 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 27 / 49 Usando o CI 74x138 Podemos usar decodificadorescomo geradores de mintermos. Suponha que queremos realizar a função: F (X,Y,Z) = X ·Y +X ·Y · Z Note que o 74x138 nos dá mintermos: (XYZ)' (XYZ')' (XY'Z)' (XY'Z')' (X'YZ)' (X'YZ')' (X'Y'Z)' (X'Y'Z')' Z Y X 0 0 1 74LS138 A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 U1 74F138 28 / 49 Usando o CI 74x138 Note que podemos re-escrever a função na forma canônica: F (X,Y,Z) = X ·Y +X ·Y · Z = X ·Y · ( Z+ Z ) +X ·Y · Z = X ·Y · Z+X ·Y · Z+X ·Y · Z F = XY+X'YZZ Y X 0 0 1 U2A 74LS138 A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 U1 74F138 29 / 49 Usando o CI 74x138 1 00 01 11 10 X Y Z X Y 1 1 1 (X′ • Z′)′ (X • Y′ • Z)′ (X′ • Y)′ 0 1 Z 74x04 74x00 1 2 4 6 U1 U2 1 2 3 74x04 3 U1 74x04 5 U1 74x00 U2 4 5 6 74x10 U3 1 2 13 12 74x10 U3 3 4 5 6 Z X Y F Z′ X′ Y′ (a) (b) (c) 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 6 15 14 13 7 4 5 B A C Y4 Y5 Y6 Y7 1 12 11 10 9 2 3 Z Y X +5V U1 R F 74x20 U2 1 2 4 6 5 X′ • Z′ X′ • Y X • Y′ • Z 30 / 49 Usando o CI 74x138 para formar um decodificador 4-para-16 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 6 15 14 13 7 4 5 B A C Y4 Y5 Y6 Y7 1 12 11 10 9 2 3 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 6 15 14 13 7 4 5 B A C Y4 Y5 Y6 Y7 1 12 11 10 9 2 3 DEC0_L DEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L DEC6_L DEC7_L DEC8_L DEC9_L N0 N1 N2 N3 EN_L +5V U1 U2 R 31 / 49 Usando o CI 74x138 para formar um decodificador 5-para-32 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 B A C Y4 Y5 Y6 Y7 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 B A C Y4 Y5 Y6 Y7 DEC0_L DEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L DEC6_L DEC7_L DEC8_L DEC9_L N0 N1 N2 N3 EN3_L N4 EN2_L EN1 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 B A C Y4 Y5 Y6 Y7 DEC18_L DEC19_L DEC20_L DEC21_L DEC22_L DEC23_L DEC16_L DEC17_L 74x138 G2A G1 G2B Y0 Y1 Y2 Y3 B A C Y4 Y5 Y6 Y7 DEC26_L DEC27_L DEC28_L DEC29_L DEC30_L DEC31_L DEC24_L DEC25_L 1/2 74x139 1A 1G 1B 1Y0 1Y1 1Y2 1Y3 EN0X7_L EN8X15_L EN16X23_L EN24X31_L 6 15 14 13 7 4 5 1 12 11 10 9 2 3 6 15 14 13 7 4 5 1 12 11 10 9 2 3 6 15 14 13 7 4 5 1 12 11 10 9 2 3 6 15 14 13 7 4 5 1 12 11 10 9 2 3 1 4 5 6 7 2 3 U2 U3 U4 U5 U1 32 / 49 Multiplexadores Multiplexadores 33 / 49 Multiplexadores Um multiplexador (ou mux) é um switch digital. Para cada sáıda, usamos n bits de seleção (em geral, com o nome de si) para selecionar entre 2 n entradas (logo, s = dlog2ne ). multiplexer EN SEL s enable select D0 b bD1 b Dn−1 b n data sources (a) (b) data output Y 1D0 1D1 1Dn−1 2D0 2D1 2Dn−1 bD0 bD1 bDn−1 1Y 2Y bY SEL EN De forma geral, a equação do mux é: Y = n−1∑ i=0 EN ·mi ·Xi 34 / 49 Multiplexador de 4 entradas Podemos projetar um mux de 4 entradas e 1 sáıda. Para isso, precisamos de s = dlog24e = 2 bits de seleção. I3 I2 I1 I0 S1 S0 Y S1 S0 Y 0 0 X0 0 1 X1 1 0 X2 1 1 X3 35 / 49 Multiplexador de 4 entradas Y = S1 · S0 ·X0 + S1 · S0 ·X1 + S1 · S0 ·X2 + S1 · S0 ·X3 Y X3 X2 X1 X0 S0 S1 36 / 49 Standard MSI Multiplexers: 74x151 Mux 8-para-1 Entradas Sáıdas EN L S2 S1 S0 Y Y L 1 x x x 0 1 0 0 0 0 D0 D0 0 0 0 1 D1 D1 0 0 1 0 D2 D2 0 0 1 1 D3 D3 0 1 0 0 D4 D4 0 1 0 1 D5 D5 0 1 1 0 D6 D6 0 1 1 1 D7 D7 37 / 49 Standard MSI Multiplexers: 74x151 Mux 8-para-1 (4) (3) (2) (5) (6) (1) (15) (14) (13) (12) (11) (10) (9) (7) (a) (b) A′ A B′ B C′ C D0 D1 D2 D3 D4 D5 D6 D7 A B C EN_L Y Y_L 74x151 D0 D1 D2 D3 D4 D5 D6 D7 EN 4 6 5 Y Y 3 2 1 15 14 13 12 A B C 11 10 9 7 38 / 49 Standard MSI Multiplexers: 74x153 Dois Mux 4-para-1 74LS153 I3a I2a I1a I0a S1 S0 I3b I2b I1b I0b Ea Eb Ya Yb Ea S1 S0 Y a 1 x x 0 0 0 0 I0a 0 0 1 I1a 0 1 0 I2a 0 1 1 I3a Eb S1 S0 Y b 1 x x 0 0 0 0 I0b 0 0 1 I1b 0 1 0 I2b 0 1 1 I3b 39 / 49 Standard MSI Multiplexers: 74x157 Quatro Mux 2-para-1 (2) (3) (5) (6) (11) (10) (14) (13) (1) (15)(a) (b) 1A 1B 2A 2B 3A 3B 4A 4B S G_L 74x157 1A 1B 2A 2B 3A 3B 4A 4B G 2 4 1Y 7 2Y 9 3Y 12 4Y 3 5 6 11 10 14 13 S 1 15 (4) (7) (9) (12) 1Y 2Y 3Y 4Y 40 / 49 Multiplexadores em Cascata: Mux 32-para-1 74x151 D0 D1 D2 D3 D4 D5 D6 D7 EN 4 6 Y Y 3 2 1 15 14 13 12 A B C 11 7 10 9 1/2 74x139 1A 1G 1B 1Y0 1Y1 1Y2 1Y3 1 4 5 6 7 2 3 XEN_L XA3 XA4 XA0 XA2 XA1 X0 X2 X1 X3 X4 X5 X7 X6 EN3_L EN2_L EN1_L EN0_L 74x151 D0 D1 D2 D3 D4 D5 D6 D7 EN 4 6 Y Y 3 2 1 15 14 13 12 A B C 11 7 10 9 X10 X12 X11 X13 X14 X15 X9 X8 74x151 D0 D1 D2 D3 D4 D5 D6 D7 EN 4 6 Y Y 3 2 1 15 14 13 12 A B C 11 7 10 9 74x151 D0 D1 D2 D3 D4 D5 D6 D7 EN 4 6 Y Y 3 2 1 15 14 13 12 A B C 11 7 10 9 X16 X18 X17 X19 X20 X21 X23 X22 X24 X26 X25 X27 X28 X29 X31 X30 1/2 74x20 1 2 4 6 5 XOUT XO0_L XO1_L XO2_L XO3_L U1 U5 U4 U3 U2 5 5 5 5 U6 41 / 49 Multiplexadores em Cascata: Mux 32-para-1 Y_L Y I31 I24 I23 I16 I15 I8 I7 I0 74LS151 I7 I6 I5 I4 I3 I2 I1 I0 E S2 S1 S0 Y YN 74LS151 I7 I6 I5 I4 I3 I2 I1 I0 E S2 S1 S0 Y YN 74LS151 I7 I6 I5 I4 I3 I2 I1 I0 E S2 S1 S0 Y YN 74LS151 I7 I6 I5 I4 I3 I2 I1 I0 E S2 S1 S0 Y YN 74LS151 I7 I6 I5 I4 I3 I2 I1 I0 E S2 S1 S0 Y YN E N EN S3 S4 S0 S1 S2 S0 S1 S2 S0 S1 S2 S0 S1 S2 S 0 S 1 S 2 S 3 S 4 SELSEL SELSEL 42 / 49 Demultiplexadores Demultiplexadores 43 / 49 Demultiplexadores (a) (b) SRCA SRCB SRCC SRCZ SRCA SRCB SRCC SRCZ BUS BUS DSTA DSTB DSTC DSTZ SRCSEL DSTSEL multiplexer demultiplexer MUX DMUX DSTA DSTB DSTC DSTZ SRCSEL DSTSEL 44 / 49 Demultiplexadores Um demultiplexador (demux) tem 1 entrada, n bits de seleção e 2n sáıdas. O que é muito similar a um... decodificador! 45 / 49 Exerćıcios Exerćıcio - Prova 02/2014 Utilizando apenas (isto é, sem lógica adicional) dois decodificadores 3-para-8 modelo 74x138, monte um circuito decodificador 4-para-16 com pelo menos um enable. 46 / 49 Exerćıcios Exerćıcio - Prova 02/2014 Considere o circuito definido pela equação booleana: F =A ·B ·C ·D ·E · F ·G+A ·B ·C ·D ·E · F ·G+ A ·B ·C ·D ·E · F ·G+A ·B ·C ·D ·E · F ·G+ A ·B ·C ·D · F ·G+A ·B Projete esse circuito utilizando no máximo três CIs, dentre as opções encontradas no Anexo II (74x138, 74x139, 74x154, 74x155, 74x148, 74x541, 74x245, 74x85, 74x283, 74x280, 74x151, 74x153, 74x157), além de portas lógicas (and, or, xor e inversoras - considere que um CI com portas básicas de 2 entradas tem 4 portas lógicas, de 3 entradas tem 3 portas, de 4 entradas tem 2 portas e de 8 entradas tem apenas uma porta lógica). 47 / 49 Exerćıcios Exerćıcio - Prova 02/2015 Projete um circuito que tome duas entradas (chamadas chaves), C1 e C2, com 3 e 4 bits respectivamente, e retorne 1 na sáıda apenas quando a combinação de C1 e C2 é uma das oito combinações da tabela abaixo. Podem ser utilizados somente circuitos encontrados no Anexo II da prova. C1 C2 0 13 1 7 2 2 3 5 4 14 5 6 6 1 7 11 48 / 49 Referências Referências Wakerly, Seções 6.1, 6.2, 6.4 e 6.7. Exerćıcios Sugeridos Wakerly: 6.20, 6.65, 6.66 49 / 49
Compartilhar