Système de test intégré pour convertisseurs A/N



Documents pareils
Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Filtres passe-bas. On utilise les filtres passe-bas pour réduire l amplitude des composantes de fréquences supérieures à la celle de la coupure.

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

TP Modulation Démodulation BPSK

Equipement. électronique

I- Définitions des signaux.

Expérience 3 Formats de signalisation binaire

8563A. SPECTRUM ANALYZER 9 khz GHz ANALYSEUR DE SPECTRE

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

Chaine de transmission

Transmission d informations sur le réseau électrique

A. N(p) B + C p. + D p2

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

CHAPITRE V. Théorie de l échantillonnage et de la quantification

Transmission de données. A) Principaux éléments intervenant dans la transmission

Systèmes de transmission

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Numérisation du signal

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

- Instrumentation numérique -

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Université de La Rochelle. Réseaux TD n 6

Technique de codage des formes d'ondes

P1PY7204 Acquisition de données Cours

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Mesures de temps de propagation de groupe sur convertisseurs de fréquence sans accès aux OL

Quantification Scalaire et Prédictive

LÕenregistrement Enregistrement analogique et enregistrement numžrique

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

0 20mV; 0 40mV; 0 80mV; 0 160mV; 0 320mV; 0 640mV; 0 1,28V; 0 2,56V 0 5V; 0 10V

Projet audio. Analyse des Signaux ELE2700

Fonctions de plusieurs variables

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

TD1 Signaux, énergie et puissance, signaux aléatoires

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

1. PRESENTATION DU PROJET

Références pour la commande

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Chapitre I La fonction transmission

Convertisseurs statiques d'énergie électrique

Chapitre 13 Numérisation de l information

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

Exemple d acquisition automatique de mesures sur une maquette de contrôle actif de vibrations

Manipulation N 6 : La Transposition de fréquence : Mélangeur micro-ondes

5.2 Théorème/Transformée de Fourier a) Théorème

Chap17 - CORRECTİON DES EXERCİCES

Intérêt du découpage en sous-bandes pour l analyse spectrale

Communications numériques

FAG Detector III la solution pour la surveillance et l équilibrage. Information Technique Produit

Chapitre 2 Les ondes progressives périodiques

Licence Sciences et Technologies Examen janvier 2010

Synthèse des convertisseurs statiques DC/AC pour les systèmes photovoltaïques


Codage d information. Codage d information : -Définition-

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

SIGNAUX NUMERIQUES ET MODULATIONS NUMERIQUES

Oscilloscope actif de précision CONCEPT 4000M

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

Echantillonnage Non uniforme

QUESTION 1 {2 points}

Modules d automatismes simples

Algorithme. Table des matières

Electron S.R.L. - MERLINO - MILAN ITALIE Tel ( ) Fax Web electron@electron.it

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

IV- Comment fonctionne un ordinateur?

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Bandes Critiques et Masquage

TELEVISION NUMERIQUE

Contribution à la conception par la simulation en électronique de puissance : application à l onduleur basse tension

ELEC2753 Electrotechnique examen du 11/06/2012

MESURES D UN ENVIRONNEMENT RADIOELECTRIQUE AVEC UN RECEPTEUR CONVENTIONNEL ETALONNE

Champ électromagnétique?

Compatibilité Électromagnétique

GUIDE DE PRISE EN MAIN ISIS PROTEUS V7

Analyse des Systèmes Asservis

Précision d un résultat et calculs d incertitudes

Cours 9. Régimes du transistor MOS

Chapitre 1 Régime transitoire dans les systèmes physiques

DI-1. Mode d'emploi. Direct Box

CAPTEURS - CHAINES DE MESURES

TeamConnect. SL TeamConnect CU1, Unité centrale SL TeamConnect CB1, Combox CARACTÉRISTIQUES

Telecommunication modulation numérique

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Scarlett Plug-in Suite

V corr Jacques Ferber. LIRMM - Université Montpellier II 161 rue Ada Montpellier Cedex 5

Relais d'arrêt d'urgence, protecteurs mobiles

Mode d emploi ALTO MONITOR PROCESSEUR D ÉCOUTE. Version 1.0 Juillet 2003 Français

DAC. avec interface USB audio et préampli stéréo Casque CONVERTISSEUR DIGITAL VERS ANALOGIQUE. Guide d utilisation V1.1 Jan 2011

Fonctions de la couche physique

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Recherche De Coalescences Binaires Étalonnage Du Détecteur

3.2. Matlab/Simulink Généralités

GPA770 Microélectronique appliquée Exercices série A

Conversion d un entier. Méthode par soustraction

Transcription:

Travail de diplôme Système de test intégré pour convertisseurs A/N Patrick Ritter LSM - STI - EPFL Responsable: P. Muller Professeur: Y. Leblebici Lausanne, Février 005

Résumé L analyse de la qualité des blocs analogiques d un circuit à signaux mixtes pose certains problèmes, notamment quand celui-ci n est pas accessible par l extérieur du chip. A part le fait que les instruments de mesure sont coûteux, il n est pas possible de tester le chip in situ. Dans ce projet il s agit de développer un système de test intégré pour des convertisseurs analogique/numérique. Le convertisseur est implémenté dans une technologie CMOS UMC 0.18µm et fournit des résultats à 100 MHz sur 1 bits. Par conséquent le bloc de test doit utiliser le même processus et doit tourner à la même fréquence. L approche choisie consiste à générer un stimulus numérique qui est ensuite converti en analogique à l aide d un convertisseur N/A Delta-Sigma de plus haute résolution que celui du convertisseur A/N. Une analyse des caractéristiques d un convertisseur A/N permet d identifier les caractéristiques qui sont raisonnables à implémenter pour un test embarqué. Le choix s est porté sur des tests statiques, car il ne leur faut pas d analyse en fréquence ni de long tests avec un stimulus variable. Les calculs implémentés permettent d évaluer les valeurs suivantes à l aide d une rampe : Le gain L offset La DNL (non-linéarité différentielle) Le contrôle est implémenté en VHDL et permet avec les paramètres génériques d adapter la taille de l interface ainsi que la précision des calculs pour minimiser la surface. De plus il est possible, par une programmation sérielle, de limiter l étendue de la mesure. Des tests pass/fail facilitent le contrôle si les paramètres se trouvent dans une plage tolérable qui elle est programmable lors de l initialisation du bloc de contrôle. Les valeurs extraites à la fin de la mesure sont les résultats des tests pass/fail, les caractéristiques ainsi que les valeurs mesurées. Le modulateur Delta-Sigma de 3 ième ordre avec un sur-échantillonnage de 18 à une boucle permet d obtenir les spécifications définies. La structure CIFF (Cascade-of-integrators, feedforward form) en combinaison avec ses coefficients permet de minimiser la surface. Il est implémenté en VHDL. La surface utilisée par le bloc de contrôle après placement et routage est environ de 90k µm et celle du modulateur est 76k µm, sauf si celui-ci tourne à 00 MHz, ce qui est favorable lors d une conversion Delta-Sigma. Dans ce cas il faut compter avec 10 µm de surface. Le filtre analogique de reconstruction du signal à partir du bitstream a été analysé et ses problèmes identifiés. Le choix est une combinaison de filtre semi numérique FIR et d un filtre RC Butterworth (IIR). Le filtre n a pas été implémenté, par contre les influences du mésappariement sur la qualité de l atténuation ont été évaluées. Circuit intégré Signaux de contrôle DAC 16 bits Contrôle Entrée analogique ADC 1 bits Sortie numérique La structure du système de test intégré pour convertisseurs A/N 3

4

Remerciements J aimerais remercier : Paul Muller d avoir pris la responsabilité de ce projet ainsi de son aide apporté lors de l exécution du projet et pour la correction du rapport, A.Vachoux pour son aide pour les outils de design ainsi que pour son modèle ADC utilisé et P.A.Francese pour son aide dans le calcul du mésappariement. 5

Table des matières 1 INTRODUCTION... 8 THÉORIE... 9.1 LES TESTS STATIQUES D UN CONVERTISSEUR A/N... 9.1.1 Introduction... 9.1. Particularités du système... 9.1.3 Les calculs des paramètres... 11. CONVERTISSEUR N/A DELTA-SIGMA... 1..1 Introduction... 1.. Le bruit de quantification... 13..3 Le sur-échantillonnage... 14..4 Modulation Delta-Sigma... 15..5 Conversion N/A... 16..6 Filtre analogique de reconstruction... 17 3 CONCEPTION... 0 3.1 LE SYSTÈME DE TEST DE CONVERTISSEUR A/N INTÉGRÉ... 0 3. LE CONVERTISSEUR N/A DELTA-SIGMA... 0 3..1 Conception du modulateur Σ dans Matlab... 0 3.. Conception du filtre de reconstruction... 3 3..3 Simulation de la conversion N/A Σ dans Simulink... 7 3.3 BLOC DE CONTRÔLE... 8 3.3.1 Considérations générales... 8 3.3. Initialisation de la détection de transition... 8 4 IMPLÉMENTATION... 30 4.1 LE CONVERTISSEUR D/A DELTA-SIGMA... 30 4.1.1 Le modulateur Σ... 30 4. LE BLOC DE CONTRÔLE... 30 4..1 La structure... 30 4.. La machine d état... 30 4..3 Implémentation de la détection de transition... 3 4..4 Les calculs des tests statiques... 33 4..5 Les tests pass/fail... 37 4..6 Les ressources... 37 4..7 Programmation et lecture sérielle... 39 4..8 Augmenter la fréquence maximale du bloc de contrôle... 40 5 RÉSULTATS... 41 5.1 DÉTERMINATION DE L ERREUR DÛ À LA QUANTIFICATION... 41 5. LE MODULATEUR DELTA-SIGMA... 4 5..1 Résultats de la synthèse et du placement et routage... 4 5.. Comparaison des résultats de simulation... 4 5.3 LE BLOC DE CONTRÔLE... 43 5.3.1 Le temps de mesure d un rampe complète... 43 5.3. Résultats de la synthèse et du placement et routage... 43 5.3.3 Vérification du fonctionnement... 44 5.4 TEST DU SYSTÈME COMPLET... 45 6 CONCLUSION... 46 7 BIBLIOGRAPHIE... 47 6

Liste des figures Figure 1 : Les blocs fonctionnels de test ajouté pour... 8 Figure : Fonctionnement de la détection de transition... 10 Figure 3 : Les départs et les arrivées sur les bords des échelles ADC et DAC pour une rampe... 10 Figure 4 : Le gain, l offset, la DNL et l INL de la caractéristique d un convertisseur A/N... 11 Figure 5 : Topologie du convertisseur N/A Delta-Sigma... 15 Figure 6 : La quantification d un signal... 13 Figure 7 : Erreur de quantification en dépendance de la valeur... 13 Figure 8 : Linéarisation de la quantification par addition du bruit de quantification au signal d entrée... 13 Figure 9 : Distribution spectrale de la puissance du bruit de quantification... 14 Figure 10 : Les éléments de base de la fonction de transfert du modulateur... 15 Figure 11 : Le modèle du modulateur Delta-Sigma... 16 Figure 1 : La distribution spectrale de la puissance de l erreur dans un modulateur Delta-Sigma... 15 Figure 13 : Conversion N/A à l aide d un buffer... 17 Figure 14 : Conversion N/A à l aide d un pont H... 17 Figure 15 : Définition standard des limites d un filtre passe bas... 17 Figure 16 : Délai d enveloppe pour les filtres IIR de 3 ième ordre les plus connues... 17 Figure 17 : Structure d un filtre FIR (Direct Form I)... 19 Figure 18 : Réponse en amplitude d un filtre FIR à 6 taps et de son filtre IFIR... 19 Figure 19 : Blocs fonctionnels du système de test d un convertisseur A/N intégré... 0 Figure 0 : Prédiction de la fonction de transfert de bruit... Figure 1 : Lieu des pôles et des zéros... Figure : SNR du modulateur Σ en dépendance de l amplitude du signal d entrée... Figure 3 : Spectre fréquentiel de la NTF avec en entrée un sinus (0.5FS, /3BW)... Figure 4 : Filtre Butterworth passif de 3 ième ordre avec une fréquence de coupure de 400 khz... 3 Figure 5 : Topologie simplifié d un filtre semi numérique au niveau transistor... 4 Figure 6 : Effets sur la réponse du filtre du au mésappariement normalisé des coefficients... 6 Figure 7 : Influence des filtres FIR et IIR sur la fonction de transfert du bruit... 7 Figure 8 : Modulateur Delta-Sigma de 3 ième ordre implémenté en structure CIFF dans Simulink... 8 Figure 9 : Les étapes de l initialisation de la détection de transition illustrés pour deux cas... 9 Figure 30 : Topologie simplifié des blocs fonctionnels du contrôle de mesure... 30 Figure 31 : La machine d état du bloc de contrôle... 31 Figure 3 : La structure simplifié de la détection de transition... 3 Figure 33 : La structure interne de la détection de transition... 33 Figure 34 : La simulation du fonctionnement du compteur de transition... 33 Figure 35 : La machine d état du calcul du gain... 34 Figure 36 : La structure interne du calcul du gain... 34 Figure 37 : La machine d état du calcul de l offset... 35 Figure 38 : La structure interne du calcul de l offset... 35 Figure 39 : La machine d état du calcul de la DNL... 36 Figure 40 : La structure interne du calcul de la DNL... 36 Figure 41 : La structure du test pass/fail du gain... 37 Figure 4 : La structure de la ressource d addition/soustraction et de sa valeur absolue... 38 Figure 43 : La structure de la ressource et l interne de la multiplication... 38 Figure 44 : Représentation fonctionnelle de la division... 39 Figure 45 : Le schéma de la programmation et de la lecture sérielle des registres selon l étant... 39 Figure 46 : Comparaison des modèles d un modulateur Σ CIFF de 3 ième ordre avec un OSR de 18... 4 Figure 47 : Simulation de la programmation des registres de limite... 44 Figure 48 : Résultats de simulation de la netlist du placement et routage dans le cas A... 44 Figure 49 : Résultats de simulation de la netlist du placement et routage dans le cas B... 44 Figure 50 : Structure de test du contrôle avec un convertisseur N/A idéal... 45 Figure 51 : Début de la rampe descendante simulé dans le système complet (16bit DAC, 8bit ADC)... 45 Liste des tableaux Tableau 1 : Comparaison de publications utilisant des filtres semi-numériques de reconstruction... 4 Tableau : Résultats de la synthèse et du placement et routage des cellules standard du modulateur... 4 Tableau 3 : Résultats de la synthèse et du placement et routage des cellules standard du contrôle... 43 7

1 Introduction De nos jours la complexité des systèmes microélectroniques permet d intégrer de plus en plus de fonctionnalité sur une puce. L intégration de circuits numériques et analogiques sur la même puce permet de réaliser des systèmes complexes. Déterminer la qualité du comportement analogique des composants est difficile et coûteux, vu la nécessité de recourir à des appareils de mesure de haute qualité. Pour éviter cela il est possible d intégrer des circuits de test (BIST : Built-in-self-test) pour les parties analogiques directement sur la puce à côté du bloc analogique. Ceci nécessite de la surface supplémentaire qui n est pas directement destinée à la fonctionnalité (area overhead). Le test de qualité peut alors être effectué automatiquement par exemple lors de l initialisation du système. Dans ce travail il s agit de développer un système de test intégré pour convertisseurs A/N. Le processus UMC 0.18 µm permet d intégrer des circuits numériques et analogiques. Le convertisseur A/N est implémenté dans ce processus et fournit des données à 100 MHz codées sur 1 bits. Le test intégré doit par conséquent être fait dans le même processus et tourner au moins à 100 MHz. Le système de test a une partie qui est le stimulus et une autre partie qui est un système d analyse pour en déduire les caractéristiques. Le bloc de contrôle est utilisé pour générer le stimulus numérique qui est ensuite converti en analogique à l aide d un convertisseur N/A Delta-Sigma de haute résolution. Ce même contrôle est aussi responsable de récolter les données du convertisseur A/N et de calculer les spécifications définies. Stimulus (Conversion N/A) Circuit intégré Unité sous test : ADC 1 bits Analyse des caractéristiques Entré analogique Figure 1 : Les blocs fonctionnels de test ajouté pour Sortie numérique Ce rapport définit d abord les spécifications dont le contrôle serait capable et traite ensuite la théorie de la conversion Delta-Sigma. Ainsi on a toutes les informations pour développer le modulateur deltasigma dans Matlab. A partir des résultats du modèle Matlab une décision sur l architecture du modulateur est faite pour implémenter celle-ci dans un modèle Simulink dans lequel les paramètres extraits de Matlab sont injectés. Le modèle Simulink sert ensuite comme modèle pour implémenter le modulateur dans VHDL. Après cela la conception du filtre est faite. Une attention particulière est portée sur l influence du mésappariement des paramètres des transistors. En ce qui concerne le bloc de contrôle uniquement la détection de transition est analysée en détail. Les autres parties sont directement implémentées. 8

Théorie.1 Les tests statiques d un convertisseur A/N.1.1 Introduction Le test de convertisseurs A/N intégrés peut se faire de plusieurs manières dont la plus simple consiste à déterminer si celui-ci marche ou non. Un autre test est de vérifier si les spécifications du convertisseur A/N sont respectées ou plus pragmatiquement de quelle qualité il est. Pour accomplir cette tâche il y a la possibilité de tester avec des appareils de pointe qui permettent d appliquer et de relever les signaux à l extérieur de la puce. L inconvénient de cette méthode est premièrement le prix de l appareil de mesure qui est élevé et deuxièmement lors d un test en production, il est nécessaire d enlever le circuit de son environnement pour le tester. Une autre possibilité est d intégrer les tests sur la même puce qui contient le convertisseur A/N ce qui augmente la surface, par contre il ne faut plus d appareil de mesure et il est possible de tester le chip dans son environnement. Le défi est de garantir et/ou tester le fonctionnement correct du système de test intégré sur la puce. Finalement il est aussi possible d imaginer un test qui est une combinaison des deux méthodes mentionnées. Pour éviter des coûts élevés il devrait être possible que l interface puisse se faire avec un ordinateur ou un microcontrôleur qui est déjà disponible dans les systèmes complexes. Un système de test intégré est composé des parties suivantes Le contrôle de la mesure La génération du stimulus La récolte des données Les analyses des résultats Analysant les spécifications d un convertisseur A/N on s aperçoit qu il y a deux groupes de test Tests dynamiques - SNR (Signal-to-Noise Ratio) - SNDR (Signal-to-Noise and Distortion Ratio) - SFDR (Spurious Free Dynamic Range) - THD (Total Harmonic Distortion) Tests statiques - Gain - Offset - INL (Integral-non-Linearity) - DNL (Differential-non-Linearity) Les stimuli pour les tests dynamiques sont des sinus à fréquences donnés. Il s agit ensuite de faire une transformée de Fourier pour analyser les contraintes dynamiques. Ce type de test nécessite beaucoup de mémoire donc beaucoup de surface pour enregistrer les échantillons et aussi pour faire la transformée de Fourier. Même avec une réutilisation de la mémoire le système de test intégré basé sur des tests dynamiques sera très encombrant. Les tests statiques peuvent être analysés avec une rampe lente. En la balayant on peut déterminer le point minimal et maximal pour calculer ensuite le gain et l offset. L INL et la DNL peuvent être évaluées pendant le balayage en calculant ses valeurs pour chaque point, la valeur maximale de la DNL est conservée..1. Particularités du système.1..1 La détection de transition de codes Une des tâches les plus cruciales est de déterminer les transitions de code du convertisseur A/N. Les transitions sont détectées à partir des probabilités des codes qui viennent du fait qu il y a des variations dans la conversion. En faisant plusieurs mesures avec le convertisseur A/N sur le même code DAC, on 9

peut dresser un histogramme qui reflète la probabilité d un code ADC. Il s agit d une transition lorsque la moitié de l histogramme donc la moitié des mesures se trouvent en dessus du code ADC quantifié. La Figure montre les probabilités d une valeur ADC non quantifié pour mieux voir les transitions. Plus de la moitié de la courbe de probabilité du code DAC en vert (1) est en dessous du code ADC B ce qui veut dire qu il ne s agit pas du code B mais plutôt du code A. Par contre le prochain code DAC en orange () a plus de la moitié des mesures en dessus de B, par conséquent il y a une transition de code ADC. A droite de la figure les courbes de probabilité pour les codes 1, et 3 sont représentées en deux dimensions pour mieux les comparer. Code ADC 1 3 3 Code ADC B A Code DAC Probabilité 1 Figure : Fonctionnement de la détection de transition.1.. La détection du point minimal et maximal Le point minimal et maximal sert à calculer le gain et l offset. Comme nous l avons déjà mentionné dans l introduction, les tests statiques se font en appliquant une rampe. Il y a trois possibilités de démarrer la rampe : (A) en partant d un code ADC non nul, (B) en partant d un code DAC non nul ou encore en partant sur les deux valeurs étant nulles. Ce dernier cas peut être considéré comme étant un cas spécial de (B) c est pour cela qu il n est pas mentionné dans la Figure 3. En ce qui concerne la fin de la rampe il y les trois cas analogues, sauf qu il s agit cette fois de la limite supérieure des échelles. Toute combinaison de (A),(B) avec (C),(D) est imaginable selon le gain et l offset. A code ADC C B D code DAC Figure 3 : Les départs et les arrivées sur les bords des échelles ADC et DAC pour une rampe.1..3 L accordement entre les échelles L échelle ADC contient les codes entre 0 et NADC -1 et celle du DAC les codes entre 0 et NDAC -1. La pente idéale est lors NADC -1 divisé par NDAC -1 ce qui peut être simplifié par la pente m simple. Dans ce cas une erreur est introduite qui est spécifiée dans (). L erreur relative calculée pour un convertisseur A/N de 1 bits et un convertisseur N/A de 16 bits reste minime. Dans la suite du rapport l accordement des échelles est automatiquement effectué avec la pente simplifiée. 10

m simple NADC NDAC = (1) NADC NADC NADC= 1 NDAC NDAC NDAC= 16 1-4 m error, rel = = -.3 10 NADC () 1 NDAC 1 1.1.3 Les calculs des paramètres.1.3.1 Le calcul du gain Le gain est la pente entre les points extrêmes et se calcule de la manière suivante gain y y y diff max min = = (3) xdiff xmax xmin Pour un cas idéal le gain est égal à un pour des échelles de même taille après accordement. L axe des x représente le code DAC discret qui entre dans le convertisseur A/N. De ce fait, l erreur de quantification sur le stimulus peut être négligée par rapport aux valeurs x diff et y diff. En effet, celles-ci sont les différences entre les valeurs extrêmes de l échelle. NADC -1 Code ADC Gain INL Offset DNL q V ref = 0V NDAC -1 Code DAC Figure 4 : Le gain, l offset, la DNL et l INL de la caractéristique d un convertisseur A/N.1.3. Le calcul de l offset En prenant la formule d une droite y = gain x +q, l offset équivaut à q. Cette équation n est pas valable lorsque le zéro de la tension n est pas au zéro du code DAC comme il est montré sur la Figure 4. Dans ce cas il faut calculer la valeur de la pente à la tension zéro x(v=0) et soustraire la valeur de la pente idéale définie par les limites des l échelles. L offset peut alors s exprimer comme étant [ gain x( V = 0) + q] m x( = 0) offset = simple V (4) En calculant la valeur de q = y - gain x avec x la valeur du code DAC val_dac et y la valeur du code ADC val_adc, on peut réérire la formule (5). Les constantes sont en majuscule où DAC_VEQZ est la valeur DAC qui équivaut à la tension zéro étant typiquement NDAC-1 et ADC_VEQZ la même valeur rapportée sur l axe y donc sur le code ADC. offset = gain DAC _ VEQZ gain val_dac + val_adc ADC _ VEQZ (5) 11

.1.3.3 Le calcul de la DNL La DNL (non-linéarité différentielle) est la déviation de la largeur idéale. La définition de cette largeur idéale est ambiguë et peut être soit un LSB ou la moyenne du pas [3, p. 87ff]. L avantage de prendre un LSB est que les résultats entre des convertisseurs peuvent être comparés. Le pas moyen permet que la DNL soit indépendante du gain et de l offset de la fonction de transfert. De plus la deuxième méthode permet d obtenir une DNL plus petite ce qui est favorable. La DNL peut être calculée pour chaque point, sauf le premier, mais souvent la valeur maximale est uniquement exprimée. Dans notre cas ou la tension est exprimée en code DAC, un compteur peut calculer la différence entre les transitions. Pour ne pas calculer la DNL pour chaque point il suffit d enregistrer la valeur minimale et maximale de ce compteur de transition. Dans ce cas la valeur de la DNL maximale est calculée une fois à la fin de la rampe. dnl max max( ctcntr_max ctmean, ctcntr_min ctmean ) = (6) gain. Convertisseur N/A Delta-Sigma..1 Introduction Pour obtenir un SNR élevé et une caractéristique linéaire, les conversions N/A de Nyquist nécessitent un bon contrôle de la technologie et un design complexe. La conversion N/A se fait en deux étapes. La première fait la conversion du signal numérique appliqué à l entré codé sur NBITS à la fréquence de Nyquist en 1 bit (bitstream) à une fréquence d échantillonnage ƒ S. La deuxième partie fait la conversion de 1 bit, représentant deux niveaux de quantification, à une valeur analogique équivalente. Avec deux niveaux de quantification la linéarité est garantie, car les deux états sont forcément alignés ce qui peut être différent quand il y a trois ou plus d états. Pour reconstruire le signal analogique il y a deux possibilités. Une consiste à avoir une conversion 1 bit qui représente la valeur numérique sur 1 bit en équivalent analogique. Il suit un filtre analogique IIR qui reconstruit le signal analogique à NBITS niveaux à partir du signal analogique à deux niveaux. Une autre possibilité est d implémenter un filtre FIR semi-numérique pour faire la reconstruction à partir du bitstream. Il rend superflu la conversion DAC 1 bit en temps que bloc fonctionnel. Les deux sorties des blocs analogiques indique qu il s agit d une tension différentielle. NBITS ƒ N Modulation 1 bit ƒ S 1bit DAC LPF digital analog Figure 5 : Topologie de la conversion N/A Le théorème de Nyquist-Shannon nous dit que la fréquence d échantillonnage ƒ N doit être au moins deux fois la bande passante ƒ B du signal échantillonné. On peut donc définir le sur-échantillonnage comme étant le rapport entre la fréquence d échantillonnage et la fréquence de Nyquist ƒ N du signal d entrée. OSR = f f S N f S = f Le système PCM (Pulse Code Modulation) permet de faire la conversion d une valeur numérique sur NBITS en un bitstream. Pour ne pas perdre de données il faut que l OSR soit supérieur aux possibilités représentables sur NBITS. Si on a alors des données sur NBITS à une fréquence de Nyquist ƒ N, il est possible de les représenter sans pondération sur 1 bit à une fréquence de NBITS ƒ N. En faisant ensuite B (7) 1

l addition sur OSR cycles d horloge, on revient à la valeur qui était représenté sur les NBITS pondérés. Un nombre de bits élevé nécessite donc beaucoup de temps pour être représenté sur l axe du temps... Le bruit de quantification Le fait de diminuer le nombre de bits revient à quantifier le signal. Dans une quantification il n est pas possible de représenter toutes les données, mais uniquement une partie ce qui revient à ajouter du bruit de quantification au signal. Plus la quantification est grossière plus il y a de bruit ajouté. L erreur faite par la quantification e[n] est limitée par le pas de quantification. Vu qu il ne s agit pas d un signal d entrée à niveau de quantification infinie, celui-ci est aussi limité par un pas δ qui détermine la limite. La limite peut être simplifiée comme montré dans l équation (8), si le pas δ est petit par rapport à ce qui est typiquement le cas lors d une quantification sur 1 bit. δ en [ ] δ + (8) La Figure 6 met en évidence les deux signaux discrets et quantifiés u[n] et v[n]. L erreur faite en quantifiant le signal u[n] par v[n] est représentée dans la Figure 7 dont sa valeur dépend de celle de u[n]. valeur quantifié v[n] u[n] e rms [n] + / u[n] δ valeur réelle - / Figure 6 : La quantification d un signal Figure 7 : Erreur de quantification en dépendance de la valeur La quantification peut être modélisée par une simple addition de l erreur de quantification e rms [n] au signal d entrée u[n]. De cette manière on linéarise la quantification en perdant la corrélation entre le signal d entrée et l erreur (cf. Figure 7). u[n] v[n] u[n] + e rms [n] + v[n] = u[n] + e rms [n] Σ Figure 8 : Linéarisation de la quantification par addition du bruit de quantification au signal d entrée Pour simplifier le calcul, les bornes de l erreur de quantification sont prises comme ± /. Le carré de la tension de l erreur ou la puissance de l erreur est alors 3 3 1 1 1 e = Pe = = = e de 3 1 rms (9) Pour évaluer le gain de résolution introduit lors du sur-échantillonnage il est nécessaire de définir la densité spectrale de la puissance. Pour la suite on suppose que l erreur est un bruit blanc [1, p136]. Sous cette hypothèse celui-ci est uniformément distribué ente 0 et ƒ S /, ƒ S étant la fréquence d un signal quelconque. La densité spectrale peut alors être exprimé ainsi : S( e P = (10) e rms ) S( Pe ) = = f S 6 f S 13

Le rapport signal sur bruit est par définition le rapport entre un sinus d amplitude maximale et le bruit. La puissance du signal est alors la tension au carré divisée par deux. En exprimant l étendue de la tension en pas de quantification on peut écrire : N VPP / Ps = = (11) 8 Après avoir défini la puissance du signal ainsi que celui du bruit on peut exprimer le SNR. On constante qu avec chaque bit de plus le SNR augmente de 6 db. PS 3 N SNRdB = 10 log( ) = 10 log( ) 1.76 + 6. 0N (1) P..3 Le sur-échantillonnage e Connaissant la densité spectrale du bruit de quantification, on peut comparer le bruit généré par une conversion de Nyquist à la fréquence de Nyquist ƒ N et celui généré par une conversion avec un suréchantillonnage à une fréquence ƒ S. Vu que ƒ S est strictement plus grand que ƒ N car sinon il ne s agit pas d un sur-échantillonnage on sait que la densité spectrale du bruit intégré sur la bande passante du signal est plus petite que pour la conversion Nyquist. L intégral sur tout le spectre reste le même. S(P e ) Pe f N Conversion de Nyquist Puissance du bruit dans la bande passante ƒ N / = ƒ B ƒ N ƒ N f f S S(P e ) P e Conversion PCM Puissance du bruit dans la bande passante ƒ B ƒ S / f Figure 9 : Distribution spectrale de la puissance du bruit de quantification En supposant qu on est capable d obtenir un filtre idéal (ie. fenêtre rectangulaire en fréquence) qui coupe tous ce qui est en dehors de la bande passante ƒ B du signal, on peut calculer le bruit de quantification qui s y trouve. Pour cela il suffit d intégrer la densité spectrale du bruit après suréchantillonnage sur la bande passante. f B f B Pe Pe, PCM = S( Pe ) df = Pe = (13) 0 f OSR La puissance du bruit dans la bande passante est réduite de 1/OSR par rapport à la puissance du bruit de la conversion de Nyquist ce qui permet de recalculer le SNR : S 14

SNR db 3 N = 10 log( OSR) 1.76 + 6.0N + 10 log( OSR) (14) Le rapport signal sur bruit augmente de 6 db avec chaque bit de plus et en doublant l OSR on peut gagner 3 db ce qui équivaut à 0.5 bits de précision...4 Modulation Delta-Sigma Une amélioration du rapport signal sur bruit est obtenue en repoussant le bruit de quantification en dehors de la bande passante (Noise Shaping). Qualitativement cela est représenté dans la Figure 10. La combinaison du nombre de niveau de quantification, du sur-échantillonnage et de la fonction de transfert du bruit détermine la densité du bruit dans la bande passante, donc le rapport signal sur bruit. Pe f S S(P e ) Conversion Delta-Sigma Puissance du bruit dans la bande passante NTF ƒ B ƒ S / f Figure 10 : La distribution spectrale de la puissance de l erreur dans un modulateur delta-sigma Dans une conversion delta-sigma la première fonction est d augmenter la fréquence du signal d entré à la fréquence d échantillonnage ƒ S en remplissant les codes manquants avec la valeur d entrée maintenu (first order hold). Le modulateur delta-sigma implémente la caractéristique représentée dans la Figure 10 en tenant compte de l erreur de quantification faite sur l échantillon précédent. NBITS ƒ N OSR NBITS ƒ S Σ Modulation 1 bit ƒ S 1bit DAC LPF digital analog Figure 11 : Topologie du convertisseur N/A delta-sigma Lors du sur-échantillonnage on peut faire une interpolation plus complexe qui aide à éviter des changement abruptes du signal d entrée au modulateur ce qui permet au filtre de reconstruction de mieux recréer le signal analogique. Le modulateur le plus simple est une intégration discrète de pôle un. Mais toute combinaison d intégrateur et de résonateur peut être imaginée. L ordre du modulateur est déterminé par le nombre d éléments de base cascadés. Pour améliorer un modulateur d ordre donné, il faut optimiser les pôles, les zéros et le gain en pondérant les signaux. Intégrateur : 1 H ( z) = z 1 Résonateur : z H ( z) = z 1 + z -1 + Figure 1 : Les éléments de base de la fonction de transfert du modulateur z -1 15

En prenant la fonction de transfert d un modulateur complet comme étant H(z) et une quantification linéaire (Figure 8), on peut assembler le modèle représenté dans la Figure 13. La sortie v[n] peut être écrite en tant que v Figure 13 : Le modèle du modulateur delta-sigma [] n = H z) ( v[] n s[] n ) + e [ n] v[ n] = STF s[ n] + NTF e [ n] ( (15) rms La mise en évidence de la fonction de transfert du signal (Signal Transfert Function, STF) et celle du bruit (Noise Transfert Function, NTF) permet de les définir en tant que H ( z) STF = (16) 1+ H ( z) 1 NTF = 1+ H ( z) (17) Pour le calcul du rapport signal sur bruit final, il ne suffit pas uniquement de tenir compte du bruit dans la bande passante car il faut encore par la suite filtrer le bruit généré par la fonction de transfert du bruit qui se trouve en dehors de la bande passante. Tout bruit, qui n est pas assez fortement atténué en dehors de la bande passante décroît le rapport signal sur bruit. La pente de la fonction de transfert est de l ordre du modulateur fois +0 db par décade. Cela implique que le filtre doit être avoir l ordre du modulateur ou plus pour autant qu il s agisse uniquement de filtres à réponse impulsionnelle infinie. La limite de la fonction de transfert du bruit à ƒ S / est définie par H inf déterminant le gain du bruit à l infini. Une valeur plus grande que 1 de H inf permet d augmenter la bande passante. Il n est pas conseillé de prendre des valeurs plus grandes que 1.5 [4] pour des quantifications sur 1 bit. En calculant la puissance de l erreur qui résulte de la modulation [1] on obtient la formule (18) ou est le pas de quantification et n l ordre du modulateur. P e, Σ s[n] n π = OSR 1 n + 1 (n+ 1) = P e, PCM n π OSR n + 1 En comparant la puissance de l erreur d un modulateur delta-sigma à celui d un système PCM on peut identifier le rôle que joue le modulateur. On s aperçoit que l OSR a une forte influence sur la puissance du bruit dans la bande passante...5 Conversion N/A + t[n] _ e rms [n] H(z) u[n] + v[n] Comme déjà mentionné, la conversion N/A 1 bit n est pas nécessaire avec un filtre FIR seminumérique. Elle convertit le niveau logique en une tension analogique. La plus simple implémentation est d avoir un buffer CMOS qui fournit assez de courant pour que les temps de montée et de descente soient assez rapides. Toute différence entre le temps de montée et de descente induit une erreur de gain. Un problème fondamental de cette structure est le courant direct qui circule entre l alimentation et la masse pendant les instants de commutation. Pour éliminer ce problème on peut commander les transistors afin de pincer le courant avant d enclencher l autre transistor. Cette méthode en différentiel est appelée pont-h et montré dans la Figure 15. n rms (18) 16

in out φ p charge φ 1p φ 1n φ n Figure 14 : Conversion N/A à l aide d un buffer Figure 15 : Conversion N/A à l aide d un pont H En supposant que l horloge est idéale, il faut que les temps entre le flanc montant de l horloge et le changement de sortie du DFF qui enregistre le bit à convertir, soit le même pour une flanc montant et un flanc descendant à la sortie. Avec les DFF des cellules standard on n obtient pas ces spécifications, alors soit un DFF spécial est utilisé soit un circuit logique éliminant ce problème est implémenté...6 Filtre analogique de reconstruction Le filtre analogique de reconstruction reçoit le bitstream et doit en reconstruire le signal analogique, correspondant au signal numérique appliquée à l entrée du DAC. Les définitions des limites de ce filtre se déduisent directement à partir de la fonction de transfert du bruit du modulateur delta-sigma représenté dans la Figure 10. Le filtre idéal n atténue pas le signal dans la bande passante et atténue à l infini en dehors de la bande passante. La définition du filtre ne se fait pas uniquement dans le domaine fréquentiel ou il s agit de sélectionner la bande passante mais aussi dans le domaine temporel. Souvent il s agit de trouver un compromis entre les deux domaines. Pour des filtres passe-bas le domaine fréquentiel est défini par la fréquence de la bande passante ƒ PASS et la variation acceptable du signal dans celle nommé A PASS ainsi que la bande d atténuation limitée par ƒ STOP dont la suppression du signal est définie par A STOP. Entre les deux fréquences se trouve le domaine de transition qui dépend du type et de l ordre du filtre choisi. La définition dans le domaine temporel est souvent faite par le délai de l enveloppe. Magnitude [db] 0 A PASS A STOP 0 ƒ PASS ƒ STOP ƒ S / Fréquence [Hz] Figure 16 : Définition standard des limites d un filtre passe bas Figure 17 : Délai d enveloppe pour les filtres IIR de 3 ième ordre les plus connues Chaque signal entrant dans le filtre subit un certain délai. Pour un sinus pur, ce délai peut être représenté comme un déphasage, dépendant de la fréquence. Cette dépendance est en général exprimée par le délai de l enveloppe D (group delay) qui s exprime selon la formule (19). Supposons que nous avons des sinus à fréquences différentes appliquées tous en même temps à l entrée du filtre et que nous désirons que cette même composition de sinus sorte du filtre sans subir un changement quelconque. Un délai d enveloppe constant garanti que le déphasage est le même quel que soit la fréquence, donc le signal n est pas déformé. En ayant une composition de sinus dont le délai est toujours le même ça équivaut à ne pas changer la composition ce qui donne un délai de l enveloppe constant. Quelques délais d enveloppe pour des filtres IIR sont représentés dans la Figure 17. Les 17

filtres FIR à fenêtre symétrique on tous un délai d enveloppe constant équivalent à la moitié de la largeur de la fenêtre c est-à-dire son ordre. dϕ( f) D = (19) df Le filtre de reconstruction peut être une combinaison de plusieurs types dont leur cascade permet d obtenir les spécifications. Pour obtenir de bons résultats il est important de tenir compte des sensibilités aux variations technologiques. En général il y deux groupes de filtres : IIR (Réponse Impulsionnelle Infinie) FIR (Réponse Impulsionnelle Finie) Les avantages des filtres FIR sont la coupure des fréquences plus raide et le délai d enveloppe moins important que pour les filtres IIR. Le désavantage est l ordre important pour obtenir une coupure raide ce qui induit un circuit encombrant. Il y a plusieurs types de filtres IIR à mentionner Butterworth Bessel Chebyshev Elliptique Le filtre Butterworth permet d avoir une bande passante plate et une descente asymptotique de -0 db/déc par ordre qui se termine théoriquement à l infinie. A la fréquence de coupure l atténuation est de -3 db. A cause de ces qualités il est utilisable pour des cas généraux. Le désavantage par rapport aux filtres plus complexes est la faible pente de la fonction de transfert. Les filtres de Bessel ont l avantage que le délai d enveloppe dans la bande passante est constant. Le désavantage par rapport au filtre Butterworth est que le croisement de l asymptote de la pente et le 0 db de l amplitude est plus grand que la fréquence de coupure. Le filtre Chebyshev est décrit par des polynômes et permet d obtenir une descente plus importante par contre il y a des ondulations dans la bande passante, ce qui ne pose aucun problème lorsque l entrée du filtre est un sinus parfait à fréquence unique, par contre pour un signal d entrée à multiples fréquences la réponse est perturbée par les ondulations dans la bande passante. Une descente plus raide est obtenue par un filtre elliptique qui possède aussi des ondulations dans la bande passante, par contre l atténuation en dehors de la bande passante subit aussi des ondulations. Ses pôles sont répartis sur la partie gauche d une ellipse quand aux zéros ils sont sur l axe imaginaire. Les filtres FIR ne sont en général pas utilisés dans des circuits analogiques. Mais vu que le signal de sortie du modulateur est numérique, il est possible d implémenter un filtre FIR semi-numérique qui sort une valeur analogique. Dans ce cas la conversion N/A sur un bit en temps que bloc fonctionnel est superflue. Les FIR numériques sont en général assez simple à implémenter par contre il faut faire attention à la quantification des coefficient ainsi qu aux dépassement des limites des additionneurs. En utilisant plus de coefficient il est possible de créer un ordre plus grand, on obtient une sélectivité fréquentielle plus précise. La suppression du signal en dehors de la bande passante dépend de l ordre et du type du filtre par contre la plus grande sensibilité revient aux erreurs de quantification des coefficients et au rapport entre le coefficient le plus petit et le plus grand. Le Figure 18 montre une implémentation des filtres FIR numériques. 18

x[n] z -1 znz -1 z -1 z -1 α 0 α 1 α N-1 α N + y[n] Figure 18 : Structure d un filtre FIR (Direct Form I) Figure 19 : Réponse en amplitude d un filtre FIR à 6 taps et de son filtre IFIR Il existe plusieurs méthodes de design des filtres FIR à mentionner : Les filtres à ondulations équilibrées (equiripple) et les filtres de fenêtre plus conventionnels. Les filtres à ondulations équilibrées essayent des minimiser les coefficients pour les spécifications déterminés dans la Figure 16. Cette définition n est pas forcément la meilleure, notamment pas dans le cas d un modulateur delta-sigma qui réagit comme filtre passe haut pour le bruit de quantification. En utilisant un délai de plusieurs échantillons entre les coefficients on élargit la fenêtre temporelle ce qui induit un rétrécissement en fréquence. On les nomme filtre d interpolation FIR (IFIR). Si on a par exemple un délai de deux échantillons on rétrécit la réponse fréquentielle de 0 à ƒ S aux fréquences 0 à ƒ S /. Le résultat peut être comparé sur la Figure 19. L avantage est que, la bande de transition est ellemême aussi rétrécie et permet ainsi une sélection plus précise des fréquences. Ces filtres IFIR sont uniquement utilisables quand on peut garantir qu il n y a pas de signaux dans les trous d atténuation ou si par la suite ceux-ci sont eux-mêmes supprimés. L implémentation des filtres peut être répartie comme suite : IIR - Passif (RLC) - Actif (RLC, Gm-C, Switched Capacitor, Log/Anti-Log) FIR - Semi numérique La plus simple implémentation des filtres IIR est réalisable à partir des éléments passifs. Une combinaison RLC forme alors un élément qui détermine les pôles et les zéros. La fréquence de coupure est déterminée par les valeurs des éléments passifs et difficiles à obtenir précisément. Des fréquences de coupure basses demandent des grandes valeurs aux éléments ce qui peut devenir très encombrant sur la puce non seulement pour des capacités mais aussi pour des inductances qui posent encore d autres problèmes de réalisation. Un problème fondamental est que la conversion 1 bit doit être capable de piloter la première capacité. Les implémentations actives ont toujours une pièce critique étant l amplificateur opérationnels qui doit avoir une grande linéarité afin d obtenir une bonne linéarité du signal de sortie. Les filtres FIR peuvent être implémentés comme des filtres semi numériques c est-à-dire que le décalage se fait dans le domaine numérique par contre la sommation des courants pondérés est faite analogiquement. L avantage de cette méthode par rapport à une conversion multi-bit est que la linéarité est préservée car la conversion à un bit est linéaire, et que de la somme des caractéristiques linaires résulte à nouveau une caractéristique linéaire. En supposant qu il n y a pas de capacités, le filtre maintient la valeur de la sortie analogique pendant une unité de temps ce qui revient à un filtre rectangulaire dans le temps et équivaut à un filtre sinc dans le domaine fréquentiel avec le premier croisement du zéro étant à la fréquence d échantillonnage. Dans le cas d un grand sur-échantillonnage, cet effet ne sert pas à l atténuation du signal dans les régions critiques. 19

3 Conception 3.1 Le système de test de convertisseur A/N intégré Les tests statiques se font à l aide d une rampe. Elle peut être généré analogiquement [5] ce qui a l avantage que la génération du stimulus utilise relativement peu de surface sur la puce. Par contre la souplesse du type de stimulus n existe pas et il est assez difficile d obtenir la précision requise qui est assez sévère puisqu elle doit être supérieure à celle du convertisseur A/N. Une plus grande souplesse est obtenue en utilisant un convertisseur N/A et un contrôle qui génère le stimulus numériquement. Pour la rampe cela revient à un simple compteur par contre pour des stimuli plus complexes on peut aussi avoir une table qui enregistre les données du stimulus. Pour des raisons de souplesse et de simplicité la deuxième solution est envisagée. La Figure 0 montre l approche choisie. Elle contient un convertisseur N/A générant le stimulus et un bloc de contrôle. Il est impératif que la résolution du convertisseur N/A soit supérieure à celui du convertisseur A/N afin de pouvoir déterminer l erreur de celui-ci. La différence de résolution doit être au moins bits [1, p.10] mais pour obtenir des résultats plus précis la différence doit être plus grande. Circuit intégré Signaux de contrôle DAC 16 bits Contrôle Entrée analogique ADC 1 bits Sortie numérique Figure 0 : Blocs fonctionnels du système de test d un convertisseur A/N intégré Supposant que le bloc de contrôle n a pas de problèmes de fonctionnement puisqu il est purement numérique, il reste à tester la qualité du convertisseur N/A ainsi que celle du convertisseur A/N pour garantir que le test intégré fournit des résultats valables. 3. Le convertisseur N/A Delta-Sigma 3..1 Conception du modulateur Σ dans Matlab La conception du modulateur delta-sigma a été fait avec la Toolbox de [11]. Elle permet d évaluer théoriquement les paramètres du modulateur et ainsi de les simuler pour une structure de modulateur donnée. L approche consiste à évaluer la fonction de transfert du bruit d un modulateur avec les pôles et les zéros optimisés, d en déduire les coefficients pour une implémentation, de les limiter en précision en les quantifiant et ensuit de réévaluer la fonction de transfert du bruit. De cette manière on peut se rendre compte de la limitation induite en quantifiant les coefficients. Par contre on ne peut pas en déduire la précision du modulateur complet, car les sommations des valeurs pondérées sont toujours non limitées. Toutefois l erreur de la réponse du modulateur est plus sensible à l erreur induite par la quantification des coefficients que par les erreurs faites sur la sommation ce qui nous donne une très bonne estimation de la qualité du modulateur. Le modulateur théorique est déterminé par les paramètres suivants : L ordre Le sur-échantillonnage OSR Le gain à l infini H inf de la fonction de transfert du bruit L influence des paramètres est expliquée dans les chapitres..3 et..4. En ayant uniquement une limitation sur le SNR le choix des paramètres est libre, néanmoins il est préférable de minimiser 0

l OSR afin d avoir une bande passante plus grande, ce qui réduit le temps de mesure du système. Vu que l ordre détermine l amplitude d entrée maximale pour garantir une certaine stabilité, l ordre ne devrait pas dépasser trois. L OSR découle ensuite du SNR car le gain à l infinie H inf ne change pas significativement la qualité du modulateur, car elle est limitée à 1.5 pour des systèmes 1 bit. La fonction de transfert d un modulateur de troisième ordre avec un sur-échantillonnage de 18 et un gain à l infini de 1.3 avec une optimisation des pôles est décrit dans la formule (0). 3 ( z 1) H P ( z) = (0) ( z 0.77) ( z 1.708z + 0.7684) Une optimisation des zéros déplace deux zéros de l origine vers la limite de la bande passante ce qui est montré dans la Figure 1 - permettant de diminuer la moyenne du bruit dans la bande passante donc d augmenter le SNR (cf. Figure 3). L optimisation des zéros les écarte en restant fidèle au cercle unitaire. La fonction de transfert s écrit alors H PZ ( z) = ( z 1) ( z z+ 1) ( z 0.77) ( z 1.708z 0.7683) + (1) La quantification des coefficients est déterminée par le nombre de bits qui forment la fraction de la représentation numérique du coefficient, car les valeurs sont plus petites que un. Si le nombre de bits de la fraction est grand il est possible de s approcher le la fonction de transfert H PZ, mais des essais ont montré qu il faut au moins 10 bits pour que les zéros optimisés soient maintenus. Dans des technologies CMOS modernes cela ne pose pas trop de problème lors de l implémentation, par contre dans ce cas il est préférable de diminuer le nombre de bits de la fraction et de faire tourner le modulateur à une fréquence plus haute ce qui donne un OSR plus grand pour une bande passante donnée. La fonction de transfert à coefficients point fixe avec une fraction de 6 bits est décrite dans la formule (). 3 ( z 1) H FP ( z) = () ( z 0.7376) ( z 1.755z + 0.8117) Pour optimiser en surface le circuit résultant, les coefficients sont implémentés comme constantes, ce qui permet d optimiser le circuit lors de la synthèse. Le circuit devient plus petit si on diminue le nombre de bits des coefficients mais cela influence aussi la caractéristique du modulateur. On peut encore optimiser le circuit en choisissant une bonne combinaison de la structure d implémentation. Le coefficient le plus simple à implémenter est un zéro. Si on a uniquement un 1 et que les autres valeurs sont à 0 cela revient à un simple décalage de la variable à multiplier, par contre il est encore nécessaire de faire l addition avec les autres valeurs pondérés. La fraction formée uniquement de 1 peut être généré en soustrayant la pondération qui est le complément à deux de la variable. Le pire coefficient à implémenter a un nombre égal des 0 et des 1. 1

Figure 1 : Prédiction de la fonction de transfert de bruit Figure : Lieu des pôles et des zéros Données du modulateur : Ordre : 3 OSR : 18 H inf : 1.3 Implémentation : CIFF Quantification : 1 bit Fraction des coeff. : 6 bits Données de la FFT : Nombre de bins : Type de fenêtre : NBW : 64k Hanning 1.5 / 64k Figure 3 : SNR du modulateur Σ en dépendance de l amplitude du signal d entrée Figure 4 : Spectre fréquentiel de la NTF avec en entrée un sinus (0.5FS, /3BW)

3.. Conception du filtre de reconstruction 3...1 Problèmes des filtres RLC passifs Avec des éléments RLC passifs il est possible de créer des pôles et des zéros. En n utilisant pas de résistances on n a théoriquement pas de perte de tension sauf sur la résistance interne de la source, et bien entendu sur la résistance de charge. Le pont résistif formé par ces deux résistances induit une perte de tension équivalant au rapport des résistances. En supposant une résistance de charge de 10 MΩ et une précision de 100 db il faudrait que la résistance interne soit en dessous de 100 Ω. Figure 5 : Filtre Butterworth passif de 3 ième ordre avec une fréquence de coupure de 400 khz Le problème est de pouvoir suivre le signal numérique en chargeant la première capacité. Ce courant doit être fourni par un transistor (cf. Figure 14, Figure 15) qui a lui-même une résistance R souvent définie par l inverse de la résistance étant la conductance Gm. En prenant un signal numérique de 100 MHz et son temps de montée et de descente étant un dixième de la période, la constante de temps est La résistance et la conductance sont alors τ = R C = 1 / Gm C = 1ns (3) R = τ / C = 1ns / 0nF = 0.05 Ω (4) Gm = 1/ R = 0 S Dans le meilleur des cas le transistor opère en faible inversion ce qui donne le courant suivant qui passe le transistor. I D = nu T Gm 30mV (0S) = 1A (5) Ces 1 A sont beaucoup trop de courant pour un circuit CMOS standard ce qui rend irréalisable le circuit. Un autre problème est le délai d enveloppe qui n est pas négligeable pour des filtres Butterworth d autant moins que l ordre est grand. Les filtres FIR n ont pas ces problèmes car le délai d enveloppe est constant donc le signal dans sa composition reste le même. 3... Comparaison de quelques publications Une comparaison de publication utilisant des filtres FIR semi-numériques nous fournit les résultats assemblés dans la Tableau 1. Il est à constater que la fréquence de coupure du filtre IIR est toujours en dessus de la bande passante du modulateur, pour éviter que le délai de l enveloppe (cf. Figure 17) ne pose des problèmes dans le domaine temporel. Plus ces deux fréquences sont éloignées, moins il y a des chances qu il y ait une grande différence entre le délai d enveloppe pour les fréquences de la bande passante. Dans les publications [6] et [7] celui-ci est 10 fois respectivement 6 fois la fréquence de la bande passante parce que le filtre passe pas doit seulement faire effet quand l atténuation du filtre FIR seminumérique n est plus capable d atténuer suffisamment la fonction de transfert du bruit du modulateur ce qui est notamment le cas dans la zone d image de la bande passante centrée autour de la fréquence d échantillonnage. Il est clair que l atténuation du filtre IIR a préférablement lieu auparavant, mais cela est accepté au bénéfice d un délai d enveloppe constant sur la partie pas ou faiblement atténuée. Pour les filtres FIR de courrant la conversion courrant tension nécessite un amplificateur 3

opérationnel qui peut directement être utilisé pour créer un filtre RC actif. Ceci explique l ordre du filtre IIR et l implémentation du filtre IIR et FIR dans ces deux publications. La référence [8] est différente car le modulateur a un très bas sur-échantillonnage pour obtenir une large bande passante. Un grand SNR est dans ce cas fournit par l ordre du modulateur qui est 4. Vu que le rapport des fréquences de l échantillonnage et de la bande passante n est pas aussi grand, il est possible d obtenir des résultats du FIR semblables aux deux publications précédents avec un ordre plus petit. Le problème de l image de la bande passante est dans ce cas d autant plus important. C est pour cela qu il est nécessaire d avoir un filtre IIR qui atténue suffisamment cette partie. Dans une dernière publication ils ont réussi à faire un filtre IFIR de grand ordre avec uniquement 9 coefficients qui ne sont pas à zéro. Malheureusement il est complètement inutile comme filtre de reconstruction car il serais extrêmement difficile de filtrer les images du filtre IFIR qui sont très proches l un de l autre du a une importante interpolation. Ceci est irréalisable en voulant éviter une différence de délai d enveloppe trop importante. Donc uniquement un filtre idéal de grand ordre pourrais relever ce défi qui n est pas réaliste. Dans la publication ils ont soigneusement évité de démontrer les problèmes, ce qui explique qu ils n ont pas conçu le filtre IIR qui suit. Tableau 1 : Comparaison de publications utilisant des filtres semi-numériques de reconstruction Σ FIR IIR Résultats Spécifications Référence Fs [Hz] OSR Ordre Taps Ordre Ordre Fréquence de coupure Implémentation Implémentation Bande passante [Hz] DR [db] SNR [db] SNDR [db] Processus [µm] Surface [mm ] [6] 7.6M 176 18 18 Current 1 00k ARC 1 k 94 91 88 1.0 3.0 [7] M 56 3 64 18 Current 1 4k ARC 1 3.9k 8 0.50 0.5 [8] 35M 16 4 67 67 SC 1 4 M SC 1.1M 80 78 74 0.18 1.0 [9] 65M 3 6 9 4 Current - - - 1.5M 98 1.00 10.0 3...3 Précision des coefficients du filtre FIR semi numérique La qualité du filtre semi numérique est limitée par le mésappariement et le rapport entre les coefficients. Chaque erreur sur ces paramètres affaiblit l atténuation en dehors de la bande passante. Le rapport entre les coefficients dépend du type de filtre FIR choisi, mais pour une partie majeure l affaiblissement est environ le même. Les erreurs des valeurs absolues peuvent être compensées par un ajustage d un gain global s appliquant sur touts les coefficients. Σ Modulator z -1 z -1 z -1 digital analog bias bias bias α 1 α I 1 I I k QN 1 Q 1 QN Q QN k Q k α k Current-voltage converter + 1st order LP filter Out + Out - Figure 6 : Topologie simplifié d un filtre semi numérique au niveau transistor 1 SC : ARC : Switched Capacitor Active RC Filter 4

L amplificateur opérationnel qui fait la conversion courant-tension et qui implémente un filtre passe bas de premier ordre doit avoir une bonne linéarité pour maintenir la qualité du filtre. Le mésappariement des coefficients dépend de celui des transistors implémentant la pondération. Si on a un courant de référence I 0 et le coefficient α k, alors de courant partiel I k s écrit I k = α I (6) k 0 En supposant que le courant décrit une gaussienne avec une moyenne de I k et une variance de σ k, alors le courant peut être décrit étant la moyenne plus une erreur I k. I I k = Ik + Ik = Ik + Ik 1 k Le transistor fournissant le courant I k est en forte inversion pour implémenter le miroir du courant, ce qui nous donne un courant de drain directe de β W ID = ( VGS VT) avec β = µ Cox (8) L Selon le modèle de Pelgrom [10], le mésappariement influence le facteur β et V T. Si on ne tient pas compte du gradient circulaire induit lors de la production du wafer, on peut simplifier les formules pour la variance du β et de V T étant A β β σ = β W L A VT σ ( VT ) = W L Les constantes A β et A VT dépendent alors d une différence de la charge de déplétion, des implantations, des charges piégées dans l oxyde et de la granularité de l oxyde. Pour rendre les paramètres indépendants les dérivées partielles du courant sont calculées 1 1 di D = ( VGS VT) dβ β ( VGS VT) dvt 1 1 ( VGS VT ) dβ β ( VGS VT ) dv di T D dβ dvt = = I β β ( VGS VT ) ( VGS VT ) β V V D GS T La variance du courant exprimé par les variances de β et V T s écrit I D β 4 σ = σ + σ ID β ( VGS VT) ( V ) Les valeurs des constantes A β et A VT peuvent être calculées à partir des données du mésappariement du processus [13, p.9ff]. Pour des designs analogiques la longueur de la grille est supérieure à la taille minimale ce qui nous donne une constante A VT de 1.9mV -.3mV pour le processus UMC18 Mixed Mode. Sa constante A β doit être calculée à partir du courant et donne environ 1%. La racine carrée de la variance du courant de drain est directement donnée dans les spécifications du mésappariement ce qui donne déjà une bonne estimation de ce qui est réalisable en termes de précision. Pour une forte polarisation et des transistors de taille raisonnable, proche l un de l autre, il est possible d obtenir des erreurs qui sont environ de 0.4% pour deux sigma, c est-à-dire une intervalle de confiance de 95%. T (7) (9) (30) (31) 5

3...4 Effets du mésappariement des coefficients Comme nous l avons déjà mentionné, le mésappariement des coefficients lors de l implémentation réduit la qualité du filtre FIR. Pour mettre en évidence l influence sur la réponse du filtre, chaque coefficient a été choisi aléatoirement, en respectant la distribution normalisée avec σ = 0.%. Uniquement la valeur minimale et maximale des 104 filtres simulés est affichée dans la figure cidessous. Figure 7 : Effets sur la réponse du filtre du au mésappariement normalisé des coefficients La moyenne et l écart-type de la distribution normale dépendent du courant de drain, déterminé par les dimensions des transistors de pondération. Dans la Figure 7 l écart-type a été constant. En prenant le plus petit écart-type qui est à priori attribué au plus grand courant, comme écart-type pour tout courant, on obtient une prédiction optimiste de l influence du mésappariement. 3...5 Considérations pour le design du filtre On a vu que la fréquence de coupure du filtre analogique devrait être supérieure à celle de la bande passante afin d éviter le changement de la composition du signal par le délai d enveloppe. De plus il est plus économique d uniquement implémenter un filtre passe bas de premier ordre qui peut directement utiliser l amplificateur opérationnel de la conversion courant - tension. Pour analyser la combinaison du filtre FIR semi numérique et du filtre IIR analogique, des zones de fréquence sont définie afin de décomposer le problème. La Figure 8 montre les atténuations des filtres et la réponse de la fonction de transfert du bruit du modulateur. Le modulateur est le même développé auparavant. Le filtre IIR est un Butterworth de ième ordre et le filtre FIR se déduit d une fenêtre Kaiser de largeur deux définie par 56 coefficients. La bande passante du convertisseur N/A est celle du modulateur Σ voir moins, car en dehors de la bande passante du modulateur le bruit est déjà trop important. Pour éviter tout problème la fréquence maximale de la bande passante coïncide avec la fréquence ƒ STOP indiquant le début de l atténuation. Dans ce cas la bande passante est diminuée par la largeur de la bande de transition du filtre FIR. De ce fait, il est favorable que celle-ci soit petite ce qu on peut obtenir par un grand ordre et le bon type du filtre. Dans la deuxième partie uniquement le filtre FIR est responsable de l atténuation de la fonction de transfert du bruit. Si l atténuation du filtre FIR n est pas assez importante, l unique possibilité consiste à diminuer la fréquence d atténuation ƒ STOP ce qui implique que la bande passante du convertisseur N/A doit aussi être diminuée. 6

Après la fréquence de coupure du filtre IIR, celui-ci et le filtre FIR forment une certaine pente qui doit être du même ordre voir plus grand que celle de la fonction de transfert du bruit du modulateur pour l atténuer assez fortement. Si cela n est pas garanti et que l atténuation du filtre FIR dans la bande d atténuation est assez forte, il suffit d avoir une pente moins importante. Dans la pratique il est improbable qu on ait un filtre FIR qui atténue assez fortement. En se basant sur le modulateur déjà développé il faudrait que le filtre FIR soit capable d atténuer à environ -80 db. Avec le mésappariement entre les courants et la quantification des coefficients, il est improbable d obtenir ce résultat. On peut établir comme règle approximative que la valeur absolue de la pente de la cascade des filtres soit la même que celui du bruit. La dernière zone fréquentielle n est pas du tout critique lorsque l OSR du modulateur est assez grand, car l image de la bande passante est assez éloignée. Si ce n est pas le cas il faut que l ordre du filtre IIR soit assez grand pour atténuer l image de la bande passante. Dans ce cas on peut aussi bénéficier du filtre sinc formé par le filtre FIR semi-numérique. Figure 8 : Influence des filtres FIR et IIR sur la fonction de transfert du bruit Pour améliorer le résultat, on peut essayer d aplatir le délai d enveloppe du filtre IIR soit par une combinaison de plusieurs filtres IIR soit par un ajustage préalable dans le filtre FIR. Il est cependant improbable d obtenir un aplatissement qui se prolonge plus loin que la bande passante. 3..3 Simulation de la conversion N/A Σ dans Simulink 3..3.1 Le modulateur Σ Le modèle Simulink permet de faire des simulations qui incluent le filtre numérique ainsi que le filtre analogique. Au niveau du modulateur le modèle Matlab ne tient pas compte des limitations induites par la quantification des signaux internes. Vu qu uniquement les coefficients on été quantifié et qu intèrieurement toute précision a été préservée, on s attend à avoir une augmentation du bruit du modulateur. Si le modèle VHDL est implémenté de la même manière il devrait générer les mêmes résultats que le modèle Simulink ayant les mêmes limitations. Pour cela il est nécessaire d effectuer des calculs à point fixe. Une implémentation CIFF (Cascade-of-integrators, feedforward form) de troisième ordre est montrée dans la Figure 9. Chaque coefficient et chaque limitation de point fixe sont ajustables par le masque du modulateur. Le résultat de ce modulateur est montré dans la Figure 47. 7

Figure 9 : Modulateur delta-sigma de 3 ième ordre implémenté en structure CIFF dans Simulink 3.3 Bloc de contrôle 3.3.1 Considérations générales Le bloc de contrôle contient deux parties dont une marche en temps réel pour recevoir les données du convertisseur A/N et évaluer le compteur de transition et l autre partie marche en poste traitement. Pour diminuer la surface tout bloc destiné au post traitement des données est optimisé en surface notamment la multiplication et la division sont implémenté séquentiellement et sont réutilisées le mieux possible. 3.3. Initialisation de la détection de transition Pour l initialisation de la détection de transition il faut que le cas A et que le cas B de la Figure 3, affichés plus en détail dans la Figure 30, soient traités s il s agit d une rampe montante. Dans les deux cas il faut que le registre interne soit initialisé à la valeur minimale du code ADC, ce qui ne doit pas forcément être le bord de l échelle quand il s agit de mesurer une zone de fonctionnement du convertisseur A/N, mais ce cas est traité uniquement pour la simplicité. Le cas A nécessite une mise à jour de la valeur interne du code ADC qui peut uniquement être incrémenté, sans que la valeur du code DAC soit incrémenté. Pour cela la détection de transition entre dans un état d initialisation qui permet de bloquer la valeur DAC jusqu à ce que l initialisation soit terminée par une transition de code (cf. Figure ). La suite est de nouveau commune aux deux cas ou il s agit d enregistrer la valeur minimale. Ceci doit avoir lieu quand la valeur est égale à la valeur minimale enregistrée comme limite de mesure. Ensuite la mesure commence en incrémentant le code DAC tout en faisant constamment le test si une transition du code a lieu. Le compteur de transition ne tient pas compte de ces premières mesures car sinon l erreur de la DNL est faussé par cette valeur qui peut être très petite. Cette initialisation du compteur de transition se termine par la première transition après l enregistrement du minimum. Suit la mesure normale. 8

3 4 code ADC 1 ADC 5 DAC cas A 3 5 cas B code DAC 1. Reset des registres et des compteurs. Initialisation de la détection de transition (Le code ADC interne est mis à jour) 3. Enregistrement du point minimal du à l éloignement du bord de l échelle ADC (Dans le cas A l enregistrement a lieu dès que l initialisation est terminée) 4. Initialisation du compteur de transition pour avoir une valeur DNL correcte 5. Mesure normale Figure 30 : Les étapes de l initialisation de la détection de transition illustrés pour deux cas 9

4 Implémentation 4.1 Le convertisseur D/A Delta-Sigma 4.1.1 Le modulateur Σ Le modulateur est implémenté de la même manière que le suggère le model Simulink. La structure interne ressemble donc à la Figure 9. La taille du signal d entré est définit par NDAC. Les registres et les additionneurs on tous la même taille définit par NBITS qui doit être adapté selon les coefficient, qui sont aussi à spécifier comme paramètre générique, pour ne pas avoir de débordement des additionneurs pendant l opération. La quantification des coefficients est définie par NCOEFF et il faut que les coefficients quantifiés réels soient multipliés par NCOEFF afin de pouvoir les passer à l entité comme valeur entières ce qui est nécessaire pour garder le bloc synthétisable. De plus il est possible de définir par le paramètre SNFRAC la fraction calculé et enregistré en interne. 4. Le bloc de contrôle 4..1 La structure La structure peut être départagée en plusieurs sous-blocs. La machine d état et le compteur de rampe forment la base du contrôle. Afin d avoir le bon format des données à fournir au convertisseur N/A, il faut une petite conversion de non-signé en signé. La détection de transition a ses propres sous-blocs pour accomplir ces tâches. Elle commande les deux enregistrements des points extrêmes et fournit des données pour le calcul de la DNL. Les autres données sont fournies à partir des registres qui stockent les points extrêmes. Chaque test pass/fail possède son propre bloc et obtient les valeurs des calculs précédents. L allocation des ressources, la sélection de l entrée de la ressource, les ressources elles-mêmes ainsi que la programmation et la lecture sérielle ne sont pas représentés dans la topologie simplifiée présentée dans la Figure 31. I_CTRL I_SWEEP_CNTR I_SCNTR_TO_DAC I_PT_MAX I_PT_MIN I_FSM I_CALC_GAIN I_CALC_OFFSET I_PF_GAIN I_PF_OFFSET I_PF_ALL I_CODE_TRANS I_CALC_DNL I_PF_DNL Figure 31 : Topologie simplifié des blocs fonctionnels du contrôle de mesure 4.. La machine d état La machine d état (Finite State Machine, FSM) a de multiples tâches à accomplir qui se résument à: Contrôler les sous-blocs Faire l allocation des ressources Définir les décalages des registres à programmer et/ou à lire 30

Le contrôle des sous-blocs se fait essentiellement par des bits de démarrage (*_start, *_dotest) dont la réaction, s il y en a, est faite sur un bit de terminaison (*_done). L allocation des ressources qui sert au partage des ressources entre les blocs du calcul et de la définition des décalages des registres se déterminent à partir de l état de la machine d état. rst_l = 0 S0 proglec = 1 S1 proglec = 0 det_done= 1 S S3 S4 dac_done= 1 S5 pts_found = 1 S6 S7 S8 calc_gain_done= 1 calc_offset_done= 1 calc_dnl_done= 1 S9 S10 proglec = 0 proglec = 1 S11 Etat S0 S1 S S3 S4 S5 S6 S7 S8 S9 S10 S11 Description Reset Programmation Incrémenter le compteur Démarrage de la conversion N/A Démarrage de la mesure Attendre la fin de la mesure Calcul & test p/f du gain Calcul & test p/f de l offset Calcul & test p/f de la DNL Test pass/fail All Etat d attente Lecture Figure 3 : La machine d état du bloc de contrôle L état de reset S0 existe uniquement comme noeud de branche pour savoir si on va en mode de programmation ou si on commence directement la mesure. Il ne possède pas d autre fonctionnalité et dure toujours un cycle d horloge. En programmation touts les registres de limite sont décalés à chaque cycle d horloge. Il est impératif de programmer touts les registres. Notamment la plage de mesure et le type de mesure doivent être défini correctement afin de garantir une mesure correcte. La suite est l initialisation de la détection de transition (ctd_init = 1 ) qui se fait sur le cycle de mesure et démarré sur le premier (first_meas = 1 ). L initialisation de la détection de transition parcours le cycle de mesure autant de fois qu elle veut, mais cette information ne serais pas disponible à la machine d état. Le cycle de mesure contient les états S à S5. L état S a comme but d incrémenter le compteur de rampe (sweep_cntr). Dans la prochaine étape, la conversion N/A est enclenchée mais elle s effectue avec un cycle d horloge de retard, car la valeur du compteur de rampe doit être convertie en complément de deux ce qui nécessite un cycle d horloge. L état suivant S4 attend la fin de la conversion N/A et démarre les mesures à la sortie du convertisseur A/N lorsque c est le cas (dac_done = 1 ). Le nombre de mesures déterminées par le paramètre générique NB_MEAS est alors effectué et sa fin indiqué par la détection de transition (det_done = 1 ). La mesure elle-même démarre sans que la machine d état le sache, mais cela n affecte pas son comportement car le cycle de mesure reste le même. La fin de la mesure est déterminé par la découverte du dernier point extrême et est indiqué par pts_found = 1. A ce point la mesure est terminée. 31

Suivent les calculs et les tests selon leurs dépendances des valeurs nécessaires et les disponibilités des ressources. Les dépendances découlent de la topologie simplifiée présentée en Figure 31. L allocation des ressources est relativement simple puisqu il n est jamais possible de faire deux calculs en même temps et que les tests pass/fail ne nécessitent pas de ressources communes. Le dernier état S11 est utilisé pour lire les données. La possibilité de retourner en état d attente S10 permet de lire les données en morceau (p.ex. par registre) afin de minimiser l utilisation en mémoire qu un microcontrôleur nécessiterait pour extraire les données. 4..3 Implémentation de la détection de transition 4..3.1 Structure first_meas I_CODE_TRANS I_CT_DET_PT pts_found store_pt_max store_pt_min det_start det_init_ctd adc_in I_CT_DET ct_done ct_trans curr_adc_val I_CT_CNTR cntr_val_max cntr_val_min curr_adc_val Figure 33 : La structure simplifié de la détection de transition 4..3. Initialisation de la détection de transition Il faut que la détection de transition soit initialisée afin de pouvoir garantir que la valeur minimale ou maximale, en cas d une mesure ascendante respectivement descendante, soit correcte. Ceci est possible en mettant à jour la valeur curr_adc_val tout en gardant les pins ct_done et ct_trans à un niveau bas ce qui n impose pas de réaction du compteur de transition et de la détection des points maximales. L initialisation est démarrée par la machine d état en mettant le pin det_init_ctd à 1. 4..3.3 Fonctionnement de la détection de transition La détection de transition fait un certain nombre de mesures déterminées par NB_MEAS qui est accumulé dans le compteur cntr_meas. Les valeurs mesurées du convertisseur A/N (adc_in) sont comparées au registre interne (reg_curr_adc_code) et lorsque la valeur mesurée est plus grande, au cas d une mesure ascendante, le compteur cntr_nc est incrémenté. Si le compteur cntr_nc à la fin des mesures (ct_done = 1 ), est plus grand que la moitié du nombre de mesures effectuées, le registre interne tenant la valeur du convertisseur A/N reg_curr_adc_code est incrémenté afin de mettre à jour la valeur. Dans ce cas il s agit d une transition de code ce qui est indiquée par ct_trans = 1. Ceci implique qu il est uniquement possible de mettre à jour la valeur interne par le prochain code. Au cas d un saut de code du convertisseur A/N, il n est pas possible de le détecter. 3

rst_l clk start ctd_init reg_curr_adc_code curr_adc_val <NADC-1:0> adc_in <NADC-1:0> cntr_nc code_trans logic NB_MEAS/ meas_asc cntr_meas NB_MEAS-1 done Figure 34 : La structure interne de la détection de transition Le compteur de transition compte le nombre de transitions entre les détections de transition. Vu qu il est possible que la DNL soit déterminée à partir de la différence entre la moyenne et la valeur minimale ou maximale du nombre entre les transitions, il est impératif d enregistrer la valeur minimale et maximale du compteur de transition. Les deux sont accessibles par cntr_val_min et cntr_val_max. La valeur DNL peut être faussée par le fait que la valeur minimale du nombre de code DAC entre les transitions de code ADC est limitée à un. Le fonctionnement du compteur de transition est montré dans la Figure 35. Figure 35 : La simulation du fonctionnement du compteur de transition La détection du point minimal et maximal se fait par l entité I_CT_DET_PT. L enregistrement des points est commandé par les pins store_pt_min et store_pt_max en les mettant à 1. Quand les deux points extrêmes sont détectés, le pin pts_found est mis à 1. 4..4 Les calculs des tests statiques 4..4.1 Le gain Le calcul du gain se fait selon la formule (3) qui peut être décomposée en trois parties : Calcul de la différence des valeurs ADC (y diff = y max - y min ) Calcul de la différence des valeurs DAC (x diff = x max - x min ) Calcul de la division (gain = y diff / x diff ) Pour diminuer la surface nécessaire, les ressources sont partagées entre les différentes étapes du calcul ainsi qu entre les calculs eux-mêmes. Vu que le calcul de la DNL nécessite la division par le gain, il est favorable de calculer l inverse du gain igain à ce stade et de le multiplier dans le calcul de la DNL. Les paramètres génériques sont les tailles des deux types d entrée NDAC et NADC ainsi que la taille sur laquelle le gain ainsi que l inverse du gain sont représentés. La fraction du gain NGAIN_FRAC est par défaut NGAIN-1 alors le gain et l inverse du gain peuvent représenter des valeurs qui sont strictement plus grand que 0.5 et strictement plus petit que 1.5. En tenant compte de la quantification NGAIN _ FRAC NGAIN _ FRAC paramétrée, la valeur minimale est 0.5 + et la valeur maximale est 1.5. 33

S0 rst_l = 0 start = 1 div_done = 1 S1 S S3 S4 S7 S6 div_done = 1 S5 Etat Description S0 Etat idéal S1 Différence des valeurs ADC (y max - y min ) S Différence des valeurs DAC (x max - x min ) S3 Démarrage de la division S4 Attente sur le résultat de la division stockage comme gain S5 Différence des valeurs ADC (y max - y min ) S6 Démarrage de la division S7 Attente sur le résultat de la division stockage comme igain Figure 36 : La machine d état du calcul du gain La fonction centrale est de faire la division entre le registre reg_tmp et le résultat de la soustraction. De cette manière il n est pas nécessaire d enregistrer les deux différences pour la division. Afin de ne pas utiliser un multiplexage des entrées de la division, il est inévitable de recalculer la différence des valeurs ADC. De cette manière il ne faut pas de ressources supplémentaires, par contre un peu plus de temps puisqu il s agit de refaire un calcul effectué auparavant. Vu que le calcul de la différence se fait dans un cycle d horloge, le surplus de temps est négligeable par rapport au nombre de cycle d horloge nécessaire pour faire la division. Quand la division est faite, indiquée par div_done = 1, le résultat est enregistré comme gain dans le registre reg_gain respectivement l inverse du gain dans le registre reg_igain. Lors de l enregistrement du gain, il faut aussi enregistrer le résultat de la soustraction dans reg_tmp avant de commencer la soustraction dans l état S5. Le registre avec la valeur du gain reg_gain est lisible sériellement en cas d état idéal S0. rst_l clk start done shift_cmd shift_in shift_out pt_min_adc <NADC-1:0> FSM gain <NGAIN-1:0> pt_min_dac <NDAC-1:0> igain <NGAIN-1:0> pt_max_adc <NADC-1:0> pt_max_dac <NDAC-1:0> sa_adding sa_ min sa_sub sa_result div_start div_divider div_dividend div_result div_done Figure 37 : La structure interne du calcul du gain 4..4. L offset Le calcul de l offset décrit dans la formule (5) peut être décomposé en mult_product = gain val_dac reg_tmp = gain DAC_VEQZ + val_adc reg_tmp = reg_tmp ADC_VEQZ reg_tmp = reg_tmp mult_product 34

La multiplication nécessite relativement beaucoup de temps, elle est démarrée au début du calcul de l offset c est-à-dire à l état S1. En attendant le résultat de la multiplication des étapes intérimaires sont effectuées. Les ressources de l addition/de la soustraction et de la multiplication n ont pas de dépendances et peuvent, par conséquent, être utilisés en même temps. A l état S1 on peut alors démarrer une addition. S0 rst_l = 0 start = 1 S1 S S3 mult_done = 1 Etat S0 S1 S S3 Description Etat idéal - Démarrage de la multiplication gain val_dac - Addition et enregistrement de reg_tmp <= gain DAC_VEQZ + val_adc Soustraction et enregistrement de reg_tmp <= reg_tmp ADC_VEQZ Soustraction et enregistrement de reg_tmp <= reg_tmp mult_product Figure 38 : La machine d état du calcul de l offset NDAC et NADC déterminent les valeurs d entrée du point minimal pt_min. La taille du gain est défini par NGAIN et sa fraction par NGAIN_FRAC. Les constantes DAC_VEQZ et ADC_VEQZ sont typiquement la moitié de la valeur maximale représentable sur le nombre de bits donné c est-à-dire que tous les bits son à 0 sauf le bit de poids fort qui est un 1. Ceci implique que la multiplication est un simple décalage. Au cas ou la constante DAC_VEQZ ne résulte pas dans un simple décalage, la multiplication est implémentée combinatoirement et il se peut que le chemin devienne critique et que la surface augmente considérablement. Dans ce cas il serait plus sage de réécrire le code VHDL utilisant la multiplication déjà à disposition. La soustraction d ADC_VEQZ utilise la ressource de soustraction car il se peut que la soustraction influence tous les bits ce qui implique qu il n y a pas de simplifications à implémenter. Le registre reg_tmp est utilisé pour enregistrer les valeurs temporaires ainsi que la valeur finale de l offset. Il est lisible sériellement dans l état idéal. rst_l clk start done shift_cmd shift_in ADC_VEQZ FSM shift_out offset <NDAC:0> gain <NGAIN-1:0> logic pt_min_adc <NADC-1:0> pt_min_dac <NDAC-1:0> mult_start mult_mplcand mult_mplier mult_product mult_done sa_adding sa_ min sa_sub sa_result Figure 39 : La structure interne du calcul de l offset 4..4.3 La DNL Pour le calcul de la DNL il s agit de déterminer la différence entre la valeur minimale respectivement maximale du compteur de transition et sa valeur moyenne ctmean. La valeur moyenne peut être déterminée à partir de l inverse du gain par un simple décalage, car les échelles ADC et DAC ne sont pas les mêmes. Il s agit alors de : 35

Calculer les deux différences Déterminer la plus grande différence Multiplier la plus grande différence par l inverse du gain rst_l = 0 start = 1 S0 S1 S S3 S4 mult_done = 1 Etat S0 S1 S S3 S4 Description Etat idéal Calcul de ctcntr_max ctmean Calcul de ctcntr_min ctmean Démarrage de la multiplication Attente sur la fin de la multiplication Figure 40 : La machine d état du calcul de la DNL L inverse du gain est défini de la même manière que décrite dans le calcul du gain. La valeur finale de la DNL est codée sur NDNL bits avec une fraction fixe de NDNL_FRAC. La valeur de NDNL_FRAC doit être plus grand ou égal à NDAC-NADC car sinon il n est pas possible de représenter la valeur DNL, déterminée à partir du compteur de transition mesurant sur l échelle DAC, en termes de l échelle ADC sans perdre de données. Il est sage de prendre quelques bits de plus, car la fraction de la valeur moyenne du compteur de transition, qui est soustraite, est typiquement plus grande que la différence du nombre de bits des échelles. La taille du compteur de transition est définie par NCTCNTR qui est déterminé par la DNL maximale reporté sur l échelle DAC. La valeur est alors typiquement NCTCNTR = (NDNL-NDNL_FRAC) (NDAC-NADC) Les paramètres génériques NDAC et NADC doivent aussi être disponible au bloc pour déterminer les interfaces aux ressources. rst_l clk start done shift_cmd shift_in FSM shift_out igain <NGAIN-1:0> ctcntr_max <NCTCNTR-1:0> ctcntr_min <NCTCNTR-1:0> logic dnl <NDNL-1:0> sa_adding sa_ min sa_sub sa_result mult_start mult_mplcand mult_mplier mult_product mult_done Figure 41 : La structure interne du calcul de la DNL 36

4..5 Les tests pass/fail 4..5.1 Le test pass/fail du gain La procédure du test pass/fail du gain consiste à déterminer si le gain gain ou l inverse du gain igain est plus grand et de comparer la plus grande valeur à la limite stockée dans le registre reg_limit qui est par défaut GAIN_LIMIT. Le résultat du test est enregistré dans reg_pf. Le registre de limite reg_limit peut être programmé en série par shift_reg_in dont la valeur du bit de poids fort est lisible sur shift_reg_out. Son décalage est commandé par shift_reg_cmd. rst_l clk dotest shift_reg_cmd shift_pf_cmd shift_reg_in shift_pf_in gain <NGAIN-1:0> ^NGAIN_FRAC shift_reg_out shift_pf_out igain <NGAIN-1:0> Figure 4 : La structure du test pass/fail du gain 4..5. Le test pass/fail de l offset Le test de l offset est une simple comparaison de la valeur limite enregistrée dans reg_limit, état par défaut OFFSET_LIMIT, et celle appliquée à l entrée comme offset. La valeur appliquée à l entrée est la valeur absolue ce qui veut dire que le test doit se faire immédiatement après avoir calculé l offset car la valeur absolue de l offset n est jamais enregistrée. Le registre de limite n est pas de la même taille que l offset en entrée car la limite est nettement plus petite. Le paramètre générique NOS_LIMIT détermine le nombre de bits du registre de limite. On teste si les bits de poids fort de taille NDAC moins NOS_LIMIT, sont à zéro pour garantir un test sur touts les bits. 4..5.3 Le test pass/fail de la DNL Le test de la DNL est le même décrit dans le test de l offset sauf que la valeur par défaut s appelle DNL_LIMIT et que la taille du registre et celle de la valeur appliquée à l entrée comme DNL. 4..5.4 Le test pass/fail all Le test «all» est un AND logique de tous les tests pass/fail afin d évaluer rapidement si le convertisseur A/N fonctionne dans les limites spécifiées. C est pour cela que la valeur est lisible à la fin des tests pass/fail sur le pin lecture sans nécessité de commander un décalage des registres avec proglec = 1. 4..6 Les ressources 4..6.1 L addition/soustraction et sa valeur absolue L addition/soustraction, ainsi que le calcul de la valeur absolue, sont automatiquement générés par la synthèse. La sélection des trois signaux d entré est faite avec les deux bits de sel qui est fournie par la machine d état. Le résultat est disponible en signé sur NDAC+1 bits et en valeur absolue non signé sur NDAC bits. 37

sel <1:0> add_* I_SEL_ADDING min_* <NDAC-1:0> I_SEL_MINUEND sub_* <NDAC-1:0> I_SEL_SUBTRAHEND I_RES_ADDSUB_ABS sel Entrée I_ADDSUB I_ABS result <NDAC:0> result_abs <NDAC-1:0> 00 calc_gain 01 calc_offset 10 calc_dnl 11 meas Figure 43 : La structure de la ressource d addition/soustraction et de sa valeur absolue 4..6. La multiplication Pour économiser de la surface un modèle séquentiel de la multiplication est implémenté [1]. Le temps nécessaire pour accomplir le calcul n est pas critique car la multiplication est uniquement utilisée après mesure donc il ne faut pas de temps réel. Le nombre de cycles peut varier entre le nombre de bit et deux fois le nombre de bits selon la valeur à multiplier. Le calcul se fait de la même manière que lorsqu on calcule à la main le carré d une valeur binaire. C est-à-dire qu on commence par le bit LSB et lorsque celui-ci est à 1 on additionne la valeur d entrée à la somme. Le décalage du bit à tester et de l addition se fait après chaque cycle même s il n y a pas eu d addition. Vu que la somme se fait d une manière continue, il faut uniquement un registre accu_reg pour la somme. Le registre mplier_reg tient tout au début la valeur d entrée mplier qui est ensuite décalée en dehors du registre pour être analysée par le contrôle qui décide alors avec add_shift s il y addition et décalage ou seulement décalage. En même temps qu on décale mplier en dehors du registre, on entre les bits de poids faible de la somme, dont on sait qu ils ne seront plus touchés. De cette manière on a à la fin (done = 1 ) dans les registres accu_reg & mplier_reg la valeur du carré. Le registre ext_reg est pour rattraper le «carry out» de l addition. mplier_* <NGAIN-1:0> start_* sel <1 :0> I_SEL_ START I_SEL_ MPLIER rst_l clk I_RES_MULT I_MULT done contrôle sel Entrée 00 calc_gain 01 calc_offset 10 calc_dnl mplcand_* <NDAC-1:0> I_SEL_ MPLCAND ext_reg accu_reg mplier_reg product <NGAIN+NDAC-1:NDAC> product < NDAC-1:0> Figure 44 : La structure de la ressource et l interne de la multiplication 4..6.3 La division Cette ressource est uniquement utilisé par le calcul du gain et nécessite par conséquent pas de sélection des entrées. Le procédé consiste à avoir un registre d approximation successive (SAR) avec lequel on essaie de prédire le quotient. Le produit du diviseur et du quotient prédit est calculé et comparé au dividende. On commence par le bit de poids fort qui est mis à 1 et lorsque le produit est plus petit que la prédiction, celle-là est ajustée en le mettant de nouveau à 0. Ensuite le prochain bit est traité. Le calcul du produit est implémenté à l extérieur ce qui permet d utiliser la ressource de la multiplication. 38

rst_l clk start done dividend <NDAC-1:0> divider <NDAC-1:0> + - I_RES_DIV contrôle SAR quotient <NGAIN-1:0> mult_start mult_mplcand mult_mplier mult_product mult_done Figure 45 : Représentation fonctionnelle de la division 4..7 Programmation et lecture sérielle 4..7.1 Introduction La programmation et la lecture des registres internes du contrôle sont implémentés sériellement pour économiser des pins. La programmation se fait sur le pin programming et la lecture s effectue sur lecture dont la sortie dépend de l état de la mesure. Le pin proglec indique s il y a demande de programmation et/ou de lecture. Son influence dépend de l état de la machine d état. Pour entrer en programmation des registres de limite il faut que le pin proglec soit mis à 1 lors du reset du bloc de contrôle sinon la mesure démarre automatiquement en utilisant les valeurs par défaut. Le compteur de transition peut être désactivé pendant la mesure en mettant proglec à un niveau bas. La lecture des valeurs mesurées, calculées et des test pass/fail peuvent s effectuer une fois à la fin de la mesure (calc_done = 1 ) par contre le temps entre la lecture et la fin de la mesure ne joue aucun rôle. La programmation et la lecture commence par le bit de poids fort. programming Programmation des registres de limite: pf_limit_dnl unsigned NDNL pf_limit_offset unsigned NOS_LIMIT pf_limit_gain unsigned NGAIN sweep_cntr_min unsigned NDAC sweep_cntr_max meas_asc std_logic 0: descending 1: ascending Lecture du compteur de transition: 0 ctdiff unsigned NCNTR lecture 0 Lecture des valeurs mesurées, calculées et des tests p/f: ctdiff_min ctdiff_max pt_min_adc pt_min_dac pt_max_adc pt_max_dac unsigned NCTCNTR unsigned NCTCNTR unsigned NADC unsigned NDAC unsigned NADC unsigned NDAC val_dnl val_offset val_gain pf_dnl pf_offset pf_gain pf_all unsigned NDNL signed NDAC+1 unsigned NGAIN std_logic 0: Test Pass/Fail failed 1: Test Pass/Fail passed Figure 46 : Le schéma de la programmation et de la lecture sérielle des registres selon l étant 39

4..7. Programmation des registres de limite La programmation et la lecture des registres de limite se fait en même temps c est-à-dire pendant la programmation les valeurs programmées par défaut, elles peuvent être lues sur le pin lecture. Une attention particulière doit être attribuée à la synchronisation car il faut que le pin proglec, qui indique que la programmation est en cours, soit mise à zéro au bon moment afin de ne pas décaler les valeurs d un registre de trop. De plus les longueurs des registres doivent être strictement respectées. La programmation des registres de limite sert à: Définir le type de mesure Limiter l étendue de la mesure Définir les limites des tests pass/fail L unique type de mesure à disposition est celui d une rampe, cependant on peut définir si la rampe est ascendante ou descendante. Pour définir une rampe ascendante, ce qui est le type de mesure par défaut, il suffit de programmer un 1 dans le registre meas_asc. Les registres sweep_cntr_min et sweep_cntr_max définissent l étendue de la plage de mesure. Cette option peut être utilisé pour limiter les valeurs entrants dans le DAC afin d uniquement mesurer la plage utile du DAC. Les registres pour les tests pass/fail déterminent les limites à tester de celles-ci. Les valeurs par défaut ne sont pas forcément adaptées aux spécifications du convertisseur A/D car celles-ci peuvent changer en production. 4..7.3 Lecture du compteur de transition Pendant la mesure il existe la possibilité de debugger en lisant et interprétant le compteur de transition. Normalement ce mode n est pas utilisé et est peut être désactivé en mettant proglec à 0 afin de ne pas influencer les mesures. 4..7.4 Lecture des valeurs mesurées, calculées et résultats des tests pass/fail Les registres internes sont lus selon leur niveau d abstraction. On lit d abord les registres des tests pass/fail, ensuite les valeurs calculées qui étaient nécessaires pour les tests pass/fail et à la fin les valeurs mesurées qui servaient aux calculs. En gardant le pin proglec à un niveau bas, la sortie lecture bascule sur l état de la sortie du registre pf_all. Ainsi on sait directement si touts les test ont réussi. 4..8 Augmenter la fréquence maximale du bloc de contrôle La fréquence maximale est limitée par le chemin critique débutant dans la machine d étant passant par le bloc I_RES_ADDSUB_ABS (voir Figure 43) et se terminant dans la comparaison avec un registre dans le calcul de la DNL. Elle peut être augmentée en équilibrant le chemin entre les registres ou en en ajoutant quelques uns. Dans le cas présent il suffit d insérer un registre entre l addition/soustraction et le calcul de sa valeur absolue. Dans ce cas il faut tenir compte de ce délai supplémentaire dans les machines d état contrôlant les calculs qui utilisent le bloc I_RES_ADDSUB_ABS. Dans ce cas il est possible que l horloge puisse être augmenté à 00 MHz. 40

5 Résultats 5.1 Détermination de l erreur dû à la quantification Les calculs du gain, de l offset et de la DNL se font sur des représentations point fixe définit par des constantes. Ceci implique des erreurs de calculs. L erreur absolue maximale du calcul du gain est définie par le pas minimal -NGAIN_FRAC. Son erreur relative maximale est exprimée dans la Formule (3). Si on veut par exemple pourvoir déterminer l erreur à 0.1% près et qu on suppose que le gain est autour de un, on peut calculer que NGAIN_FRAC doit être au moins 7 bits. L erreur relative maximal de l inverse du gain est environ la même. NGAIN _ FRAC ε gain max( gain gainapproximé ) = = gain (3) gain gain L erreur de l offset est limité premièrement par la quantification de l offset lui-même et deuxièmement par la quantification de l erreur du gain. Pour calculer l offset, la différence entre le point minimal respectivement maximal et le point équivalant à zéro volts (DAC_VEQZ) est multipliée par le gain. Cette différence est approximativement DAC_VEQZ si celui-ci est pris au milieu de l échelle DAC, car le point minimal respectivement maximal est sur une des extrémités de l échelle. Sous ces suppositions l erreur absolue de l offset est environ (NDAC-1-NGAIN_FRAC) ou NDAC est la taille de l échelle DAC. L erreur du gain intervient dans des multiplications de celui-ci notamment avec DAC_VEQZ et val_dac min/max (voir formule (5)) qui doivent être exprimées en termes d échelle ADC. L offset est représenté sur des entiers ce qui donne une erreur absolue de quantification de un. ε offset ( DAC _ VEQZ val _ dac ) ε min/ max gain 1 + offset = offset gain (33) offset Définissant la différence maximale entre le maximum respectivement le minimum du compteur de transition et du pas moyen étant l inverse du gain igain, la DNL se réécrit étant ctcntr igain = max( cntr_max igain, cntr_min igain ) DNL = igain ctcntr igain = igain ctcntr igain Si on tient compte de l erreur du gain inverse ε igain, qui est environ l erreur du gain, et de l erreur du compteur de transition ε ctcntr, on peut développer la formule ci-dessous. L erreur du compteur de transition ε ctcntr est de un sur l échelle DAC ce qui donne en termes de l échelle ADC -(NDAC-NADC). DNL + ε DNL = ( igain + ε igain ) ( ctcntr + ε ctcntr ) ( igain + ε igain ) = ( igain ctcntr + ε igain + ε ctcntr + ε ε ) ( igain + igain ε + ε ctcntr ( igain ctcntr igain ) + ( ε ctcntr igain igain + ε igain ctcntr igain ctcntr igain ε Mettant en évidence l erreur absolue de la DNL on obtient la formule suivante ε = DNL ε igain + ε ctcntr igain ε ctcntr ( NDAC NADC) igain + igain NGAIN _ FRAC igain ) igain ( ctcntr igain) igain igain La valeur de l inverse du gain ainsi de celle du compteur de transition sont idéalement un. L erreur de quantification du compteur de transition est typiquement plus grande que celle de l inverse du gain puisque la résolution du gain doit être bonne à cause de l erreur induite sur l erreur de l offset. La quantification de la valeur calculée pour la DNL peut être négligée si la fraction de la DNL en nombre de bits est égale ou plus grande que (NDAC-NADC) car la différence maximale entre le compteur de transition et la valeur moyenne est de un pour tout gain n étant pas exactement un. Néanmoins pour ) (34) 41

tenir compte de la fraction du résultat de la multiplication avec igain excédant (NDAC-NADC), il faut une fraction plus grande. 5. Le modulateur Delta-Sigma 5..1 Résultats de la synthèse et du placement et routage Le modulateur Σ a été synthétisé avec des mots d entré de 16 bits et la fraction des coefficients étant de 6 bits. En interne aucune fraction n est enregistrée et la valeur elle-même est enregistrée sur bits. La contrainte sur l horloge pour la synthèse et pour le placement et routage est trop sévère pour avoir un tampon temporel garantissant le fonctionnement correct. Le délai de l entré et de la sortie sont choisis comme étant 1ns respectivement 0.1ns pour une horloge de 00 MHz. Tableau : Résultats de la synthèse et du placement et routage des cellules standard du modulateur Horloge 100 MHz (8 ns) 00 MHz (4 ns) Synthèse Chemin Surface critique Violation du temps Nombre de composants Placement et routage Surface des cellules Surface du chip Pourcentage des cellules 7.8 ns 59k µm aucune 467 64k µm 76k µm 85.3% 4.16 ns 96k µm 0.16 ns 445 105k µm 10k µm 88.% L influence des paramètres sur la taille du circuit final est très prédictible en ce qui concerne les additionneurs et les registres, car ils augmentent linéairement la taille par rapport à NBITS. L influence des coefficients est par contre plus difficile à estimer car il s agit d interpréter les optimisations possibles lors de la synthèse. 5.. Comparaison des résultats de simulation Vu qu il n est pas possible de directement analyser le bistream qui sort du modulateur, celui-ci a été analysé en fréquence et comparé avec les résultats obtenus auparavant par le modèle Matlab et par le modèle Simulink. On constate que le modèle Matlab est capable de diminuer le bruit dans la bande passante du modulateur du a une précision de virgule flottante double comparé à des entiers dans le cas du modèle Simulink et VHDL. Du à la nature discrète de représenter le signal d entrée celui-ci forme un cône pour ces deux modèles ce qui n est pas le cas du modulateur Matlab. Figure 47 : Comparaison des modèles d un modulateur Σ CIFF de 3 ième ordre avec un OSR de 18 4

Pour extraire les données du modèle VHDL un testbench, ayant exactement le même stimulus que les autres modèles, a injecté celui-ci et en même temps a récupéré le bistream sortant. A la fin de la mesure les résultats ont été écrits dans un fichier qui a été importé dans Matlab. Simulink permet d écrire directement ses données dans la zone de travail de Matlab. Ainsi il est possible de comparer toutes les données à partir de Matlab. Les données du modulateur, du signal d entré et de la transformée de Fourier sont les mêmes que pour les Figure 1 - Figure 4. 5.3 Le bloc de contrôle 5.3.1 Le temps de mesure d un rampe complète Le temps de mesure peut être critique quand il s agit de tester les parties analogiques lors d une initialisation d un système complet. Pour calculer le temps de mesure d une rampe complète plusieurs facteurs interviennent. Le nombre de cycles nécessaire pour faire la conversion N/A t conversion et le nombre de mesures à effectuer plus un cycle tampon gaspillé par le contrôle fois le nombre de points à mesurer nous donne le nombre de cycle total utilisé. Multiplier cela par le temps pour la conversion A/N nous permet de calculer le temps nécessaire. temps = ( t / t + t / t + 1) nombre de mesures t (35) conversion mesure Pour le cas d un convertisseur N/A idéal, on obtient le temps minimal pour des paramètres donnés. Le cas jusqu à présent considéré nous donne le temps suivant : NB _ MEAS = 64 NDAC = 16 NDAC tempsmin = (1 + NB_MEAS + 1) 10ns = 43.5ms Pour diminuer ce temps on peut diminuer le nombre de mesures à effectuer ce qui résulte dans une estimation d une transition de code moins bonne. La qualité de la mesure est déterminée par la différence de NADC et NADC ce qui laisse peu de flexibilité à ce niveau car il faut absolument que cette différence soit de bits. Un autre moyen de diminuer ce temps est de restreindre l étendue de la mesure, c est-à-dire de limiter la zone de mesure avec les registres de limite qui sont programmables. 5.3. Résultats de la synthèse et du placement et routage Le bloc de contrôle a été synthétisé avec un nombre de mesure de 64. Faisant varier le nombre de mesures la taille du circuit ne change pas significativement car l unique influence se porte sur la détection de transition c est-à-dire que le compteur cntr_meas et cntr_nc et par conséquent les comparaisons avec ceux-ci augmentent. Les paramètres NADC et NDAC influencent par contre tous le bloc, comme on peut le constater dans le tableau ci-dessous. L augmentation en surface est quasi linéaire car toute opération est implémentée séquentiellement. Ceci n est plus le cas lorsque ces deux paramètres augmentent fortement car dans ce cas, le chemin critique est implémenté avec des cellules rapides qui nécessitent plus de place. Tableau 3 : Résultats de la synthèse et du placement et routage des cellules standard du contrôle Paramètres Synthèse Placement et routage NDAC NADC Chemin critique Surface Nombre de composants Surface des cellules Surface du chip Pourcentage des cellules 8 1 7.77 ns 48 k µm 18 50 k µm 71 k µm 69.9% 1 14 7.93 ns 55 k µm 19 57 k µm 80 k µm 70.4% 1 16 7.9 ns 6 k µm 386 64 k µm 90 k µm 71.1% 16 0 7.86 ns 76 k µm 941 79 k µm 110 k µm 7.1% (36) 43

5.3.3 Vérification du fonctionnement Figure 48 : Simulation de la programmation des registres de limite Une simulation de programmation des registres de limite est montrée dans la Figure 48. Lors du reset du bloc de contrôle, proglec indiquant une demande de programmation des registres doit déjà être mis à un `1`. La programmation et la lecture se font en même temps jusqu à ce que la commande proglec est mise à `0`. Figure 49 : Résultats de simulation de la netlist du placement et routage dans le cas A Les résultats de la simulation du cas A, déjà introduit dans le chapitre 3.3., sont affiché dans la Figure 49. Lors de l initialisation de la détection de transition la valeur DAC reste constant jusqu à ce que l initialisation est terminé (I_CT_DET/do_init = `0`) ce qui est indiqué par la première transition de code indiqué par code_trans = `1`. Ensuite la mesure commence, mais l enregistrement des valeur minimales et maximales du compteur de transition n est pas encore activé, car il se trouve encore dans l initialisation (I_CT_CNTR/do_init = `1`). Le compteur sert à extraire la valeur DNL qui ne tient pas compte du premier enregistrement d ou la nécessité d une initialisation. Le compteur de mesure cntr_meas compte tous le temps le nombre de mesure effectué et indique sa fin avec meas_end = `1`. Entre chaque comptage de mesure il y a typiquement de l espace pour faire la conversion N/A ce qui se fait ici avec un convertisseur idéal capable de fournir le résultat dans un cycle d horloge. Figure 50 : Résultats de simulation de la netlist du placement et routage dans le cas B Le cas B fait avancer la valeur DAC tout en attendant un changement sur la valeur du convertisseur A/N. L initialisation se fait dans ce cas sur le premier cycle de mesure, mais vu qu il n y a pas de transition de code, l initialisation du compteur reste activé. De cette manière l activation de l enregistrement de la valeur minimale et maximale du compteur de transition coïncide avec l enregistrement du point minimal, ce qui est logique car il n est pas possible que la première valeur 44

entre les transitions de code soit fausse dans le cas B, car cette valeur se produit lorsqu on avance jusqu à la première transition de code. 5.4 Test du système complet Le test complet a été effectué par deux blocs principaux dont un est le stimulus est le deuxième est une structure représentant les interfaces du chip. La structure du chip est représentée dans la Figure 51. Elle contient le bloc de contrôle, un convertisseur Flash ADC de 8 bits et un DAC idéal de 16 bits. Le modèle comportemental du bloc de contrôle a été utilisé parce qu il est possible d initialiser touts les registres lors du démarrage de la simulation ce qui permet de trouver un point de fonctionnement du circuit analogique ce qui n est pas possible avec la netlist généré par la synthèse ou par le placement et routage. De cette manière la simulation est aussi plus rapide. Figure 51 : Structure de test du contrôle avec un convertisseur N/A idéal Le résultat du début d une rampe descendante est montré dans la figure ci-dessous. Le bloc de contrôle a été paramétré de manière à travailler avec une ADC de 1 bits et pas de 8 bits ce qui génère des sauts dans la mise à jour de la valeur interne contenant le registre du code ADC. Puisque le contrôle n est pas capable de mettre à jour la valeur interne du registre ADC sans avancer dans le code DAC une petite rampe suivant le saut est généré pendant que la valeur ADC change. Cette limitation n existe pas lors de l initialisation ce qui peut être identifié par le maintient de la valeur DAC lors de la mise à jour du registre interne. Figure 5 : Début de la rampe descendante simulé dans le système complet (16bit DAC, 8bit ADC) 45

6 Conclusion Dans le cadre de ce projet nous avons implémenté en VHDL un bloc de contrôle destiné à des tests intégrés pour convertisseurs A/N. La conversion N/A pour la génération du stimulus analogique, implémenté en convertisseur delta-sigma, n a pas pu être terminé. Le modulateur est intégré en VHDL mais en ce qui concerne le filtre analogique de reconstruction, uniquement les problèmes du filtrage ont pu être démontrés. Le choix est tombé sur un filtre semi-numérique dont une analyse du mésappariement a démontré la dégradation de la qualité du filtre. Le contrôle est capable de fournir les caractéristiques suivant du convertisseur A/N : Le gain L offset La DNL Il est possible d effectuer des tests indiquant si les valeurs des paramètres calculées se trouvent dans une limite (test pass/fail) définie lors de l initialisation du contrôle. Ceci permet de facilement tester le convertisseur A/N. La précision des calculs et les tailles des données sont paramétrables, ainsi il est possible de minimiser le bloc de contrôle tout en garantissant la précision requise. En définissant la zone de mesure on peut évaluer les caractéristiques de la zone ou le convertisseur A/N est censé travailler. De cette manière le temps de mesure, qui est de l ordre d une à deux secondes avec un convertisseur N/A delta-sigma, est diminué. La lecture sérielle dépend de l état de mesure et fournit des données suivantes : Programmation : Les valeurs par défaut enregistrées comme limite Mesure : Le nombre de code DAC entre les transitions de code ADC Fin des calculs : Les valeurs mesurées, calculées et les résultats des tests pass/fail Le modulateur delta-sigma de 3 ième ordre avec un sur-échantillonnage de 18 est implémenté en structure CIFF (Cascade-of-integrators, feedforward form). La fonction de transfert du modèle VHDL fournit le même spectre fréquentiel que celui du modèle Simulink ce qui devrait être le cas puisqu ils sont influencés par les mêmes limitations. Par manque de temps le filtre analogique n a pas pu être implémenté, mais les problèmes du filtrage et de son implémentation ont été identifiés. L influence du mésappariement des coefficients a été calculée et mise en évidence par une simulation Matlab du filtre semi-numérique. Un travail futur consisterait à trouver une bonne combinaison des paramètres du filtre FIR seminumérique et du filtre IIR. La conception nécessiterait éventuellement un ajustage du modulateur. Toute la problématique est son analyse se trouve dans le rapport. Un amplificateur opérationnel de grande linéarité faisant la conversion courant tension dans le FIR semi-numérique et implémentant un filtre passe bas de premier ordre doit aussi être fait. Lausanne, 18..005 46

7 Bibliographie Livres : [1] Paul G.A.Jespers, Integrated Converters, D to A and A to D Architectures, Analysis and Simulation, Oxford University Press, New York, 001, ISBN 0-19-856446-5. [] G.Temes, J.Steensgaard, R.Schreier, S.Jantzi, Delta-Sigma Converters : Design and Applications, EPFL, Lausanne, Electronics Laboratories Advanced Engineering Course, July 9-13 001. [3] David F.Hoeschele, Jr., Analog-to-Digital and Digital-to-Analog Conversion Techniques, Second Edition, John Wiley & Sons, New York, Chichester, Brisbane, Toronto, Singapore, 1994, ISBN 0-471-57147-4. Publications : [4] K.C.H.Chao, S.Nadeem, W.L.Lee, C.G.Sodini, A higher order topology for interpolative modulators for oversampling A/D conversion, IEEE Transactions on Circuits and Systems, vol. 37, pp.309-318, March 1990 [5] S. Bernard, F. Azaïs, Y. Bertrand and M. Renovell, Analog BIST generator for ADC testing, Proceedings of the 001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, pp. 338-346, 4-6 Oct. 001 [6] David K. Su, Bruce A. Wooley, A CMOS oversampling D/A Converter with a current-mode semidigital reconstruction filter, IEEE International Solid-State Circuits Conference 1993, No. 40, pp. 30-31, 4-6 Feb. 1993 [7] Jae- Wan Kim, Byung-Moo Min, Jang-Sik Yoo, Soo-Won Kim, An area-efficient sigma-delta DAC with a current-mode semi-digital IFIR reconstruction filter, IEEE International Symposium on Circuits and Systems 1998, Vol. 1, pp. 344-347, 31 May-3 June 1998 [8] Pier Andrea Francese, Pascal Ferrat, Qiuting Huang, A 13-b 1.1-MHz Oversampled DAC with [Semidigital Reconstruction Filtering, IEEE Journal of Solid-State, Vol. 39, No. 1, Dec. 004 [9] Christer Jansson, Christer Svensson, A 1 MHz and 16bit Delta-Sigma DAC with 4 th Order Reconstruction FIR-Filter Using Only 9 Nonzero Taps, IEEE International ASIC Conference and Exhibit 1994. No. 7, p9-3, 19-3 Sept. 1994 [10] M.J.M. Pelgrom, A.C.J. Duinmaijer, A.P.G. Welbers, Matching properties of MOS transistors, IEEE Journal of Solid-State Circuits, Vol. 4, No. 5, p1433-1439, Oct. 1989 Sites Internet : [11] Richard Schreier, Delta Sigma Toolbox, Matlab File Exchange, http://www.mathworks.com/matlabcentral/fileexchange/loadfile.do?objectid=19&objecttype =file (15.01.005) [1] A.Vachoux, Modélisation de composants numériques, p10 ff, http://lsmwww.epfl.ch/design_languages/model_sys_num/documents/archives/ch4_model_ comp_num_notes.pdf (15.01.005) Autre : [13] UMC, 0.18um 1.8V/3.3V Mixed Mode CMOS Process Matching Characterization Report, P- SUB, TWIN-WELL CMOSS Process @1.8V/3.3V Operation, Ver., 19.7.000 47