MUX de relógio sem falhas?

MUX de relógio sem falhas?
Um dos bugs mais frustrantes após o tape-out de semicondutores é este: A simulação de funções é perfeita, o Silicon Bring-up funciona na maior parte do tempo, mas "às vezes" se comporta de forma errática. Quando tento reproduzi-lo na frente de um professor, ele funciona bem.... Os logs de depuração também são fracos devido à falta de reprodutibilidade. Se você cavar fundo o suficiente, você frequentemente chega à mesma conclusão:
  • "Timing está quebrado em algum lugar."
  • Esse "algum lugar" é frequentemente um controle global como Clock/Reset.
  • Especificamente, um pulso muito fino (glitch) no ponto Clock to MUX.

Glitches no caminho do clock são uma classe diferente de glitches do que glitches de dados. Falhas no caminho dos dados são geralmente consumidas na lógica combinacional.

As falhas de clock, por outro lado, podem ser percebidas pelo flip-flop como uma "borda extra de clock" e, a partir desse momento, uma borda anormal pode distorcer todo o estado do sistema. É por isso que a solução clássica é o Glitch-Free Clock MUX (GFCM).


1) Por que ocorre Glitch em um Multiplexador regular (MUX)

O mais simples 2:1 A lógica de um MUX é limpa.

out = (~S & A) | (S & B)

Na RTL, parece que ele muda de A para B assim que sel vai de 0→1.
Ao nível da porta, a história é diferente.

  • Os caminhos (~S & A) e (S & B) têm diferentes atrasos de célula / atrasos de fio.
  • A propagação do sinal de S não chega a ambos os caminhos simultaneamente.
  • Nesse curto intervalo, a combinação de entrada OR muda brevemente, causando comutação de sinal durante um curto período de tempo. (perigo estático / perigo dinâmico)

Num MUX de relógio, A e B são normalmente relógios assíncronos. Como a relação de fase entre A e B não é fixa, a probabilidade de a transição sel ser apanhada num "mau momento" é maior do que o esperado, resultando num bug de silício que falha "às vezes".


2) Porque é que o Clock Glitch é necessário

  1. A largura do impulso pode ser reconhecida como um relógio pelo FF mesmo que seja curta
    Slew/threshold na árvore do relógio, Dependendo da filtragem interna de impulsos da biblioteca FF, podem ser válidas "bordas indesejadas".
  2. Fácil de quebrar setup/hold ao mesmo tempo
    Se um glitch é anexado logo antes de uma borda normal, ele quebra o hold; se ele é anexado imediatamente depois, ele quebra o setup. De qualquer forma, o resultado é aleatório.
  3. Na era do DVFS/Fail-over/Domínio de potência, a comutação de relógio é comum.

3) Glitch-Free의 핵심 정의: "Selando condições de transição", não "Glitch 0"

A chave para um MUX de relógio sem falhas é simples.

Nenhuma borda de clock é passada enquanto se altera o clock de saída

O sinal de seleção (Enable) só é alterado durante a parte estável do clock.

Uma observação importante aqui:

GFCMs são frequentemente circuitos habilitados para pausa em vez de circuitos sem costura.

Isso significa que o preço de ser livre de falhas pode ser perder um ciclo ou dois. Isso deve ser especificado na especificação do projeto." Se a comutação "sem falhas" é o objetivo, não deve ser apenas uma questão de mudar o MUX, mas deve ser abordado no nível da arquitetura PLL / clock.


4) 가장 널리 쓰이는 구조(정석): "Mutual-Exclusion + Safe-Window Update"

Se o glitch estiver muito próximo do relógio antigo, ele causará uma violação de temporização.

Para evitar isso, precisamos de alguma lógica para pausar a alternância do relógio por um tempo.

Se olharmos para as partes da frente e de trás, é a mesma estrutura de um MUX,

  1. Há um sincronizador de duas fases no interior,
  2. Há um loop de feedback que sincroniza com o relógio oposto quando o sinal SELECT muda.

No final, ele faz o seguinte.

  • enable1 e enable2 nunca vão para 1 ao mesmo tempo (exclusão mútua)
  • desligar um lado antes de ligar o outro (break-before-make)

Paramos o relógio brevemente durante a transição, e abrimos o outro lado apenas no lado seguro.

Essa "pausa" é o custo e a confiabilidade do Glitch-Free.


O canal Electronicspedia tem um exemplo muito bom de um Glitch, então eu o anexei:

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support