Por que os D-Flip Flops em cascata evitam a metaestabilidade?

15

Entendo o que é metaestabilidade, mas não entendo como vincular chinelos reduz isso?

Se a saída do primeiro flip-flop for metaestável, isso será usado como entrada para o segundo. Mas não vejo como o segundo flip flop será capaz de fazer qualquer coisa com essa entrada e torná-la estável.

Desde já, obrigado!

Wouter A
fonte
2
Sempre procurando uma oportunidade de mencionar a bunda de Buridan: en.wikipedia.org/wiki/…
copper.hat

Respostas:

11

A metaestabilidade não pode ser "curada", mas se você esperar o suficiente , a probabilidade de ocorrer pode ser arbitrariamente pequena. Uma vez que você tenha chegado a uma idade do universo, provavelmente não será o suficiente para causar problemas.

É como equilibrar um lápis na ponta. É provável que caia e, quanto mais você esperar, menor a probabilidade de permanecer em pé.

Há dois problemas com a espera de um longo tempo, e um deles é fundamental.

O problema fundamental é que, se você tiver um único elemento de memória (trava ou flip-flop, ambos sofrem metastabilidade) em um sistema com clock que recebe a saída de um sistema externo assíncrono, não é possível definir fisicamente um limite inferior para o tempo de espera , às vezes o sinal externo fará uma transição perto da borda de controle da trava. Você precisa encaminhar o sinal para outro flip-flop para deixá-lo esperar lá. Isso garante um tempo de espera mínimo garantido de um ciclo de relógio.

O segundo problema é que muitas vezes você está tentando executar um sistema o mais rápido possível, e a taxa de clock do sistema não pode ser reduzida para dar tempo suficiente no segundo flip-flop. A única maneira de aumentar a latência do sinal para o necessário, sem diminuir a taxa de transferência, é canalizar a espera para mais estágios.

Algumas pessoas têm problemas para visualizar o que está acontecendo entre os chinelos. Existem duas maneiras de induzir a metaestabilidade, e ambas envolvem violar as regras do flip-flop. Uma maneira é violar a configuração da entrada e os tempos de espera, para fazer uma transição quando o flip-flop espera que a entrada seja estável. O outro é violar os níveis lógicos de entrada, fazer com que a entrada de dados do flip-flop fique em um nível de tensão intermediário. Um flip-flop que está sendo metaestável pode produzir qualquer tipo de violação em sua saída, passando para o próximo flip-flop.

Neil_UK
fonte
6
Como exemplo, quando eu fazia design de chips, eu 'possuía' metaestabilidade, todos os cruzamentos de relógio, fizemos as contas, descobrimos as chances de falha do sincronizador em cada fracasso, grupo de fracassos, etc. etc, analisamos quais seriam os resultados. seja ... na maioria das vezes um pixel na tela pode explodir, no final todo o caminho caiu para cerca de uma vez a cada dois anos - essa era uma placa gráfica para o Win95 que na época não podia ficar por mais de cerca de um dia, decidimos que ninguém sequer notaria um sincronizador de MTBF de 2 anos.
Taniwha
7
Também, uma coisa que ninguém menciona é o que acontece com a falha absoluta de metastabilidade do pior caso ... às vezes a falha do sincronizador resulta em um fracasso oscilando internamente em uma frequência estupidamente alta, talvez em níveis entre os altos e baixos digitais normais - se ele escapar do seu ponto alto. obtenha flops sincronizadores anti-metaestabilidade que desastres barulhentos e barulhentos podem infectar todos os flops a jusante (como coisas vazam), resultando em enormes empates de corrente e até potencialmente superaquecimento e morte por chip - então preste atenção nisso como um problema
Taniwha
@ Neil_UK Você usa a palavra trava que acho confusa. Nos meus círculos, uma trava é um elemento assíncrono. Eu os chamaria de chinelos para maior clareza.
jalalipop
1
@jalalipop Eu estava usando trinco para significar flip-flop, embora talvez seu significado tenha mudado nas décadas desde que comecei a usá-lo. Embora eu concorde que 'trava' geralmente se refira ao tipo transparente assíncrono, eles também sofrem metastabilidade se os dados mudarem na borda 'trava' da entrada de ativação. Um flip-flop escravo mestre é tipicamente construído internamente a partir de um par de travas acionadas na antifase pelo relógio. Obrigado por mencionar, modificarei a resposta para esclarecer.
26418 Neil_UK
@ Tamiwha Você pode fornecer uma resposta com diagramas, constantes de tempo e matemática, para esclarecer os comportamentos internos das travas enquanto elas tentam resolver. Você precisa mostrar (como você certamente sabe) como o ganho do loop, o tempo de regeneração constante e o nível de ruído (térmico e VDD) afetam a capacidade de resolução.
Analogsystemsrf 26/06
9

Reduz a probabilidade de metaestabilidade afetando o circuito, permitindo mais tempo até que o sinal seja realmente usado. Com dois flip-flops, ele permite um ciclo de relógio extra para o sinal se acalmar. Com três, permite dois ciclos de relógio extras.

user253751
fonte
2
Boa resposta. O ponto importante é que a metaestabilidade não é impedida , apenas reduzimos a probabilidade para um nível aceitável.
precisa
1
Então, flip-flops em cascata dão tempo para o sinal se estabelecer entre 0 e 1, mas não resolve um valor errado? desde que um sinal metaestável pode cair nos dois sentidos?
Wouter A
2
@ WouterA Se for metaestável, então ambos os valores estão corretos.
user253751
4
Eu não acho que essa seja uma boa resposta, apenas o primeiro flop está amostrando o sinal de entrada neste caso. Como mencionado acima, o que está acontecendo é que existe uma probabilidade de ocorrência de metaestabilidade (depende do ganho nos loops de feedback interno do flop, da velocidade do relógio e da taxa que a amostra amostrada passa entre os limiares de entrada) em qualquer flop em particular. pequeno número <1 = p - dois falhanços de nós dar p ^ 2 oportunidade de MS que passam dois falhanços, 3 P ^ 3, etc etc
Taniwha
4

Eles não impedem que a metaestabilidade afete a saída, mas podem aumentar bastante o tempo médio entre os incidentes, pois a metaestabilidade deve ter uma duração relativamente longa.

Conectar três (ou mais) flip-flops bem projetados pode aumentar o tempo entre os incidentes para algo como a idade da Terra.

Spehro Pefhany
fonte
Depende da sua taxa de clock e tecnologia de processo. Um flip-flop pode ser suficiente para o seu MTBF ser infinitesimal, desde que você mantenha a folga alta.
jalalipop
@jalalipop Claro. Há algumas informações de teste reais (muito antigas agora) no documento original do IEEE. DOI: 10,1109 / TC.1983.1676187
Spehro Pefhany
@ jalalipop: geralmente esse é um problema mais relevante quando você não pode garantir o tempo de folga ... ou seja, design assíncrono, como o FIFO que se comunica entre o núcleo da CPU e o SOC quando os respectivos relógios não estão bloqueados. Caso contrário, você apenas definirá um tempo de configuração difícil e garantirá que a metaestabilidade não ocorrerá.
Jbord39 # 19/19
Sim, a metaestabilidade é uma preocupação em uma interface assíncrona. A folga a que me refiro é a folga da lógica síncrona após o flip flop. Se sua folga for alta, o evento Metastability desaparecerá antes de afetar o restante do seu design.
precisa saber é o seguinte
2

Porque o primeiro flip-flop, mesmo que seja metaestável, terá todo o período do relógio para se estabilizar. No momento em que o segundo flip-flop prova o primeiro, sua saída já pode estar estável.

Claudio Avi Chami
fonte
1

Se você quiser o entusiasmo da metaestabilidade, implemente DOIS INVERSORES MUITO LENTO, conecte-os consecutivamente e incline-os (em uma simulação) no VDD / 2. Em seguida, remova a polarização e observe a velocidade da resolução para os níveis lógico1 e lógico0. Pode ser necessário escolher uma voltagem de polarização inicial diferente de VDD / 2.

Se os seus 2 ou 3 flip-flops forem LENTOS em comparação com o período do relógio, a vida poderá estar cheia de problemas.

analogsystemsrf
fonte
1

A metaestabilidade significa simplesmente que, se você tiver uma transição de dados dentro de uma janela de tempo específica relacionada ao relógio, a saída se comportará mal por um determinado período após o limite do relógio. No entanto, a janela não é um intervalo fixo. Pelo contrário, a probabilidade de um valor ruim (oscilação ou nível intermediário de tensão) diminui exponencialmente com o tempo. Portanto, se você amostrar o sinal com um relógio e esperar um pouco antes de aplicar o relógio no segundo flip-flop, poderá reduzir as chances de um bit ruim para qualquer probabilidade desejada (mas não zero). Se o tempo necessário for muito longo, você pode usar 3 ou mais chinelos em série.

WhatRoughBeast
fonte