Aula 09 Memórias e Circuitos Digitais Seqüenciais Introdução Os circuitos lógicos estudados até aqui são chamados de combinacionais (ou combinatórios). São assim chamados porque a sua saída depende apenas dos valores presentes nas suas entradas. Portanto, esses circuitos não possuem memória. Os circuitos lógicos que incorporam memória são denominados circuitos seqüenciais; isto é, sua saída não depende apenas do valor presente na entrada, mas também dos valores de instantes anteriores. Esses circuitos requerem, para sua operação, o uso de um relógio (clock) de temporização. Há basicamente duas formas para fazer com que um circuito digital tenha memória, essas são: 1. Realimentação positiva 2. Armazenamento de carga em um capacitor. A realimentação positiva faz com o circuito tenha dois estados estáveis. Tal circuito biestável pode ser empregado par armazenar um bit de informação. Um circuito biestável pode permanecer em dado estado indefinidamente na ausência de sinal e, portanto, pertence à categoria de circuitos seqüências estáticos. O armazenamento de carga em um capacitor indicará um 1 quando estiver carregado; quando estiver descarregado, terá um 0 armazenado. Uma vez que as correntes de fuga são inevitáveis e causam a descarga do capacitor, ele necessitará ser regenerado periodicamente, no processo conhecido como restauração. Portanto, como na lógica dinâmica, memórias baseadas no armazenamento de cargas são conhecidas como memórias dinâmicas e pertencem à classe de circuitos seqüências dinâmicas. O Latch O elemento básico de memória, lacth está representado na figura A.9.1 a). Ele consiste em dois inversores lógicos, G1 e G2, conectados em malhas fechada. Os inversores forma uma malha de realimentação positiva. Figura A.9.1 a) Latch básico. b) O latch com a malha de realimentação aberta. c)Determinação do ponto de operação do latch. Princípio de funcionamento Para entender o funcionamento do latch, vamos abrir a malha de realimentação do inversor G1 (por, exemplo) e aplicar um voltagem vW que varia de 0 V até uma tensão maior que VOH; como indicado na figura A.9.1 b). A característica de transferência dos dois inversores está mostrada figura A.9.1 c). Observe que essa característica consiste em três segmentos, com o segmento do meio correspondendo à região de transição dos inversores. É mostrada também na figura uma reta com inclinação 1. Essa reta representa a relação entrada igual a saída (vW = vZ), que é obtida quando conectamos os pontos W e Z. Como pode ser observado na figura, a linha reta intercepta a curva de transferência em três pontos, A, B e C. É deixado por aluno mostrar que, enquanto os pontos A e C são estáveis, no sentido em que o circuito permanece em um deles indefinidamente, o ponto B é um ponto de operação instável; o latch não pode permanecer por um período significativo. Portanto o latch é um circuito biestável que possui duas saídas complementares. O estado estável no qual o latch opera depende da excitação externa que o força para um estado particular. O latch então memoriza essa ação externa, permanecendo indefinidamente no estado a que foi levado. Como elemento de memória, o latch é capaz de armazenar um bit de informação. Finalmente, deve ser óbvio que o circuito latch descrito é do tipo estático. Analisaremos a seguir, o mecanismo pelo qual o latch pode ser disparado, para mudar de estado. O latch, junto com o circuito de disparo, forma um flip-flop. O flip-flop O tipo mais simples de flip-flop é o set/reset (RS ou SR), mostrado na figura A.9.2 a). É formado por duas portas NOU (ou NOR) interligadas por conexões cruzadas entre entradas e saídas e, portanto, incorpora um latch. A segunda entrada de cada porta NOU é usada para entradas de disparos do flip-flop. Essas duas entradas são denominadas S (para set) e R (para reset). As saídas são chamadas Q e Q , enfatizando o fato de que elas são complementares. Considera-se o flipflop no estado de set (isto é, armazenando um 1 lógico) quando Q é alta e Q é baixa. Quando o flip-flop está no outro estado (Q baixa e Q alta), ele é considerado em reset (armazenando um 0 lógico). Figura A.9.2 O flip-flop tipo set/reset (SR) e sua tabela verdade. Q A operação do flip-flop está resumida pela tabela verdade na figura A.9.2 b), na qual Qn representa o valor de Q no instante tn antes da aplicação dos sinais R e S, e Qn+1 representa o valor de Q no instantes tn+1 após a aplicação dos sinais de entrada. Operação do flip-flop Consideraremos o caso em que o flip-flop está memorizando o 0 lógico. Uma vez que Q será baixa, as duas entradas da porta NOU P2 serão baixas. Sua saída então será alta. Esse nível alto é aplicado a entrada de P1, fazendo com que a saída Q seja baixa, satisfazendo a condição inicial. Para o estado set do flip-flop, elevamos a entrada S para o nível lógico 1, enquanto mantemos R em 0. O 1 no terminal A forçará a saída de P2, Q , para 0. portanto, as duas entradas de P1 serão 0 e sua saída Q será 1. No entanto, mesmo que S volte para 0, o flip-flop permanecerá no último estado adquirido, set. Obviamente, se elevarmos S para 1 novamente (com R permanecendo em 0), não haverá modificação. Para o estado de reset do flip-flop, precisamos elevar R para 1, enquanto mantemos S = 0. Podemos mostrar de imediato que isso força o flip-flop ao estado de reset e o flip-flop permanecerá nesse estado, mesmo depois de R retornar a 0. Devemos observar que o sinal de disparo simplesmente dá início à ação regenerativa da malha de realimentação do lacth. Finalmente deixamos como exercício para o aluno mostrar que as saída do flip-flop ficam indeterminada, caso as duas entradas forem elevadas para o nível lógico 1. Em vez de utilizarmos duas porta NOU, podemos implementar também um flip-flop SR pela conexão de duas porta NE(ou NAND) interligadas por conexões cruzadas, em que as funções set e reset estarão ativas quando em nível baixo e as entradas serão, dessa forma, chamadas de S e R . Implementação de flip-flop tipo SR em CMOS O flip-flop da figura A.9.2 pode ser diretamente implementado em CMOS simplesmente substituindo cada uma das portas NOU por seu correspondente circuito CMOS já visto. Deixamos como exercício para o aluno esboçar o circuito resultante. Embora o circuito assim obtido funcione muito bem, ele é relativamente complexo. Como alternativa, consideraremos o circuito simplificado que, além do mais, implementa uma lógica adicional. Especificamente, a figura A.9.3 mostra outra versão de flip-flop SR controlada por um sinal de relógio. Visto que as entradas de relógio formam funções E com as entradas set e reset, o flip-flop pode ser setado e resetado quando o sinal de relógio φ estiver em nível alto. Observe que, embora os inversores ligados de forma cruzadas no núcleo do flip-flop sejam do tipo CMOS complementar, somente os transistores NMOS realizam as funções de ativar o setreset. Todavia, uma vez que não há um caminho entre VDD e terra (exceto durante o chaveamento), o circuito não dissipa nenhuma potência estática. Figura A.9.3 Implementação CMOS de um flip-flop SR com sinal de relógio. O sinal de relógio está indicado por φ. Operação do flip-flop SR dinâmico Considere inicialmente quando o flip-flop está no estado reset (Q = 0, Q = 1, isto é, vQ = 0 e vQ = VDD) e desejamos passá-los para o estado set. Para tanto, aplicaremos um nível alto na entrada S, enquanto R é mantido em nível baixo. Então, quando o relógio φ for para o nível alto, tanto Q5 como Q6 conduzirão e farão a tensão vQ abaixar. Se vQ cair abaixo da tensão de transição do inversor formado por (Q3 e Q4) sua saída mudará de estado (ou pelo menos começará a mudar de estado) e a tensão vQ subirá. Esse aumento de vQ será realimentado para entrada do inversor formado por Q1 e Q2, fazendo com que vQ por sua vez, tenha sua tensão de saída diminuída até chegar em 0 V. Esse processo de realimentação positiva é característica do latch. Duas hipóteses foram admitidas na análise acima do flip-flop dinâmico: 1. Os transistores Q5 e Q6 fornecem corrente suficiente para abaixar a tensão no nó Q ao menos levemente abaixo da tensão de transição do inversor Q3 e Q4. Isso é essencial para que o processo iniciar regenerativo. Sem essa excitação inicial o flip-flop não chaveará. 2. O sinal set deve permanecer em nível alto por um intervalo de tempo suficiente longo para fazer com que o processo regenerativo aconteça durante o chaveamento. Uma estimativa para largura mínima necessária para o pulso set pode ser obtida somando o intervalo em que vQ é reduzido de VDD para VDD/2 com o intervalo para que a tensão vQ passe de 0 a VDD/2. Finalmente, dado a simetria do circuito, todas essa observações se aplicam ao processo reset. Exemplo: O flip-flop SR CMOS mostrado na figura A.9.3 é fabricado em uma tecnologia para qual µnCox = 50 µA/V2, µpCox = 20, VTn0 = - VTp0 = VT0 = 1,0 V e VDD = 5 V. Os inversores têm (W/L)n = 4 µm/2 µm e (W/L)p = 10 µm/2 µm. os quatro transistores NMOS no circuito set/reset têm razões (W/L) idênticas. Determine o valor mínimo necessário para essa razão garantir que o flip-flop chaveará. Solução: A figura A.9.4 mostra a parte relevante do circuito flip-flop para análise neste exemplo. Observe que o processo de regeneração ainda não começou e supõe-se que vQ = 0 e, portanto, Q2 estará conduzindo. Dessa forma, o circuito se comporta como uma porta psedo-NMOS e nossa tarefa é escolher as razões (W/L) para Q5 e Q6, tal que o valor de VOL desse inversor seja menor que VDD/2 (isto é, a transição do inversor formado por Q3 e Q4 (que são casados). Para encontramos o valor mínimo necessário de (W/L) utilizaremos dois caminhos. No primeiro igualamos as correntes que passam por Q2 , Q5 e Q6 na situação onde vQ = VDD/2 e que podemos supor que os transistores Q5 e Q6 podem ser substituído por um transistor de (W/L)equiv. (associação em série) igual à metade da razão de (W/L)5 e (W/L)6. Assim, verificando que os transistores Q5 e Q6 estão operando na região de triodo, temos 1 1 2 W W k n' 1 (VGS − VTn )VDS − (VDS ) 2 = k p' (VSG − | VTp |)VSD − (VSD ) 2 2 L Q 5 2 L Q 2 1 1 2 W 10 50 1 (5 − 1)5 / 2 − (5 / 2) 2 = 20 (5 − 1)5 / 2 − (5 / 2 ) 2 2 L Q5 2 2 Q 2 W 10 50 1 = 20 L Q5 2 2 Q 2 W =4 L Q 5 e logo, W =4 L Q 6 Figura A.9.4 Parte importante do circuito do flip-flop para determinar as razões mínimas (W/L) de Q5 e Q6 para garantir o chaveamento. A segunda maneira de determinarmos a razão mínima de (W/L)Q5 e (W/L)Q6 é admitindo que a metade da tensão de saída vQ = VDD/2 ficará sobre cada um dos transistores e, como para esta situação o transistore que fica sujeito a menor tensão VGS é o transistor Q6 , então faremos a corrente que passa por este transistor igual a corrente que passa por Q2, portanto 1 1 2 W W k n' (VGS − VTn )VDS − (VDS ) 2 = k p' (VSG − | VTp |)VSD − (VSD ) 2 2 L Q 6 L Q 2 1 1 2 W 10 50 (5 − 5 / 4 − 1)5 / 4 − (5 / 4) 2 = 20 (5 − 1)5 / 2 − (5 / 2) 2 2 L Q 6 2 Q 2 W 85 200 55 50 = L Q 6 32 2 Q 2 8 W ≅ 5.2 L Q 6 e logo, W ≅ 5.2 L Q 5 Um valor muito próximo do resultado anterior. Lembrando que este é um valor mínimo absoluto, poderíamos, na prática escolher uma razão 6 ou 7. Exercício: Repita o exemplo anterior para determinar o valor mínimo necessário de (W/L)Q5 = (W/L)Q6 tal que o chaveamento ocorra quando as entradas S e φ estiverem em VDD/2. Resposta : 24,4. Implementação mais simples de flip-flop SR dinâmico Uma implementação mais simples para uma flip-flop SR controlado por relógio é mostrada na figura A.9.5. Nesse caso, a lógica de transistores de passagem é empregada para implementar as funções set-reset por relógio. Esse circuito é comum como célula básica de memória estática de acesso randômico (static random-access memory – SRAM). Figura A.9.5 Uma implementação CMOS mais simples de um flip-flop SR controlado por relógio. Circuitos flip-flop tipo D Existem vários tipos de flip-flop. Muitos podem ser sintetizados em termos de portas lógicas. As portas lógicas depois podem ser substituídas pela implementação CMOS de seus circuitos. Essa abordagem simples quase sempre leva para uma implementação mais complexa. Em muitos casos, circuitos mais simples podem ser projetados em vez do projeto a partir de portas lógicas. Para ilustrar isso, apresentaremos o projeto de um circuito de um flip-flop de dados ou tipo D. O flip-flop tipo D é apresentado em forma de diagrama de blocos na figura A.9.6. Este tem duas entradas, a entrada de dados D e a entrada do relógio φ. As saídas complementares Q e Q . Quando a entrada do relógio for baixa, o flip-flop está no estado de memória ou repouso; a mudança no sinal de dados não tem nenhum efeito nas saídas do flip-flop. Quando o relógio vai para o nível alto, o flip-flop adquire o nível lógico presente em D logo na subida da borda do pulso de relógio. Diz-se que esse flip-flop é disparado pela borda (edgetriggered). Algumas implementações do flip-flop tipo D incluem também as entradas de set e reset que se impõem sobre a operação com o relógio que acabamos de descrever. Figura A.9.6 Representação na forma de diagrama de blocos de um flipflop tipo D Uma simples implementação de um flip-flop tipo D é apresentada na figura A.9.7. O circuito consiste em dois inversores conectados em uma malha de realimentação positiva como se fosse um latch estático semelhante àquele mostrado na figura A.9.1, exceto que aqui a malha de realimentação fica fechada por apenas uma parte do tempo. Especificamente, a malha de realimentação estará fechada quando o sinal de relógio estiver em nível baixo (φ =0, φ = 1 ). A entrada D está conectada no flip-flop por meio de uma chave que fecha quando o sinal de relógio está em nível alto. O princípio de funcionamento é direto: quando φ =1, a malha de realimentação estará aberta e a entrada D estará conectada na entrada do inversor P1. A capacitância de entrada do nó P1 será carregada com o mesmo valor de D e a capacitância no de entrada P2 será carregada com o valor de D . Então, quando o sinal de relógio passar a nível baixo, a linha de entrada ficará isolada do flipflop, a malha de realimentação passa a ficar fechada e o latch adquire o valor de D assim que φ vai para nível baixo, fornecendo uma saída Q = D. Este circuito combina a técnica de realimentação positiva presente em circuitos biestáveis estáticos com a técnica de armazenamento de cargas de circuitos dinâmicos. Finalmente, é importante observar que para uma operação apropriada deste e de muitos outros circuitos que empregam sinais de relógio é necessário que φ e φ não devem estar simultaneamente em nível alto em nenhum instante. Essa condição é definida em relação as duas fases de relógio como fases não sobrepostas (nonoverlapping). Figura A.9.7 Uma simples implementação de um flip-flop tipo D. a) emprega um sinal de relógio com duas fases não superpostas mostradas em b). Observando mais atentamente o circuito da figura A.9.7 notamos que, durante o intervalo de tempo em que φ está em nível alto, a saída do flip-flop segue o mesmo sinal da linha de entrada D. Isso pode ocasionar problemas em determinadas situações de projetos lógico. O problema pode ser resolvido de forma efetiva utilizando a configuração mestre-escravo (master-slave) mostrada na figura A.9.8. O circuito mestre-escravo consiste em um par de circuitos do tipo mostrado na figura A.9.7, controlado por fases de relógio alternadas. Aqui, para enfatizar que as duas fases de relógio não devem apresentar sobreposição, vamos representá-las por φ1 e φ2, conforme mostrado na figura A.9.7 b). A operação do circuito é a seguinte: 1. Quando φ1 está em nível alto e φ2 está em nível baixo, a entrada está conectada ao latch-mestre cuja malha de realimentação está aberta, enquanto o latch escravo está isolado. Portanto, a saída Q permanece no valor previamente armazenado no latch escravo cuja malha de realimentação está agora fechada. As capacitâncias nodais do latch mestre são carregadas com as tensões apropriadas correspondentes ao valor presente de D. 2. Quando φ1 vai para nível baixo, o latch-mestre está isolado da linha de dados da entrada. Então, quando φ2 vai para o nível alto, a malha de realimentação do latch-mestre passa a estar fechada e o valor de D fica constante e armazenado. Além disso, sua saída está conectada ao latch escravo cuja malha de realimentação está agora aberta. As capacitâncias nodais no escravo são apropriadamente carregadas tal que, quando φ1 vai para nível alto novamente, o latch escravo trava em um novo valor de D e fornece-o na saída, Q = D. A partir dessa descrição, notamos que, na transição positiva do sinal de relógio φ2, a saída Q adota o valor de D que havia na linha D no fim da fase de relógio anterior, φ1. Esse valor de saída permanece constante por um período de relógio. Finalmente, note que, durante o intervalo sem sobreposição em nível baixo, ambos os latches têm suas malhas de realimentação abertas e teremos as capacitâncias nodais mantendo a maior parte da sua carga. Nesse caso, o intervalo sem sobreposição deve ser feito o mais curto possível (da ordem de 1ns ou menos na prática). Figura A.9.8 a) Um flip-flop D mestre-escravo. b) Formas de onda do relógio não superpostas.