Exemplo somador de 3 bits 3 números de 1 bit Ci i i Full adder Si Ci1 LS número de 2 bits (pode ser 0, 1, 2 ou 3) MS Escrever uma expressão booleana para as funções Si(Ci,i,i) e Ci1(Ci, i, i) Desenhar um circuito lógico que realize as funções Si() e Ci1() Construir um circuito digital com circuitos integrados 74LSxxx 74LS00 4 x NNDs de 2 entradas 74LS08 4 x ND de 2 entradas 74LS11 3 x ND de 3 entradas 74LS04 6 x NOT (inversores) 74LS32 4 x OR de 2 entradas 86 Circuitos combinacionais Síntese a partir de tabelas de verdade Descrição formal -> circuito ND-OR ou OR-ND Circuitos só com NNDs ou NORs plica-se apenas a circuitos pequenos Circuitos complexos (dezenas de entradas) Impraticável usar os métodos estudados 32 entradas, 2 32 = 4 294 967 296 linhas da tabela de verdade Projecto hierárquico Construir circuitos complexos à custa de circuitos mais simples Um exemplo: construir um somador de 32 bits à custa de full-adders Umfull-adder é um somador de 3 números de 1 bit 87 1
Funções combinacionais padrão Funções padrão Podem-se identificar em circuitos complexos Existem disponíveis (p. ex. como circuitos integrados) Facilitam o projecto de sistemas digitais Exemplos de funções padrão: Somadores/subtractores (detecção de overflow, com ou sem sinal) Comparadores (igualdade e magnitude, com sinal ou sem sinal) Descodificadores e codificadores (binário, 7-segmentos, CD, hex) Multiplexers ( comutadores digitais) 88 Desenho de circuitos Portas lógicas elementares sua função é especificada pelo seu símbolo Funções complexas Não existem símbolos padrão para cada função* Usa-se uma caixa com entradas e saídas Função: tabela de verdade Entrada activa com 1 Entrada activa com 0 (negada) *existe para algumas Nomes dos sinais Saída activa em 0 (negada) EN_ EN_ F H G 89 2
arramentos Grupo de N sinais lógicos relacionados Representam um dado com N bits Usam-se nomes do tipo [7:0] nº de bits [7:0] [7:0] (MS) barramento (8 bits) 8 8 7 6 5 4 3 2 1 0 (LS) > comparador S Y multiplexer 8 fio (1 bit) MX[7:0] [3:1] 90 Funções padrão Descodificadores (decoders) N entradas e M saídas, N < M (geralmente) Transforma um código noutro com mais bits Descodificador binário (ou N-para-2 N ) Exemplo: descodificador 2 4 I1 I0 EN Y0 Y1 Y2 Y3 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 91 3
Descodificadores disponíveis como CIs Descodificador binário 2 4 (74x139) /G G Y0 Y1 Y2 Y3 /Y0 /Y1 /Y2 /Y3 (cada 74x139 tem 2 descodificadores) G 0 x x Y3 Y2 Y1 Y0 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 /G /Y3 /Y2 /Y1 /Y0 1 x x 1 1 1 1 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 92 Descodificador binário 3 8 (74x138) Y0 /Y0 C G1 /G2 /G2 C G1 G2 G2 Y1 Y2 Y3 Y4 Y5 Y6 Y7 /Y1 /Y2 /Y3 /Y4 /Y5 /Y6 /Y7 G1 /G2 /G2 C /Y7 /Y6... /Y1 /Y0 0 x x x x x 1 1... 1 1 x 1 x x x x 1 1... 1 1 x x 1 x x x 1 1... 1 1 1 0 0 0 0 0 1 1... 1 0 1 0 0 0 0 1 1 1... 0 1...... 1 0 0 1 1 0 1 0... 1 1 1 0 0 1 1 1 0 1... 1 1 93 4
Como fazer um descodificador 4 16? 16 funções de 5 variáveis (admitindo um enable) asta usar 2 CIs 74x138 (3 8) E quantos são necessários para fazer um 5 32? Como realizar funções lógicas de 3 variáveis com 74x138? Descodificador CD para 7 segmentos (74x49) (blanking input) (LS) (MS) I C D a b c d e f g f e a g d b c 94 Codificadores (encoders) N entradas e M saídas, N > M (geralmente) Transforma um código noutro com menos bits codificador binário 2 N N se não estiverem duas entradas em 1 simultaneamente I0 I1 I2 I3 Y1 Y0 IDLE I3 I2 I1 I0 Y1 Y0 IDLE 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 95 5
Codificador de prioridade 8 3 (74x148) 8 entradas: I7 (+prioridade) a I0 (- prioridade) I7 I6 I5 I4 I3 I2 I1 I0 EI 2 1 0 GS EO enable input enable output got something EI I7 I6 I5... I2 I1 I0 2 1 0 GS EO 0 x x x... x x x 0 0 0 0 0 1 0 0 0... 0 0 1 0 0 0 1 0 1 0 0 0... 0 1 x 0 0 1 1 0 1 0 0 0... 1 x x 0 1 0 1 0......... 1 0 0 1... x x x 1 0 1 1 0 1 0 1 x... x x x 1 1 0 1 0 1 1 x x... x x x 1 1 1 1 0 1 0 0 0... 0 0 0 0 0 0 0 1 96 Multiplexadores (multiplexers ou muxs) circuito selector (um mux 4 1) entradas de selecção I0 I1 I2 I3 S0 S1 Y = Is, s={s1,s0} Y símbolo habitual I0 I1 I2 Y I3 S0 S1 97 6
Multiplexadores disponíveis como CIs 74x151 (mux 8 1) 74x153 (2 x mux 4 1) 74x157 (mux 2 1, 4bit) Como fazer um mux 4 1 com muxs 2 1? Como realizar uma função lógica de N variáveis com um mux de N linhas de selecção? e com um mux de N-1 linhas de selecção? 98 Porta OU-exclusivo (XOR) (74x86 tem 4 XOR) saída é 1 quando as entradas são diferentes aplicação: somadores, detector de paridade (ímpar) 0 0 0 0 1 1 1 0 1 1 1 0 função lógica: =. +. (propriedade associativa) Como se faz um XOR com 4 NNDs? XNOR é um comparador de igualdade 99 7
Somadores somador tipo ripple-carry (como se faz à mão ) ligação de N full-adders em cascata (circuito iterativo) Si = i i Ci-1 Ci = i.i + i.ci-1 + i.ci-1 Subtractores como - = + (-), basta trocar o sinal de trocar o sinal: trocar os bits todos (XORs) e somar 1 (carry-in) Portas XOR como inversores controlados X= : quando =0, X=; quando =1, X= Somadores como CIs: 74x283: somador de 4 bits, com carry-in e carry-out 100 Comparadores de igualdade entre uma variável de N bits e uma constante um ND de N entradas negadas as entradas a comparar com zero entre duas variáveis e de N bits N portas XNOR comparam os bits de e uma porta ND de N entradas produz o resultado i i i = i 101 8
Circuitos iterativos ligação em cascata de sub-circuitos simples cada sub-circuito avalia parte dos operandos exemplo: comparador iterativo de igualdade i i EQin os bits mais significativos (até i-1) são iguais? EQout os bits até i são iguais 102 Comparadores de magnitude (sem sinal) pode ser usado um subtractor comparador iterativo de magnitude: i i resultado (>) dos bits até i GTin LTin pelos bits mais significativos (até i-1), já é >? GTout LTout resultado (<) dos bits até i pelos bits mais significativos (até i-1), já é < 103 9
CIs comparadores 74x85 comparador de 4 bits (>, = e <), expansível em cascata 74x682 comparador de 8 bits (saídas EQ e GT) Outras funções LU (74x181, 74x381, 74x382) barrel shifters multiplicadores buffers 3 estados (74x125, 74x126) 104 10