- QuoiWhat
- Un CAN Flash 4 bits (16 niveaux, pas de 206 mV) en full-custom, en technologie BiCMOS 0.35 µm, avec un focus sur le comparateur PMOS.A 4-bit (16-level, 206 mV step) Flash ADC in full-custom, in 0.35 µm BiCMOS technology, with a focus on the PMOS comparator.
- PourquoiWhy
- Étudier l'architecture des comparateurs et la conception de circuits intégrés au niveau transistor.To study comparator architecture and transistor-level IC design.
- CommentHow
- Cadence Virtuoso, approche hiérarchique : 7 comparateurs PMOS (moitié basse) et 8 NMOS (moitié haute), chaque bloc simulé seul avant l'assemblage. En binôme avec Lucas T.Cadence Virtuoso, hierarchical approach: 7 PMOS comparators (lower half) and 8 NMOS (upper half), each block simulated alone before assembly. With Lucas T.
- RésultatsResults
- Escalier à 16 niveaux, erreur de quantification sous q/2 ≈ 103 mV, 16 paliers de largeur quasi égale, pas d'hystérésis. Le registre supprime les parasites du transcodeur.16-level staircase, quantization error under q/2 ≈ 103 mV, 16 steps of nearly equal width, no hysteresis. The register removes the transcoder glitches.
Projet du module EANA3 (introduction à l'électronique intégrée), en binôme avec Lucas T. : un CAN Flash 4 bits sous Cadence Virtuoso, techno AMS BiCMOS 0.35 µm. On a suivi le poly séance par séance (caractérisation des MOS, échantillonneur-bloqueur, miroir, comparateur, échelle, transcodeur, registre, assemblage). Le rapport approfondit un bloc : le comparateur PMOS.
Architecture
Un Flash compare VIN aux 2N−1 niveaux en même temps et sort le mot binaire en un seul coup d'horloge. Le prix à payer : le nombre de comparateurs double à chaque bit, donc on reste à de faibles résolutions. Ici N = 4, soit 15 comparateurs, une échelle de 16 résistances et un pas q = VDD / 2N = 3,3 / 16 ≈ 206 mV.
- S/H : échantillonneur CMOS (NMOS + PMOS + inverseur de commande) et capacité, qui tient VIN pendant la conversion.
- Échelle : 16 résistances qui divisent VDD en 15 niveaux V1 à V15.
- 15 comparateurs : un par niveau, leurs sorties forment un code thermomètre.
- Transcodeur : NAND2/3/4 et AOI22, du thermomètre au binaire naturel S3S2S1S0.
- Registre : 4 bascules D maître-esclave qui resynchronisent le mot sur le front d'horloge.
L'échantillonneur-bloqueur
L'interrupteur est un NMOS et un PMOS en parallèle : le NMOS laisse passer les tensions basses, le PMOS les hautes, et les deux ensemble couvrent toute la plage de 0 à 3,3 V. Le PMOS reçoit le complément de VH (inverseur I5). Une capacité C0 mémorise la tension de sortie pendant que l'interrupteur est ouvert.
Pourquoi deux types de comparateurs
Toute la précision repose sur les comparateurs. Une paire NMOS ne conduit que si VGS > VTN : pour des VREF proches de zéro elle ne commute pas (en simulation, la sortie reste figée à 0 V sous VREF ≈ 0,7 V). Une paire PMOS fait l'inverse : elle se dégrade quand VREF approche VDD − |VTP| ≈ 2,6 V : en DC, l'écart de seuil reste faible jusqu'à 2,9 V mais atteint ≈ 0,23 V à VREF = 3,3 V (voir plus bas). D'où la répartition : 7 PMOS pour V1 à V7 et 8 NMOS pour V8 à V15. Les deux types ont la même polarité de sortie et se branchent sur le même bus du transcodeur.
Le comparateur PMOS
C'est le complémentaire du NMOS : même construction, rôles des transistors échangés (« inversion des tranches »).
| TrancheSlice | Comparateur NMOSNMOS comparator | Comparateur PMOSPMOS comparator |
|---|---|---|
| Haute (côté V_DD)Top (V_DD side) | Miroir PMOS (charge active)PMOS mirror (active load) | Miroir PMOS (source de courant)PMOS mirror (current source) |
| CentraleMiddle | Paire différentielle NMOSNMOS differential pair | Paire différentielle PMOSPMOS differential pair |
| Basse (côté masse)Bottom (ground side) | NMOS (source de courant)NMOS (current source) | Miroirs NMOS (charge active)NMOS mirrors (active load) |
| PolarisationBiasing | R_bias | R_bias' |
Les PMOS MP4 et MP5 partagent la même source, alimentée par le miroir supérieur. À VIN = VREF le courant I0 se partage 50/50, un déséquilibre le pousse tout entier dans une branche. La charge active (deux miroirs NMOS) a une forte impédance, donc un petit déséquilibre de courant devient une grosse variation de tension. Une seule résistance de polarisation sert les 15 comparateurs. Les deux inverseurs en sortie recalent le signal entre 0 et VDD (et comme ils sont en nombre pair, la polarité « VIN > VREF ⇒ sortie haute » est conservée).
- Avant les inverseurs (VREF = 1,65 V, VIN de 0 à 3,3 V) : excursion réduite et transition molle, inexploitable par la logique CMOS. Après : excursion pleine [0 ; VDD] et pente quasi verticale en VIN = VREF.
- Courant de polarisation : balayage de Rbias pour I0 de 50 à 500 µA. À 50 µA la transition est un peu molle, à 100 µA elle est nette, au-delà de 200 µA on ne gagne plus rien en vitesse mais la consommation grimpe (×15 comparateurs). Retenu : I0 ≈ 50 à 60 µA, soit Rbias entre 22 et 30 kΩ.
- Seuil de bascule : sur la simulation DC, le comparateur PMOS bascule de 0,03 à 0,08 V sous VREF pour VREF de 0,41 à 2,89 V (valeurs relevées sur le graphe, à ± 0,02 V près), donc sous q/2 ≈ 103 mV : on ne perd pas d'échelon. À VREF = 3,3 V, l'écart monte à ≈ 0,23 V.
- Limite : au centre de l'échelle (7e comparateur PMOS vers 8e NMOS), la différence d'offset entre les deux types peut décaler un peu le seuil.
Le transcodeur
Avec C1 à C15 les sorties des comparateurs, la combinatoire est :
S3 = C8
S2 = C4·/C8 + C12
S1 = C2·/C4 + C6·/C8 + C10·/C12 + C14
S0 = C1·/C2 + C3·/C4 + C5·/C6 + C7·/C8 + C9·/C10 + C11·/C12 + C13·/C14 + C15
Simulation finale
- Sinus 100 Hz pleine échelle : la sortie reconstruit un escalier à 16 niveaux, avec une erreur de quantification sous q/2 ≈ 103 mV. S4 commute une fois par demi-période et S1 à chaque palier : c'est bien du binaire naturel.
- Dent de scie 100 Hz : les transitions sont régulièrement espacées (S1 à chaque palier, S2 deux fois moins, etc.), les 16 paliers ont presque la même largeur. Sur la figure, e4 bascule vers 1,65 V dans les deux sens, comme prévu pour la 8e référence. s4 ne suit qu'au coup d'horloge suivant : à la montée le retard est d'environ 0,2 ms (Vin a alors gagné près de 0,15 V), à la descente il est quasi nul selon l'instant où tombe le front d'horloge. Cet écart vient donc de l'échantillonnage du registre (horloge d'environ 5 kHz lue sur le graphe), pas d'une hystérésis du comparateur.
- Rôle du registre : question qu'on s'est posée pendant le projet, donc on l'a écrite. Les 15 comparateurs ne basculent pas tous en même temps, donc le code thermomètre passe par des états transitoires que la logique combinatoire propage : on voit de fines impulsions parasites sur les sorties avant registre (e1, e2 autour des transitions). Le registre maître-esclave échantillonne au front d'horloge et sort un mot propre.
Séances et validations
- 1 : caractérisation des
nmos4/pmos4(PRIMLIB) : VT via √ID(VGS), zones, schémas équivalents, K et λ. - 2 : interrupteur NMOS seul, PMOS seul, puis les deux en parallèle (un seul ne passe pas toute la plage 0 à 3,3 V), mémoire analogique avec fuite de 1 MΩ. Validation : sinus + horloge carrée.
- 3 : miroirs de courant (Iref = 100 µA, résistance de sortie), paire différentielle (200 µA, 10 kΩ).
- 4-5 : comparateurs N et P, échelle de 16 niveaux. Validation : DC de 0 à 3,3 V. Puis NAND2/3/4, AOI22 et transcodeur. Validation : sorties S3..S0 en DC.
- 6 : latch, bascule D, registre 4 bits et CAN complet. Validation : transitoire avec sinus, sorties avant et après registre.
EANA3 module project (intro to integrated electronics), with Lucas T.: a 4-bit Flash ADC in Cadence Virtuoso, AMS BiCMOS 0.35 µm. We followed the course session by session (MOS characterization, sample-and-hold, mirror, comparator, ladder, transcoder, register, assembly). The report goes deep on one block: the PMOS comparator.
Architecture
A Flash compares VIN to the 2N−1 levels at the same time and outputs the binary word in a single clock cycle. The price: the number of comparators doubles with each bit, so it stays at low resolutions. Here N = 4: 15 comparators, a 16-resistor ladder and a step q = VDD / 2N = 3.3 / 16 ≈ 206 mV.
- S/H: CMOS sampler (NMOS + PMOS + control inverter) and a capacitor, holding VIN during conversion.
- Ladder: 16 resistors dividing VDD into 15 levels V1 to V15.
- 15 comparators: one per level, their outputs form a thermometer code.
- Transcoder: NAND2/3/4 and AOI22, from thermometer to natural binary S3S2S1S0.
- Register: 4 master-slave D flip-flops that resynchronize the word on the clock edge.
The sample-and-hold
The switch is an NMOS and a PMOS in parallel: the NMOS passes the low voltages, the PMOS the high ones, and together they cover the whole 0 to 3.3 V range. The PMOS gets the complement of VH (inverter I5). A capacitor C0 stores the output voltage while the switch is open.
Why two comparator types
All the accuracy rests on the comparators. An NMOS pair only conducts if VGS > VTN: for VREF close to zero it doesn't switch (in simulation the output stays stuck at 0 V below VREF ≈ 0.7 V). A PMOS pair does the opposite: it degrades when VREF approaches VDD − |VTP| ≈ 2.6 V: in DC the threshold error stays small up to 2.9 V but reaches ≈ 0.23 V at VREF = 3.3 V (see below). Hence the split: 7 PMOS for V1 to V7 and 8 NMOS for V8 to V15. Both types have the same output polarity and plug into the same transcoder bus.
The PMOS comparator
It is the complement of the NMOS one: same construction, transistor roles swapped ("slice inversion").
| TrancheSlice | Comparateur NMOSNMOS comparator | Comparateur PMOSPMOS comparator |
|---|---|---|
| Haute (côté V_DD)Top (V_DD side) | Miroir PMOS (charge active)PMOS mirror (active load) | Miroir PMOS (source de courant)PMOS mirror (current source) |
| CentraleMiddle | Paire différentielle NMOSNMOS differential pair | Paire différentielle PMOSPMOS differential pair |
| Basse (côté masse)Bottom (ground side) | NMOS (source de courant)NMOS (current source) | Miroirs NMOS (charge active)NMOS mirrors (active load) |
| PolarisationBiasing | R_bias | R_bias' |
The PMOS transistors MP4 and MP5 share the same source, fed by the top mirror. At VIN = VREF the current I0 splits 50/50, and an imbalance pushes all of it into one branch. The active load (two NMOS mirrors) has a high impedance, so a small current imbalance becomes a big voltage swing. A single bias resistor serves the 15 comparators. The two output inverters reshape the signal between 0 and VDD (and since there is an even number of them, the "VIN > VREF ⇒ output high" polarity is kept).
- Before the inverters (VREF = 1.65 V, VIN from 0 to 3.3 V): reduced swing and a soft transition, unusable by CMOS logic. After: full [0; VDD] swing and a near-vertical slope at VIN = VREF.
- Bias current: sweep of Rbias for I0 from 50 to 500 µA. At 50 µA the transition is a bit soft, at 100 µA it is sharp, above 200 µA there is no more speed to gain but consumption climbs (×15 comparators). Chosen: I0 ≈ 50 to 60 µA, so Rbias between 22 and 30 kΩ.
- Switching threshold: in the DC simulation, the PMOS comparator switches 0.03 to 0.08 V below VREF for VREF from 0.41 to 2.89 V (values read off the plot, to within ± 0.02 V), so under q/2 ≈ 103 mV: no step is lost. At VREF = 3.3 V the gap rises to ≈ 0.23 V.
- Limit: in the middle of the ladder (7th comparator PMOS to 8th NMOS), the offset difference between the two types can shift the threshold a little.
The transcoder
With C1 to C15 the comparator outputs, the combinational logic is:
S3 = C8
S2 = C4·/C8 + C12
S1 = C2·/C4 + C6·/C8 + C10·/C12 + C14
S0 = C1·/C2 + C3·/C4 + C5·/C6 + C7·/C8 + C9·/C10 + C11·/C12 + C13·/C14 + C15
Final simulation
- 100 Hz full-scale sine: the output rebuilds a 16-level staircase, with a quantization error under q/2 ≈ 103 mV. S4 switches once per half period and S1 at every step: it is natural binary.
- 100 Hz sawtooth: transitions are evenly spaced (S1 at every step, S2 half as often, etc.), the 16 steps have almost the same width. On the figure, e4 switches around 1.65 V in both directions, as expected for the 8th reference. s4 only follows at the next clock edge: on the way up the delay is about 0.2 ms (Vin has gained nearly 0.15 V by then), on the way down it is almost nil depending on where the clock edge falls. So the gap comes from the register's sampling (clock of about 5 kHz read off the plot), not from comparator hysteresis.
- Role of the register: a question we asked ourselves during the project, so we wrote it down. The 15 comparators don't all switch at the same time, so the thermometer code goes through transient states that the combinational logic propagates: glitches show up on the pre-register outputs. The master-slave register samples on the clock edge and outputs a clean word.
Sessions and checkpoints
- 1: characterizing the
nmos4/pmos4(PRIMLIB): VT from √ID(VGS), regions, equivalent circuits, K and λ. - 2: NMOS-only switch, PMOS-only, then both in parallel (one alone can't pass the whole 0 to 3.3 V range), analog memory with a 1 MΩ leak. Checkpoint: sine + square clock.
- 3: current mirrors (Iref = 100 µA, output resistance), differential pair (200 µA, 10 kΩ).
- 4-5: N and P comparators, 16-level ladder. Checkpoint: DC from 0 to 3.3 V. Then NAND2/3/4, AOI22 and the transcoder. Checkpoint: S3..S0 in DC.
- 6: latch, D flip-flop, 4-bit register and the full ADC. Checkpoint: transient with a sine, outputs before and after the register.