Circuits Numeriques Et Synthese Logique, Un Outil - VHDL

Embed Size (px)

Citation preview

Circuits numriques et synthse logique

0

Circuits numriques et synthse logique, un outil : VHDL

Jacques WEBERMatre de confrences lIUT de CACHAN

Maurice MEAUDREChef de travaux lIUT de CACHAN

Circuits numriques et synthse logique

1

Avant-proposAu cours des quinze dernires annes, les mthodes de conception des fonctions numriques ont subi une volution importante. Dans les annes soixante-dix, la majorit des applications de la logique cble taient construites autour de circuits intgrs standard, souvent pris dans la famille TTL. Au dbut des annes quatre-vingt apparurent, paralllement, les premiers circuits programmables par lutilisateur du ct des circuits simples et les circuits intgrs spcifiques (ASICs) pour les fonctions complexes fabriques en grande srie. La complexit de ces derniers a ncessit la cration doutils logiciels de haut niveau qui sont la description structurelle (schmas au niveau des portes lmentaires) ce que les langages volus sont au langage machine dans le domaine de la programmation. A lheure actuelle, lcart de complexit entre circuits programmables et ASICs sest restreint : on trouve une gamme continue de circuits qui vont des hritiers des premiers PALs (programmable array logic), quivalents de quelques centaines de portes, des FPGAs (Field programmable gate array) ou des LCAs (Logic cell array) de quelques dizaines de milliers de portes quivalentes. Les outils daide la conception se sont unifis ; un mme langage, VHDL par exemple, peut tre employ quels que soient les circuits utiliss, des PALs aux ASICs. Circuits numriques et synthse logique, un outil : VHDL est lun des rsultats de la rflexion faite lIUT de CACHAN sur lvolution du contenu de lenseignement de llectronique numrique, pour proposer aux tudiants une formation en accord avec les mthodes de conceptions actuelles. La gageure tait dviter le pige du cours VHDL , impensable ce niveau de formation, compte tenu du volume horaire imparti (une centaine dheures, travaux dapplications compris). Nous avons dcid de nous restreindre un sous-ensemble cohrent de VHDL, qui soit strictement synthtisable. Ce choix tant fait, nous avons men en synergie lapprentissage des bases de la logique et celui des concepts des langages de description de haut niveau. Chaque lment nouveau, vu sous son aspect circuit, est immdiatement transcrit en VHDL, ce qui prcise sa fonction, et permet ltudiant de se familiariser progressivement avec la syntaxe du langage. Lobjectif tant la matrise du processus de synthse, jusqu la ralisation, nous avons utilis un compilateur VHDL qui permet trs simplement de gnrer les fichiers JEDEC utiliss pour la programmation des circuits. Exprimente pour la premire fois au cours de lanne scolaire 1994-95, cette approche un peu diffrente de llectronique numrique semble avoir rencontr un accueil favorable de la part des tudiants. La cration de machines dtats adaptes un problme donn, ne semble plus constituer un obstacle pour eux. Que soient remercis ici les collgues de lIUT, pour les nombreuses discussions que nous avons eues sur le sujet, et, surtout, les tudiants qui se sont lancs, parfois avec fougue, dans lexploration de cette terre inconnue. Le livre est subdivis en cinq chapitres et une annexe : I. Une introduction gnrale au monde du numrique. On y dfinit les notions de base telles que la reprsentation des nombres, les conventions logiques etc. II. Un panorama des caractristiques lectriques, statiques et dynamiques, des circuits numriques et leur emploi pour dterminer les limites de fonctionnement dune application. Ce chapitre nest pas forcment trait en cours de faon chronologique

Circuits numriques et synthse logique

2

linaire ; certaines parties ne prennent sens quau vu des applications de la logique squentielle (calcul dune frquence maximum de fonctionnement, par exemple). III. La dfinition des oprateurs lmentaires, combinatoires et squentiels. Le principe adopt est de ne pas attendre davoir vu toute la logique combinatoire pour aborder la logique squentielle. Les bascules (synchrones principalement) doivent devenir des objets aussi familiers quune porte ET. Cest loccasion de la dcouverte des oprateurs lmentaires que les premiers rudiments du langage VHDL apparaissent. Les difficults de ce langage (dont la principale concerne le passage combinatoire squentiel asynchrone squentiel synchrone) sont abordes sur des objets trs simples, elles sont donc faciles expliciter. Une fois ces difficults surmontes, la puissance du langage rcompense trs largement lutilisateur de son effort intellectuel. IV. Les principales catgories de circuits, fonctions standard et circuits programmables. Ltude de cette partie, volontairement restreinte, ne peut se faire quen illustrant le cours de nombreuses analyses de notices techniques. V. Les mthodes de synthse qui sont laboutissement de cet enseignement. On y fait connaissance avec les machines dtats, les architectures de Moore et de Mealy, leur transcription en VHDL. Les mthodes de simplification sont vues trs rapidement, essentiellement pour comprendre ce que fait un optimiseur, de faon apprendre le piloter. VI. Une annexe qui rsume et explicite les principales constructions quautorise le langage VHDL. Sont exclues, volontairement, toutes les constructions non synthtisables, qui servent exclusivement la modlisation et la simulation. De nombreux exemples illustrent les principes abords, et des exercices permettent au lecteur dasseoir sa comprhension. La connaissance dun langage de programmation procdural, comme C ou Pascal, nest pas indispensable, mais elle facilite la comprhension de certains passages. Quelques notions sur les composants, transistors et capacits, et sur les lois lmentaires des circuits lectriques sont souhaitables. On notera cependant que les aspects structurels internes des circuits ne sont pas abords, sauf quand ils sont incontournables (sorties non standard).

Circuits numriques et synthse logique

3

1 Informations numriques

1.1 De lanalogique au numriqueEntre un disque noir et un disque compact il y a une diffrence de principe : le premier est analogique, le second numrique. Que signifient ces termes ? Le mot analogique voque ressemblance, si on regarde avec un microscope une partie de sillon dun disque noir on verra une sorte de valle sinueuse dont les flancs reproduisent, peu prs, la forme des signaux lectriques transmis aux haut-parleurs. A un son grave correspondent des sinuosits qui ont une priode spatiale grande (quelques mm pour 100 Hz), un son aigu correspondent des sinuosits dont la priode spatiale est plus petite (quelques centimes de mm pour 10 kHz). De mme, lamplitude des sinuosits reproduit, grosso-modo, lamplitude du son que lon souhaite reproduire. Le mot numrique voque nombre. Si on regarde au microscope (grossissement suprieur 100) une plage dun disque compact on verra une sorte de pointill de trous ovales, presque identiques, rpartis de faon irrgulire sur des pistes quasi-circulaires. Aucun rapport de forme entre le son enregistr et lallure de la gravure ne peut tre observ, prsence ou absence de trous constituent les deux valeurs possibles dun chiffre en base 2. Ces chiffres, regroups par paquets de 16, constituent des nombres entiers dont la valeur est limage, via un Amplitude code, de lamplitude du signal sonore1. t Le passage dun monde signal analogique lautre se fait par des convertisseurs analogiqueTraitement CAN CNA numrique (CAN) et numriquenumrique analogique (CNA), dont nous ntudierons pas ici le fonctionnement. La diffrence de Amplitude principe voque plus haut se retrouve videmment quand on observe le fonctionnement des t signal numrique circuits : un circuit analogique manipule des signaux lectriques1

En ralit le code est un peu plus compliqu que ne le laisserait supposer cette description, mais cest une autre histoire.

Circuits numriques et synthse logique

4

qui peuvent prendre une infinit de valeurs, qui sont en gnral des fonctions continues du temps, un circuit numrique manipule des signaux qui ne peuvent prendre quun nombre fini (gnralement 2) de valeurs conventionnelles, sans rapport avec le contenu de linformation, qui sont des fonctions discontinues du temps.

1.2 Deux niveaux lectriques : le bitDans toute la suite nous considrerons, ce qui est le cas le plus frquent, que les signaux numriques reprsentent des valeurs binaires ; ils ne peuvent prendre que deux valeurs. Une variable binaire porte le nom de bit, contraction de binary digit, littralement chiffre en base 2. Dans un circuit lectronique la grandeur physique significative que lon utilise le plus souvent est la tension (un signal lectrique peut trs bien tre un courant), sauf prcision contraire explicite la valeur dun signal lectrique binaire se mesurera donc en volts. Dans un systme numrique tous les potentiels sont mesurs par rapport un potentiel de rfrence, la masse, qui est une quipotentielle commune tous les circuits. Cette prcision permet de parler du potentiel (ou de la tension) dun point dun montage au lieu de spcifier diffrence de potentiels entre ... et la masse . A chaque quipotentielle dun circuit on peut donc associer un bit qui reprsente la valeur de la tension de lquipotentielle considre.

1.2.1 Conventions logiquesUne entre ou une sortie dun circuit numrique ne peut prendre que deux valeurs, notes gnralement H, pour High (haut), et L, pour Low (bas) : 3 et 0,2 volts sont des valeurs typiques frquemment rencontres. La valeur dun signal reprsente en gnral quelque chose : chiffre en base deux, 0 ou 1, valeur dune variable logique, vrai ou faux, tat dun oprateur, actif ou inactif, tat dune porte, ouverte ou ferme, tat dun moteur, arrt ou en marche, etc. Lassociation entre la valeur lectrique (H ou L) et le sens que lon donne cette valeur (0 ou 1, par exemple) constitue ce que lon appelle une convention logique. Il ny a pas de convention par dfaut, cet oubli peut tre une source derreurs. Dans la famille des microprocesseurs 68xx0 les adresses (des nombres entiers) sont matrialises par des tensions o H est associ au 1 binaire et L au 0 binaire, mais les niveaux dinterruptions (galement des nombres entiers) sont matrialiss par des tensions o H est associ au 0 binaire et L au 1 binaire. Cest comme . Traditionnellement on qualifie de convention logique positive lassociation entre H et 1, ou vrai, ou actif, et de convention logique ngative lassociation entre H et 0, ou faux, ou inactif. Dans le cas de la porte, qui doit, comme chacun sait, tre ouverte ou ferme , il ny a pas de tradition. Le circuit 74xx08, par exemple, est connu comme tant une positive logic and gate , littralement porte et en logique positive . Si lon change de convention logique le mme circuit devient un oprateur Boolen diffrent (lequel ?).

Circuits numriques et synthse logique

5

1.2.2 Immunit au bruitLun des intrts majeurs des signaux numriques est leur grande robustesse vis vis des perturbations extrieures. Lexemple des enregistrements sonores en est une bonne illustration, le lecteur sceptique naura qu faire la simple exprience qui consiste prendre une pingle (fine), rayer un disque noir , un disque compact, et comparer les rsultats. Derrire le rsultat de cette exprience, quelque peu agressive, se cachent en fait deux mcanismes qui se compltent pour rendre le systme numrique plus robuste, une protection au niveau du signal lmentaire, le bit, et une protection au niveau du systme par le jeu du codage : Au niveau du bit La protection repose sur le fait que linformation nest pas contenue dans lamplitude du signal. Un signal analogique direct (on exclut ici les signaux moduls pour lesquels lanalyse devrait tre affine) a une forme qui est limage de linformation transmettre. Toute perturbation cette forme se traduit par une dformation de linformation associe. Lamplitude dun signal numrique na quun rapport trs lointain avec linformation vhicule, la seule contrainte est que le systme soit encore capable de diffrencier sans ambigut un niveau haut et un niveau bas. Lcart entre ces deux niveaux tant grand, seule une perturbation de grande amplitude pourra provoquer une erreur de dcision2. Au niveau du systme Les valeurs lmentaires (bits) sont regroupes en paquets pour former des mots, ces mots doivent obir certaines rgles de construction, des codes. Il est parfaitement imaginable, et cest ce qui est fait dans tous les cas o lon craint les perturbations, de construire des codes qui permettent de dtecter et, dans une certaine mesure, de corriger des erreurs. Un exemple connu de tous, certes assez loign de llectronique numrique, est la langue crite. Un lecteur qui nest pas totalement illettr est mme de dtecter et de corriger un grand nombre derreurs typographiques, mme sans faire appel au sens, dun texte. La raison en est simple : les mots du dictionnaire sont loin de contenir toutes les combinaisons possibles des 26 lettres de lalphabet, la construction dune phrase obit des rgles de grammaire bien connues du lecteur. Ces restrictions (mots du dictionnaire et grammaire) introduisent des redondances qui permettent justement dassurer la robustesse du texte vis vis des erreurs typographiques. Les codes dtecteurs et/ou correcteurs derreurs sont tous fonds sur ladjonction de redondances la chane de bits transmis, ou inscrits sur un support fragile.3 Les choses ont un cot Sans rentrer ici dans les dtails, on peut remarquer que la robustesse des signaux numriques est lie la trs faible quantit dinformation vhicule par chaque signal lmentaire (0 ou 1). Le corollaire de cette pauvret du signal lmentaire est que pour traiter une information complexe il faut une quantit norme de signaux lmentaires, merci M. de La Palice. Cela se traduit par un dbit, dans le cas des transmissions, ou par un volume, dans le cas du stockage, trs important. A titre dexercice on calculera le nombre doctets (paquets de 8 bits, byte dans le jargon) contenus dans un disque compact qui dure une heure, sachant que le signal est numris (CAN) 44 000 fois par seconde, et que chaque point occupe 2*162 3

Cette question sera prcise quantitativement lors de la prsentation des technologies des circuits (chapitre II). Un exemple simple de code correcteur sera tudi en exercice, quand les outils danalyse seront disponibles.

Circuits numriques et synthse logique

6

bits (sans les redondances du code correcteur !). A titre de comparaison, le micro-ordinateur qui sert rdiger ce texte dispose dune mmoire de 8 Mga Octets, et dun disque de 200 Mga Octets. On rpondra ensuite la question : pourquoi la tlvision numrique ne sera-telle gnralise quau sicle prochain (il est vrai que cest demain), au prix dun investissement mathmatique considrable pour comprimer linformation vido. 4

1.3 Du bit au mot : des codesNous avons dj voqu que les informations lmentaires, que constituent les bits, sont souvent regroupes dans des paquets plus riches de sens, interprtables dans un code. Le monde du codage est vaste, nous nous contenterons ici de dcrire rapidement quelques codes lmentaires, dusage quotidien, et laisserons linitiative du lecteur lexploration des codes sophistiqus, notamment les codes correcteurs derreurs.

1.3.1 Pour les nombresDeux grandes catgories de nombres existent dans le monde informatico-logique : les entiers et les flottants. Les premiers constituent un sous ensemble fini de lensemble des entiers cher aux mathmaticiens, les seconds tentent dapprocher, par un ensemble fini, les nombres rels. Le distinguo est de taille, les entiers que nous rencontrerons obissent une arithmtique euclidienne clairement dfinie, telle quon lapprend dans les grandes classes de lcole primaire, les seconds obissent une arithmtique approche, mme si lapproximation est bonne. Le lecteur averti pourra objecter que lon rencontre parfois des nombres non entiers, caractriss par un nombre connu de chiffres aprs la virgule (un exemple de tels nombres est rencontr sur vos relevs bancaires). Cette catgorie de nombres, connue sous le nom de virgule fixe, nen est pas une : ils obissent larithmtique entire (faites vos comptes en centimes), et sont convertis lors des oprations dentre-sortie (affichage, impression, saisie clavier). Entiers naturels La base 2 Etant donn un mot de n bits (an-1,an-2, ... a1,a0), o les ai valent 0 ou 1, on peut considrer que ce mot reprsente la valeur dun entier A, crit en base 2 : A = an-12n-1 + an-22n-2 + .... + a12 + a0 Les valeurs de A sont limites par : 0 A 2n - 1 Les valeurs couramment rencontres pour n sont 8 (octet), 16 (entier court) et 32 (entier long). Les bornes suprieures correspondantes pour la valeur de A sont respectivement de 255, 65 535 et 4 294 967 295. Quand n est un multiple de 4 (cest le cas des valeurs voques ci-dessus...) il est souvent pratique, car plus compact, dcrire le nombre en hexadcimal (base 16) : A = (hm-1,hm-2, ...,h0) = hm-116m-1 + hm-216m-2 + ...+ h0 O m = n/4, et hi peut prendre lune des 16 valeurs 0, 1, 2 ....,9, A, B, C, D, F qui sont elle-mmes reprsentables en binaire sur 4 bits.4

Une image tlvision se rpte au minimum 25 fois par seconde, contient 600 lignes de 700 points, chaque point est numris sur 2 octets.

Circuits numriques et synthse logique

7

Les oprations arithmtiques classiques sont laddition, la soustraction, la multiplication et la division. On notera que : 1. Tous les rsultats sont obtenus modulo 2n, ce qui confre aux oprations sur lensemble des entiers sur n bits un caractre priodique comparable celui des fonctions trigonomtriques. 2. La division est la division entire, dont le rsultat est constitu de deux nombres : le quotient et le reste. La base 10 Les humains actuels ont pris la dplorable habitude de compter en base dix5 qui nest pas une puissance de 2 (60 non plus, dailleurs). Il ny a donc pas de correspondance simple entre un nombre crit en binaire et sa version dcimale. Si cette difficult est la source dexercices lmentaires de programmation (programmes de changements de bases), elle est parfois gnante en pratique. Cest pour cette raison que lon rencontre parfois des codes hybrides : le nombre est crit en chiffres dcimaux, et chaque chiffre est cod en binaire sur 4 bits. Le code le plus classique, dit BCD pour binary coded decimal consiste coder chaque chiffre dcimal (0 9) en binaire naturel (0000 1001). Larithmtique de ce code nest pas simple, laddition de deux chiffres dcimaux peut conduire un rsultat hors code (un nombre compris entre 10 et 15), ou faux mais apparemment dans le code (un nombre compris entre 16 et 18) ; aprs chaque opration lmentaire il faut donc recaler le rsultat intermdiaire. Cette opration supplmentaire sappelle ajustement dcimal, il faut leffectuer aprs tout calcul sur une tranche de 4 bits. Beaucoup de calculettes utilisent un code BCD qui facilite les oprations daffichage. Dautres codes dcimaux existent, qui facilitent un peu les calculs, mais ils sont dun usage rarissime actuellement. Entiers signs Quand on aborde la question des entiers signs il est essentiel de se souvenir quun mot de n bits ne peut fournir que 2n combinaisons diffrentes. Comme on ne peut pas avoir le beurre et largent du beurre, il faudra restreindre la plage des valeurs possibles pour la valeur absolue du nombre. Les tres humains ont lhabitude de reprsenter un nombre sign dans un code qui spare le signe et la valeur absolue du nombre. Le signe tant une grandeur binaire (+ ou -), on peut lui affecter un bit, le bit de signe, et garder les n-1 bits restant pour coder la valeur absolue, en binaire naturel, par exemple. Ce type de code, connu sous le nom de signe-valeur absolue nest en fait jamais utilis pour les nombres entiers (il lest par contre pour les flottants). La raison en est que larithmtique sous-jacente est complique ; en effet pour additionner ou soustraire deux nombres signs, dans un code signe-valeur absolue, il faut commencer par dterminer quel sera le signe du rsultat. Pour ce faire il faut commencer tout calcul par une comparaison qui fait intervenir la fois les signes et les valeurs absolues des oprandes (remmorez-vous vos dbats avec les mathmatiques du dbut du collge). Les deux codes universellement utiliss pour reprsenter les entiers relatifs, prsents cidessous, vitent cet cueil, additions et soustraction ne sont quune mme opration, qui ne fait pas intervenir de comparaison, et les reports (ou retenues) ventuels sont simples traiter. Dans lun des codes comme dans lautre, lintervalle de dfinition dun nombre A, cod sur n bits, est donn par :5

On notera que vers 3000 avant J.C. les Sumriens avaient fort judicieusement choisi la base 60, multiple de 2, 3, 4, 5, 6, 10, 12. Il est vrai que lapprentissage des tables de multiplications ne devait pas tre la porte de tous.

Circuits numriques et synthse logique

8

- 2n-1 A 2n-1 - 1 Soit -128 127 pour n = 8, -32 768 32 767 pour n= 16 et -2 147 483 648 2 147 483 647 pour n=32. Attention ! Le caractre priodique des oprations implique, par exemple, que dans un code sign sur 8 bits 100 + 100 = -56, qui est bien gal 200 modulo 256, il ne sagit pas l dune erreur mais dune consquence de la restriction un sous-ensemble fini des oprations sur les entiers. Le changement de longueur du code, par exemple le passage de 8 16 bits, nest pas une opration triviale, la combinaison binaire qui reprsente 200 en binaire naturel, na pas forcment la mme signification quand on linterprte dans un code 8 bits ou un code 16 bits. Le code complment 2 Cest le code utilis pour reprsenter les nombres entiers dans un ordinateur. Il prsente lintrt majeur de se prter une arithmtique simple, mais a pour dfaut mineur que la reprsentation des nombres ngatifs nest pas trs parlante pour un tre humain normalement constitu. La construction du code complment deux, sur n bits, dcoule directement de la dfinition modulo 2n des nombres. Etant donn un nombre A : Si A 0 le code de A est lcriture en binaire naturel de A, ventuellement complt gauche par des 0. Exemple : A = 23, cod sur 8 bits scrit : 00010111. Si A < 0 le code de A est lcriture en binaire naturel de 2n + A, ou, ce qui revient au mme, de 2n |A|. Exemple : A = 23, cod sur 8 bits scrit : 11101001, qui est la reprsentation en binaire naturel de 256 23 = 233 (E9 en hexadcimal). On remarquera que le bit le plus gauche, le bit de poids fort ou MSB (pour most significant bit), est le bit de signe, avec la convention logique 1 pour et 0 pour +. Le calcul de loppos dun nombre, quel que soit le signe de ce nombre, est une simple consquence de la dfinition du code : A = 2n A modulo 2n. Par exemple : (23) = 256 + 23 modulo 256 = 23. Astuce de calcul : Pour obtenir rapidement lexpression binaire de loppos dun nombre dont on connat le code, on peut utiliser lastuce suivante (que certains, tort, prennent pour une dfinition du code) : 2n A = 2n 1 A + 1 (vrifiez) 2n 1 est le nombre dont tous les chiffres binaires sont 1, 2n 1 A est le nombre que lon obtient en remplaant dans le code de A les 1 par 0 et rciproquement. Ce nouveau nombre sappelle complment 1 ou complment restreint de A, et se note classiquement A . Suivant la tradition on peut alors crire :

Circuits numriques et synthse logique

9

A = A + 1. Exemple : 23 = 00010111, 23 = 11101000, 23 = 23 + 1 = 11101001, qui est le rsultat prcdent. Laugmentation de longueur du code (par exemple le passage de 8 16 bits) se fait en compltant gauche par le bit de signe, 0 pour un nombre positif, 1 pour un nombre ngatif. Cette opration porte le nom dextension de signe. Exemple 23 scrit 11101001 sur 8 bits et 1111111111101001 sur 16 bits, ce qui est notablement diffrent de 0000000011101001 qui est le code de 233, dont lexistence est maintenant lgale. Les additions et soustractions des nombres ne sont quune seule et mme opration : des additions et des ventuels changements de signes, sans que lon ait jamais faire de comparaison, et o les reports (ou retenues) sont gnres mcaniquement. La dissymtrie entre addition et soustraction, bien connue des lves des premires annes de collge, a disparu. Les multiplications et les divisions par des puissances de 2 sont des dcalages arithmtiques (i.e. avec conservation du signe), par exemple pour des octets :

A:

a7 a6 a5 a4 a3 a2 a1 a0 A2:

A:

a7 a6 a5 a4 a3 a2 a1 a0 a6 a5 a4 a3 a2 a1 a0 0

A/2 : a7 a7 a6 a5 a4 a3 a2 a1

N.B. : Les dtails de manipulation des nombres, lors des oprations arithmtiques, sont videmment transparentes pour le programmeur gnraliste, elles sont intressantes connatre pour le concepteur dunits de calcul, et, exceptionnellement, pour le programmeur qui soccupe des interfaces logiciels avec le matriel (pilotes de priphriques, librairies de bas niveau, etc.). Si le code complment deux se prte bien aux calculs, il sign complment 2 complique les oprations de 127 comparaisons et, plus gnralement, les oprations qui font intervenir une relation dordre 0 128 255 entre les nombres. Prcisons cette -1 127 non sign question de relation dordre : le code en complment 2 de 1, par exemple, correspond tous les -128 chiffres binaires 1, qui Relation binaire naturel complment deux sur 8 bits. reprsente le plus grand nombre possible dans une interprtation non signe. Face la combinaison binaire correspondant 1 la rponse la question ce nombre est-il suprieur 10 ? ne devra pas tre traite de la mme faon par un oprateur

Circuits numriques et synthse logique

10

cbl suivant que le code est sign ou non. La figure ci-dessous tente dillustrer cette rupture dans la relation dordre. Le code binaire dcal Le code binaire dcal ne prsente pas linconvnient voqu sign binaire dcal ci-dessus propos de la relation dordre : il possde la mme relation 127 dordre que le code binaire naturel des nombres non signs. On le 0 127 255 rencontre dans certains -1 128 convertisseurs numriques non sign analogiques (ou, plus rarement analogiques numriques) et dans la -128 reprsentation de lexposant des Relation binaire naturel binaire dcal sur 8 bits. nombres flottants. Lapplication qui fait passer du binaire naturel au binaire dcal est dfinie en sorte que le minimum de lun des codes corresponde au minimum de lautre, et que le maximum de lun des codes corresponde au maximum de lautre : Un examen rapide de la courbe prcdente fournit la formule de gnration du code binaire dcal sur n bits : tant donn un nombre entier A tel que 2n-1 A 2n-1 1, le code de A est le code binaire naturel de A + 2n-1, do le nom du code. On peut remarquer que le nombre 2n-1 a son MSB gal 1, tous les autres chiffres tant nuls. On passe du code binaire dcal au code complment deux en complmentant le bit de signe. Flottants Si A est un nombre flottant il est cod par une expression du type : A = (1)s2e1,xxxxx... o s est le signe de A, e un nombre entier sign, cod en binaire dcal, et xxxxx... la partie fractionnaire de la valeur absolue de la mantisse. A titre d'exemple les flottants double prcision (64 bits) suivant la norme ANSI ont les caractristiques suivantes: signe s : 1 lment binaire, 1 pour , 0 pour +, exposant compris entre 1022 et +1023, soit 11 lments binaires, partie fractionnaire de la mantisse sur 52 lments binaires. combinaisons rserves pour le zro, l'infini (+ et ) et NAN (not a number). Cela correspond une dynamique allant de 2,210-308 1,810+308, pour une prcision de l'ordre de 16 chiffres dcimaux. De ce qui prcde il faut tirer deux conclusions importantes : 1. L'arithmtique des nombres flottants et celle des entiers font appel des algorithmes radicalement diffrents. 2. Le test d'galit de deux nombres, qui a un sens clair pour des entiers, fournit un rsultat alatoire dans le cas des flottants. Seule une majoration de leur cart conduit un rsultat prvisible.

Circuits numriques et synthse logique

11

Le format binaire des nombres est tel que seule la partie fractionnaire de la mantisse figure, pour des flottants simple prcision :nombre flottant : poids des bits : s exposant partie fractionnaire de la mantisse

31 30----------------23 22----------------------------------------------------0

1.3.2 Il ny a pas que des nombresToute catgorie de donnes un tant soit peu organise est susceptible de gnrer un code ; il est videmment hors de question den faire un catalogue un tant soit peu exhaustif. Nous nous contenterons de citer quelques exemples. Un cas important dans les applications concerne tout ce qui est change dinformations, par exemple entre deux ordinateurs ou entre un ordinateur et une imprimante, sous forme de texte : cela conduit aux codes alphanumriques. Le code alphanumrique le plus utilis porte le nom de code ASCII pour American standard code for information interchange , dcrit ci-dessous. Le code ASCII Sept bits pour les caractres anglo-saxons Pour reprsenter lensemble des lettres de lalphabet - minuscules et majuscules, sans les accents, les dix chiffres dcimaux, les caractres de ponctuation, les parenthses crochets et autres accolades, les symboles arithmtiques les plus courants et des commandes : 128 combinaisons suffisent. Do le code ASCII, sur 7 bits (b6b5b4b3b2b1b0), quasi universellement adopt :b6 b5 b4 Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 0 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 0 0 1 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 0 1 0 2 SP ! " # $ % & ( ) * + , . / 0 1 1 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 1 0 0 4 @ A B C D E F G H I J K L M N O 1 0 1 5 P Q R S T U V W X Y Z [ \ ] ^ _ 1 1 0 6 ` a b c d e f g h i j k l m n o 1 1 1 7 p q r s t u v w x y z { | } ~ DEL

b3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

b2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

b1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

b0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Les codes de valeurs infrieures 32 (en dcimal) sont des commandes ou des caractres spciaux utiliss en transmission. Comme commandes on peut citer, titre dexemples, CR pour retour chariot, LF pour nouvelle ligne, FF pour nouvelle page, BEL pour cloche etc...

Circuits numriques et synthse logique

12

Il est clair que le programmeur gnraliste qui utilise un langage volu na en fait jamais connatre les valeurs des codes, ils sont videmment connus du compilateur, par contre lauteur dun pilote dimprimante peut, lui, avoir se pencher sur ces choses peu conviviales ! Huit bits pour les accents Quand on passe aux dialectes rgionaux, le franais par exemple, un problme se pose : le code ASCII ne connat pas les lettres accentues. Pour palier ce manque, les auteurs de logiciels et/ou les fabricants de matriels (imprimantes) ont complt le code, en ltendant un octet soit 256 combinaisons diffrentes. Malheureusement les rgles disparaissent quand on passe aux codes caractres sur 8 bits, on peut mme trouver des ordinateurs qui, suivant les logiciels, utilisent des combinaisons variables pour reprsenter les , , , , et autres caractres dialectaux. Nous ne citerons pas de nom. Un bit de plus pour les erreurs Quand on craint que des erreurs se produisent au cours dune transmission (minitel, par exemple), on rajoute parfois un bit supplmentaire (8me ou 9me suivant la taille du code initial) on rajoute un chiffre binaire supplmentaire qui est calcul de telle faon que pour chaque caractre transmis : Le nombre de bits un soit impair, on parle alors de parit impaire, ou : le nombre de bits un transmis soit pair, on parle alors de parit paire. Si metteur et rcepteur utilisent la mme convention de parit, le rcepteur est capable de dtecter une faute de transmission tant que le nombre de fautes nexcde pas une erreur par caractre. Un procd aussi rudimentaire ne permet videmment pas de corriger lerreur autrement quen demandant une retransmission du caractre incrimin. Autres codes Concurrent de lASCII dans le codage des caractres on peut citer le code EBCDIC (extended binary coded decimal interchange code), encore utilis dans certains systmes de gestion.a f g e d c b

Pour afficher un chiffre dcimal sur un afficheur 7 segments il faut associer chaque chiffre une combinaison qui indique les segments (a, b, c, d, e, f et g) allumer : Le passage dun code un autre, pour des informations qui ont le mme contenu, sappelle un transcodage. A titre dexemple on peut imaginer comment construire un transcodeur BCD 7 segments.

Circuits numriques et synthse logique

13

Exercices Dbordements A et B sont des nombres entiers, cods en binaire. Pourquoi, mme sil ny a pas de dbordement, lopration 2*(A/2 + B/2) donne-t-elle parfois un rsultat diffrent de (A + B) ? Justifiez votre rponse en vous appuyant sur une reprsentation binaire sur 8 bits. Quelle est la valeur numrique maximum de lcart entre les deux rsultats ? Nombres entiers signs Montrer que lquation x= x

a deux solutions pour des nombres entiers signs, dans le code complment deux sur n bits. Volumes et dbits d informations Un enregistrement sur disque compact consiste prendre une suite d'chantillons (on trace la courbe en pointill...) la cadence de 44 kHz. Chaque chantillon est reprsent par un nombre de 16 lments binaires pour chacune des voies droite et gauche (strophonie). A combien d'octets (paquet de 8 bits) correspond un disque d'une heure de musique enregistre ? A quelle vitesse, en bits par seconde, doit travailler le lecteur pour restituer la musique en temps rel (ce qui est souhaitable) ? Sachant que la frquence maximum des signaux sonores est de 20 kHz, quel est le "cot" du numrique ? Quels sont ses avantages ? Reprendre les calculs prcdents pour un signal de tlvision, de frquence maximum 5 MHz, cod sur 8 bits (l' il est trs tolrant) 2,2 fois la frquence maximum. La tlvision numrique peut-elle tre une simple transposition des techniques utilises pour le son ?

Circuits numriques et synthse logique

14

Conversions. Une chane de traitement de linformation est constitue comme suit :

Ve

Conversion AN

e 8 bits

Calculateur 8 bits

s 8 bits

Conversion NA

Vs

Les convertisseurs analogique numrique et numrique analogique ont un pas de 40 mV (cart de tensions analogiques qui correspond une diffrence de 1 bit de poids faible). Toute la chane est bipolaire : tensions dentre et de sortie positive ou ngative, nombres entiers signs (sur 8 bits). Quelles sont les tensions maximum et minimum des tensions analogiques dentre et de sortie ? Le calculateur effectue chaque tape (n) la moyenne des quatre chantillons prcdents : s(n) = 1/4*(e(n) + e(n-1) + e(n-2) + e(n-3)) 1. Un premier programme de calcul est la traduction directe de la formule prcdente. En relevant la fonction de transfert Vs = f(Ve), le programmeur saperoit que les rsultats en sortie sont parfois tranges. Pourquoi ? 2. Ayant trouv son erreur, le programmeur utilise cette fois la formule : s(n) = e(n)/4 + e(n-1)/4 + e(n-2)/4 + e(n-3)/4 3. Les rsultats sont moins absurdes, mais un autre dfaut apparat. Lequel ? 4. Quelle serait la solution du problme ?

Circuits numriques et synthse logique

15

2 Circuits : aspects lectriques

2.1 TechnologiesLes circuits numriques sont subdiviss en familles technologiques. A chaque famille est associe un processus de fabrication qui recouvre un type de transistor (bipolaires, MOS etc.), donc des paramtres lectriques : tensions dalimentations, niveaux logiques, courants changs lors de lassociation de plusieurs oprateurs, caractristiques dynamiques comme les temps de propagations, les frquences dhorloge maxima. Le principe gnral adopt est que lutilisateur peut construire une fonction logique complexe en associant des oprateurs lmentaires sans se poser chaque fois des questions dinterface lectrique tant quil utilise des circuits dune mme famille. Nous ntudierons pas ici larchitecture interne des diffrentes technologies utilises en lectronique numrique6, pour le concepteur de systme numrique un circuit apparat comme une boite noire dont le fonctionnement est entirement dfini par ses caractristiques externes, tant statiques (volts et milliampres) que dynamiques (nanosecondes et mgaherz). Avant daborder ces deux points, nous passerons en revue, de faon trs gnrale les familles les plus utilises en pratique.

2.1.1 Les familles TTLFamille historique sil en est, apparue au milieu des annes 1960, la famille TTL (Transistor Transistor Logic), construite autour de transistors bipolaires, est devenue un standard de fait. Les premires versions sont devenues compltement obsoltes mais servent dlments de comparaison. Dans la version TEXAS INSTRUMENT, repris par de nombreuses secondes sources, le code didentification dun circuit TTL est relativement standardis : SN 74 AS 169 N ou DM 54 S 283 J Chaque champ a une signification : SN, DM : champ littral qui indique le constructeur. 74 ou 54 : gamme de tempratures normale (0C 70C) ou militaire (-55C +125C). AS, S, ...: technologie ici advanced shottky, shottky. 169, 283, ...: fonction logique. N, J, P, NT...: type de botier (ici DIL plastique ou cramique).On consultera avec profit HOROWITZ et HILL, The Art of Electronics, Cambridge University Press, 1983 ; MILLMANN et GRABEL Microlectronique, McGraw-Hill, 1988 ou HODGES et JACKSON Analysis and design of digital integrated circuits, McGraw-Hill, 1988.6

Circuits numriques et synthse logique

16

Les familles TTL ncessitent une alimentation monotension de +5 V. Attention, cette spcification est trs stricte, et doit tre respecte 10 % prs, voire 5 % prs dans certains cas. Le dpassement de la tension dalimentation maximum, de mme que linversion de cette tension, par permutation accidentelle entre masse et alimentation, est lun des moyens de destruction du circuit le plus sr. Le tableau ci-dessous rsume quelques lments cls des familles TTL :Technologie 74/54 N 74/54 H 74/54 L 74/54 S 74/54 LS 74/54 F 74/54 AS 74/54 ALS Commentaire Srie historique standard, transistors saturs, obsolte Srie historique rapide, obsolte Srie historique faible consommation (low power), obsolte Shottky, srie rapide, transistors non saturs, presque obsolte Shottky faible consommation, trs rpandue, standard de fait, presque obsolte Version Fairchild des technologies rapides Advanced Shottky, remplace la S advanced low power shottky, remplace la LS P mW 10 20 1 20 2 4 8 2 tp ns 10 5 30 3 10 3 2 4

Dans le tableau prcdent, la puissance P et le temps de propagation (retard) tp sont mesurs pour un oprateur lmentaire (porte), typiquement un inverseur. Les familles TTL sont caractrises par une consommation non ngligeable, de lordre de quelques milliwatts par porte, qui augmente un peu avec la frquence dutilisation, et des frquences maximums de fonctionnement comprises entre 10 et 100 MHz suivant les versions. Les niveaux logiques typiques sont de lordre de 3 V pour le niveau haut et 0,4 V pour le niveau bas (voir plus loin).

2.1.2 Les familles CMOSApparue la mme poque que la famille TTL N, la premire famille CMOS (Complementary Metal Oxyde Semi-conductor), la srie 4000 de RCA, sest rendue populaire par sa trs faible consommation statique (pratiquement 0) et par une grande plage de tension dalimentation (3 15 V), malgr des performances dynamiques quatre dix fois plus mauvaises, dans le meilleur des cas7. Cette famille est strictement incompatible avec la famille TTL, la fois pour des questions de niveaux logiques que de courant absorb par les portes TTL. La famille des circuits CMOS sest agrandie depuis, dans deux directions 1. Circuits spcialiss trs faible tension dalimentation (1,5 V), trs faible consommation, o la vitesse nintervient pas, ou peu (montres, calculettes simples, etc.). Nous nen parlerons pas plus. 2. Circuits qui concurrencent les familles TTL, mme rapides, avec une consommation statique pratiquement nulle : 4000B, 74 C, 74 HC, 74 HCT, 74 ACT, 74 FACT etc. Les familles 74xxx sont fonctionnellement quivalentes aux familles TTL, mais le brochage des circuits est parfois diffrent, la lettre T indique la compatibilit de niveaux lectriques avec les familles TTL. Les notices des circuits CMOS sont analyser avec prudence quand on les compare aux autres familles :7

Le retard dans les circuits dpend beaucoup de la capacit de charge en sortie pour la famille 4000.

Circuits numriques et synthse logique

17

La consommation est proportionnelle la frquence de fonctionnement, nulle frquence nulle, la puissance absorbe par porte rejoint celle des familles bipolaires aux alentours dune dizaine de mgahertz. Une formule approche permet destimer la puissance absorbe par une porte lmentaire : Pd = (CL + CPD)Vcc(VH VL) f o CL est la capacit de charge, CPD une capacit interne quivalente de lordre de 25 pF pour les familles 74 AC, Vcc la tension dalimentation8 et f la frquence de fonctionnement. Les circuits MOS prsentent une caractristique dentre qui peut tre assimile une capacit, le temps de propagation et la consommation par porte augmentent notablement quand la capacit de charge, donc le nombre doprateurs commands, augmente. Le tableau ci-dessous rsume quelques lments cls des familles CMOS :Technologie 4000 74/54 C 74/54 HC 74/54 HCT 74/54 ACT Commentaire Srie historique, non compatible TTL, obsolte Partiellement compatible TTL, obsolte Partiellement compatible TTL Compatible TTL Compatible TTL, rapide P mW 0,1 0,1 0,1 0,1 0,1 tp ns 100 50 10 10 5

Dans le tableau prcdent les chiffres sont donns pour une capacit de charge de 50 pF et une frquence de travail de 1 Mhz. La compatibilit TTL, si elle est mentionne, na de sens que pour une tension dalimentation de 5 V. Les CMOS sont un peu la famille idale pour les applications courantes. Quelques prcautions demploi sont cependant noter : Les entres inutilises ne doivent jamais tre laisses en lair , loubli de cette prcaution, qui peut conduire des dysfonctionnements des familles TTL, peut tre destructive dans le cas des CMOS. Les signaux dentre ne doivent jamais tre appliqus un circuit non aliment. Si le potentiel dune entre dpasse celui de la broche dalimentation du circuit, cela peut provoquer un phnomne connu sous le nom de latch up , destructif, qui est un vritable court-circuit interne9. Les circuits sont sensibles aux dcharges lectrostatiques, les mmoires grande capacit, qui font appel des transistors de dimensions submicroniques, ne doivent tre manipules que par un oprateur muni dun bracelet conducteur reli la masse du montage. Laugmentation de la vitesse, conjointement la consommation statique nulle (rsistances quivalentes infinies), conduit une trs forte dsadaptation, au sens des lignes de propagation, des circuits vis vis des conducteurs dinterconnexions. Cette dsadaptation conduit des phnomnes dchos : une impulsion peut tre rflchie en bout de ligne, et gnrer un cho, cest

8

Cette formule met clairement en vidence lintrt du passage, qui tend se gnraliser, de 5 V 3,3 V pour la tension dalimentation des circuits numriques. 9 Pour les initis : la structure CMOS prsente un thyristor parasite qui, sil est mis en conduction, court-circuite les alimentations. Un dpassement de la tension dalimentation par une des entres peut mettre ce thyristor en conduction. Les circuits rcents sont mieux protgs contre ce phnomne que ceux des premires gnrations, mais le problme na pas compltement disparu.

Circuits numriques et synthse logique

18

dire une impulsion parasite qui peut conduire des erreurs de fonctionnement. La consommation dun circuit CMOS nest pas du tout rgulire, mais forme dune suite dimpulsions de courant, chaque changement dtat ; si ces impulsions de courant se retrouvent dans les fils dalimentation ceux-ci se comportent comme autant dantennes qui mettent des signaux parasites. Globalement cela se traduit par un comportement trs bruyant des systmes numriques qui utilisent une technologie CMOS sans respecter les rgles de lart concernant le cblage. Parmi ces rgles de lart la plus importante, et de loin, est le dcouplage haute frquence de lalimentation de chaque circuit. Pratiquement il faut adjoindre chaque botier une capacit de dcouplage (10 100 nF), entre alimentation et masse. Cette capacit doit prsenter une impdance aussi faible que possible en haute frquence (plusieurs centaines de mgaherz), elle doit donc avoir une inductance parasite aussi faible que possible : fils courts, technologie mille feuilles , lidal tant une capacit chip soude directement sous le circuit dcoupler. Pour rsumer : dans les conducteurs dalimentation et de masse ne doivent circuler que des courants continus.

2.1.3 Les familles ECLLes familles ECL constituent en quelque sorte laristocratie des familles logiques. Trs rapides, temps de propagation infrieur la nano-seconde pour une porte, temps daccs de moins de 10 nano-secondes pour les mmoires, ces familles constituent un monde part. Elles sont strictement incompatibles avec la TTL, ne serait-ce que par leur tension dalimentation qui est ngative, 5,2 V, et par des niveaux logiques haut et bas de 1 V et 1,6 V respectivement. Le fonctionnement interne fait appel des amplificateurs diffrentiels, en technologie bipolaire, qui fonctionnent en rgime linaire. Cette particularit leur confre un courant absorb pratiquement constant, ce qui rend les circuits peu bruyants, et facilite ladaptation dimpdance aux lignes dinterconnexions. La contrepartie du fonctionnement en rgime linaire est une consommation importante. Le tableau ci-dessous rsume quelques caractristiques des deux familles principales :Technologie ECL 10K ECL 100K Commentaire Srie historique, non compatible TTL Meilleure stabilit en temprature, plus rapide, non compatible TTL P mW 25 30 tp ns 2 0,8 f max 125 MHz 400 MHz

La puissance et le temps de propagation concernent une porte lmentaire, la frquence maximum de fonctionnement concerne un circuit squentiel synchrone simple. Les domaines dapplications des technologies ECL sont les super ordinateurs , et les parties hautes frquences des systmes de tlcommunication. On trouve des circuits drivs de lECL, dont le fonctionnement interne est celui de cette famille, mais qui apparaissent au monde extrieur comme compatibles TTL, alimentation comprise.

2.1.4 Les familles AsGaDun usage industriel encore limit quelques fonctions relativement simples, en gnral dans les parties hautes frquences des systmes de tlcommunications et de radars, ces

Circuits numriques et synthse logique

19

technologies surpassent les familles ECL dans le domaine des frquences allant de 500 MHz 5 GHz. Elles utilisent comme composants lmentaires des transistors effet de champ jonction, MESFET (pour Metal Semi-conductor Field Effect Transistor), dont la jonction de commande est une diode Shottky. Lorigine de la vitesse de ces transistors est que la mobilit des lectrons est cinq dix fois plus leve dans larsniure de gallium que dans le silicium. Le tableau ci-dessous indique quelques unes des performances atteintes :Technologie BFL DCFL Commentaire Buffered FET logic, Gomtrie 0,5m Direct coupled FET logic, 0,5 m P mW 10 1,3 tp ps 55 11 f max 2,5 GHz 4 GHz

La puissance et le temps de propagation (en pico-secondes) concernent une porte lmentaire, la frquence maximum de fonctionnement (en gigahertz) concerne un circuit squentiel synchrone simple.

2.2 Volts et milliampresLe principe de constitution dune famille logique est de permettre au concepteur dune application dinterconnecter les circuits sur une carte de la mme faon quil assemble des fonctions sur un schma de principe. Ce jeu de Lego est rendu possible par le respect, par les fabricants de circuits, de rgles cohrentes, communes tous les fabricants, qui rendent comprhensibles, par les entres dun circuit, les signaux issus des sorties dun autre. Le jeu se complique un peu cause de linvitable dispersion des caractristiques, dun composant lautre lors de la fabrication, dispersion initiale laquelle il convient de rajouter les variations des caractristiques dun mme circuit avec la temprature. Tous les paramtres lectriques dun circuit intgr seront dfinis par trois valeurs : minimum, maximum, dans une plage de temprature, et typique, temprature normale , cest dire 25 C (300 K).

2.2.1 Les niveaux de tensionA un circuit, aliment par une tension VCC, on applique une tension dentre Ve et on mesure la tension de sortie Vs.

Vcc

Ie Ve

Is Vs

Figure 2-1

Les niveaux HAUT et BAS, en entre et en sortie, VIH, VOH, VIL et VOL sont dfinis par : Niveaux bas en entre si 0 Ve VIL Niveaux bas en sortie si 0 Vs VOL Niveaux haut en entre si VIH Ve Vcc Niveaux haut en sortie si VOH Vs Vcc

Circuits numriques et synthse logique

20

Il est clair quentre un niveau haut et un niveau bas doit exister une plage interdite , pour quil ny ait pas ambigut. Quand on envisage lassociation de deux circuits, A et B, il convient de rendre compatibles les niveaux dentre et de sortie.

Vcc A Ie VeA Is VsA VeB Ie B

Vcc

Is VsB

Figure 2-2

Pour assurer que le circuit B comprend bien les signaux issus du circuit A, on doit avoir : VOHMIN > VIHMIN VOLMAX < VILMAX Dans ces ingalits, un peu paradoxales, il faut bien comprendre que les attributs MIN et MAX ont un sens statistique, ils concernent les valeurs extrmes que le constructeur garantit sur tous les circuits dune mme famille technologique. Un catalogue de composants TTL nous renseigne sur la valeur de ces paramtres dans cette famille : VOHMIN = 2,7 V et VIHMIN = 2 V, VOLMAX = 0,4 V et VILMAX = 0,8 V. Ces valeurs respectent bien videmment les ingalits prcdentes. Entre les familles TTL et CMOS traditionnelles la compatibilit nest pas assure dans le sens TTLCMOS pour le niveau haut. La valeur minimum des carts entre VOHMIN et VIHMIN dune part, VOLMAX et VILMAX dautre part reprsente limmunit au bruit de la famille considre. Elle est de 400 mV en TTL. Cette immunit au bruit reprsente lamplitude que doit avoir un parasite, superpos au signal utile, qui risque de rendre ambigu la tension dentre dun circuit. La figure II-3 rsume les dfinitions qui prcdent :

Tensions Vcc niveau haut VOH Zone inexistante VOL niveau bas 0 Sorties Marges Entres VIH VIL Zone interdite niveau bas niveau haut

Figure 2-3

2.2.2 Les courants changsLes courants Ie et Is des figures II-1 et II-2 indiquent des conventions de signe pour des courants dont les sens rels dpendent des niveaux logiques qui interviennent. En premire approximation, on peut considrer que la sortie dun circuit se comporte comme une source de tension ; dans un montage comme celui de la figure II-2, la valeur du courant qui circule dans

Circuits numriques et synthse logique

21

la liaison entre les deux circuits est alors principalement fixe par ltage dentre du circuit rcepteur de linformation. Pour un niveau bas Ie est ngatif (le courant sort du rcepteur), il est positif pour un niveau haut. Quand un circuit en commande plusieurs, son courant de sortie est, un signe prs, gal la somme des courants dentre des circuits commands :

Vcc Rcepteur B Vcc Emetteur A Ie Ve IsA VsA Vcc Rcepteur C IeB

IeC

Figure 2-4

Is A = (Ie B + Ie C)

Pour dterminer la validit dune association telle que celle reprsente figure II-4, il faut connatre les valeurs maximums (en valeurs absolues) des courants dentre, et la valeur maximum tolrable pour le courant de sortie. Cest dans cette optique que sont dfinis : IIH et IIL , courants dentre dun circuit auquel on applique des niveaux haut et bas, respectivement. IOH et IOL , courants de sortie admissibles par un circuit tout en conservant les niveaux de tension haut et bas, respectivement. Pour assurer la validit dune association dans laquelle un circuit en commande plusieurs autres, il faut contrler que sont vrifies les deux ingalits : IOHMAX > ( IIHMAX ) IOLMAX > ( IILMAX ) Les signes proviennent des conventions de signes classiquement adoptes, seules comptent, videmment, les valeurs absolues des courants. En TTL-LS : IOHMAX = 0,4 mA pour IIHMAX = 20 A, IOLMAX = 8 mA pour IILMAX = 0,4 mA On en dduit quun circuit peut en commander 20 autres tout en assurant le respect des niveaux logiques. Les ingalits prcdentes, associes leurs semblables concernant les tensions, permettent de dterminer la validit dassociations entre circuits de technologies diffrentes, ou de spcifier un circuit dinterface fait maison avec une technologie donne. A lintrieur dune technologie les niveaux de tension sont videmment compatibles, les rgles concernant les courants se rsument alors contrler le bon respect des sortances et entrances des circuits : On prend comme unit logique la charge apporte par lentre dune porte lmentaire de la famille technologique considre (en gnral linverseur). On dfinit alors deux nombres entiers : La sortance (fan out) dune sortie est gale au nombre maximum de charges lmentaires que peut piloter cette sortie.

Circuits numriques et synthse logique

22

Lentrance (fan in) associe une entre dun circuit complexe est gale aux nombres de charges lmentaires quivalentes aux courants absorbs (ou fournis) par cette entre. La valeur typique de sortance adopte par les fabricants est de 20. N.B. : Autant ce qui prcde a un sens clair pour les technologies dont les consommations sont peu dpendantes de la vitesse de fonctionnement, TTL et ECL par exemple, autant les consommations statiques nont aucun sens appliques aux technologies CMOS. Pour ces technologies les calculs de sortances conduisent des rsultats absurdes, parce quapplicables uniquement une application qui ne fait rien ! Pour ces technologies laugmentation du nombre dentres mises en parallle se traduit par une augmentation de la capacit de charge prsente au circuit de commande, il en rsulte une augmentation des temps de propagation des signaux, donc une baisse de vitesse du systme. Les notices de circuit donnent les capacits des entres et des courbes de temps de propagation en fonction de la capacit de charge.

2.3 Nanosecondes et mgahertzAvant de prciser les paramtres dynamiques que lon dfinit pour caractriser les circuits logiques, rappelons brivement comment on caractrise une impulsion :

Amplitude normalise 1

0,9 0,5 tw

0

0,1 temps tr tf

Figure 2-5

Les noms des diffrents temps qui interviennent sont : tw : largeur (width) tr : temps de monte (rise time) tf : temps de descente (fall time). Quelle que soit la famille logique, les signaux appliqus aux circuits doivent avoir des temps de monte et de descente infrieurs au temps de propagation des oprateurs lmentaires ; la dfinition de ces temps de propagation est lobjet du paragraphe suivant. Dans toute la suite nous considrerons donc des signaux dont les temps de monte et de descente sont nuls. Prcisons que les logiciels de simulation logique adoptent toujours la mme convention, malgr une terminologie parfois ambigu (voir ci-dessous).

2.3.1 Des paramtres observables en sortie : les temps de propagationConsidrons la rponse une impulsion dun inverseur lmentaire figure II-6 :

Circuits numriques et synthse logiqueVe Vcc Vs Ve Vs t tPHL tPLH t

23

Figure 2-6

Les deux temps tPHL , pour temps de propagation du niveau haut vers le niveau bas, et tPLH , pour temps de propagation du niveau bas vers le niveau haut, qui ne sont pas forcment gaux, caractrisent le retard entre une cause, Ve , et un effet, Vs , d aux imperfections des transistors qui constituent linverseur. Ces dfinitions se gnralisent sans peine pour toute relation de cause effet entre une entre et une sortie dun circuit : retard par rapport une horloge, retards pour commuter dun tat haute impdance un tat logique et vice versa, etc....On consultera avec profit une notice de circuit pour se familiariser avec les multiples temps de propagations spcifis. Ces temps sont dfinis en valeur maximum, parfois en valeurs typiques et minimum, pour une valeur spcifie de le capacit de charge vue par la sortie (en gnral 50 pF). En effet, les temps de propagation dpendent beaucoup de cette capacit de charge, surtout dans les technologies qui utilisent des transistors effet de champ. Dans certains cas les notices fournissent des taux daccroissement des temps de propagation en fonction de la capacit de charge (nanosecondes par picofarad). N.B. : Les remarques qui prcdent, propos des capacits de charges acceptables en sortie des circuits logiques, laissent penser aux effets pour le moins curieux que peuvent provoquer des mesures faites avec en oscilloscope dpourvu de sonde !

2.3.2 Des rgles respecter concernant les entresUne autre classe de paramtres dynamiques des circuits est parfois moins bien comprise : elle concerne des paramtres qui ne sont pas directement observables, mais dont le non respect peut entraner des dysfonctionnements du circuit. Ces paramtres interviennent notamment dans les circuits squentiels synchrones, pilots par une horloge. Temps de prpositionnement et de maintien Les temps de prpositionnement (set up time, tSU ) et de maintien (hold time, tH ) concernent les positions temporelles relatives de deux entres dun mme circuit, par exemple la position de lentre D et de lhorloge dune bascule D synchrone, qui ragit aux fronts montants de son horloge. Nous dfinirons ces temps sur cet exemple simple, mais ils se gnralisent toutes les entres dun circuit qui provoquent une action conjointe (figure II-7) :

Circuits numriques et synthse logiqueHorloge front actif Horloge Entre Ck D Q Entre t

24

tat indiffrent t tSU tH

Figure 2-7

Pour que la bascule interprte correctement la valeur de lentre, quelle que soit cette valeur, do les deux valeurs possibles reprsentes sur la figure II-7, celle-ci doit tre stable avant la transition active dhorloge (set up) et maintenue stable aprs (hold) cette transition. Typiquement, pour la technologie TTL-LS, ces valeurs sont : tSU = 20 ns et tH = 0. Lintrt davoir une valeur nulle pour le maintien apparat ds que lon remarque quen gnral les entres dun circuit synchrone sont les sorties dun autre, la valeur prendre en compte au moment de la transition dhorloge est alors, sans ambigut, celle qui prcde cette transition. Pour illustrer ceci il suffit de monter une bascule D en diviseur par deux , un montage qui change dtat chaque transition active de lhorloge (figure II-8) :

Horloge Horloge Ck Q D /Q Q rsultat t Entre > tSU + t

t

Figure 2-8

Si la bascule du schma de la figure II-8 possde un temps de maintien nul, le montage fonctionne correctement quel que soit le temps de propagation de la bascule, pourvu que la clause sur le temps de prpositionnement (qui nest jamais nul) soit respecte. De plus, au niveau de lanalyse de principe, cela permet de comprendre le fonctionnement dun systme en idalisant les caractristiques des composants ; rien nest plus irritant que les explications de principe qui font en permanence appel aux dfauts des composants (les retards) pour clairer ce fonctionnement. Par contre ces dfauts doivent tre pris en compte lors de lvaluation des limites de fonctionnement dun montage, cest ce que nous allons explorer dans la suite.

Circuits numriques et synthse logique

25

Calcul de la frquence maximum dune horloge Reprenons le schma de la figure II-8, mais en tenant compte, cette fois, des retards dans la bascule (figure II-9), de faon pouvoir valuer les limites de performances de notre systme :

Entre > tH Hor Entre Ck Q D /Q Hor TCK > tSU > tH > tSU t

Q

tPHL

tPLH

t

t

Figure 2-9

Pour que le montage fonctionne correctement les paramtres des circuits doivent vrifier : tH < min( tPHL , t PLH ) tSU < TCK max( tPHL , t PLH ) soit : FCK = 1/ TCK < 1/ (tSU + max( tPHL , t PLH )) La premire relation, indpendante de la frquence de lhorloge, est toujours vrifie pour des circuits dont le temps de maintien est nul, do lintrt de ces circuits. La deuxime relation permet de calculer la frquence maximum de fonctionnement du montage. On peut tendre ltude prcdente un cas plus gnral que le diviseur par deux (figure II-10) :

Horloge p tP2 tSU tP1 n

Entres

n

Figure 2-10

Dans un tel systme, qui volue chaque transition dhorloge en fonction de son tat initial et des entres extrieures, trois conditions doivent tre respectes : 1. Les entres extrieures doivent tre correctement positionnes par rapport lhorloge, cela peut tre assur en resynchronisant, au moyen dune bascule D,

Circuits numriques et synthse logique

26

toute entre asynchrone par rapport lhorloge locale ; nous prciserons ce point au paragraphe suivant. 2. La frquence de lhorloge doit respecter lingalit : FCK < 1/ ( tSU + max( (tPropagation ) ) ) 3. Le temps de maintien doit tre nul, ou au pire infrieur au plus petit des temps de propagation. Attention : Un dysfonctionnement par violation de prpositionnement se corrige en rduisant la frquence dhorloge ou en choisissant une technologie plus rapide, un dysfonctionnement par violation de temps de maintien, par contre, est indpendant de la frquence de lhorloge et ncessite, en gnral, une refonte complte du systme. Dautres paramtres sont spcifis qui concernent lhorloge, ou les entres de commandes asynchrones des circuits squentiels : largeur minimum des impulsions, frquence maximum de fonctionnement du circuit sans rebouclage, etc...Ces paramtres conduisent, en gnral, des contraintes beaucoup moins svres que celles que nous venons dobtenir ; il convient de se mfier des valuations htives faites partir de la lecture des notices de circuits, sans valuation des temps de propagation dans le schma rel. Notons que les outils de simulation logique permettent dextraire dun schma complexe les chemins critiques qui limitent les performances du systme. Synchronisation des entres asynchrones dun systme synchrone Dans un systme tel que celui de la figure II-10, il est impossible dassurer que les rgles prcdentes sont respectes si les changements des entres sont asynchrones de lhorloge. Le risque est alors de voir apparatre des transitions fausses10. Pour viter ce type de dsagrment la mthode consiste systmatiquement resynchroniser les entres asynchrones au moyen de bascules D (registre de synchronisation) :

Horloge Entres synchrones p tP1

Entres asynchrones

tPe p

tP2 tSU n

Registre de synchronisation (p bascules D)

n

Figure 2-11

Dans le schma de principe de la figure II-11 les dures de tous les chemins sont dfinies, ce qui permet de contrler le respect des temps de maintien et de prpositionnement.10

Par exemple un compteur qui devrait se charger 13 prend la valeur 9 parce que la bascule de poids binaire 2 est un peu plus lente que les autres.

Circuits numriques et synthse logique

27

Il reste cependant une interrogation : que se passe-t-il pour une bascule du registre de synchronisation si les temps prcdents ne sont pas respects pour elle ? A priori, tant que lon reste dans le monde de la logique, le seul risque est de perdre une priode dhorloge dans la prise en compte de lentre concerne. De toute faon un systme synchrone volue avec une dfinition temporelle qui est connue une priode dhorloge prs, le problme semble donc rsolu. Et pourtant... il peut arriver, extrmement rarement (les probabilits sont infrieures 10-9 pour des bascules saines ), quune bascule dont lentre D change juste avant la transition active dhorloge (quelques nanosecondes en TTL-LS ), hsite ensuite entre le niveau haut et le niveau bas, et ce pendant un temps trs long lchelle de lhorloge. Ce phnomne, exceptionnel rappelons le, est connu sous le nom de mtastabilit. Certains fabricants de circuits rapides donnent des indications concernant la propension la mtastabilit de leurs produits. La figure II-12, ci dessous, illustre la tension de sortie dune bascule qui passe par un tat mtastable dans une transition LH.

H

H

Ck D

Q Vs

Ve

Violation de tSU

t

Ve Vs Etat analogique mtastable

t

t

Figure 2-12

Une interprtation physique de lapparition dun mtastable peut tre illustre par les points dquilibres dune bille sur une surface courbe (figure II-13) :

Etat mtastable

Etat stable L

Etat stable H

Figure 2-13

Les fluctuations (agitation thermique, impulsions dhorloge) font que la bascule quittera, un moment ou un autre, ltat mtastable, mais il est impossible de prvoir la dure de cet tat. Dans des applications o le risque, mme faible, dapparition de mtastables est intolrable, on peut utiliser une double synchronisation, constitue de deux registres monts en cascade, comme dans un registre dcalage.

Circuits numriques et synthse logique

28

2.3.3 Des rgles respecter concernant les dcouplagesQuand la tension de sortie dun circuit change dtat ce changement dtat saccompagne dun transfert de charge lectrique entre le circuit et la capacit de charge, CL, de la sortie considre. Pendant la transition on peut considrer que la charge transfre provient entirement de la capacit de dcouplage du circuit, les conducteurs dalimentation prsentent en effet une rsistance non ngligeable aux variations brusques de courant11. Un modle lectrique simple permet de modliser la commutation (figure II-14) :

Rligne Vcc CD Vs cc CL

Figure 2-14

Dans une transition LH, qui correspond une fermeture de linterrupteur, il apparat entre Vcc et Vs un diviseur capacitif (Vcc est la tension dalimentation du circuit). On simpose, en gnral, une valeur maximum de variation Vcc de tension dalimentation. Par exemple, un circuit dont huit sorties commutent simultanment, chaque entre tant charge par une capacit de 50 pF, pour un cart Vs = 3 V entre niveaux bas et haut, et une variation Vcc infrieure 100 mV, devra tre dcoupl par : CD (Vs/Vcc) 8CL = 240CL = 12 nF. Do la valeur couramment prconise de 10 100 nF par circuit, avec une capacit qui prsente une faible rsistance srie quivalente en haute frquence, par exemple de type cramique multicouches dilectrique X7R ou Z5U.

2.4 Types de sortiesTant quune application est construite comme un assemblage de circuits dont chaque sortie commande une ou des entres dautres circuits de mme technologie, cest dire dans la majorit des applications, on fait appel des sorties standard , auxquelles se rapportent les dfinitions vues prcdemment concernant les niveaux logiques. Dans certains cas on est amen utiliser des assemblages qui sont premire vue curieux : plusieurs sorties sont connectes en parallle. Les circuits qui autorisent ce genre de construction font appel des sorties non-standard, collecteur (ou drain) ouvert et/ou sorties trois tats.

11

Rsistance ou inductance ? Un premier niveau danalyse, un peu naf, militerait pour inductance, la thorie des lignes de propagation nous apprend quen dernier ressort il sagit plutt dune rsistance, si les lignes dalimentations sont sans pertes.

Circuits numriques et synthse logique

29

2.4.1 Sorties standardPour lutilisateur dun circuit, indpendamment des dtails de la structure interne et tant que les spcifications de courants de sortie maximum sont respectes, une sortie standard apparat comme une source de tension, que cette sortie soit au niveau haut ou au niveau bas. Un modle lectrique simplifi est alors celui de la figure II-15 : les deux interrupteurs fonctionnent en alternance, pour un niveau haut K1 est ferm, K2 est ouvert, la situation est inverse pour un niveau bas.

Sorties standard Vcc K1 Logique de commande K2 sortie sortie sortie Vcc R Vdd

principe

en TTL...

en CMOS.

Figure 2-15

Il est clair que les sorties standard ne supportent : ni la mise en parallle, ni le court-circuit vers la masse ou vers lalimentation.

2.4.2 Sorties collecteur (ou drain) ouvertUne image du principe qui conduit aux sorties dites collecteur ouvert est celle du signal dalarme dans un train. Le pilote du train doit tre prvenu si lune au moins des alarmes mises la disposition des voyageurs est active. Dun point de vue logique, la fonction correspondante est un OU. Les sorties collecteur ouvert permettent de raliser une telle fonction OU, avec un nombre arbitraire dentres, sans quil soit ncessaire de compliquer le cblage quand on augmente le nombre des entres. Le principe est fort simple : linterrupteur K1 du schma de la figure II-15 a disparu (figure II-16).

Circuits numriques et synthse logiqueSorties collecteur (ou drain) ouvert Vcc sortie Logique de commande K2 sortie Rcepteur signal sortie R pull-up

30

principe

en TTL...

en CMOS.

utilisation : sorties en parallle

Figure 2-16

On notera que dans le schma prcdent le niveau actif est un niveau bas, ce qui est gnralement le cas dans ce type dapplication o tous les circuits partagent la mme masse, mais pas forcment la mme alimentation. La rsistance Rpullup (rsistance de tirage), qui est unique, est situe du ct de lentre du circuit de rception du signal. Une autre application, plus marginale, des sorties collecteur ouvert, est linterface entre des sous-ensembles qui travaillent avec des tensions dalimentation diffrentes, dans le schma de la figure II-16 la tension dalimentation du rcepteur, Vcc, peut tre diffrente de la tension dalimentation des circuits metteurs. Cela permet, par exemple, de crer simplement une interface entre des circuits aliments en 5 V et en 15 V. Les sorties collecteur ouvert ne peuvent remplacer les sorties standard dans toutes les applications : leurs performances dynamiques sont nettement moins bonnes, et trs dissymtriques. Alors que la transition HL est aussi rapide que celle observe avec une sortie standard de la mme technologie, le rgime dynamique de la transition LH fait intervenir la rsistance de tirage, conduisant un temps de monte qui est beaucoup plus grand quavec une sortie standard, et qui dpend fortement de la capacit de charge de la sortie.

2.4.3 Sorties trois tatsDans un ordinateur les chemins de donnes doivent permettre lchange dinformations entre de nombreuses sources et de nombreux rcepteurs : unit(s) centrale(s), mmoires, priphriques. Un cblage traditionnel, par des connexions deux deux entre toutes les sources et tous les rcepteurs possibles, conduirait rapidement un schma inextricable. La solution ce problme est de raliser les interconnexions entre les diffrents lments dun systme par des bus. Un bus est un ensemble de conducteurs (fils lectriques) qui relient en parallles toutes les entres et toutes les sorties susceptibles de recevoir ou mettre un signal dun type donn. Dans une architecture classique on trouvera, par exemple, un bus de donnes, un bus dadresses et un bus de contrle12. Le protocole daccs un bus est simple : chaque instant il ne peut y avoir, au maximum, quun seul matre du bus ; dit autrement, une seule sortie peut imposer, un instant, des niveaux logiques aux conducteurs du bus. Si deux circuits (ou plus) tentent dimposer, simultanment et indpendamment, des niveaux logiques au bus on parle de conflit de bus. Dans le schma de la figure II-17, qui illustre une connexion en bus entre une unit centrale et trois botiers de mmoires, lors dune opration de lecture (transfert de la mmoire vers lunit centrale), une seule des lignes de slection (sel i) est active, les sorties des12

Dans le cas du bus de contrle, le terme de bus est parfois un abus de langage, il est employ mme quand les conducteurs de ce bus relient entre elles des sorties qui ne sont pas trois tat .

Circuits numriques et synthse logique

31

mmoires qui ne sont pas slectionnes sont lectriquement dconnectes du bus de donnes, elles sont dans un tat particulier dit tat haute impdance.

donnes

Unit centrale sel 0 sel 1 sel 2 lect/cr

mmoire 0 sel

mmoire 1

mmoire 2

sel sel adresses

Figure 2-17

Les sorties qui permettent une telle dconnexion sont appeles sorties trois tats (tristate). Physiquement, dans une sortie trois tats, les deux interrupteurs de la figure II-15 sont ouverts (les transistors correspondants sont bloqus). Une sortie trois tats peut se trouver dans lune des trois configurations : basse impdance, niveau logique bas, basse impdance, niveau logique haut, haute impdance (la broche correspondante du circuit est en lair ).

OE

OE

OE E/S

E

S

E

S

E

Portes trois tats

Entre sortie bi-directionnelle

Figure 2-18

Traditionnellement les symboles distinguent les commandes de connexion (commandes de mise en basse impdance) des autres entres logiques des oprateurs par une position particulire (entres OE de la figure II-18), le niveau actif de ces commandes, indiqu sur les symboles, correspond ltat basse impdance. On peut raliser une sortie collecteur ouvert au moyen dune sortie trois tats, il suffit de maintenir un niveau logique bas, constant, et dagir sur la commande de tri-state .

Circuits numriques et synthse logique

32

Exercices Frquence maximum de fonctionnement Le schma de la figure IV-6, page 94, reprsente un compteur dcimal trois chiffres qui utilise lassociation de trois compteurs, un par dcade. En consultant un catalogue de circuits 74LS..., estimer le frquence maximum de fonctionnement du montage dans cette technologie. En quoi le schma propos dans le catalogue permet-il de gagner un peu en vitesse ? Le constructeur propose dutiliser le circuit 74LS264, pour augmenter la vitesse maximum de fonctionnement. A partir de combien de dcades ladjonction de ce circuit auxiliaire est elle intressante ? Circuits programmables Au moyen dune notice du circuit 22V10, peu importe la technologie, expliquer pourquoi les constructeurs distinguent une frquence maximum de fonctionnement interne et une frquence maximum de fonctionnement externe . Sorties collecteur ouvert (manipulation) 1. Concevoir et tester un schma qui permet d'allumer une diode lectro-luminescente partir de deux sources connectes en parallles. On fixera le courant dans la diode 5 mA, ce courant tant dtermin par une rsistance de "pull-up" connecte soit 5 V, soit 12 V (deux valeurs diffrentes pour la rsistance !) . 2. Ces valeurs sont-elles acceptables pour un circuit du type 74LS06 ? 3. On commande l'un des circuits du montage prcdent par un gnrateur, sortie TTL, rgl environ 100 kHz . Observer l'oscilloscope et interprter la forme du signal de sortie de ces circuits, dans les deux cas de tension d'alimentation. D'o provient la diffrence entre les temps de monte et de descente de ce signal ?

Circuits numriques et synthse logique

33

3 Oprateurs lmentaires

Une fonction numrique complexe est construite de faon hirarchique, comme un assemblage de boites noires , fonctions moins complexes, dfinies par leurs entres, leurs sorties et les relations entre les premires et les secondes. Tout en bas de cette hirarchie on trouve des oprateurs lmentaires, les briques ultimes au del desquelles intervient llectronicien qui les ralise avec des transistors ; mais au del de cette frontire le monde du numrique sarrte. Nous considrerons donc que les briques lmentaires de notre construction sont ces oprateurs lmentaires, et avant dexplorer cette dmarche descendante qui va du gnral au particulier, du complexe au simple, nous tenterons de bien comprendre le fonctionnement de ces oprateurs lmentaires. Nous utiliserons, entre autres, un langage de haut niveau, VHDL13, pour dcrire le fonctionnement de ces oprateurs lmentaires. Il est bien vident que VHDL connat ces oprateurs comme primitives internes, et quil y a donc l une redondance certaine. Mais cela nous familiarisera avec ce langage qui est en passe de devenir un standard de description des systmes numriques, et mme, terme, des systmes analogiques. Sauf prcision contraire, nous adopterons dans la suite une convention logique14 positive, qui associe le 0 binaire la valeur logique FAUX et le 1 binaire la valeur logique VRAI.

3.1 Combinatoire et squentielCertains de ces oprateurs lmentaires sont la matrialisation, sous forme de circuits, ou de parties de circuits, des oprateurs bien connus de lalgbre de BOOLE. Dautres, et notamment (mais pas uniquement) ceux que lon appelle oprateurs squentiels, sont une spcialit de llectronique numrique, leur description napparat dans aucun trait relatif la dite algbre. Si lon cherche classer les oprateurs par familles, et cest en classant les choses que lon se donne les moyens den comprendre ventuellement le fonctionnement, le premier critre de classement concerne la faon dont volue, au cours du temps, ltat dun oprateur, donc ses sorties15. On dira quun oprateur est combinatoire si les valeurs de ses sorties sont dtermines de faon univoque par les valeurs des entres au mme instant ( un temps de propagation prs, bien sr). Un oprateur est squentiel si son tat un instant donn dpend des entres, videmment, mais aussi de ses tats passs, du chemin quil a parcouru pour en arriver l, bref, un oprateur squentiel est dou de mmoire.13 14

VHDL est un acronyme de Very high speed integrated circuits Hardware description language. Voir chapitre I. 15 Etat et sorties dun systme sont deux concepts diffrents, mais un systme dont ltat nest pas visible de lextrieur na gure dintrt, lvolution de ltat interne dun objet a donc priori une manifestation externe visible en sortie, mme si cette manifestation nest pas immdiate.

Circuits numriques et synthse logique

34

Prenons un exemple : une serrure mcanique combinaisons et une serrure hypothtique digicode. Louverture de la premire sera provoque par une combinaison prdfinie des trois variables dentre, louverture de la seconde sera obtenue par la frappe dune squence prdfinie de valeurs sur le clavier. Par exemple, si pour les deux serrures le code daccs est 247, la premire 0 1 2 serrure souvrira ds que ses variables dentre 3 4 5 (les molettes) afficheront ce code, la deuxime 2 4 7 6 7 8 exigera que les trois chiffres de la cl soient taps 9 A B au clavier dans le bon ordre. Il est clair que la Figure 3-1 deuxime serrure doit se souvenir du 2 quand on tape le 4, du 2 et du 4 quand on tape le 7 ; elle doit donc possder une mmoire interne. Cette mmoire interne peut tre une simple mmorisation des chiffres prcdemment taps, cest conceptuellement la solution la plus vidente, mme si ce nest pas la plus simple raliser. Une autre solution consiste doter la serrure dune variable interne qui mmorise ltat davancement de la squence, sans mmoriser les nombres eux-mmes. On pourra alors dcrire le fonctionnement du systme par une sorte de diagramme, figure III-2, dans lequel chaque case reprsente ltat interne, auquel sont ventuellement attaches des actions (sorties), et les flches les transitions dun tat lautre. A ct de chaque transition figure la condition16 sur lentre qui provoque le franchissement de cette transition.

entre = 2 tat initial, serrure ferme

entre = 4 serrure ferme

entre = 7 serrure ferme tat final, serrure ouverte

entre 4 entre 7 dtection de l ouverture de l anneau Figure 3-2

La plupart des systmes rels sont squentiels, et beaucoup peuvent tre analyss simplement par lintroduction dune ou de plusieurs variables dtat. Limportance des systmes squentiels a amen les concepteurs de circuits imaginer des oprateurs lmentaires spcifiques, qui facilitent la tche du concepteur. Pour illustrer le genre de questions auxquelles est amen le concepteur rpondre, reprenons lexemple de la serrure : Que doit-on faire si plusieurs entres changent simultanment ? Comment faire cooprer plusieurs sous-systmes de faon prvisible ? Lide est progressivement venue que le travail de conception tait grandement simplifi si les transitions ne pouvaient avoir lieu qu des temps connus, indpendamment des instants de changements des entres, instants que, bien videmment, le concepteur ne peut pas connatre. On rajoute alors un signal interne spcial, lhorloge, qui fixe la cadence de16

Le diagramme prsent figure III-2 comporte en fait des erreurs par omission, lutilisateur astucieux peut obtenir louverture de la serrure, mme sil ne connat pas le code daccs. Question : comment ?

Circuits numriques et synthse logique

35

lvolution du systme. Les systmes qui voluent sous le contrle dune horloge sont appels systmes squentiels synchrones. Les circuits synchrones ont un fonctionnement qui ne peut pas tre entirement compris dans le cadre de la logique combinatoire, ils font appel des oprateurs lmentaires, les bascules, qui sont des briques de base part entire de la logique, au mme titre quun oprateur ET .

3.2 Oprateurs combinatoiresPour chaque oprateur, nous indiquerons le ou les symboles couramment rencontrs, puis nous en donnerons une description sous forme de table de vrit, dexpression algbrique, de diagramme de Venn (hritage de la thorie lmentaire des ensembles) et sous forme dalgorithme dans le langage VHDL.

3.2.1 Des oprateurs gnriques : NON, ET, OULes oprateurs NON (NOT), ET (AND) et OU (OR) jouent un rle privilgi dans la mesure o ils sont gnriques , cest dire que toute fonction combinatoire peut tre exprime laide de ces oprateurs lmentaires. Les symboles Bien que les symboles rectangulaires soient normaliss, la majorit des notices emploient les symboles curvilignes traditionnels (figure III-3). Lassemblage de symboles lmentaires dans un schma porte le nom de logigramme, un logigramme est presque le schma de cblage dans lequel on aurait oubli les masses et les alimentations des circuits.

e

s

e

s e

s

Inverseur : NON (ou PAS)

e1 e2

s

e1 e2

&

s

e1 e2

s

e1 e2

1

s

Intersection : ET

Runion : OU

Figure 3-3

Les tables de vrit Toute fonction combinatoire peut, en dernier ressort, tre dcrite par une table qui numre les valeurs prises par la (ou les) sortie(s) en fonction des valeurs des variables dentre. Cette mthode apparemment simple a le dfaut de devenir extrmement lourde quand le nombre de variables mises en jeu augmente. Il faut cependant y recourir quand les mthodes plus abstraites ne permettent pas de rpondre une interrogation. Les tables peuvent tre prsentes sous forme linaire ou, ce qui est souvent plus compact, sous forme de tableaux (figure III-4) :

Circuits numriques et synthse logiquee1e2 e 0 1 s 1 0 00 01 10 11 s 0 0 0 1 ET Figure 3-4 e2 0 e1 0 0 1 0 1 0 1 e1e2 00 01 10 11 s 0 1 1 1 OU e2 0 e1 0 0 1 1 1 1 1

36

NON

Notations algbriques Oprateur NON : Oprateur ET : Oprateur OU :

s = e , not parfois, par commodit dcriture s = /e.s = e1 e2 , ou s = e1 & e2 , ou encore s = e1 e2. s = e1 e2 , ou s = e1 | e2 , ou encore s = e1 + e2.

Les deux notations et + pour les oprateurs ET et OU sont videmment particulirement ambigus, donc inutilisables, quand on mlange dans une mme description des expressions arithmtiques et des expressions logiques. Quand il ny a pas risque de confusion, ce sont pourtant les notations les plus frquentes. Lors de lcriture dune expression qui fait intervenir les diffrents types doprateurs, les rgles de priorit gnralement adoptes vont, de la priorit la plus grande la plus faible, de linversion (NON) au OU : a + b /c doit tre compris a + ( b ( /c)) Par contre il convient dtre extrmement prudent quand apparat un mlange doprations arithmtiques et logiques (mlange autoris dans certains langages), la prudence lmentaire dicte, dans un tel cas, de parenthser les expressions. Diagrammes de Venn Ces diagrammes illustrent bien les proprits des expressions simples, ils soulignent lidentit de proprits de lalgbre de Boole et de lalgbre des parties dun ensemble, munie des oprations complmentation (NON), intersection (ET) et runion (OU) (figure III-5).

e1 e

e2

e1

e2

NON Figure 3-5

ET

OU

Circuits numriques et synthse logique

37

Description en VHDL Des tautologies Les exemples de code source VHDL ci-dessous ne nous apprennent rien sur les proprits des oprateurs concerns, ils nous montrent laspect dun programme VHDL et nous rappellent que les oprations NON, ET et OU sont dfinies sur les objets de type BIT comme sur ceux de type BOOLEAN, avec une convention logique positive (1 TRUE, 0 FALSE).-- inverseur (ceci est un commentaire) ENTITY inverseur IS PORT ( e : IN BIT ; -- les entrees s : OUT BIT ); -- les sorties END inverseur; ARCHITECTURE pleonasme OF inverseur IS BEGIN s