Compreendendo o Tempo em Circuitos Digitais: Setup, Hold, Atraso de Contaminação e Distorção de Clock
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
FR4 vs Rogers: Qual Material de PCB Deve Escolher?
Tradicionalmente, os fabricantes têm produzido PCBs ou placas de circuito impresso com materiais que oferecem resistência ao calor e, portanto, são mais baratos de fabricar. À medida que a indústria eletrônica cresce em aplicações de alta frequência, apenas o FR4 não é suficiente. Alguns equipamentos, embora não sujeitos a temperaturas extremas, podem ter de operar em RF ou frequências de rádio. De acordo com as condições de desempenho extremo exigidas pelo RF, materiais especializados como Rogers são......
Digital 101: Blocos Fundamentais do Design de Lógica Digital
O design de circuitos digitais gira em torno de circuitos integrados (ICs) personalizados e microcontroladores. Embora muitos engenheiros se concentrem em sistemas analógicos, cerca de 70% da demanda de mercado atual é por engenheiros de design digital. Mas o que exatamente envolve o design digital? Que tipos de blocos fundamentais compõem um microcontrolador ou um CI? No cerne tanto dos circuitos analógicos quanto dos digitais estão os transistores. Projetos analógicos normalmente usam apenas alguns ......
Compreendendo o Tempo em Circuitos Digitais: Setup, Hold, Atraso de Contaminação e Distorção de Clock
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 anteriorm......