← Retour← Back
CV

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

ÉlectroniqueElectronicsCadence VirtuosoBiCMOS 0.35 µmMixed-signal
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

Schéma Virtuoso du CAN complet : échantillonneur-bloqueur, bloc de transcodage (échelle, comparateurs et logique) et registre 4 bits, cadencés par la même horloge.Virtuoso schematic of the complete ADC: sample-and-hold, decoding block (ladder, comparators and logic) and 4-bit register, driven by the same clock.

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.

Interrupteur CMOS de l'échantillonneur : un NMOS (MN0) et un PMOS (MP0) en parallèle entre V_in et V_out, le PMOS étant commandé par le complément de V_H (inverseur I5).CMOS switch of the sampler: an NMOS (MN0) and a PMOS (MP0) in parallel between V_in and V_out, the PMOS being driven by the complement of V_H (inverter I5).
Échantillonneur-bloqueur : l'interrupteur I0 commandé par V_H, et la capacité C0 qui mémorise V_out quand il est ouvert.Sample-and-hold: the switch I0 driven by V_H, and the capacitor C0 that stores V_out when it is open.

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.

Comparateurs PMOS : V1 à V7 (écart < q/2 jusqu'à ~2,9 V en DC)PMOS comparators: V1 to V7 (error < q/2 up to ~2.9 V in DC)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'
Comparateur PMOS (Virtuoso) : polarisation par R1 et le miroir MP8/MP9, paire différentielle PMOS MP4/MP5 (in1 et in2), miroirs MP6/MP7 et MN0 à MN3, puis les deux inverseurs I15 et I16 en sortie.PMOS comparator (Virtuoso): biasing by R1 and the MP8/MP9 mirror, PMOS differential pair MP4/MP5 (in1 and in2), mirrors MP6/MP7 and MN0 to MN3, then the two output inverters I15 and I16.
Comparateur NMOS (Virtuoso) : paire différentielle NMOS MN4/MN5 polarisée par le miroir MN0/MN1 et R1, charges PMOS MP0 à MP3, miroir de sortie MN2/MN3 et mêmes inverseurs I15 et I16.NMOS comparator (Virtuoso): NMOS differential pair MN4/MN5 biased by the MN0/MN1 mirror and R1, PMOS loads MP0 to MP3, output mirror MN2/MN3 and the same inverters I15 and I16.
Caractéristique DC du comparateur PMOS pour neuf valeurs de V_REF (0 à 3,3 V par pas de 412,5 mV) : la sortie passe de bas à haut quand V_in franchit V_REF. Pour V_REF = 0, la sortie reste haute.DC characteristic of the PMOS comparator for nine values of V_REF (0 to 3.3 V in 412.5 mV steps): the output goes from low to high when V_in crosses V_REF. For V_REF = 0 the output stays high.

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
Contenu du bloc de transcodage : l'échelle de résistances, les 15 comparateurs (NMOS en haut pour les références hautes, PMOS en bas pour les basses), puis les portes AOI22 et les inverseurs qui produisent S3 à S0.Inside the decoding block: the resistor ladder, the 15 comparators (NMOS at the top for the high references, PMOS at the bottom for the low ones), then the AOI22 gates and inverters that produce S3 to S0.

Simulation finale

Simulation finale sur une dent de scie de 0 à 3,63 V en 10 ms : pour chaque bit, la sortie du transcodeur (e) et celle du registre (s) superposées, puis la tension d'entrée et l'horloge (dernier tracé).Final simulation on a 0 to 3.63 V sawtooth over 10 ms: for each bit, the decoder output (e) and the register output (s) overlaid, then the input voltage and the clock (last trace).
  • 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.
Bascule D maître-esclave du registre : deux verrous (I2 et I7), le second commandé par l'inverse de l'horloge H (inverseur I8).Master-slave D flip-flop of the register: two latches (I2 and I7), the second driven by the inverse of the clock H (inverter I8).

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 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

Schéma Virtuoso du CAN complet : échantillonneur-bloqueur, bloc de transcodage (échelle, comparateurs et logique) et registre 4 bits, cadencés par la même horloge.Virtuoso schematic of the complete ADC: sample-and-hold, decoding block (ladder, comparators and logic) and 4-bit register, driven by the same clock.

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.

Interrupteur CMOS de l'échantillonneur : un NMOS (MN0) et un PMOS (MP0) en parallèle entre V_in et V_out, le PMOS étant commandé par le complément de V_H (inverseur I5).CMOS switch of the sampler: an NMOS (MN0) and a PMOS (MP0) in parallel between V_in and V_out, the PMOS being driven by the complement of V_H (inverter I5).
Échantillonneur-bloqueur : l'interrupteur I0 commandé par V_H, et la capacité C0 qui mémorise V_out quand il est ouvert.Sample-and-hold: the switch I0 driven by V_H, and the capacitor C0 that stores V_out when it 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.

Comparateurs PMOS : V1 à V7 (écart < q/2 jusqu'à ~2,9 V en DC)PMOS comparators: V1 to V7 (error < q/2 up to ~2.9 V in DC)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'
Comparateur PMOS (Virtuoso) : polarisation par R1 et le miroir MP8/MP9, paire différentielle PMOS MP4/MP5 (in1 et in2), miroirs MP6/MP7 et MN0 à MN3, puis les deux inverseurs I15 et I16 en sortie.PMOS comparator (Virtuoso): biasing by R1 and the MP8/MP9 mirror, PMOS differential pair MP4/MP5 (in1 and in2), mirrors MP6/MP7 and MN0 to MN3, then the two output inverters I15 and I16.
Comparateur NMOS (Virtuoso) : paire différentielle NMOS MN4/MN5 polarisée par le miroir MN0/MN1 et R1, charges PMOS MP0 à MP3, miroir de sortie MN2/MN3 et mêmes inverseurs I15 et I16.NMOS comparator (Virtuoso): NMOS differential pair MN4/MN5 biased by the MN0/MN1 mirror and R1, PMOS loads MP0 to MP3, output mirror MN2/MN3 and the same inverters I15 and I16.
Caractéristique DC du comparateur PMOS pour neuf valeurs de V_REF (0 à 3,3 V par pas de 412,5 mV) : la sortie passe de bas à haut quand V_in franchit V_REF. Pour V_REF = 0, la sortie reste haute.DC characteristic of the PMOS comparator for nine values of V_REF (0 to 3.3 V in 412.5 mV steps): the output goes from low to high when V_in crosses V_REF. For V_REF = 0 the output stays high.

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
Contenu du bloc de transcodage : l'échelle de résistances, les 15 comparateurs (NMOS en haut pour les références hautes, PMOS en bas pour les basses), puis les portes AOI22 et les inverseurs qui produisent S3 à S0.Inside the decoding block: the resistor ladder, the 15 comparators (NMOS at the top for the high references, PMOS at the bottom for the low ones), then the AOI22 gates and inverters that produce S3 to S0.

Final simulation

Simulation finale sur une dent de scie de 0 à 3,63 V en 10 ms : pour chaque bit, la sortie du transcodeur (e) et celle du registre (s) superposées, puis la tension d'entrée et l'horloge (dernier tracé).Final simulation on a 0 to 3.63 V sawtooth over 10 ms: for each bit, the decoder output (e) and the register output (s) overlaid, then the input voltage and the clock (last trace).
  • 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.
Bascule D maître-esclave du registre : deux verrous (I2 et I7), le second commandé par l'inverse de l'horloge H (inverseur I8).Master-slave D flip-flop of the register: two latches (I2 and I7), the second driven by the inverse of the clock H (inverter I8).

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.