- 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 Traoré.Cadence Virtuoso, hierarchical approach: 7 PMOS comparators (lower half) and 8 NMOS (upper half), each block simulated alone before assembly. With Lucas Traoré.
- 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 Traoré : 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.
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 décroche quand VREF approche VDD − |VTP| ≈ 2,6 V (plage utile mesurée en simulation : 0 à ~2 V). 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Ω.
- Offset : les inverseurs saturent sur quelques dizaines de mV autour de VREF, donc l'offset reste sous q/2 ≈ 103 mV et on ne perd pas d'échelon.
- 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, et la symétrie montée/descente indique qu'il n'y a pas d'hystérésis.
- 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 des parasites sur les sorties avant registre. 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 Traoré: 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.
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 drops out when VREF approaches VDD − |VTP| ≈ 2.6 V (usable range in simulation: 0 to ~2 V). 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Ω.
- Offset: the inverters saturate within a few tens of mV around VREF, so the offset stays under q/2 ≈ 103 mV and no step is lost.
- 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, and the rising/falling symmetry shows there is no 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.