Comment ajouter une quantité contrôlée de gigue à un signal


12

Contexte

Je développe une horloge numérique et un circuit de récupération de données et j'entre maintenant dans la phase d'évaluation, en me concentrant sur le test des limites de la conception et la recherche des forces et des faiblesses potentielles. Une métrique importante de cette conception particulière est la tolérance à la gigue dans le signal d'entrée asynchrone. Pour évaluer cette métrique, j'ai une configuration de test à l'esprit comme ci-dessous.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Problème

Pour garantir que les résultats des tests sont significatifs, il est souhaitable que la gigue présente les caractéristiques suivantes:

  • Aléatoire ou pseudo aléatoire
  • Distribution gaussienne
  • L'écart type du bruit est paramétré et peut être balayé (JITTER CONTROL ci-dessus)

Cela ne semble pas être une chose facile à accomplir. Existe-t-il un moyen relativement simple d'injecter une quantité contrôlée de gigue dans une configuration de test?


Ce que j'ai jusqu'ici

Je lui ai donné quelques réflexions et recherches et j'ai deux façons potentielles de l'implémenter dans le matériel.

  1. Si l'horloge de transmission du circuit de test est nettement supérieure à celle du DUT, la sortie peut être suréchantillonnée. Ensuite, des échantillons supplémentaires peuvent être ajoutés ou supprimés de la sortie pour injecter une quantité discrète de gigue. Cette gigue ne sera pas parfaitement gaussienne en raison du bruit de quantification. Mais si le taux de suréchantillonnage du circuit de test des données de transmission est suffisamment élevé, cette préoccupation peut être atténuée.
  2. La configuration de test de Kubicek et al. (ci-dessous) utilise une transmission optique avec un atténuateur variable pour obtenir l'effet souhaité. Ce n'est pas du tout évident pour moi pourquoi cela permettrait d'atteindre ce qui précède, mais un analyseur de spectre devrait être en mesure de déterminer s'il fonctionne comme prévu.

entrez la description de l'image ici

Je comprends que ma question omet de nombreux détails sur la conception et la configuration du test. C'est intentionnel car je veux que cela reste aussi conceptuel et général que possible. Je veux éviter que cela ne devienne un poste spécifique au design en faveur de la création d'un poste de valeur de référence permanente.

Réponses:


3

Une réponse évidente consiste à utiliser un générateur de signal numérique pour ajouter une quantité contrôlée de bruit à l'entrée de commande d'un VCO.

Gardez à l'esprit que ce signal de bruit représentera une erreur de fréquence instantanée, plutôt que l'erreur de phase que vous associez normalement à la gigue, alors intégrez / différenciez de manière appropriée.

Vous montrez un circuit séparé ajoutant de la gigue à un signal propre provenant d'un générateur de test. Le VCO pourrait faire partie d'une PLL dans ce circuit séparé. La PLL gardera la fréquence de sortie moyenne identique à la fréquence d'entrée, mais aura un effet minimal sur la gigue ajoutée tant que sa boucle de rétroaction aura un gain minimal à la fréquence de gigue.

Si vous avez l'intention de générer plus d'une fraction d'un intervalle unitaire de gigue de crête à crête, vous aurez besoin d'une mémoire élastique (FIFO) pour conserver les données de test. Il pourrait être plus facile d'utiliser simplement l'horloge à gigue pour générer les données en premier lieu.


Je vois je vois. Je pense que l'utilisation d'un NCO + DAC au lieu d'un VCO pourrait être plus facile pour moi. Le NCO + DAC pourrait piloter l'horloge de l'émetteur du circuit de test comme vous l'avez dit. Le circuit de test lui-même générerait des valeurs de gigue pseudo-aléatoires qui seraient ensuite utilisées pour calculer l'entrée NCO. Votre suggestion semble beaucoup plus raisonnable que le photo-atténuateur farfelu de Kubicek.
travisbartley

3

La configuration de test de Kubicek et al. utilise une transmission optique avec un atténuateur variable pour obtenir l'effet souhaité. Ce n'est pas du tout évident pour moi pourquoi cela permettrait d'atteindre ce qui précède

Votre question implicite est: "que se passe-t-il sur la figure 5 pour créer une gigue aléatoire contrôlée?".

Tout d'abord, sachez que chaque récepteur optique introduit du bruit dans le signal reçu. Ce bruit est modélisé assez précisément comme un bruit de courant aléatoire gaussien. L'étage de l'amplificateur de trans-impédance (TIA) du récepteur convertit naturellement le bruit de courant en bruit de tension. La sortie photodiode / TIA est un signal analogique proportionnel au signal d'entrée optique, plus le bruit supplémentaire dont nous venons de parler.

Ce qui est caché dans le dessin est un amplificateur de limitation pour obtenir des niveaux logiques numériques à partir de la sortie TIA. Je suppose que cela se produit dans le tampon de fan-out dans le circuit as-drawn. Lorsque vous appliquez un amplificateur limiteur à une entrée bruyante, le bruit sera converti en gigue, car il y a une variation dans le temps auquel les fronts montant et descendant franchissent le seuil de décision. Cette variation de synchronisation est gigue, et elle est proportionnelle au bruit à l'entrée et inversement proportionnelle à la pente des bords (dV / dt).

Lorsque vous augmentez l'atténuation optique, vous réduisez dV / dt, mais vous ne réduisez pas le bruit, vous augmentez donc la gigue.

À propos de la solution VCO

FM'utiliser votre source de synchronisation (comme suggéré par la réponse de Dave) n'est pas susceptible de produire un bruit aléatoire gaussien comme vous l'avez demandé dans votre question. Certainement pas un bruit aléatoire qui n'est pas corrélé d'un bord à l'autre (gigue aléatoire ou "RJ") qui semble être ce que vous recherchez et ce que vous obtiendrez du circuit de Kubicek.

C'est une bonne méthode pour obtenir la gigue sinusoïdale balayage de fréquence (SJ) qui est une autre spécification que vous devez vous soucier de la caractérisation d' un CDR. En fait, il est beaucoup plus courant dans mon expérience de spécifier les CDR par leur tolérance à la gigue sinusoïdale à fréquence unique que pour leur tolérance à la gigue aléatoire gaussienne non corrélée.


Merci pour les explications, elles sont utiles. Qu'est-ce que la gigue sinusoïdale à fréquence unique et pourquoi est-elle plus courante que la gigue aléatoire gaussienne? La gigue aléatoire gaussienne ne modélise-t-elle pas précisément la gigue dans les systèmes réels?
travisbartley

2

Une chose que vous pouvez faire est d'implémenter une version du circuit à retard utilisé dans les DLL. Il s'agit généralement d'une chaîne d'onduleurs actuellement affamée. Vous devez dégénérer l'alimentation en courant des rails dans l'appareil et l'alimentation en courant hors de l'appareil (pour la symétrie de montée / descente) et avoir un inverseur de reconstruction (sans le manque de courant) sur la sortie.

Cela émulerait également la source la plus courante de gigue dans les sources (effondrement partiel du rail et être modulé sur la sortie à travers le G_m des transistors.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Les sources de courant contrôlées en tension peuvent simplement être des transistors PMOS et NMOS, mais sur une carte, vous avez d'autres options. Vous pouvez modifier le nombre d'étages pour augmenter le contrôle de la tension de retard.

Pour me contredire, vous pouvez également contrôler l'alimentation supérieure tant que vous maintenez le nombre d'étages de retard à un nombre pair (étant des onduleurs, ils retarderont alternativement le front montant puis le front descendant). Vous auriez alors besoin d'avoir deux onduleurs de reconstruction sur la sortie.

schématique

simuler ce circuit

Cependant, il existe un moyen encore plus simple, si vous souhaitez simplement injecter du bruit sur les bords.

schématique

simuler ce circuit


J'aime ça à cause de la simplicité. Il suffit d'une longue chaîne d'onduleurs, d'une alimentation électrique variable et d'un tampon / onduleur de fanout à alimentation fixe. Y a-t-il un avantage à utiliser VCCS à la place? Je suis conscient de la gigue dans les oscillateurs en anneau, et je peux penser à cela comme simplement un oscillateur en boucle ouverte. Les conditions qui provoquent la gigue dans un oscillateur en anneau sont les mêmes qui provoquent la gigue ici.
travisbartley

Je viens de le dessiner en tant que Vcc car c'est ce qui est disponible. Dans une vraie DLL qui est simplement un PMOS en haut et NMOS en bas avec un générateur de biais approprié. Mais votre question m'a rappelé une possibilité, va ajouter à la réponse.
espace réservé
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.