Básculas Flip-flops Sinal de relógio Básculas actualizadas no flanco Flip-flops master-slave Flip-flops edge-triggered Flip-flops SR, D, JK e T Entradas directas Características temporais 2 1
Um circuito combinatório pode exibir nas suas saídas picos não previstos no projecto em virtude dos tempos de atraso das portas poderem gerar situações de transição que os ocasionem. Um pico é uma ocorrência com duração muito curta de um nível oposto ao nível constante do sinal num determinado intervalo de tempo. 3 No circuito do próximo slide e no diagrama temporal feito mostrando o efeito dos atrasos das portas, pode ver-se que quando B passa de 1 para 0, a porta de cima passa de 1 para 0 antes da porta de baixo passar de 0 para 1. 4 2
Exemplo Diagrama temporal mostrando os atrasos Pico 5 Esta situação em que em circuitos combinatórios podem surgir picos indesejados nas saídas é preocupante quando esses circuitos estão integrados com circuitos sequenciais porque pode haver memorização de valores não desejados. Como se verá, a solução é ignorar, para efeitos de memorização, os valores nas saídas dos circuitos combinatórios nos períodos em que os picos podem ocorrer. 6 3
Os circuitos sequenciais podem assumir dois tipos: Circuitos sequenciais assíncronos em que os diversos elementos de memória não estão sincronizados entre si, reagindo logo que uma mudança ocorre em qualquer entrada. Circuitos sequenciais síncronos em que existe um sinal de relógio comum a todos os elementos de memória que define o tempo em que eles são sensíveis às entradas e podem alterar o seu estado e as suas saídas. 7 O sinal de relógio define fases no funcionamento do circuito sequencial. uma fase de cálculo dos sinais de entrada para actualizar os diferentes elementos de memória, Uma outra fase em que estes são actualizados. Deste modo, os picos que surgem na lógica de geração dos sinais de entrada serão ignorados pelos elementos de memória. O sinal de relógio sincroniza a mudança de estado de todos os elementos de memória permitindo assim definir um estado global. 8 4
O relógio é um sinal limpo, isto é, sem picos. Flanco ascendente O sinal de relógio ilustrado tem um período T que é o tempo que passa entre dois flancos iguais sucessivos. A fase em que o relógio está a 1 pode ou não ser igual à fase em que está a zero. Chama-se duty cycle à relação que mede a fracção do período com o sinal a 1. Flanco descendente 9 As básculas que se estudaram até agora, actualizam as suas saídas quando as entradas mudam, durante todo o tempo em que a linha de enable está activa. A esta característica chama-se transparência. São básculas sensíveis ao nível do sinal de enable ou das entradas SR e D. 10 5
Para construir circuitos síncronos é necessário ter básculas que reagem a um flanco do sinal de relógio e não ao seu nível. Este tipo de básculas designam-se habitualmente por flip-flops. 11 Isso permite também que os circuitos combinatórios ligados às básculas tenham de estar estáveis (sem picos) apenas numa parte reduzida do período do sinal de relógio. Analisam-se dois tipos de básculas que, reagindo ambas num flanco do relógio, são diferentes no que diz respeito à leitura das entradas. 12 6
A figura ilustra uma báscula que reage num flanco da linha de relógio: O circuito é constituído por dois latches SR. Esta arquitectura denomina-se de Mestre-escravo ou Master-slave. 13 Como se vê o circuito é construído com dois latches SR em que as linhas de activação são activas em valores opostos. Neste circuito, quando o relógio (linha CLK) está a 0, o primeiro latch está bloqueado e o segundo está transparente. Mas as entradas não se alteram porque são as saídas do primeiro, que está bloqueado. 14 7
Quando CLK passa para 1, o segundo latch fica bloqueado e as saídas não se alteram. O primeiro está agora sensível às entradas podendo mudar de estado. Quando CLK volta a 0, o primeiro latch bloqueia e o segundo altera as suas saídas. Reage no flanco descendente do relógio, portanto. O Mestre toma as decisões e o Escravo implementa-as no momento adequado. 15 Exemplo de diagrama temporal Não é possível prever Porque usamos latches SR voltamos a este problema 16 8
Símbolos Indicação do carácter Master-Slave O número 1 serve para assinalar a dependência de S e R em relação a C, isto é, serve para dizer que as entradas só têm consequências quando houver o flanco activo da linha de relógio. 17 Tabela Master-slave 18 9
Repare-se que, no flip-flop Master-slave, apesar da reacção se dar no flanco descendente do relógio, o circuito está sensível à influência das entradas durante todo o tempo em que a linha de relógio está a 1. Isso, por vezes é inconveniente e desenvolveuse um outro tipo de flip-flop em que as entradas são amostradas no mesmo flanco em que se dá a reacção. Este tipo de flip-flop designa-se por edge-triggered. 19 A concepção de um flip-flop edge-triggered é uma tarefa que exige ferramentas teóricas não estudadas nesta unidade curricular. Por isso apresenta-se, sem justificação, apenas para ilustração, o circuito de um flip-flop deste tipo. Escolheu-se o circuito do flip-flop D edgetriggered. 20 10
O circuito: 21 Símbolos do flip-flop D edge-triggered como descrito Indicação do carácter Edgetriggered Símbolo do D edge-triggered que reage no flanco descendente do relógio 22 11
E a tabela é a seguinte Edge-triggered 23 Um diagrama temporal exemplificativo Acabaram as indefinições! 24 12
Os dois tipos de flip-flop, master-slave e edgetriggered coexistem no mercado e têm ambos aplicação. Em algumas circunstâncias um dos tipos é preferível, mas em muitas situações pode ser usado um deles indiferentemente. O comportamento quanto à linha de relógio e quanto às entradas é independente. Podemos ter flip-flops SR e D, quer na versão master-slave, quer na edge-triggered. 25 Os flip-flops SR têm o inconveniente de ter, com S = R = 1, uma transição imprevisível. Mas têm a vantagem de ter duas entradas e, por exemplo, de terem a possibilidade de manter o estado, coisa que os D não têm. Por isso se desenvolveu um flip-flop derivado do SR, sem o seu inconveniente, que é o flip-flop JK. A situação em que J = K = 1 provoca a mudança de estado no flip-flop. 26 13
Também no caso do JK existem flip-flops dos dois tipos. Ilustra-se o circuito de um edge-triggered Estas portas impedem que S = R = 1 mesmo quando J = K =1. 27 A tabela agora é: No caso de ser um edge-triggered sensível ao flanco ascendente. 28 14
O símbolo é o seguinte 29 Diagrama temporal nos dois tipos do JK descendente" 30 15
Um último flip-flop, que é sobretudo usado em contadores é o flip-flop T (de toggle). Esta báscula tem, para além da entrada de relógio, apenas a entrada T e pode ser construído como na figura. Quando T = 1, o flip-flop muda de estado. Quando T = 0, mantém o estado. 31 Símbolo e tabela Exemplo para um flip-flop edge-triggered que reage no flanco ascendente 32 16
Em todos os flip-flops e em alguns latches (nomeadamente no caso do latch D) é interessante ter, para além das entradas síncronas, isto é, que só têm efeito quando surge o flanco activo do relógio, duas entradas que permitam em qualquer momento colocar a báscula em 0 ou em 1, independentemente do que acontece na entrada de relógio. Estas entradas são as entradas assíncronas ou directas. 33 Esta opção é interessante para Reset inicial de um circuito, colocando-o num estado conhecido, ou para impor um determinado estado durante o funcionamento do circuito quando tal se revela útil. Pela lógica da construção são entradas habitualmente activas a 0. Note-se que estas entradas têm prioridade sobre todas as outras. 34 17
Exemplo do símbolo de um flip-flop JK edgetriggered com entradas directas. 35 Tal como no caso de circuitos combinatórios existe um intervalo de tempo entre o momento em que as entradas são activadas numa báscula e o momento em que as saídas reagem. Esse é o tempo de atraso ou tempo de propagação. No caso de flip-flops, por exemplo, esse tempo não se refere às entradas síncronas porque estas, só por si não provocam reacções nas saídas. Esses tempos são medidos em relação ao flanco activo de relógio ou às entradas assíncronas. 36 18
Nos flip-flops as entradas não podem mudar no momento em que o flanco activo de relógio surge. Nessas condições é impossível garantir qual a evolução da báscula. Esta situação é ainda um pouco mais complicada no caso de flip-flops master-slave. No caso dos edge-triggered, há que garantir um intervalo em torno do flanco activo no qual não pode haver alterações das entradas. 37 O tempo que decorre antes do flanco denomina-se tempo de preparação ou set-up time. O tempo que decorre depois do flanco é o tempo de manutenção ou hold time. 38 19
Como se percebe agora, retomando um dos problemas anteriormente postos, um sistema sequencial funcionará bem se os eventuais picos nos circuitos sequenciais que afectem as entradas de básculas ocorrerem fora do intervalo definido pelos tempos de preparação e de manutenção. 39 Livro recomendado, Capítulo 6, secções 6.3 e 6.4 Existem muitos livros com capítulos sobre o assunto. A Internet é, como de costume, uma fonte que, explorada com espírito crítico, tem muito para dar. 40 20