This website requires JavaScript.
Cupões Baixar o APP
Enviar para
Blog

Compreendendo o Tempo em Circuitos Digitais: Setup, Hold, Atraso de Contaminação e Distorção de Clock

Originalmente publicada Jan 02, 2026, atualizada Jan 02, 2026

8 min


Este é o segundo artigo da série sobre atraso de propagação em circuitos digitais. Há duas coisas principais das quais devemos nos certificar ao projetar um circuito digital: a primeira é a funcionalidade, e a segunda é o tempo. cobrimos os blocos básicos em um artigo. Porque tempo nada mais é do que os pulsos de clock quando se trata de eletrônica. Como tudo se baseia nesses pulsos de clock, eles determinam a frequência de operação, a velocidade e muito mais em um circuito eletrônico. Vimos anteriormente circuitos que funcionam apenas em sincronização com o clock, conhecidos como circuitos sequenciais. Ao trabalhar com um microcontrolador, FPGA ou ASIC, as restrições de tempo devem ser atendidas para alcançar o funcionamento correto do circuito. Hoje, veremos que tipo de restrições de tempo existem que devemos observar. Este guia cobre os fundamentos: tempo de setup, tempo de hold, atraso de contaminação (mínimo) e skew de clock, e mostra como eles interagem em equações de temporização e em projetos reais.


Parâmetros de temporização em Projeto Digital:


Dois parâmetros de atraso são importantes para blocos combinacionais:

  • Tpd (Atraso de Propagação, máximo): É o maior atraso possível causado por elementos de circuito combinacional, e é usado nas verificações de setup.
  • Tcd (Atraso de Contaminação, mínimo): É o menor atraso possível, usado nas verificações de hold.
  • Período do clock (Tclk):O tempo entre bordas consecutivas do clock usado para um caminho.


Propagação (Propagation) vs Contaminação (Contamination):


  • Propagation Delay (Tpd, máx.): É o atraso no pior caso (mais longo) através de uma porta/bloco lógico. Usado para verificações de setup porque precisamos garantir que os dados mais tardios ainda atendam ao tempo de setup.





  • Contamination/Min Delay (Tcd/mín): É o atraso no melhor caso (mais curto) através de uma porta/bloco lógico. Usado para verificações de hold porque precisamos considerar o mais cedo que um sinal alterado pode aparecer no flop de captura.


Clock Skew:


A diferença de tempo na chegada do clock entre o flop de origem e o flop de destino. Pode ser causada pelos longos fios do sistema do clock até os flops A e B. Haverá um desalinhamento no timing porque os sinais não conseguem chegar ao mesmo tempo em todos os flops. As principais fontes de skew são o desequilíbrio da árvore de clock, diferenças de roteamento, buffers, escolhas de síntese/CTS, gating local de clock e jitter inserido por PLL/BUF.

  • Skew Positivo: O clock de captura chega mais tarde do que o outro bloco lógico.
  • Skew Negativo: O clock de captura chega mais cedo em comparação com o outro bloco lógico.

Intencionalmente, o skew é introduzido para melhorar o timing (comumente para relaxar o setup em um caminho crítico) enquanto se garante que as restrições de hold permaneçam satisfeitas.


Tempo de Estabelecimento:


Tempo de estabelecimento (Tsu) é o intervalo mínimo antes da borda ativa do clock durante o qual os dados de entrada de um flip-flop devem estar estáveis. Se os dados não estiverem estáveis antes dessa borda do clock no intervalo especificado, ocorrerão violações do tempo de estabelecimento. Se os dados chegarem tarde demais, o flip-flop de captura pode amostrar o valor incorreto.





Verificação de temporização: O tempo de setup é violado principalmente por atrasos de propagação inadequados. Se o atraso de propagação do primeiro flop for maior do que o próximo bordo do clock, não haverá captura dos dados, e os dados aparecerão após o clock ou talvez ao mesmo tempo, o que pode empurrar o flop para a metastabilidade.


Tempo de retenção


Tempo de retenção (Thold) é o intervalo mínimo após a borda ativa do clock durante o qual os dados de entrada devem permanecer estáveis. Se os dados mudarem muito rapidamente após a borda de lançamento e chegarem ao flop de captura antes que seu travamento interno de amostragem tenha terminado de manter, o flop de captura pode amostrar um valor corrompido.

Verificação de tempo: A chegada mais precoce possível de novos dados é dada por Tcq + Tcd. Isso não deve alcançar o flip-flop de captura antes que o flip-flop de captura tenha concluído seu intervalo de retenção.


Caminhos de temporização em um circuito digital:


Um caminho de temporização síncrono típico é mostrado abaixo. Examinaremos cada parte, uma por uma:

Borda de lançamento (Flip-Flop A) → Tcq (clock-to-Q) → Lógica combinacional → Tpd/Tcd (propagação/contaminação) → Flip-Flop de captura B → Verificações de setup/hold

  • Launch event:Evento de lançamento: o flip‑flop A produz um novo valor de dado após seu evento de clock. Agora, a saída deste flip‑flop está fixa nesse valor específico. Esse dado se propaga através da lógica combinacional.
  • Evento de captura: O dado é a linha de saída do flip‑flop A, que serve como entrada para o flip‑flop B. Ele será amostrado na próxima borda de clock relevante.

Lançamento e captura são os primeiros e últimos eventos no caminho de temporização, mas entre eles acontecem muitas coisas, que são discutidas na seção seguinte.


Equações de temporização:


Configuração:



Manter:



Onde Jclk é o jitter do clock (adicione o jitter positivo de forma conservadora à equação de setup e subtraia ou some apropriadamente ao hold como margem de segurança. O jitter é tratado como uma redução da margem de tempo disponível.


Exemplo Numérico Trabalhado (Caminho de Ciclo Único):


Dados (números típicos):

  • Tclk = 5,0 ns (período alvo)
  • Tskew = +0,10 ns (clock de captura chega 0,1 ns depois)
  • Tcx (Tcq) = 0,12 ns (clock‑to‑Q)
  • Tpd = 2,80 ns (propagação combinacional máxima)
  • Tsu = 0,08 ns (tempo de setup)
  • Tcd = 0,02 ns (contaminação/atraso mínimo)
  • Thold = 0,05 ns (requisito de hold do flip-flop)

Verificação de Setup:

Período requerido: Tcq + Tpd + Tsu - Tskew = 0,12 + 2,80 + 0,08 - 0,10 = 2,90 ns

Slack_setup = Tclk - 2,90 = 5,00 - 2,90 = 2,10 ns → PASS (margem confortável).

Verificação de Hold:

Hold permissível = Tcq + Tcd - Tskew = 0,12 + 0,02 - 0,10 = 0,04 ns

Slack_hold = 0,04 - Thold = 0,04 - 0,05 = -0,01 ns → VIOLAÇÃO DE HOLD por 10 ps.

O caminho atende facilmente ao setup (grande folga), mas um caminho muito rápido causa violação de hold. Isso é comum em projetos reais: o setup está confortável enquanto o hold falha.


Causas comuns de violações e correções práticas


Violação de setup (correções típicas):

  • Path too long: Caminho muito longo: para corrigir esse problema, tente inserir um pipeline/registro, reduzir a profundidade lógica ou reestruturar o algoritmo.
  • Canto de processo lento: Para melhorar, considere células de biblioteca mais rápidas (maior força de acionamento), aumentar VDD e melhorar o roteamento para reduzir Tpd.


Violação de hold (correções típicas):

  • Path too fast: Caminho muito rápido: temos que adicionar um atraso deliberado (colocar um buffer/inversor), usar inserção de atraso mínimo no place-and-route, ou roteirizar o caminho de forma mais longa.
  • Caminho multi-ciclo: Converta o caminho específico para multi-ciclo se funcionalmente permitido (Marque com segurança os caminhos multi-ciclo na ferramenta STA).


Truques de Projeto (Useful Skew, Caminhos Multi-Ciclo, Retiming)


  • Useful Skew:Useful Skew: Neste caso, o skew é introduzido deliberadamente para relaxar o setup em um caminho crítico, garantindo ao mesmo tempo que o hold permaneça seguro. Esta é uma técnica avançada usada após análise cuidadosa.
  • Caminhos Multi-Ciclo: Se um caminho for arquitetonicamente permitido a levar vários ciclos, marque-o como multi-ciclo na STA (análise estática de temporização). Devemos definir restrições apropriadas em vez de forçar temporização de ciclo único.




Conclusão


Neste artigo, vimos o tempo de setup e o tempo de hold com mais detalhes e exemplos. O atraso de contaminação e o skew do relógio estão interligados com as equações de temporização. O setup é regido pelos atrasos no pior caso (máx.), enquanto o hold é regido pelos atrasos no melhor caso (mín.). Algumas técnicas de projeto com violações comuns e suas soluções também foram compartilhadas aqui. Quando se trata do circuito digital, não apenas a funcionalidade, mas também a temporização são igualmente importantes. A série continuará com mais conceitos relacionados a projeto digital e temporização no futuro. Visite a seção JLCPCB para absorver esse conhecimento rapidamente.




Saber mais