Flip-flop (eletrônicos) - Flip-flop (electronics)

Uma trava SR interativa animada ( R1, R2 = 1  kΩ; R3, R4 = 10  kΩ).

Na eletrônica , um flip-flop ou latch é um circuito que tem dois estados estáveis ​​e pode ser usado para armazenar informações de estado - um multivibrador biestável . O circuito pode ser feito para mudar de estado por sinais aplicados a uma ou mais entradas de controle e terá uma ou duas saídas. É o elemento básico de armazenamento na lógica sequencial . Flip-flops e travas são blocos de construção fundamentais de sistemas eletrônicos digitais usados ​​em computadores, comunicações e muitos outros tipos de sistemas.

Flip-flops e travas são usados ​​como elementos de armazenamento de dados. Um flip-flop é um dispositivo que armazena um único bit (dígito binário) de dados; um de seus dois estados representa um "um" e o outro representa um "zero". Tal armazenamento de dados pode ser usado para armazenamento de estado , e tal circuito é descrito como lógica sequencial em eletrônica. Quando usado em uma máquina de estado finito , a saída e o próximo estado dependem não apenas de sua entrada atual, mas também de seu estado atual (e, portanto, das entradas anteriores). Também pode ser usado para contagem de pulsos e para sincronizar sinais de entrada com temporização variável para algum sinal de temporização de referência.

Os flip-flops podem ser disparados por nível (assíncrono, transparente ou opaco) ou disparados por borda ( síncrono ou com clock ). O termo flip-flop historicamente se refere genericamente a circuitos acionados por nível e por borda que armazenam um único bit de dados usando portas. Recentemente, alguns autores reservam o termo flip-flop exclusivamente para discutir circuitos com clock; os mais simples são comumente chamados de travas transparentes . Usando essa terminologia, um flip-flop sensível ao nível é chamado de latch transparente, enquanto um flip-flop acionado por borda é simplesmente chamado de flip-flop. Usando qualquer terminologia, o termo "flip-flop" se refere a um dispositivo que armazena um único bit de dados, mas o termo "trava" também pode se referir a um dispositivo que armazena qualquer número de bits de dados usando um único gatilho. Os termos "acionado por borda" e "acionado por nível" podem ser usados ​​para evitar ambigüidade.

Quando um latch disparado por nível é habilitado, ele se torna transparente, mas a saída de um flip-flop disparado por borda muda apenas em um único tipo (movimento positivo ou negativo) de transição de clock.

História

Esquemas de flip-flop da patente de Eccles e Jordan registrada em 1918, um desenhado como uma cascata de amplificadores com um caminho de feedback positivo e o outro como um par cruzado simétrico

O primeiro flip-flop eletrônico foi inventado em 1918 pelos físicos britânicos William Eccles e FW Jordan . Foi inicialmente chamado de circuito de gatilho Eccles – Jordan e consistia em dois elementos ativos ( tubos a vácuo ). O projeto foi usado no computador codebreaking British Colossus de 1943 e tais circuitos e suas versões transistorizadas eram comuns em computadores mesmo após a introdução de circuitos integrados , embora flip-flops feitos de portas lógicas também sejam comuns agora. Os primeiros flip-flops eram conhecidos como circuitos de gatilho ou multivibradores .

De acordo com PL Lindley, um engenheiro do Laboratório de Propulsão a Jato dos EUA , os tipos de flip-flop detalhados abaixo (SR, D, T, JK) foram discutidos pela primeira vez em um curso da UCLA de 1954 sobre design de computador por Montgomery Phister, e depois apareceram em seu livro Logical Design of Digital Computers. Lindley estava na época trabalhando na Hughes Aircraft sob Eldred Nelson, que cunhou o termo JK para um flip-flop que mudava de estado quando ambas as entradas estavam ativadas (um "um" lógico). Os outros nomes foram cunhados por Phister. Eles diferem ligeiramente de algumas das definições fornecidas abaixo. Lindley explica que ouviu a história do flip-flop JK de Eldred Nelson, responsável por cunhar o termo enquanto trabalhava na Hughes Aircraft . Flip-flops em uso na Hughes na época eram todos do tipo que veio a ser conhecido como JK. Ao projetar um sistema lógico, Nelson atribuiu letras às entradas do flip-flop da seguinte maneira: # 1: A & B, # 2: C & D, # 3: E & F, # 4: G & H, # 5: J & K. Nelson usou as notações " j -input" e " k -input" em um pedido de patente depositado em 1953.

Implementação

Um circuito flip-flop tradicional (simples) baseado em transistores de junção bipolar

Os flip-flops podem ser simples (transparentes ou assíncronos) ou sincronizados (síncronos). No contexto das linguagens de descrição de hardware, as simples são comumente descritas como travas , enquanto as com clock são descritas como flip-flops .

Flip-flops simples podem ser construídos em torno de um único par de elementos inversores de acoplamento cruzado: tubos de vácuo , transistores bipolares , transistores de efeito de campo , inversores e portas lógicas de inversão têm sido usados ​​em circuitos práticos.

Dispositivos cronometrados são especialmente projetados para sistemas síncronos; tais dispositivos ignoram suas entradas, exceto na transição de um sinal de relógio dedicado (conhecido como relógio, pulsação ou estroboscópio). O clocking faz com que o flip-flop mude ou retenha seu sinal de saída com base nos valores dos sinais de entrada na transição. Alguns flip-flops alteram a saída na transição positiva do clock, outros na transição negativa.

Uma vez que os estágios de amplificação elementares são invertidos, dois estágios podem ser conectados em sucessão (como uma cascata) para formar o amplificador não-inversor necessário. Nesta configuração, cada amplificador pode ser considerado como uma rede de realimentação inversora ativa para o outro amplificador inversor. Assim, os dois estágios são conectados em um loop não invertido, embora o diagrama de circuito seja normalmente desenhado como um par cruzado simétrico (ambos os desenhos são inicialmente introduzidos na patente Eccles – Jordan).

Tipos de flip-flop

Os flip-flops podem ser divididos em tipos comuns: SR ("set-reset"), D ("data" ou "delay"), T ("toggle") e JK . O comportamento de um tipo particular pode ser descrito pelo que é denominado a equação característica, que deriva a saída "seguinte" (isto é, após o próximo pulso de clock), Q seguinte em termos de sinal (es) de entrada e / ou corrente saída ,.

Travas de reset simples

Ao usar portas estáticas como blocos de construção, a trava mais fundamental é a trava SR simples , onde S e R representam definir e redefinir . Ele pode ser construído a partir de um par de portas lógicas NOR ou NAND de acoplamento cruzado . O bit armazenado está presente na saída marcada com Q.

Trava SR NOR

Uma animação de uma trava SR, construída a partir de um par de portas NOR cruzadas . Vermelho e preto significam '1' e '0' lógicos, respectivamente.
Uma trava SR animada. Preto e branco significam '1' e '0' lógicos, respectivamente.
  1. S = 1, R = 0: Definir
  2. S = 0, R = 0: Manter
  3. S = 0, R = 1: Reiniciar
  4. S = 1, R = 1: Não permitido
A transição da combinação restrita (D) para (A) leva a um estado instável.

Enquanto as entradas R e S são baixas, o feedback mantém as saídas Q e Q em um estado constante, com Q sendo o complemento de Q. Se S ( Set ) é pulsado alto enquanto R ( Reset ) é mantido baixo, então a saída Q é forçado para cima e permanece alto quando S retorna para baixo; da mesma forma, se R é pulsado alto enquanto S é mantido baixo, a saída Q é forçada a baixa e permanece baixa quando R retorna a baixa.

Operação de trava SR
Tabela de características Mesa de excitação
S R Próximo Q Açao Q Próximo Q S R
0 0 Q Estado de espera 0 0 0 X
0 1 0 Redefinir 0 1 1 0
1 0 1 Definir 1 0 0 1
1 1 X Não permitido 1 1 X 0

Nota: X significa não importa , ou seja, 0 ou 1 é um valor válido.

O S = 1 = R combinação é chamado uma combinação restrito ou um estado proibido porque, tanto como portas NOR, em seguida, os zeros de saída, que divide o lógico equação Q = não Q . A combinação também é inadequada em circuitos onde ambas as entradas podem diminuir simultaneamente (ou seja, uma transição de restrito para manter ). A saída travaria em 1 ou 0, dependendo das relações de tempo de propagação entre as portas (uma condição de corrida ).

Como funciona uma trava SR NOR.

Para superar a combinação restrita, pode-se adicionar portas às entradas que seriam convertidas (S, R) = (1, 1)em uma das combinações não restritas. Isso pode ser:

  • Q = 1 (1, 0) - referido como um S (dominado) -latch
  • Q = 0 (0, 1) - referido como um R (dominado) -latch

Isso é feito em quase todos os controladores lógicos programáveis .

  • Manter estado (0, 0) - referido como um E-latch

Como alternativa, a combinação restrita pode ser feita para alternar a saída. O resultado é a trava JK .

A equação característica para a trava SR é:

ou

Outra expressão é:

com

Trava SR NAND

Uma trava SR construída a partir de portas NAND de acoplamento cruzado .

O circuito mostrado abaixo é uma trava NAND básica. As entradas são geralmente designadas S e R para Set e Reset, respectivamente. Como as entradas NAND devem ser normalmente lógicas 1 para evitar afetar a ação de travamento, as entradas são consideradas invertidas neste circuito (ou baixo ativo).

O circuito usa feedback para "lembrar" e reter seu estado lógico mesmo depois que os sinais de entrada de controle tenham mudado. Quando as entradas S e R estão altas, o feedback mantém as saídas Q no estado anterior.

Operação de trava SR
S R Açao
0 0 Q = 1, Q = 1; não permitido
0 1 Q = 1
1 0 Q = 0
1 1 Sem alteração; inicial aleatória
Símbolo para uma trava SR NAND

Trava SR AND-OR

Uma trava SR AND-OR. Verde claro significa '1' lógico e verde escuro significa '0' lógico. A trava está atualmente no modo de retenção (sem alteração).

Do ponto de vista do ensino, travas SR desenhadas como um par de componentes de acoplamento cruzado (transistores, portas, tubos, etc.) costumam ser difíceis de entender para iniciantes. Uma maneira didaticamente mais fácil de entender é desenhar a trava como um único loop de feedback, em vez do acoplamento cruzado. A seguir está uma trava SR construída com uma porta AND com uma entrada invertida e uma porta OR . Observe que o inversor não é necessário para a funcionalidade de trava, mas para tornar ambas as entradas altamente ativas.

Operação de trava SR AND-OR
S R Açao
0 0 Sem alteração; inicial aleatória
1 0 Q = 1
X 1 Q = 0

Observe que a trava SR AND-OR tem o benefício de que S = 1, R = 1 é bem definido. Na versão anterior do latch SR AND-OR, ele dá prioridade ao sinal R sobre o sinal S. Se a prioridade de S sobre R for necessária, isso pode ser conseguido conectando a saída Q à saída da porta OR em vez da saída da porta AND.

A trava SR AND-OR é mais fácil de entender, porque ambas as portas podem ser explicadas isoladamente. Quando nenhum S ou R é definido, a porta OR e a porta AND estão no "modo de retenção", ou seja, sua saída é a entrada do loop de feedback. Quando a entrada S = 1, a saída da porta OR torna-se 1, independentemente da outra entrada do loop de feedback ("modo de ajuste"). Quando a entrada R = 1, a saída da porta AND torna-se 0, independentemente da outra entrada do circuito de feedback ("modo de reinicialização"). E uma vez que a saída Q está diretamente conectada à saída da porta AND, R tem prioridade sobre S. As travas desenhadas como portas cruzadas podem parecer menos intuitivas, pois o comportamento de uma porta parece estar entrelaçado com a outra porta.

Observe que o latch SR AND-OR pode ser transformado em latch SR NOR usando transformações lógicas: invertendo a saída da porta OR e também a 2ª entrada da porta AND e conectando a saída Q invertida entre esses dois inversores adicionados; com a porta AND com ambas as entradas invertidas sendo equivalente a uma porta NOR de acordo com as leis de De Morgan .

Trava JK

A trava JK é usada com muito menos frequência do que o flip-flop JK. A trava JK segue a seguinte tabela de estados:

Tabela de verdade JK latch
J K Próximo Q Comente
0 0 Q Sem mudança
0 1 0 Redefinir
1 0 1 Definir
1 1 Q Alternancia

Portanto, o latch JK é um latch SR que é feito para alternar sua saída (oscilar entre 0 e 1) quando passada a combinação de entrada de 11. Ao contrário do flip-flop JK, a combinação de 11 entradas para o latch JK não é muito útil porque não há relógio que direcione a alternância.

Travas fechadas e transparência condicional

As travas são projetadas para serem transparentes. Ou seja, mudanças no sinal de entrada causam mudanças imediatas na saída. Lógica adicional pode ser adicionada a uma trava transparente simples para torná-la não transparente ou opaca quando outra entrada (uma entrada de "ativação") não for ativada. Quando várias travas transparentes seguem umas às outras, usando o mesmo sinal de habilitação, os sinais podem se propagar por todas elas de uma vez. No entanto, seguindo uma trava transparente-alta com uma trava transparente-baixa (ou opaca-alta ), um flip-flop mestre-escravo é implementado.

Trava SR fechada

Trava NAND Gated SR (flip-flop SR sincronizado). Observe as entradas invertidas.
Um diagrama de circuito de trava SR com portas construído a partir de portas AND (à esquerda) e portas NOR (à direita).

Um latch SR síncrono (às vezes flip-flop SR sincronizado ) pode ser feito adicionando um segundo nível de portas NAND ao latch SR invertido (ou um segundo nível de portas AND para o latch SR direto ). As portas NAND extras invertem ainda mais as entradas, de modo que a trava SR se torna uma trava SR fechada (e uma trava SR se transformaria em uma trava SR fechada com habilitação invertida).

Com E alto ( habilitar verdadeiro), os sinais podem passar pelas portas de entrada para a trava encapsulada; todas as combinações de sinais, exceto para (0, 0) = manter e, em seguida, reproduzir imediatamente na saída (Q, Q ), ou seja, a trava é transparente .

Com E baixo ( habilitar falso), a trava é fechada (opaca) e permanece no estado em que estava na última vez que E estava alto.

A entrada de habilitação às vezes é um sinal de relógio , mas mais frequentemente um estroboscópio de leitura ou gravação. Quando a entrada de habilitação é um sinal de clock, diz-se que o latch é sensível ao nível (ao nível do sinal do clock), em oposição aos flip-flops sensíveis à borda abaixo.

Operação de trava SR fechada
E / C Açao
0 Sem ação (manter estado)
1 O mesmo que a trava SR sem clock
Símbolo para uma trava SR fechada

Trava Gated D

Este latch explora o fato de que, nas duas combinações de entrada ativa (01 e 10) de um latch SR fechado, R é o complemento de S. O estágio NAND de entrada converte os dois estados de entrada D (0 e 1) para essas duas entradas combinações para o próximo latch SR invertendo o sinal de entrada de dados. O estado baixo do sinal de habilitação produz a combinação inativa "11". Assim, uma trava D fechada pode ser considerada como uma trava SR síncrona de uma entrada . Esta configuração impede a aplicação da combinação de entrada restrita. Ele também é conhecido como trava transparente , trava de dados ou simplesmente trava fechada . Ele tem uma entrada de dados e um sinal de habilitação (às vezes chamado de relógio ou controle ). A palavra transparente vem do fato de que, quando a entrada de habilitação está ligada, o sinal se propaga diretamente através do circuito, da entrada D para a saída Q. As travas D com portas também são sensíveis ao nível em relação ao nível do relógio ou habilitar o sinal.

As travas transparentes são normalmente usadas como portas de E / S ou em sistemas assíncronos, ou em sistemas bifásicos síncronos (sistemas síncronos que usam um relógio de duas fases ), onde duas travas operando em diferentes fases do relógio evitam a transparência dos dados como em um mestre– flip-flop escravo.

As travas estão disponíveis como circuitos integrados , geralmente com várias travas por chip. Por exemplo, 74HC75 é uma trava transparente quádrupla na série 7400 .

A tabela abaixo mostra verdade que quando a e nable / c entrada de bloqueio é 0, a entrada D tem qualquer efeito sobre a saída. Quando E / C é alto, a saída é igual a D.

Mesa de verdade de trava com portão D
E / C D Q Q Comente
0 X Q anterior Q anterior Sem mudança
1 0 0 1 Redefinir
1 1 1 0 Definir
Símbolo para uma trava D fechada

Trava Earle

Os designs clássicos de trava com portão têm algumas características indesejáveis. Eles requerem lógica de barramento duplo ou um inversor. A propagação de entrada para saída pode levar até três atrasos de porta. A propagação de entrada para saída não é constante - algumas saídas levam dois atrasos de porta, enquanto outras levam três.

Os designers procuraram alternativas. Uma alternativa de sucesso é a trava Earle. Requer apenas uma única entrada de dados, e sua saída leva atrasos constantes de duas portas. Além disso, os dois níveis de porta da trava Earle podem, em alguns casos, ser combinados com os dois últimos níveis de porta dos circuitos que conduzem a trava porque muitos circuitos computacionais comuns têm uma camada OR seguida por uma camada AND como seus dois últimos níveis . A fusão da função de trava pode implementar a trava sem atrasos de porta adicionais. A fusão é comumente explorada no projeto de computadores em pipeline e, de fato, foi originalmente desenvolvida por John G. Earle para ser usada no IBM System / 360 Modelo 91 para esse propósito.

A trava Earle é livre de perigos. Se a porta NAND do meio for omitida, obtém-se a trava de retenção de polaridade , que é comumente usada porque exige menos lógica. No entanto, é suscetível a riscos lógicos . Desviar intencionalmente o sinal do relógio pode evitar o perigo.

Flip-flop D

Símbolo de flip-flop D

O flip-flop D é amplamente utilizado. É também conhecido como flip-flop de "dados" ou "atraso".

O flip-flop D captura o valor da entrada D em uma parte definida do ciclo do clock (como a transição positiva do clock). Esse valor capturado torna-se a saída Q. Em outras ocasiões, a saída Q não muda. O flip-flop D pode ser visto como uma célula de memória, uma espera de ordem zero ou uma linha de atraso .

Tabela da verdade:

Relógio D Próximo Q
Vanguarda em ascensão 0 0
Vanguarda em ascensão 1 1
Não crescente X Q

( X denota um não se importam condição, ou seja, o sinal é irrelevante)

A maioria dos flip-flops do tipo D em ICs tem a capacidade de ser forçados ao estado set ou reset (que ignora as entradas D e clock), muito parecido com um flip-flop SR. Normalmente, a condição ilegal S = R = 1 é resolvida em flip-flops do tipo D. Definir S = R = 0 faz com que o flip-flop se comporte como descrito acima. Aqui está a tabela verdade para as outras configurações S e R possíveis:

Entradas Saídas
S R D > Q Q
0 1 X X 0 1
1 0 X X 1 0
1 1 X X 1 1

Esses flip-flops são muito úteis, pois formam a base para os registradores de deslocamento , que são uma parte essencial de muitos dispositivos eletrônicos. A vantagem do flip-flop D sobre a "trava transparente" do tipo D é que o sinal no pino de entrada D é capturado no momento em que o flip-flop é sincronizado, e as alterações subsequentes na entrada D serão ignoradas até o próximo evento do relógio. Uma exceção é que alguns flip-flops têm uma entrada de sinal de "redefinição", que redefinirá Q (para zero) e pode ser assíncrona ou síncrona com o relógio.

O circuito acima desloca o conteúdo do registrador para a direita, uma posição de bit em cada transição ativa do relógio. A entrada X é deslocada para a posição de bit mais à esquerda.

Flip-flop D acionado por borda positiva clássico

Alguns tipos diferentes de flip-flops D acionados por borda
Um flip-flop D acionado por borda positiva
Um flip-flop D acionado por borda positiva
Um flip-flop D disparado por borda positiva com set e reset
Um flip-flop D disparado por borda positiva com set e reset

Este circuito consiste em dois estágios implementados por travas SR NAND . O estágio de entrada (as duas travas à esquerda) processa os sinais de relógio e dados para garantir os sinais de entrada corretos para o estágio de saída (a única trava à direita). Se o clock estiver baixo, ambos os sinais de saída do estágio de entrada serão altos, independentemente da entrada de dados; a trava de saída não é afetada e armazena o estado anterior. Quando o sinal do clock muda de baixo para alto, apenas uma das tensões de saída (dependendo do sinal de dados) fica baixa e configura / redefine a trava de saída: se D = 0, a saída inferior torna-se baixa; se D = 1, a saída superior torna-se baixa. Se o sinal do relógio continuar alto, as saídas mantêm seus estados independentemente da entrada de dados e forçam a trava de saída a permanecer no estado correspondente, pois o zero lógico de entrada (do estágio de saída) permanece ativo enquanto o relógio está alto. Conseqüentemente, a função da trava de saída é armazenar os dados apenas enquanto o clock estiver baixo.

O circuito está intimamente relacionado à trava D fechada, pois ambos os circuitos convertem os dois estados de entrada D (0 e 1) em duas combinações de entrada (01 e 10) para a trava SR de saída invertendo o sinal de entrada de dados (ambos os circuitos dividem o único sinal D em dois sinais S e R complementares ). A diferença é que na trava D fechada, portas lógicas NAND simples são usadas, enquanto nas travas D flip-flop SR NAND acionadas por borda positiva são usadas para esse propósito. A função dessas travas é "travar" a saída ativa produzindo baixa tensão (um zero lógico); assim, o flip-flop D acionado por borda positiva também pode ser pensado como um latch D com portas de entrada travadas.

Flip-flop D acionado por borda mestre-escravo

Um flip-flop D mestre-escravo. Ele responde na borda descendente da entrada de habilitação (geralmente um relógio)
Uma implementação de um flip-flop D mestre-escravo que é acionado na borda ascendente do relógio

Um flip-flop D mestre-escravo é criado conectando duas travas D com portas em série e invertendo a entrada de habilitação para uma delas. É chamado de mestre-escravo porque a trava mestre controla o valor de saída Q da trava escrava e força a trava escrava a manter seu valor sempre que a trava escrava é habilitada, pois a trava escrava sempre copia seu novo valor da trava mestre e muda seu valor apenas em resposta a uma mudança no valor da trava mestre e do sinal de relógio.

Para um flip-flop D mestre-escravo acionado por borda positiva, quando o sinal de clock é baixo (lógico 0), a "ativação" vista pelo primeiro ou "mestre" D latch (o sinal de relógio invertido) é alto (lógico 1) . Isso permite que a trava "mestre" armazene o valor de entrada quando o sinal do clock muda de baixo para alto. À medida que o sinal do clock fica alto (0 a 1), o "habilitar" invertido da primeira trava fica baixo (1 a 0) e o valor visto na entrada da trava mestre é "travado". Quase simultaneamente, a "ativação" duas vezes invertida do segundo ou "escravo" D latch transita de baixo para alto (0 a 1) com o sinal de clock. Isso permite que o sinal capturado na borda ascendente do relógio pela agora "travada" trava mestre passe pela trava "escravo". Quando o sinal do relógio retorna para baixo (1 a 0), a saída da trava "escrava" é "travada", e o valor visto na última borda ascendente do relógio é mantido enquanto a trava "mestre" começa a aceitar novos valores em preparação para a próxima transição crescente do clock.

A remoção do inversor mais à esquerda no circuito cria um flip-flop tipo D que dispara na borda descendente de um sinal de clock. Isso tem uma tabela verdade como esta:

D Q > Próximo Q
0 X Caindo 0
1 X Caindo 1

Flip-flop D acionado por borda dupla

Uma implementação de um flip-flop D disparado por borda dupla

Os flip-flops que leem um novo valor na transição positiva e negativa do relógio são chamados de flip-flops acionados por transição dupla. Tal flip-flop pode ser construído usando dois flip-flops do tipo D acionados por borda única e um multiplexador como mostrado na imagem.

Símbolo do circuito de um flip-flop D acionado por duas bordas

Elemento de armazenamento D dinâmico acionado por borda

Uma implementação CMOS IC de um flip-flop acionado por borda dinâmica com reset

Uma alternativa funcional eficiente para um flip-flop D pode ser feita com circuitos dinâmicos (onde a informação é armazenada em uma capacitância), desde que seja cronometrada com freqüência suficiente; embora não seja um verdadeiro flip-flop, ainda é chamado de flip-flop por sua função funcional. Enquanto o elemento D mestre-escravo é acionado na borda de um relógio, seus componentes são acionados por níveis de relógio. O "flip-flop D disparado por borda", como é chamado, embora não seja um flip-flop verdadeiro, não possui as propriedades mestre-escravo.

Os flip-flops D acionados por borda são frequentemente implementados em operações integradas de alta velocidade usando lógica dinâmica . Isso significa que a saída digital é armazenada na capacitância do dispositivo parasita enquanto o dispositivo não está em transição. Este projeto de flip-flops dinâmicos também permite um reset simples, uma vez que a operação de reset pode ser realizada simplesmente descarregando um ou mais nós internos. Uma variedade comum de flip-flop dinâmico é o tipo de relógio verdadeiramente monofásico (TSPC), que executa a operação de flip-flop com pouca potência e em altas velocidades. No entanto, flip-flops dinâmicos normalmente não funcionam em velocidades de clock estáticas ou baixas: com tempo suficiente, os caminhos de vazamento podem descarregar a capacitância parasita o suficiente para fazer com que o flip-flop entre em estados inválidos.

Flip-flop T

Um símbolo de circuito para um flip-flop tipo T

Se a entrada T for alta, o flip-flop T muda de estado ("alterna") sempre que a entrada do relógio é estroboscópica. Se a entrada T for baixa, o flip-flop mantém o valor anterior. Este comportamento é descrito pela equação característica :

(expandindo o operador XOR )

e pode ser descrito em uma tabela verdade :

Operação de flip-flop T
Tabela de características Mesa de excitação
Comente Comente
0 0 0 Estado de espera (sem relógio) 0 0 0 Sem mudança
0 1 1 Estado de espera (sem relógio) 1 1 0 Sem mudança
1 0 1 Alternancia 0 1 1 Complemento
1 1 0 Alternancia 1 0 1 Complemento

Quando T é mantido alto, o flip-flop de alternância divide a frequência do clock por dois; ou seja, se a frequência do clock for 4 MHz, a frequência de saída obtida do flip-flop será 2 MHz. Este recurso "dividir por" tem aplicação em vários tipos de contadores digitais . O flip-flop AT também pode ser construído usando um flip-flop JK (os pinos J e K são conectados juntos e agem como T) ou um flip-flop D (entrada T XOR Q anterior aciona a entrada D).

Flip-flop JK

Um símbolo de circuito para um flip-flop JK acionado por borda positiva
Diagrama de tempo do flip-flop JK

O flip-flop JK aumenta o comportamento do flip-flop SR (J: Set, K: Reset) ao interpretar a condição J = K = 1 como um comando "flip" ou alternância. Especificamente, a combinação J = 1, K = 0 é um comando para definir o flip-flop; a combinação J = 0, K = 1 é um comando para reinicializar o flip-flop; e a combinação J = K = 1 é um comando para alternar o flip-flop, ou seja, alterar sua saída para o complemento lógico de seu valor atual. Definir J = K = 0 mantém o estado atual. Para sintetizar um flip-flop D, simplesmente defina K igual ao complemento de J (a entrada J atuará como a entrada D). Da mesma forma, para sintetizar um flip-flop T, defina K igual a J. O flip-flop JK é, portanto, um flip-flop universal, porque pode ser configurado para funcionar como um flip-flop SR, um flip-flop D ou um flip-flop em T.

A equação característica do flip-flop JK é:

e a tabela verdade correspondente é:

Operação de flip-flop JK
Tabela de características Mesa de excitação
J K Comente Próximo Q Q Próximo Q Comente J K
0 0 Estado de espera Q 0 0 Sem mudança 0 X
0 1 Redefinir 0 0 1 Definir 1 X
1 0 Definir 1 1 0 Redefinir X 1
1 1 Alternancia Q 1 1 Sem mudança X 0

Considerações de tempo

Parâmetros de tempo

Configuração de flip-flop, parâmetros de tempo de espera e clock-to-output

A entrada deve ser mantida estável em um período em torno da borda ascendente do relógio conhecido como abertura. Imagine tirar uma foto de um sapo em um nenúfar. Suponha que o sapo então pule na água. Se você tirar uma foto do sapo enquanto ele pula na água, você obterá uma imagem borrada do sapo pulando na água - não fica claro em qual estado o sapo estava. Mas se você tirar uma foto enquanto o sapo se senta firmemente no pad (ou continuamente na água), você obterá uma imagem nítida. Da mesma forma, a entrada para um flip-flop deve ser mantida estável durante a abertura do flip-flop.

O tempo de configuração é a quantidade mínima de tempo que a entrada de dados deve ser mantida estável antes do evento do relógio, para que os dados sejam amostrados de forma confiável pelo relógio.

O tempo de espera é a quantidade mínima de tempo que a entrada de dados deve ser mantida estável após o evento do relógio, para que os dados sejam amostrados de forma confiável pelo relógio.

A abertura é a soma do tempo de configuração e do tempo de espera. A entrada de dados deve ser mantida estável ao longo deste período de tempo.

O tempo de recuperação é a quantidade mínima de tempo que o conjunto assíncrono ou a entrada de redefinição deve ficar inativa antes do evento do relógio, para que os dados sejam amostrados de forma confiável pelo relógio. O tempo de recuperação para o conjunto assíncrono ou entrada de reset é, portanto, semelhante ao tempo de configuração para a entrada de dados.

O tempo de remoção é a quantidade mínima de tempo que o conjunto assíncrono ou a entrada de redefinição deve ficar inativa após o evento do relógio, para que os dados sejam amostrados de forma confiável pelo relógio. O tempo de remoção para o conjunto assíncrono ou entrada de redefinição é, portanto, semelhante ao tempo de espera para a entrada de dados.

Os impulsos curtos aplicados às entradas assíncronas (set, reset) não devem ser aplicados completamente dentro do período de remoção-recuperação, ou então torna-se totalmente indeterminado se o flip-flop fará a transição para o estado apropriado. Em outro caso, onde um sinal assíncrono simplesmente faz uma transição que ocorre entre o tempo de recuperação / remoção, eventualmente o flip-flop fará a transição para o estado apropriado, mas uma falha muito curta pode ou não aparecer na saída, dependendo no sinal de entrada síncrono. Esta segunda situação pode ou não ter significado para um projeto de circuito.

Os sinais de Set and Reset (e outros) podem ser síncronos ou assíncronos e, portanto, podem ser caracterizados com tempos de Setup / Hold ou Recovery / Removal, e a sincronicidade é muito dependente do design do flip-flop.

A diferenciação entre os tempos de Configuração / Retenção e Recuperação / Remoção é freqüentemente necessária ao verificar a temporização de circuitos maiores porque os sinais assíncronos podem ser considerados menos críticos do que os sinais síncronos. A diferenciação oferece aos projetistas de circuitos a capacidade de definir as condições de verificação para esses tipos de sinais de forma independente.

Metaestabilidade

Os flip-flops estão sujeitos a um problema chamado metaestabilidade , que pode acontecer quando duas entradas, como data e clock ou clock e reset, estão mudando quase ao mesmo tempo. Quando a ordem não é clara, dentro das restrições de tempo apropriadas, o resultado é que a saída pode se comportar de maneira imprevisível, levando muito mais tempo do que o normal para se estabilizar em um estado ou outro, ou mesmo oscilando várias vezes antes de estabilizar. Teoricamente, o tempo para se estabelecer não é limitado. Em um sistema de computador , essa metaestabilidade pode causar corrupção de dados ou travamento do programa se o estado não for estável antes que outro circuito use seu valor; em particular, se dois caminhos lógicos diferentes usam a saída de um flip-flop, um caminho pode interpretá-lo como 0 e o outro como 1 quando não foi resolvido para o estado estável, colocando a máquina em um estado inconsistente.

A metaestabilidade em flip-flops pode ser evitada garantindo que os dados e as entradas de controle sejam mantidos válidos e constantes por períodos especificados antes e depois do pulso de clock, chamados de tempo de configuração (t su ) e tempo de espera (t h ), respectivamente. Esses tempos são especificados na planilha de dados do dispositivo e estão normalmente entre alguns nanossegundos e algumas centenas de picossegundos para dispositivos modernos. Dependendo da organização interna do flip-flop, é possível construir um dispositivo com uma configuração zero (ou mesmo negativa) ou requisito de tempo de espera, mas não ambos simultaneamente.

Infelizmente, nem sempre é possível atender aos critérios de configuração e retenção, pois o flip-flop pode ser conectado a um sinal em tempo real que pode mudar a qualquer momento, fora do controle do projetista. Nesse caso, o melhor que o projetista pode fazer é reduzir a probabilidade de erro a um determinado nível, dependendo da confiabilidade exigida do circuito. Uma técnica para suprimir a metaestabilidade é conectar dois ou mais flip-flops em uma cadeia, de modo que a saída de cada um alimente a entrada de dados do próximo e todos os dispositivos compartilhem um relógio comum. Com este método, a probabilidade de um evento metaestável pode ser reduzida a um valor desprezível, mas nunca a zero. A probabilidade de metaestabilidade fica cada vez mais próxima de zero conforme o número de flip-flops conectados em série aumenta. O número de flip-flops em cascata é conhecido como "classificação"; flip-flops "dual-rank" (dois flip-flops em série) é uma situação comum.

Estão disponíveis os chamados flip-flops endurecidos metaestáveis, que funcionam reduzindo os tempos de configuração e espera tanto quanto possível, mas mesmo estes não podem eliminar o problema completamente. Isso ocorre porque a metaestabilidade é mais do que simplesmente uma questão de projeto de circuito. Quando as transições no relógio e os dados estão próximas no tempo, o flip-flop é forçado a decidir qual evento aconteceu primeiro. Por mais rápido que o dispositivo seja feito, sempre há a possibilidade de que os eventos de entrada sejam tão próximos uns dos outros que não é possível detectar qual deles aconteceu primeiro. Portanto, é logicamente impossível construir um flip-flop à prova de metaestabilidade perfeita. Os flip-flops às vezes são caracterizados por um tempo máximo de estabilização (o tempo máximo em que permanecerão metaestáveis ​​sob condições especificadas). Nesse caso, flip-flops de classificação dupla com clock mais lento do que o tempo de metaestabilidade máximo permitido fornecerão o condicionamento adequado para sinais assíncronos (por exemplo, externos).

Atraso de propagação

Outro valor de tempo importante para um flip-flop é o atraso do clock-to-output (símbolo comum em planilhas de dados: t CO ) ou atraso de propagação (t P ), que é o tempo que um flip-flop leva para alterar sua saída após o borda do relógio. O tempo para uma transição de alto para baixo (t PHL ) às vezes é diferente do tempo para uma transição de baixo para alto (t PLH ).

Ao colocar flip-flops em cascata que compartilham o mesmo clock (como em um registrador de deslocamento ), é importante garantir que t CO de um flip-flop anterior seja maior do que o tempo de espera (t h ) do flip-flop seguinte, portanto, os dados presentes na entrada do flip-flop sucessivo são "deslocados" de maneira adequada seguindo a transição ativa do relógio. Esta relação entre t CO e t h é normalmente garantida se os flip-flops forem fisicamente idênticos. Além disso, para uma operação correta, é fácil verificar que o período do relógio deve ser maior que a soma t su  + t h .

Generalizações

Os flip-flops podem ser generalizados de pelo menos duas maneiras: tornando-os 1 de N em vez de 1 de 2 e adaptando-os à lógica com mais de dois estados. Nos casos especiais de codificação 1 de 3, ou lógica ternária de múltiplos valores , tal elemento pode ser referido como flip-flap-flop .

Em um flip-flop convencional, exatamente uma das duas saídas complementares é alta. Isso pode ser generalizado para um elemento de memória com N saídas, exatamente uma das quais é alta (alternativamente, onde exatamente uma de N é baixa). A saída é, portanto, sempre uma representação one-hot (respectivamente um-cold ). A construção é semelhante a um flip-flop de acoplamento cruzado convencional; cada saída, quando alta, inibe todas as outras saídas. Alternativamente, flip-flops mais ou menos convencionais podem ser usados, um por saída, com circuitos adicionais para garantir que apenas um de cada vez seja verdadeiro.

Outra generalização do flip-flop convencional é um elemento de memória para lógica multivalorada . Neste caso, o elemento de memória retém exatamente um dos estados lógicos até que as entradas de controle induzam uma mudança. Além disso, um relógio de valores múltiplos também pode ser usado, levando a novas transições de relógio possíveis.

Veja também

Referências

links externos