Come aggiungere una quantità controllata di jitter a un segnale


12

sfondo

Sto sviluppando un circuito di recupero dati e orologio digitale e ora sto entrando nella fase di valutazione, concentrandomi sul test dei limiti del progetto e sulla ricerca di potenziali punti di forza e di debolezza. Una metrica importante di questo particolare design è la tolleranza al jitter nel segnale di ingresso asincrono. Per valutare questa metrica, ho in mente una configurazione di prova come di seguito.

schematico

simula questo circuito - Schema creato usando CircuitLab

Problema

Per garantire che i risultati del test siano significativi, è auspicabile che il jitter abbia queste caratteristiche:

  • Casuale o pseudo casuale
  • Distribuzione gaussiana
  • La deviazione standard del rumore è parametrizzata e può essere spazzata (JITTER CONTROL sopra)

Non sembra una cosa facile da realizzare. Esiste un modo relativamente semplice per iniettare una quantità controllata di jitter in una configurazione di prova?


Quello che ho finora

Ci ho pensato un po 'e ho fatto delle ricerche e ho due potenziali modi per implementarlo nell'hardware.

  1. Se il clock di trasmissione del circuito di prova è significativamente più alto del DUT, è possibile sovracampionare l'uscita. Quindi, è possibile aggiungere o rimuovere campioni aggiuntivi dall'output per iniettare una quantità discreta di jitter. Questo jitter non sarà perfettamente gaussiano a causa del rumore di quantizzazione. Ma se la frequenza di sovracampionamento dei dati di trasmissione del circuito di prova è sufficientemente elevata, questa preoccupazione può essere mitigata.
  2. L'impostazione del test di Kubicek et al. (sotto) utilizza una trasmissione ottica con un attenuatore variabile per ottenere l'effetto desiderato. Per me non è affatto ovvio il motivo per cui ciò consentirebbe di ottenere quanto sopra, ma un analizzatore di spettro dovrebbe essere in grado di determinare se funziona come previsto.

inserisci qui la descrizione dell'immagine

Comprendo che la mia domanda omette molti dettagli sulla progettazione e sull'impostazione del test. Questo è intenzionale in quanto voglio mantenerlo il più concettuale e generale possibile. Voglio evitare che questo diventi un post specifico per il design a favore della creazione di un post di valore di riferimento permanente.

Risposte:


3

Una risposta ovvia è quella di utilizzare un generatore di segnale digitale per aggiungere una quantità controllata di rumore all'ingresso di controllo di un VCO.

Tieni presente che questo segnale di rumore rappresenterà un errore di frequenza istantaneo, piuttosto che l'errore di fase che normalmente associ al jitter, quindi integra / differenzia in modo appropriato.

Si mostra un circuito separato che aggiunge jitter a un segnale pulito proveniente da un generatore di test. Il VCO potrebbe far parte di un PLL in quel circuito separato. Il PLL manterrà la frequenza di uscita media uguale alla frequenza di ingresso, ma avrà un effetto minimo sul jitter aggiunto fintanto che il suo loop di feedback ha un guadagno minimo alla frequenza di jitter.

Se si intende generare più di una frazione dell'intervallo unitario di jitter picco-picco, è necessario un archivio elastico (FIFO) di qualche tipo per contenere i dati del test. Potrebbe essere più semplice utilizzare l'orologio jitter per generare i dati in primo luogo.


Vedo VEDO. Penso che usare un NCO + DAC invece di un VCO potrebbe essere più facile per me. L'NCO + DAC potrebbe pilotare l'orologio del trasmettitore del circuito di prova come hai detto. Il circuito di prova stesso genererebbe valori di jitter pseudo casuali che verrebbero quindi utilizzati per calcolare l'ingresso NCO. Il tuo suggerimento sembra molto più ragionevole del bizzarro attenuatore fotografico di Kubicek.
Travisbartley,

3

L'impostazione del test di Kubicek et al. utilizza una trasmissione ottica con un attenuatore variabile per ottenere l'effetto desiderato. Per me non è affatto ovvio il motivo per cui questo avrebbe ottenuto quanto sopra

La tua domanda implicita è "cosa sta succedendo in Fig 5 per creare jitter casuali controllati?".

Innanzitutto, rendersi conto che ogni ricevitore ottico introduce rumore nel segnale ricevuto. Questo rumore è modellato abbastanza accuratamente come rumore di corrente casuale gaussiana. Lo stadio amplificatore di trans-impedenza (TIA) del ricevitore converte naturalmente il rumore attuale in rumore di tensione. L'uscita fotodiodo / TIA è un segnale analogico proporzionale al segnale di ingresso ottico, oltre al rumore aggiunto di cui abbiamo appena parlato.

Ciò che è nascosto nel disegno è un amplificatore limitatore per ottenere livelli logici digitali dall'uscita TIA. Immagino che ciò stia accadendo nel buffer di fan-out nel circuito disegnato. Quando si applica un amplificatore limitatore a un ingresso rumoroso, il rumore verrà convertito in jitter, poiché ci sono variazioni nel tempo in cui i fronti di salita e di discesa attraversano la soglia di decisione. Questa variazione di temporizzazione è jitter ed è proporzionale al rumore all'ingresso e inversamente proporzionale alla pendenza dei bordi (dV / dt).

Aumentando l'attenuazione ottica, si riduce dV / dt, ma non si riduce il rumore, quindi si aumenta il jitter.

Informazioni sulla soluzione VCO

FM è improbabile che la tua sorgente di temporizzazione (come suggerito dalla risposta di Dave) produca rumore gaussiano casuale come richiesto nella tua domanda. Certamente non un rumore casuale che non è correlato da un bordo all'altro (jitter casuale o "RJ") che sembra essere quello che stai cercando e quello che otterrai dal circuito di Kubicek.

Questo è un buon metodo per ottenere il jitter sinusoidale a scansione di frequenza (SJ) che è un'altra specifica di cui devi preoccuparti quando caratterizzi un CDR. In effetti è molto più comune nella mia esperienza specificare i CDR in base alla loro tolleranza per il jitter sinusoidale a singola frequenza piuttosto che per la loro tolleranza al jitter casuale gaussiano non correlato.


Grazie per le spiegazioni, sono utili. Che cos'è esattamente il jitter sinusoidale a singola frequenza e perché è più comune del jitter casuale gaussiano? Il jitter casuale gaussiano non modella accuratamente il jitter nei sistemi reali?
Travisbartley,

2

Una cosa che puoi fare è implementare una versione del circuito di ritardo utilizzato nelle DLL. Si tratta in genere di una catena di inverter affamata di corrente. È necessario degenerare l'alimentazione corrente dalle rotaie nel dispositivo e l'alimentazione corrente fuori dal dispositivo (per simmetria di salita / discesa) e disporre di un inverter di ricostruzione (senza fame attuale) sull'uscita.

Ciò emulerebbe anche la fonte più comune di jitter nelle fonti (collasso parziale della rotaia e modulazione sull'uscita attraverso il G_m di transistor.

schematico

simula questo circuito - Schema creato usando CircuitLab

Le sorgenti di corrente controllate in tensione possono essere semplicemente transistor PMOS e NMOS ma su una scheda sono disponibili altre opzioni. È possibile modificare il numero di stadi per aumentare il controllo della tensione di ritardo.

Per contraddirmi, puoi anche controllare la fornitura superiore purché mantieni il numero di stadi di ritardo su un numero pari (essendo gli inverter alternativamente ritarderanno il fronte di salita e poi il fronte di discesa). Dovresti quindi avere due inverter di ricostruzione sull'uscita.

schematico

simula questo circuito

Tuttavia, esiste un modo ancora più semplice, se si desidera solo iniettare rumore sui bordi.

schematico

simula questo circuito


Mi piace questo per la semplicità. Tutto ciò che serve è una lunga catena di inverter, un alimentatore variabile e un buffer / inverter fanout con alimentazione fissa. C'è qualche vantaggio nell'usare VCCS invece? Sono a conoscenza del jitter negli oscillatori ad anello e posso pensare a questo come a un semplice oscillatore ad anello aperto. Le condizioni che causano jitter in un oscillatore ad anello sono le stesse che causano jitter qui.
Travisbartley,

L'ho appena disegnato come un Vcc perché è quello che è disponibile. In una vera DLL che è semplicemente un PMOS in alto e NMOS in basso con un generatore di bias appropriato. Se la tua domanda mi ha ricordato una possibilità, aggiungerò alla risposta.
segnaposto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.