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.