← Retour← Back
CV

CAN Flash 4 bits (16 niveaux) sur Cadence Virtuoso4-bit (16-level) Flash ADC on Cadence Virtuoso

Cadence VirtuosoBiCMOS 0.35 µmMixed-signalEANA3
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

V_INS/HNMOS + PMOSÉchelle de 16 R15 tensions de réf.16-R ladder15 reference voltages15 comparateurs(types N et P)15 comparators(N and P types)C1…C15Transcodeurthermomètre → binaireTranscoderthermometer → binaryRegistre4 bits4-bitregisterD3…D0horloge V_Hclock V_Hclk
Architecture du CAN Flash 4 bits : 15 comparaisons en parallèle, code thermomètre, transcodage en binaire.4-bit Flash ADC architecture: 15 parallel comparisons, thermometer code, transcoded to binary.

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.

Comparateurs PMOS : V1 à V7 (plage utile 0 à ~2 V)PMOS comparators: V1 to V7 (usable range 0 to ~2 V)Comparateurs NMOS : V8 à V15 (inutilisable sous ~0,7 V)NMOS comparators: V8 to V15 (unusable below ~0.7 V)V7 ≈ 1,44 VV8 ≈ 1,65 V0 V1 V2 V3,3 V = V_DD15 niveaux de référence, un pas q ≈ 206 mV15 reference levels, one step q ≈ 206 mV
Répartition des 15 comparateurs : chaque type travaille là où sa paire différentielle conduit, et les deux se rejoignent au milieu de l'échelle.Split of the 15 comparators: each type works where its differential pair conducts, and the two meet in the middle of the ladder.

Le comparateur PMOS

C'est le complémentaire du NMOS : même construction, rôles des transistors échangés (« inversion des tranches »).

TrancheSliceComparateur NMOSNMOS comparatorComparateur 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)
CentraleMiddlePaire différentielle NMOSNMOS differential pairPaire 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)
PolarisationBiasingR_biasR_bias'
R_bias≈ 22 à 30 kΩMiroir PMOSMP6 à MP9(source de courant)PMOS mirrorMP6 to MP9(current source)Paire PMOSMP4 / MP5PMOS pairMP4 / MP5Miroirs NMOSMN0 à MN3(charge active)NMOS mirrorsMN0 to MN3(active load)InverseursI15 + I16InvertersI15 + I16V_INV_REFsortie : 0 ou V_DDoutput: 0 or V_DD
Le comparateur PMOS : de gauche à droite, polarisation, source de courant, paire différentielle, charge active, remise en forme par deux inverseurs.The PMOS comparator: from left to right, biasing, current source, differential pair, active load, reshaping by two inverters.

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.
Le bloc qui nous a pris le plus de temps : le transcodeur. 15 comparateurs en parallèle plus toute la combinatoire derrière, ça fait beaucoup de pistes qui se croisent à câbler proprement. Tout reste en simulation : pas de layout ni de mesure de INL/DNL.

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

V_INS/HNMOS + PMOSÉchelle de 16 R15 tensions de réf.16-R ladder15 reference voltages15 comparateurs(types N et P)15 comparators(N and P types)C1…C15Transcodeurthermomètre → binaireTranscoderthermometer → binaryRegistre4 bits4-bitregisterD3…D0horloge V_Hclock V_Hclk
Architecture du CAN Flash 4 bits : 15 comparaisons en parallèle, code thermomètre, transcodage en binaire.4-bit Flash ADC architecture: 15 parallel comparisons, thermometer code, transcoded to binary.

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.

Comparateurs PMOS : V1 à V7 (plage utile 0 à ~2 V)PMOS comparators: V1 to V7 (usable range 0 to ~2 V)Comparateurs NMOS : V8 à V15 (inutilisable sous ~0,7 V)NMOS comparators: V8 to V15 (unusable below ~0.7 V)V7 ≈ 1,44 VV8 ≈ 1,65 V0 V1 V2 V3,3 V = V_DD15 niveaux de référence, un pas q ≈ 206 mV15 reference levels, one step q ≈ 206 mV
Répartition des 15 comparateurs : chaque type travaille là où sa paire différentielle conduit, et les deux se rejoignent au milieu de l'échelle.Split of the 15 comparators: each type works where its differential pair conducts, and the two meet in the middle of the ladder.

The PMOS comparator

It is the complement of the NMOS one: same construction, transistor roles swapped ("slice inversion").

TrancheSliceComparateur NMOSNMOS comparatorComparateur 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)
CentraleMiddlePaire différentielle NMOSNMOS differential pairPaire 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)
PolarisationBiasingR_biasR_bias'
R_bias≈ 22 à 30 kΩMiroir PMOSMP6 à MP9(source de courant)PMOS mirrorMP6 to MP9(current source)Paire PMOSMP4 / MP5PMOS pairMP4 / MP5Miroirs NMOSMN0 à MN3(charge active)NMOS mirrorsMN0 to MN3(active load)InverseursI15 + I16InvertersI15 + I16V_INV_REFsortie : 0 ou V_DDoutput: 0 or V_DD
Le comparateur PMOS : de gauche à droite, polarisation, source de courant, paire différentielle, charge active, remise en forme par deux inverseurs.The PMOS comparator: from left to right, biasing, current source, differential pair, active load, reshaping by two inverters.

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.
The block that took us the longest: the transcoder. 15 comparators in parallel plus all the combinational logic behind them makes a lot of crossing tracks to wire cleanly. Everything stays in simulation: no layout and no INL/DNL measurement.