Como adicionar uma quantidade controlada de tremulação a um sinal

12

fundo

Estou desenvolvendo um circuito de relógio digital e recuperação de dados e agora estou entrando na fase de avaliação, focando em testar os limites do projeto e encontrar pontos fortes e fracos em potencial. Uma métrica importante desse projeto específico é a tolerância ao jitter no sinal de entrada assíncrono. Para avaliar essa métrica, tenho uma configuração de teste em mente, como abaixo.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Problema

Para garantir que os resultados dos testes sejam significativos, é desejável que o jitter tenha essas características:

  • Aleatório ou pseudo-aleatório
  • distribuição gaussiana
  • O desvio padrão do ruído é parametrizado e pode ser varrido (JITTER CONTROL acima)

Isso não parece uma coisa fácil de realizar. Existe uma maneira relativamente simples de injetar uma quantidade controlada de instabilidade em uma configuração de teste?


O que eu tenho até agora

Eu pensei sobre isso e pesquisei e tenho duas maneiras possíveis de implementar isso no hardware.

  1. Se o relógio da transmissão do circuito de teste for significativamente maior que o DUT, a saída poderá ser superamostrada. Em seguida, amostras extras podem ser adicionadas ou removidas da saída para injetar uma quantidade discreta de tremulação. Este tremor não será perfeitamente gaussiano devido ao ruído de quantização. Mas se a taxa de superamostragem dos dados de transmissão do circuito de teste for alta o suficiente, essa preocupação poderá ser atenuada.
  2. A configuração de teste de Kubicek et al. (abaixo) usa uma transmissão óptica com um atenuador variável para obter o efeito desejado. Não é de todo óbvio para mim por que isso alcançaria o acima exposto, mas um analisador de espectro deve ser capaz de determinar se funciona conforme o esperado.

insira a descrição da imagem aqui

Entendo que minha pergunta omite muitos detalhes sobre o design e a configuração de teste. Isso é intencional, pois quero manter isso o mais conceitual e geral possível. Quero evitar que isso se torne uma postagem específica do design em favor da criação de uma postagem de valor de referência permanente.

travisbartley
fonte

Respostas:

3

Uma resposta óbvia é usar um gerador de sinal digital para adicionar uma quantidade controlada de ruído à entrada de controle de um VCO.

Lembre-se de que esse sinal de ruído representará um erro instantâneo de frequência, e não o erro de fase que você normalmente associa à instabilidade, para integrar / diferenciar adequadamente.

Você mostra um circuito separado adicionando jitter a um sinal limpo proveniente de um gerador de teste. O VCO pode fazer parte de um PLL nesse circuito separado. O PLL manterá a frequência média de saída igual à frequência de entrada, mas terá um efeito mínimo na instabilidade adicionada, desde que seu loop de feedback tenha ganho mínimo na frequência de instabilidade.

Se você pretende gerar mais do que uma fração de um intervalo de unidade de tremor de pico a pico, precisará de um armazenamento elástico (FIFO) de algum tipo para armazenar os dados de teste. Pode ser mais fácil usar o relógio com instabilidade para gerar os dados em primeiro lugar.

Dave Tweed
fonte
Eu vejo, eu vejo. Eu acho que usar um NCO + DAC em vez de um VCO pode ser mais fácil para mim. O NCO + DAC pode acionar o relógio do transmissor do circuito de teste, como você disse. O próprio circuito de teste geraria valores de tremulação pseudo-aleatórios que seriam então usados ​​para calcular a entrada de NCO. Sua sugestão parece muito mais razoável do que o atenuador de fotos maluco de Kubicek.
Travisartley # 9/13
3

A configuração de teste de Kubicek et al. usa uma transmissão óptica com um atenuador variável para obter o efeito desejado. Não é de todo óbvio para mim por que isso alcançaria o acima

Sua pergunta implícita é: "o que está acontecendo na Figura 5 para criar instabilidade aleatória controlada?".

Primeiro, perceba que todo receptor óptico introduz ruído no sinal recebido. Esse ruído é modelado com bastante precisão como ruído de corrente aleatório gaussiano. O estágio do amplificador de impedância trans (TIA) do receptor converte naturalmente o ruído atual em ruído de tensão. A saída fotodiodo / TIA é um sinal analógico proporcional ao sinal de entrada óptico, mais o ruído adicional que acabamos de falar.

O que está oculto no desenho é um amplificador limitador para obter níveis lógicos digitais da saída TIA. Eu acho que isso está acontecendo no buffer de fan-out no circuito desenhado. Quando você aplica um amplificador limitador a uma entrada barulhenta, o ruído é convertido em instabilidade, pois há variação no tempo em que as bordas ascendente e descendente cruzam o limite de decisão. Essa variação de tempo é instável e é proporcional ao ruído na entrada e inversamente proporcional à inclinação das bordas (dV / dt).

À medida que aumenta a atenuação óptica, você reduz dV / dt, mas não reduz o ruído e aumenta a instabilidade.

Sobre a solução VCO

O FM da sua fonte de temporização (como sugerido pela resposta de Dave) provavelmente não produzirá ruído aleatório gaussiano, conforme solicitado em sua pergunta. Certamente, não é um ruído aleatório que não é correlacionado de ponta a ponta (jitter aleatório ou "RJ"), que parece ser o que você procura e o que obterá do circuito de Kubicek.

Esse é um bom método para obter o jitter sinusoidal (SJ) de varredura de frequência, que é outra especificação com a qual você precisa se preocupar ao caracterizar uma CDR. De fato, na minha experiência, é muito mais comum especificar CDRs pela tolerância ao tremor sinusoidal de frequência única do que pela tolerância ao tremor aleatório gaussiano não correlacionado.

O fóton
fonte
Obrigado pelas explicações, elas são úteis. O que exatamente é o jitter sinusoidal de frequência única e por que é mais comum que o jitter aleatório gaussiano? O jitter aleatório gaussiano não modela com precisão o jitter em sistemas reais?
Travisartley #
2

Uma coisa que você pode fazer é implementar uma versão do circuito de atraso usada nas DLLs. Esta é tipicamente uma corrente de inversor sem corrente. Você precisa degenerar a fonte de corrente dos trilhos para o dispositivo e a fonte de corrente do dispositivo (para simetria de subida / queda) e ter um inversor de reconstrução (sem a corrente de fome) na saída.

Isso também emularia a fonte mais comum de tremulação nas fontes (colapso parcial do trilho e sendo modulado na saída através do G_m dos transistores).

esquemático

simular este circuito - esquemático criado usando o CircuitLab

As fontes de corrente controladas por tensão podem ser simplesmente transistores PMOS e NMOS, mas em uma placa você tem outras opções. Você pode alterar o número de estágios para aumentar o controle da tensão de atraso.

Para me contradizer, você também pode controlar o suprimento superior, desde que mantenha o número de estágios de atraso em um número par (sendo inversores, eles alternadamente atrasarão a borda ascendente e a queda). Você precisaria ter dois inversores de reconstrução na saída.

esquemático

simule este circuito

No entanto, existe uma maneira ainda mais simples, se você deseja injetar ruído nas bordas.

esquemático

simule este circuito

espaço reservado
fonte
Eu gosto disso por causa da simplicidade. Tudo o que é necessário é uma longa cadeia de inversores, uma fonte de alimentação variável e um buffer / inversor fanout com fonte fixa. Existe alguma vantagem em usar o VCCS? Estou ciente da instabilidade nos osciladores de anel e posso pensar nisso apenas como um oscilador de anel de loop aberto. As condições que causam tremulação em um oscilador de anel são as mesmas que causam tremulação aqui.
travisbartley
Eu apenas desenhei como um Vccs porque é isso que está disponível. Em uma DLL real, é simplesmente um PMOS na parte superior e NMOS na parte inferior com um gerador de polarização apropriado. Mas a sua pergunta me lembrou uma possibilidade, acrescentará à resposta.
placeholder