Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 IV Conception synchrone des ASICs 1. Règles de conception - Problèmes et paramètres généraux - Méthodes synchrones - Circuits recommandés - Circuits non recommandés 2. Machine UT/UC - Modèle synchrone - Diagramme d'états - Machine Moore/Mealy 3. Cellules arithmétiques - Additionneurs - Soustracteurs - Multiplieurs 215 Paramètres Temporels SDN Bascule D D D CP s r Q Q Q QN CDN Temps de Setup Temps de Hold Temps de propagation Largeur minimum d'impulsion sur clock reset ... 216 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Chemin Critique • Principe – Tout circuit possède une fréquence limite de fonctionnement. – La fréquence limite est liée à un seul retard : celui du chemin critique. – Les données doivent être prêtes (stables) avant l ’arrivée de l ’horloge, le délai de transmission maximal entre deux composant synchrones représente le chemin critique. – Ce délai est dû à la logique combinatoire qui limite le fonctionnement ou la vitesse d'un circuit. • Type de chemin critique – – – – Pad d'entrée → Combinatoire → pad de sortie Pad d'entrée → Combinatoire → patte d'entrée d'un élément de mémorisation (a) Patte d'horloge d'un élément de mémorisation → Combinatoire → pad de sortie Patte d'horloge d'un élément de mémorisation → Combinatoire → patte d'entrée d'un autre élément de mémorisation (chemin interne) (b) – Ce peut aussi être un temps d ’accès mémoire, une distribution d’horloge, une opération arithmétique. D Q D Q Q D Q Q Q (a) (b) 217 Chemin Critique • Exemple : – Deux registres (identiques) R1 et R2 séparés par de la logique combinatoire comb2. – Rebouclage de la sortie Out sur l’entrée In. – Le chemin critique est le maximum du temps de propagation de 1 vers 2 et du temps de rebouclage 2 vers 1. φ TCC = Max(T12 , T21 ) T12 = (TDQ + Tcomb2 + Tsetup ) T21 = (TD Q + Tcomb1 + Tsetup ) In comb1 R1 Q1 comb2 R2 Q2 Out 218 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Meta-stabilité Etat analogique entre deux états logiques -> non-observation des temps setup et hold -> violation de largeur minimum d'impulsion -> remise à zéro asynchrone -> fronts lents S D Q setup clk din hold clk Energie Q 0 R 1 probabilités d'état métatstable P > P' dout signal (externe) P D Q D Q P' signal (interne) CLK (externe) cascadage de bascules réduit la probabilité de méta-stabilité 219 Exercice : synchrone fonction 1 220 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Clock Skew • Décalage entre les transitions de la même horloge à différents points d’un circuit • Horloge à deux phases idéale t φ1(t) . φ2(t) = 0 φ1 φ1 ∀ t Timing Circle φ2 φ2 • Avec fronts lents φ1 φ1 φ1(t) . φ2(t) = 0 sur les niveaux φ1(t) . φ2(t) ≠ 0 sur les transitions φ2 φ2 • Avec skew skew φ1 skew : temps pendant lequel φ1(t). φ2(t) = 1 φ1 φ2 φ2 221 Clock Skew : Exemple du µP α • DEC Alpha 21164 (1995) Clock Drviers Clock Generator Clock Drviers 9.3M Transistors 0.5µ 300 MHz 64/128 Bits 222 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Clock Skew : causes • Fronts lents Tensions de seuil ≠ 1x 1x • Génération d’horloges C2 φ1 1x Charges différentes H Tskew = Tinv φ2 H C1 • Routage d’horloge Floorplan small skew clock drive zero skew large skew small skew 223 Clock Skew : problèmes et remèdes • Problèmes – Décalage (skew) maximal déterminé par le délai minimal entre registres – Période d ’horloge minimale déduite du délai maximal entre registres Tp min - Thold D1 Q1 Comb CLK1 D2 Q2 D2 clk1 clk2 CLK2 t φ ’< t φ + tR1 + titx + tcomb - thold t φ ’ - t φ = ΔTskew < Tp min - Thold avec Tp min = MIN ( tR1 + titx + tcomb ) ΔTskew φ’ φ Skew min : le retard sur l’horloge φ ’ ne doit pas être tel que le signal issu de l ’horloge φ soit pris en compte par la bascule suivante dans le même cycle. • Remèdes 1x 4x équilibrage horloges non recouvrantes φ1 φ2 C2 C1 Olivier Sentieys 16x Tskew = 0 H H 224 Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Distribution des signaux • Distribution de l’Horloge 1x – Géométrique : accroissement constant de la taille des buffers (délai min) – Arborescent – Géométrique et Arborescent – Exemples : Htree, ... 4x 16x 64 ••• sortance relative constante 1x 1x 1x 1x 1x sortance relative constante Horloge Horloge local Seul le skew relatif est important. Arbre en H : skew constant dans chaque bloc de taille égale. Bloc de taille suffisamment petite pour que le skew interne soit faible Module Module Module Module Module Module Buffer secondaire Horloge principale Buffer principal Buffer et Arbre : réduction du délai absolu et maîtrise possible de la consommation (alim. éteinte pour les modules non utilisés) 225 Règles de conception Méthodes Synchrones : règles de base « Bonne » horloge (buffer, distribution, fronts rapides,...) Phase d’horloge connectée à toutes les bascules Reset asynchrone global connecté à toutes les bascules Quelques règles supplémentaires : Eviter les rebouclages combinatoires Minimiser le nombre de portes de transmission Contrôle centralisé des module trois-états Eviter les fronts lents 226 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Circuits de base Circuits non recommandés ripple clock D Q D Q reset asynchrone gated clock D Q Q en clk Q D Q Q retard d'activation désynchronisation pics sur enable -> clock COMB Q clk clrb état reset transitoire -> Tp bascules ° passage trop bref du reset -> Treset bascules ° Circuits recommandés bascule E D D en clk reset synchrone reset asynchrone global bascule T (toggle) D Q T Q Q reset synchrone Q clk D Q COMB Q clk reset asynchrone clrb 227 Circuits de base (suite) Circuits non recommandés monostables ligne à retard trigger générateur d'impulsion pulse 1 D trigger oscillateurs pulse Q oscillateur trigger Q lignes à retard S bistables RS (mémorisation) S Q R Q R Q 0 S Q 0 D s r Q Q états inconnus rebouclage combinatoire R Circuits recommandés générateur d'impulsion trigger D Q D Q clk synchrone latch en RS Q RS synchrone S Q pulse s 0 D R EN Q Q états toujours connus R S D clk Q Q Q Q reset prioritaire 228 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 IV Conception synchrone des ASICs 1. Règles de conception - Problèmes et paramètres généraux - Méthodes synchrones - Circuits recommandés - Circuits non recommandés 2. Machine UT/UC - Modèle synchrone - Diagramme d'états - Machine Moore/Mealy 3. Cellules arithmétiques - Additionneurs - Soustracteurs - Multiplieurs 229 Architecture générale • Unité arithmétiques : datapath – Additionneur, multiplieur, décaleur, comparateur, … • Mémoire – RAM, ROM, registre, banc de registres, registres à décalage, FIFO, ... • Contrôle – Machine d’états, compteurs, ROM • Interconnexions – Bus, arbitres, trois-états, multiplexeurs, … • Entrées-sorties Memory Unit I/O Unit Control Unit Processing Unit Olivier Sentieys 230 Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Machine UT/UC câblée Modèle synchrone reset entrées horloge synchro UC UT E/S base de temps UC : Machine MOORE Entrées Synchronisées (méta-stabilité) RAZ global du circuit -> connaître l'état initial Base de temps : données stables pendant leur échantillonnage UC: changement d'état commandes UT lectures UT UT: changement d'état Synchronisation des entrées 231 Unité de contrôle : spécifications Diagramme d'état Ci Ei Cj Ej C'j Ck Ek C'i Transitions : conditions booléennes des entrées horloge implicite conditions de sortie disjointes rebouclage sur un état implicite Nœuds : états stables de l'UC nombre d'états -> taille du registre d'état Codage des états : valeur numérique du registre d'état (Ei -> b0001) types de codages (binaire, gray, johnson,...) Sorties de l'UC : décodage de l'état Précautions : Machine de Moore plus sûre Forcer le codage des états non-atteints (struck states) Entrées et états stables lors de leur échantillonnage Le codage influe sur les parasites de sortie et sur la fréquence MAX 232 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone Entrées Logique Combinatoire de Sortie Machine de Mealy Registre d'Etat / Logique Combinatoire d'Entrée Logique Combinatoire de Sortie Entrées Registre d'Etat Logique Combinatoire d'Entrée Machine de Moore 1/02/10 Sorties Sorties Horloge Horloge Sorties = F(EtatCourant) EtatSuivant = F'(EtatCourant, Entrées) E1 E2 C1 S=1 Sorties = F(EtatCourant, Entrées) EtatSuivant = F'(EtatCourant, Entrées) E1 transformabilité C2 E31 E32 C3 S=0 E2 C1 S=0 Moore<-> Mealy C2 S=1 E3 C3 S=0 C3 E3 E4 S=0 Synchrone Plus sûre de fonctionnement Plus d'états Asynchrone Plus rapide Aléas de fonctionnement 233 IV Conception synchrone des ASICs 1. Règles de conception - Problèmes et paramètres généraux - Méthodes synchrones - Circuits recommandés - Circuits non recommandés 2. Machine UT/UC - Modèle synchrone - Diagramme d'états - Machine Moore/Mealy 3. Cellules arithmétiques - Additionneurs - Soustracteurs - Multiplieurs 234 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Full-Adder A Cin B Full adder Cout Sum S = A ⊕ B ⊕ Ci = ABC i + ABC i + ABCi + ABCi C o = AB + BCi + ACi 235 Ripple-Carry Adder • Addition à propagation de la retenue A0 Ci,0 FA S0 A1 B0 Co,0 (= C i,1) FA FA S1 A2 B1 C o,1 A3 B2 FA FA Co,2 S2 FA FA B3 Co,3 S3 Worst case delay linear with the number of bits td = O(N) t adder ≈ ( N – 1 ) t carry + t sum Goal: Make the fastest possible carry path circuit 236 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Complementary Static CMOS Full Adder VD D VDD A Ci B A B A B Ci A Ci A B X A B B VDD Ci S VDD A Ci B A Ci Co B 28 Transistors 237 Propriété d’inversion A Ci A B FA FA S Co Ci B FA FA Co S S ( A, B, C i ) = S ( A , B , C i ) C ( A, B, C ) = C ( A , B , C ) o i o i 238 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Ripple Carry Adder • Addition à propagation de la retenue – Exploiter la propriété d’inversion – Utilise deux types de cellules – Gain sur le temps de propagation Even A0 C i, Odd B0 A1 C o, F B1 C o, F S0 A2 B2 A3 B3 C S1 Co, F F S2 S3 239 Mirror adder structure VD D VD D A B VD D A B B Kill "0"-Propagate A Ci S Ci A "1"-Propagate B Ci Co Ci A Generate A B B A B Ci A B 24 transistors 240 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Optimisation de l’addition • Principe de génération basé sur une simple constatation : lors de l’addition de deux nombres écrits en complément à 2, si Ai est égal à Bi alors il n’est pas nécessaire de connaître la retenue Ci pour calculer Ci+1 et Si+1. – Si Ai = Bi = 0 alors Ci+1 = 0 – Si Ai = Bi = 1 alors Ci+1 = 1 – Lorsque Ai = Bi : additionner les bits de rang supérieur à i, sans attendre l’arrivée de la retenue Ci+1. • Principe de propagation – Lorsque Ai est différent de Bi, la retenue sortant sera égale à la retenue entrant : Ai ≠ Bi alors Ci+1 = Ci • L’utilisation conjointe des deux principes permet d’accélérer le processus de l’addition. – Pi = Ai ⊕ Bi – Gi = Ai.Bi (aptitude du ième rang à propager une retenue) (aptitude du ième rang à générer une retenue) Si = Ai ⊕ Bi ⊕ Ci = Pi ⊕ Ci 241 Carry Look Ahead Adder • Anticipation de la retenue – Afin de supprimer la propagation des retenues à travers les n FullAdders, cet additionneur calcule à l’avance sa valeur, pour chaque Full-Adder, grâce à des circuits logiques supplémentaires. A0 ,B0 P0 C0 S0 ・ ・・ C1 P1 S1 AN B N CN ・ ・・ Si = Ai ⊕ Bi ⊕ Ci = Pi ⊕ Ci Olivier Sentieys PN SN 242 Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Carry Look Ahead Adder – A l’étage i, un additionneur reçoit une retenue entrante Ci égale à 1 si et seulement si : - l’étage i-1 a généré une retenue (Gi-1), ou - l’étage i-1 a propagé un retenue générée à l’étage i-2 (Pi-1 = Gi-2 = 1), ou - ..........., ou - les étages i-1, i-2, i-3, ..., 1, 0 ont propagé une retenue entrant dans l’additionneur (Pi-1 = Pi-2 = ... = P1 = P0 = C0 =1). Cette constatation nous fournit le résultat fondamental qui suit : Ci = Gi− 1 + Pi− 1Ci− 1 = Gi− 1 + Pi− 1 (Gi− 2 + Pi− 2 Ci− 2 ) = ... Ci = Gi− 1 + Pi− 1Gi− 2 + Pi− 1 Pi− 2 Gi− 3 +...+ Pi− 1 ...P1G0 + Pi− 1 ...P1 P0 C0 – Principe de l’additionneur CLA est de réaliser de manière séquentielle les trois étapes suivantes : Calcul des couples (Pi, Gi) Calcul des Ci Calcul des Si € Si = Ai ⊕ Bi ⊕ Ci = Pi ⊕ Ci 243 Carry Look Ahead Adder • Additionneur sur 32 bits A[31 .. 28] A[27 .. 24] A[23 .. 20] A[19 .. 16] A[15 .. 12] A[11 .. 8] A[7 .. 4] B[31..28] B[27 .. 24] B[23 .. 20] B[19 .. 16] B[15 .. 12] B[11 .. 8] B[7 .. 4] CLU P7 G7 (1) CLU P6 G6 CLU P5 (1) G5 (1) CLU P4 G4 CLU P3 (1) G3 (1) A[3 .. 0] B[3 .. 0] CLU P2 G2 CLU P1 G1 (1) C1 C7 ADD4_FA S[31..28] C6 ADD4 S[27..24] C5 ADD4_FA S[23..20] • (1) Ci = Pi . Ci-1 + Gi Olivier Sentieys C4 ADD4 S[19..16] C3 ADD4_FA S[15..12] C2 ADD4 S[11..8] ADD4_FA S[7..4] ADD4 S[3..0] 244 Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Look-Ahead Cell VDD G3 G2 G1 G0 Ci,0 Co,3 P0 P1 P2 P3 245 Soustraction • Entrée B passée en complément à 2 Bn-1 An-1 B1 xor Cn A1 B0 xor Cn-1 C2 A0 Sous = C0 xor C1 FA FA FA Sn-1 S1 S0 246 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Multiplication • Multiplication de 2 nombres non signés multiplicande multiplicateur produit partiel p5 a2 X ? b2 a2 b1 a2 b2 a1 b2 p4 a1 b1 a0 b0 Matrice des produits partiels a2 b0 a1 b0 a0 b0 a1 b1 a0 b1 a0 b2 p3 p2 p1 p0 • Nombres signés – A=-3, B=10 – a) P=290 – b) P=-30 ? X 1 1 1 0 1 0 1 0 1 0 ? X 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 . 1 1 1 1 1 1 1 0 1 . 0 0 0 0 0 . . 0 0 0 0 0 0 0 0 . . 1 1 1 0 1 . . . 1 1 1 1 1 0 1 . . . 0 0 0 0 0 . . . . 0 0 0 0 0 0 . . . . 0 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 a b 247 Multiplication • Exemple : Z, X (M bits) et Y (N bits) non signés 248 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Array Multiplier X3 Z7 X2 X1 X0 X3 X2 X1 X0 H F F H X3 X2 X1 X0 F F F H X3 X2 X1 X0 F F F H Z6 Z5 Z4 Y2 Y0 Y1 Z1 Y3 Z3 Tmult = 249 Algorithme de Booth • Algorithme de Booth – Exploite les suites de 1 ou de 0 0 1 1 × 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 . 0 0 0 0 0 . . 0 0 0 0 . . . 1 0 0 . . . . 0 1 1 × 0 1 0 0 1 1 0 1 . 0 0 0 0 0 . . 0 0 . . 1 0 . . 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 Suppression des produits partiels nuls 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 . × 1 1 1 0 1 . 0 1 0 1 . . 1 1 1 . . . 0 1 0 0 1 1 0 1 - 0 1 × 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 Propriété simplificatrice 111 = 1000-1 250 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 4. Conception synchrone 1/02/10 Arbre de Wallace • Wallace 3 • Wallace 5 – S=X⊕Y⊕Z; C=XY+XZ+YZ x y z 20 20 20 20 20 20 20 W3 ou W3 W3 21 20 W3 c s 21 20 0 • Additions de 7 données de 4 bits 21 20 e z r g 20 22 21 20 W7 W7 W7 W7 20 20 20 W5 22 23 20 21 20 m l k h b W3 fsdq 25 24 23 24 23 22 23 22 21 22 22 21 21 20 20 0 W3 25 W3 24 W3 23 0 22 21 => Multiplieur Booth/Wallace Additionneur 26 Olivier Sentieys 25 24 23 22 21 20 251