Beruflich Dokumente
Kultur Dokumente
LE201
Enseignants
Cours
C. Dahon F. Vallette
TD
H. Kokabi
TP
A. Darga C. Dahon
Attention :
Polycopis de TD et TP
Disponibles la reprographie ds cette semaine 2me tage - btiment Esclangon Horaires : 12 h 45 - 14 h 15 Mardi - Mercredi - Vendredi A avoir avant le TD ! http://www.licence.elec.upmc.fr/vie/ L2 Orientation/Documents par UE/LE201
Plan du cours
Introduction Algbre de Boole et Codage Introduction au VHDL Fonctions Combinatoire Simples Fonctions Combinatoires Complexes Fonctions Squentielles Simples Fonctions Squentielles Complexes Pipeline Technologie des circuits numriques Les Convertisseurs AnalogiquesNumriques et Numriques-Analogiques
Introduction
Numrique (dfinition de Wikipedia) L'adjectif numrique qualifie toute donne ou variable dont les valeurs sont des nombres. Lorsque l'ensemble des valeurs n'est pas continu, on dit qu'il est discret. Dans ce cas, il peut mme tre limit quelques chiffres
Introduction
Un systme numrique est un systme qui utilise les nombres, bien souvent le systme binaire, afin dacqurir, de traiter, de transmettre, de stocker ou dafficher des informations (ou donnes), plutt quun spectre continu de valeurs (un systme analogique).
Introduction
Un systme numrique est un systme qui utilise les nombres, bien souvent le systme binaire, afin dacqurir, de traiter, de transmettre, de stocker ou dafficher des informations (ou donnes), plutt quun spectre continu de valeurs (un systme analogique). Systmes numriques historiques : Une balise lumineuse avec deux tats (marche et arrt). Les signaux de fume o un porteur analogique (la fume) est module par
une couverture afin de gnrer un signal numrique qui transporte les informations.
Le code Morse emploie cinq tats numriques : point, trait, petite pause,
moyenne pause, et longue pause, afin denvoyer des messages en utilisant une varit de porteurs diffrents tels que llectricit, ou la lumire.
Le monde num erique est un monde discr etis e Le monde r eel est un monde continu Le monde nest pas num erique Alors pourquoi l electronique num erique ? Discr etisation permet de se pr emunir du bruit Il est possible de quantier les erreurs Possibilit e de mise en oeuvre dune arithm etique bas ee sur la logique
Plan du Cours
R ef erences
Architecture des Ordinateurs - Philippe Darche - Vuibert, Collection Passeport pour linformatique - 77.8 DAR - MIE Circuits Num eriques - Ronald J. Tocci - Dunod - PE
Mister G. Boole
e me si` Math ematicien Anglais du 19i ` ecle.
1815 1864
La g en` ese
Georges Boole introduit un formalise math ematique de la logique The Calculus of Logic Cambridge and Dublin Mathematical Journal Vol. III (1848), pp. 1839 (3) That those laws are capable of mathematical expression, and that they thus constitute the basis of an interpretable calculus. Au d epart beaucoup utilis e dans les jeux de salons Mais ` a larriv ee : V eritable r evolution qui est devenue le fondement de l electronique num erique
Lalg` ebre de Boole manipule des variables qui ne peuvent prendre que deux etats : Vrai ou Faux Une telle variable est appel ee variable Bool eenne Il est possible aussi dassocier le chire 1 ` a la valeur Vrai et le chire 0 ` a la valeur Faux Les variables Bool eennes dans ce cas sont des variables Binaires
exemples
La variable a, lorsquelle est not ee a, est dite sous sa forme normale La variable a, lorsquelle est not ee a, est dite sous sa forme compl ement ee
Axiomes de bases - 1
Commutativit e
(a, b ) E 2 a+b =b+a a.b = b .a
Distributivit e
(a, b , c ) E 3 a + (b .c ) = (a + b ).(a + c ) a.(b + c ) = (a.b ) + (a.c )
Axiomes de bases - 2
El ements Neutre
a E a+0=a a.1 = a
Compl ementation
a E a+a =1 a.a = 0
Propri et es - 1
A partir des axiomes de base des propri et es fondamentales sont d eduites. El ements Absorbants
a E a+1=1 a.0 = 0
Loi didempotence
a E a+a =a a.a = a
Loi dabsorption
(a, b ) E 2 a + (a.b ) = a a.(a + b ) = a
Propri et es - 5
Loi dassociativit e
(a, b , c ) E 3 a + (b + c ) = (a + b ) + c a.(b .c ) = (a.b ).c
Loi de De Morgan
(a, b ) E 2 a + b = a.b a.b = a + b
Relation dordre :
Ordre Total : 0 < 1 Ordre Lexicographique : 00 < 01 < 10 < 11 Utile pour les tables de v erit e
La Table de V erit e Repr esentation sous forme de tableau des valeurs de la fonction logique pour toutes les combinaisons de ses variables a b f 0 0 f0 0 1 f1 1 0 f2 1 1 f3
Le Tableau de Karnaugh
Repr esentation sous forme de matrice des valeurs de la fonction logique pour toutes les combinaisons de ses variables en exploitant la propri et e dadjacence
a 0 0 1 1
b c 0 1 1 0
0 f0 f2 f6 f4
1 f1 f3 f7 f5
Diagramme de Veitch Diagramme de Venn Arbre de d ecision binaire Logigramme Partie technologie Repr esentation alg ebrique Ecriture logique
La repr esentation sous forme de tableau ou de matrice est limit ee 5 variables. N ecessit e dutiliser une ecriture alg ebrique La fonction logique sexprime alors sous la forme de variables bool eennes reli ees entre elles par des op erateurs de lalg` ebre de Boole f (a) = a Fonction NON f (a, b , c ) = cb + ab
mj =
i =0
a i , a i (ai , ai )
Mj =
i =0
a i , a i (ai , ai )
mj = 1
j =0
Le produit logique de tous les Maxtermes est egal ` a 0 si la fonction r ealis ee est di erente de la fonction constante 1
p 1
Mj = 0
j =0
Exemples
Ecriture alg ebrique dune fonction logique nutilisant que des Mintermes ou des Maxtermes. Il existe deux possibilit es d ecriture :
Forme Canonique Disjonctive ou premi` ere forme canonique : Elle sexprime sous forme dune somme de Mintermes Forme Canonique Conjonctive ou seconde forme canonique : Elle sexprime sous forme dun produit de Maxtermes
Forme Canonique Conjonctive : f (a, b ) = (a + b ).(a + b) Produit des Maxtermes tel que
f(a,b)=1, cherche les mintermes pour lesquels f(a,b)=0 et on d etermine les valeurs de a et de b li ees ` a ce minterme qui nie f(a,b)=0
Exemples
Minimisation de Fonctions Utilisation des axiomes de base et des Propri et es qui en d ecoulent f (a, b , c ) = ab + bc + c en utilisant la loi dabsorption bc + c = c on obtient f (a, b , c ) = ab + c f (a, b ) = a.(a + b ) en utilisant laxiome de la compl ementation a.a = 0 on obtient f (a, b ) = ab . f (a, b , c ) = (a + bc )ab = aab + abbc = ab + abc = ab en utilisant successivement la loi didempotence et la loi dabsorption.
Minimisation de Fonctions
Exemples
Minimisation de Fonctions
Une m ethode graphique : Les Tableaux de Karnaugh Les variables sont pr esent ees de fa con ` a faire appara tre la loi dabsorption a.b + a.b = a Pour ce faire le code binaire r e echi ou code de Gray est utilis e
Minimisation de Fonctions
Les Tableaux de Karnaugh : etapes Regroupement densembles de 2i cases de m eme valeur (en g en eral de valeur 1) en maximisant i ` a chaque fois. Possibilit e de regrouper les cases extr emes Regrouper les cases de m eme valeur restantes avec des cases densembles d ej` a etablis pour avoir 2j cases en maximisant j Ecrire l equation bool eenne alg ebrique.
Minimisation de Fonctions
Exemples
Minimisation de Fonctions
Les Tableaux de Karnaugh : remarques Dans le cas de fonctions incompl etement d enies, consid erer X comme un 1 an de maximiser les ensembles M ethode limit ee ` a 5 variables.
Minimisation de Fonctions
Exemples
Codage
Codage
Codage
Syst` eme de base : codage d ecimal Conversion d ecimal-binaire et binaire-d ecimal n 2n = 10, n ecessit e codage octal ou h exad ecimal Codage DCB : D ecimal Cod e Binaire Code de Gray ou binaire r e echi Code ASCII
La conversion binaire-d ecimal seectue simplement en r ealisant la somme des bits pond er es par leur position
n 1 i =0 bi
Conversion d ecimal-binaire
La conversion d ecimal-binaire peut seectuer en utilisant la m ethode inverse de celle enonc ee pr ec edemment. Exemples. Fastidieux pour de grand nombre. R ealise un division par 2 29 2 1 14 2 0 7 2 1 3 2 1 1 2 1 0 Nombre binaire = 11101
Travaille avec des quartets binaires : 1010 Int eressant la taille du mot binaire de base est loctet Un octet = Deux Quartets
La base du syst` eme H exad ecimal est la base 16 Il faut donc 16 symboles 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Hexa 0 1 2 3 4 5 6 7
D ecimal 0 1 2 3 4 5 6 7
Hexa 8 9 A B C D E F
D ecimal 8 9 10 11 12 13 14 15
De m eme que pour la conversion binaire-d ecimal, il sagit ici de faire une sommation pond er e des symboles Nombre Hexad ecimal Position du symbole Puissance associ ee Nombre D ecimal A 2 162 10 162 = 2606 2 1 161 +2 161 E 0 160 +14 160
De m eme que pour la conversion d ecimal-binaire on a recourt ` la division a 311 16 7 19 16 3 1 16 1 0 Nombre H exad ecimal = 137
Le nombre binaire est d eduit en rempla cant chaque chire hexad ecimal par son quartet binaire Nombre Hexad ecimal Nombre Binaire E 1110 3 0011 B 1011 1 0001
La m ethode est linverse de la pr ec edente on regroupe les bits par quartet et on remplace les quartets par leur equivalent hexad ecimal. Nombre Binaire Nombre Hexad ecimal 0101 5 1010 A 1100 C 1011 B
Notations
Les symboles 0,1 appartiennent au code binaire, d ecimal et hexad ecimal les symboles 0,1,2,3,4,5,6,7,8 et 9 appartiennent au code d ecimal et hexad ecimal N ecessit e dune convention d ecriture pour di erencier Binaire D ecimal Hexad ecimal 100B 100 100H
Remplacer chaque chire dun nombre d ecimal par son equivalent binaire Faire une Nombre Nombre Nombre Nombre correspondance directe entre binaire et d ecimal D ecimal 5 3 7 1 Binaire 0101 0011 0111 0001 Binaire 0101 1001 1000 0011 D ecimal 5 9 8 3
Sous-Utilisation de lespace de repr esentation binaire 6 repr esentations interdites 1010B ,1011B ,1100B ,1101B ,1110B ,1111B Di erence entre codage binaire et DCB 231 =11100111B en binaire 231 =001000110001B en DCB
Code de Gray
Code ASCII
Besoin de traiter de linformation non num erique Information Alphanum erique : , ? R t j Mise en place dun codage sur 7 bits : lASCII American Standard Code for Information Interchange 7 bits : 26 lettres minuscules, 26 lettres majuscules, 10 chires, 7 signes de ponctuation soit 69 signes ` a coder. Le reste sert pour des caract` eres sp eciaux ASCII etendu : 8 bits
ASCII
Caract` ere A E I M N Q R U Code Hexad ecimal 41H 45H 49H 4DH 4EH 51H 52H 55H
4EH 55H 4DH 45H 52H 49H 51H 55H 45H NUMERIQUE
Conception
Conception
Cela d epend du circuit. petits circuits : A la main, en sch ematique circuits moyens : A la main ` a laide de composants discrets gros circuits : A laide de langage de Description de circuits num eriques
Langage de type HDL : Hardware Description Language VHDL : Volont e dIndustriels et de Chercheurs de d enir un langage HDL Verilog : Issu de la soci et e Cadence Inc. System C : Mettre au m eme niveau Logiciel et Mat eriel
VHDL
Existe depuis 1987 date de la premi` ere norme. 1993 seconde norme. Langage M ur et couramment utilis e 3 Niveaux :
Niveau Structurel Niveau Flot de Donn ees Niveau Comportemental
VHDL - RTL
RTL : Register Transfert Level Description Synth etisable Utilisable pour fondre un circuit Utilis ee dans ce cours
VHDL - Base
3 blocs de base:
Les biblioth` eques Lentit e : D ecrit linterfa cage du composant Larchitecture : D ecrit le fonctionnement du composant
VHDL - Entit e
entity MON-ET is port( A : in std_logic; B : in std_logic; S : out std_logic); end entity MON-ET;
VHDL - Larchitecture
S = A et B
architecture FLOT of MON-ET is begin S <= A and B; end architecture FLOT;
ot de conception
De la description au circuit D ecrit en VHDL le circuit Simule le circuit Synth etise le circuit Placement-Routage du circuit R ealise un masque Cuisson du circuit
A la conception dASIC A la programmation de FPGA (cours SSN) A la v erication fonctionnelle de circuits num eriques.
Bibliothques Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity entity NOM_DE_L_ENTITE is port ( Description des signaux dentres /sorties ); end NOM_DE_L_ENTITE;
Exemple : entity sequencement is port ( A : in std_logic; B : in std_logic; Q : out std_logic_vector(1 downto 0) ); end SEQUENCEMENT;
Remarque : Aprs la dernire dfinition de signal de linstruction port il ne faut jamais mettre de point virgule.
Le TYPE utilis pour les signaux dentres / sorties est : le std_logic pour un signal. le std_logic_vector pour un bus compos de plusieurs signaux. Par exemple un bus de sortie de 5 bits scrira : Q : out std_logic_vector (4 downto 0) ; O Q(4) correspond au MSB et Q(0) correspond au LSB. Les valeurs que peuvent prendre un signal de type std_logic sont : 0 ou L : pour un niveau bas. 1 ou H : pour un niveau haut. X ou W : pour un niveau inconnu. U : pour non initialis. Z : pour tat haute impdance. - : Quelconque, cest dire nimporte quelle valeur.
Architecture
Larchitecture est relative une entit. Elle dcrit le corps du design, son comportement, elle tablit travers les instructions les relations entre les entres et les sorties. Exemple : -- Oprateurs logiques de base entity PORTES is port (A,B :in std_logic; Y1,Y2,Y3,Y4,Y5,Y6,Y7:out std_logic); end PORTES; architecture DESCRIPTION of PORTES is begin Y1 <= A and B; Y2 <= A or B; Y3 <= A xor B; Y4 <= not A; Y5 <= A nand B; Y6 <= A nor B; Y7 <= not(A xor B); end DESCRIPTION;
Logique Combinatoire
Logique Combinatoire
Logique Combinatoire
Transposition de lalg` ebre de Boole ` a l electronique Rendu possible gr ace au composant tel que le transistor command e en tension Le domaine de validit e de ce qui suit est l electronique num erique
Logique Combinatoire
D enition : Un circuit electronique est dit combinatoire si ses sorties sont ees et ceci d etermin ees par la combinaison de ses variables dentr apr` es un temps ni. L etat dun syst` eme est donc d eni par la combinaison des variables e1 , . . . , ei , . . . , en .
Logique Combinatoire
e1 ei en
Circuit Combinatoire tp
s1 si sn
a+a=0 ?
Inverseur : s = a
1
&
NON-ET (NAND) : s = a.b
&
1
NON-OU (NOR) : s = a + b
1
NON-OU-EXCLUSIF : s = a b = ab + ab = ab + ab
Plan du Cours
introduction
Compos ees ` a partir des op erateurs de base Conditionnement de donn ees Contr ole de donn ees D enies par leur table de v erit e
Fonction Egalit e
Egalit e 2 bits a 0 0 1 1 b 0 1 0 1 s 1 0 0 1
s =ab
Egalit e - VHDL
entity egalite is port( a,b : in std_logic; s : out std_logic); end entity egalite; architecture flot of egalite is begin s <= not(a xor b); end architecture flot;
Fonction Egalit e
Egalit e 2 mots de 2 bits a = a1 , a0 et b = b1 , b0
a1 a0 b1b0 00 01 11 10 1 1 1 1 0 0 0 1 1 1 1 0
s = (a1 b1 )(a0 b0 ) Egalit e de 2 mots de n bits : s = (an1 bn1 )(an2 bn2 )(...)(a1 b1 )(a0 b0 )
Egalit e - VHDL
entity egalite is port( a,b : in std_logic_vector(1 downto 0); s : out std_logic); end entity egalite; architecture flot of egalite is begin s <= not(a(1) xor b(1)) and not(a(0) xor b(0)); end architecture flot;
Egalit e - VHDL
VHDL apres lUE LE201 Ce que peut faire VHDL Hors du cadre du cours LE201 entity egalite is port( a,b : in std_logic_vector(1 downto 0); s : out std_logic); end entity egalite; architecture comp of egalite is begin process(a,b) is begin if a= b then s<=1; else s<=0; end if; end process; end architecture comp;
Multiplexeurs
Multiplexeur = Aiguillage Une commande choisie lentr ee Entr ee choisie recopi ee sur la sortie Partie Commande : p bits Partie Donn ee : 2p = n entr ees, 1 sortie
a b sel 0 1
0 0
0 1
1 1 1
1 0 1
s = sel .a + sel .b
Multiplexeurs 2 vers 1
Sch ema
sel
a s b
VHDL - mux2v1
entity m2v1 is port(a,b,sel : in std_logic; s: out std_logic); end entity m2v1; architecture flot of m2v1 is begin s <= (a and not(sel)) or (b and sel); end architecture flot;
VHDL - mux2v1
VHDL un petit cran en plus Ou lon utilise des constructions VHDL un peu plus expressives entity m2v1 is port(a,b,sel : in std_logic; s: out std_logic); end entity m2v1;
architecture flot of m2v1 is begin s <= a when sel=0 else b; -- s prend la valeur de a s -- sinon si sel <> 0 s pr end architecture flot;
Multiplexeurs 4 vers 1
4 donn ees et 2 commandes 26 = 64 lignes dans la table de v erit e Toutes les lignes ne sont pas int eressantes Une commande Une variable pertinente
Multiplexeurs 4 vers 1
sel1 sel0 s 0 0 a b 0 1 c 1 0 d 1 1 s = sel 1.sel 0.a + sel 1.sel 0.b + sel 1.sel 0.c + sel 1.sel 0.d
Multiplexeurs 4 vers 1
sel0 sel1
a s b c d
Multiplexeurs
Permet de r ealiser des fonctions logiques Un Multiplexeur n vers 1 r ealise 2n fonctions Valeurs des entr ees = valeurs de la fonction Un Multiplexeur 4 vers 1
x 0 0 1 1 y 0 1 0 1 s 0 0 0 1 entr ee mux a=0 b=0 c=0 d=1
x et y commandes du multiplexeur
D emultiplexeurs
D emultiplexeurs
a 0 1 0 1
s1 0 0 0 1
s0 0 1 0 0
D emultiplexeurs
sel
s0 s1
D emultiplexeurs - VHDL
entity demux is port ( sel,a : in std_logic; s0,s1 : out std_logic); end entity demux; architecture flot of demux is begin s0 <= a when sel = 0 else 0; s1 <= a when sel = 1 else 0; end architecture flot;
D ecodeurs
D ecodage Binaire Codage 1 parmi n n entr ees, 2n sorties a 0 0 1 1 b 0 1 0 1 s3 0 0 0 1 s2 0 0 1 0 s1 0 1 0 0 s0 1 0 0 0
D ecodeur
b a
s0 s1 s2 s3
D ecodeur
D ecodeur Binaire Base n
Nombre Binaire a
a0 a1 a2 a3 Dcodeur 4 vers 16
0 1 2 3 4 5 6 7 8 9 A B C D E F
Encodeurs
b = s 3.s 2.s 1.s 0 + s 3.s 2.s 1.s 0 = s 2.s 0(s 3 s 1) a = s 3.s 2.s 1.s 0 + s 3.s 2.s 1.s 0 = s 1.s 0.(s 3 s 2)
Encodeurs
s0
s1 s2 s3
Nombres Sign es
Comment Coder les Nombres Sign es en Binaire ? Introduire un bit de signe : bit de poids fort Nombre sur 4 b3 0 1 Codage Signe bits b2 b1 b0 signe 1 0 0 + 1 0 0 + Valeur Absolue valeur d ecimale 4 -4
Compl ement ` a2
Utilisation dun codage qui permet de limiter les op erateur Compl ement ` a2:
Bit de signe : bit de poids fort Si bit de signe = 0 : Le nombre est cod e Si bit de signe = 1 : Compl ement ` a 2 pour avoir la valeur
Compl ement ` a2
Codage de 7 : b3 b2 0 1 Codage de -7 : b3 b2 1 0
b1 1 b1 0
b0 1 b0 1
signe + signe -
Compl ement ` a2
Etapes pour compl ementer ` a2 Faire le compl ement ` a 1 du nombre : compl ementation bit ` a bit Ajouter 1 au nombre Exemple : codage de -5 b3 0 1 + 1 b2 1 0 0 b1 0 1 1 b0 1 0 1 1 Commentaires Valeur Absolue Compl ement ` a1 Ajout de 1 Compl ement ` a2
Compl ement ` a2
Avantage : Unicit e du 0 Utilisation du m eme op erateur pour laddition et la soustraction Modulo : 9H - 4H = (9H + CH )modulo (10H ) = 5H Exemples en binaire.
Compl ement ` a2
Codage sur N bits, N ni On veut coder un nombre n egatif P sur N bits, P [0, 2N ] On sait que 2N = CP + P On pose P = CPmod 2N Ce qui donne P = (2N P )mod 2N On sait que P [0, 2N ] donc on a bien (2N P )mod 2N = P
Compl ement ` a2
Si P positif on le code P =N 1 P = ii =0 bi 2i P =N 2 N 1 P = b N 1 2 + ii =0 bi 2i avec bN 1 = 0 Si P n egatif on le code P =N 1 P = (2N ii =0 bi 2i ) P =N 2 N N 1 P = (2 bN 1 2 ii =0 bi 2i ) avec bN 1 = 1 Pi =N 2 N N 1 i P = (2 2 i =0 bi 2 ) P =N 2 P = (2N 1 (2 1) ii =0 bi 2i ) Pi =N 2 N 1 i P = (2 i =0 bi 2 ) P =N 2 P = bN 1 2N 1 + ii =0 bi 2i avec bN 1 = 1 Nombre en compl ement ` a2 P =N 2 P = bN 1 2N 1 + ii =0 bi 2i
Demi-Additionneur
r 0 0 0 1
Demi-Additionneur
a b
s c
Demi-Additionneur
entity demi-add is port( a,b : in std_logic; s,c : out std_logic); end entity demi-add; architecture flot of demi-add is begin s<= a xor b; c<= a and b; end architecture flot;
Additionneur 1 bit
Introduction dune retenue dentr ee Trois variables dentr ees, deux de sorties ai ,bi ,ci et si ,ci +1 si = ai bi ci ci +1 = ai .bi + ai .ci + bi .ci Utilisation de deux demi-additionneurs
Additionneur 1 bit
ai
bi
Demi Additionneur
Demi Additionneur
si
ci+1
ci
Additionneur 1 bit
entity add1 is port( a,b,cin : in std_logic; s,cout : out std_logic); end entity add1; architecture struct of add1 is signal stemp,ctemp1,ctemp2 : std_logic; begin demi-add1 : entity work.demi-add(flot) port map(a,b,stemp,ctemp1); demi-add2 : entity work.demi-add(flot) port map(stemp,cin,s,ctemp2); cout <= ctemp1 or ctemp2 end architecture struct;
Additionneur 1 bit
entity add1 is port( a,b,cin : in std_logic; s,cout : out std_logic); end entity add1; architecture flot of add1 is begin s<= a xor b xor cin; cout<= (a and b) or (a and cin) or (b and cin); end architecture flot;
Additionneur 1 bit
VHDL apres lUE LE201 Ce que peut faire VHDL Hors du cadre du cours LE201 entity add1 is port( a,b : in std_logic; s : out std_logic); end entity add1; architecture comport of add1 is begin s<= a + b; end architecture comport;
Additionneur 4 bits
s0 a0 b0 c0 a1 b1 c1
s1 a2 b2 c2
s2 a3 b3 c3
s3
c4
ENTITY add4 IS port (a,b : in std_logic_vector(3 downto 0); cin : in std_logic; s : out std_logic_vector(3 downto 0); cout : out std_logic); END ENTITY add4;
Multiplieur
Utilisation de lalgorithme de Multiplication n m m additions de n
a0
ci ai bi ci+1
a1
si
a2
ci ai bi ci+1
si
ci ai bi ci+1
si
ci ai bi ci+1
si
ci ai bi ci+1
si
ci ai bi ci+1
si
b0
b2
b1
p5 p4
p3
p2
p1 p0
library ieee; use ieee.std_logic_1164.all; entity mon-et is port(a,b : in std_logic; s : out std_logic); end entity mon-et; architecture flot of mon-et is begin s <= a and b after 25 ns; end architecture flot;
Plan du Cours
Introduction Alg` ebre de Boole et Logique Combinatoire Fonctions Combinatoires Complexes El ements s equentiels de base : Les Bascules
El ements de base R egulation du ux des donn ees Fonction M emorisation El ements Asynchrones El ements Synchrones
El ements Asynchrones
Le bascule RS
0 0
0 0
Le bascule RS
S 0 1 0 1
Q Q 1 0 Etat
Q Q 0 1 Interdit
La bascule D
1 0
1 0
La bascule D
El ements Synchrone
Bascules Synchrones
0 Q
0 0
1
D Q
1
D Q
1
D Q
1
D Q
CK
CK
CK
CK
S S Q
H R R Q
Maitre
Architecture Ma tre-Esclave
Esclave
CK
1
D Q D Q
0
D Q
1
D Q
1 -> 0
CK
CK
CK
CK
CK
STABLE ts th
ts est le temps de pr epositionement (setup en anglais) th est le temps de maintien (hold en anglais)
entity bascule is port ( d, clk : in std_logic; q : out std_logic ); end entity bascule; architecture comport of bascule is begin stockage : process(clk) is begin if (clk=1 and clkevent) then q <= d; end if; end process stockage; end architecture comport;
Dfinition du process
Un process est une partie de la description dun circuit dans laquelle les instructions sont excutes squentiellement : les unes la suite des autres. Il permet deffectuer des oprations sur les signaux en utilisant les instructions standard de la programmation structure comme dans les systmes microprocesseurs.
Instruction if
Syntaxe : if condition then instructions [elsif condition then instructions] [else instructions] end if ; Exemple: if (RESET=1) then SORTIE <= 0000; Elsif (Clk=1 and Clkevent) then if (LOAD = 1) then SORTIE <= ENTREE; Else SORTIE <= D; end if; end if ;
La bascule JK
Front Montant
J 0 0 1 1
K 0 1 0 1 J 0 0 1 1
H K 0 1 0 1
Qn+1 Qn 0 1 Qn H
Qn+1 Qn 1 0 Qn Qn+1 Qn 1 0 Qn
Front Descendant
Qn+1 Qn 0 1 Qn
Symbole Bascule JK
J CK K
La bascule T
Front Montant
T 0 1 T 0 1
Qn+1 Qn Qn H
Qn+1 Qn Qn Qn+1 Qn Qn
Front Descendant
Qn+1 Qn Qn
Symbole Bascule JK
CK
N ecessit e de forcer les sorties Ajout dentr ees asynchrones RAU : Remise ` a Un ou entr ee Set en anglais RAZ : Remise ` a Z ero ou entr ee Reset en anglais
RAU D Q
Qn+1 1 0 0 1
Qn+1 0 1 1 0
RAU
CK
RAZ
Bascule D avec des entres RAU(Set) et RAZ(Reset) asynchrones Architecture comporte of BasculeD is Begin process(Set,Reset,Clk) begin if Reset = 1 then Q <= 0; elsif Set = 1 then Q <= 1; elsif (Clk=1 and Clkevent) then Q <= D; end if; end process; End architecture;
Et apr` es ?
Les registres
Les registres
Taille des donn ees 1 bits Associer des Bascules pour augmenter la taille El ements importants dans les micro-processeurs : permet de r ealiser un pipeline R ealise des barri` eres de synchronisation
Registre bascules D
Registre ` a D ecalage
CK
CK
CK
CK
Registre bascules D
Registre ` a chargement parall` ele
D3
D Q
D2
D Q
D1
D Q
D0
D Q
CK
CK
CK
CK
Q3
Q2
Q1
Q0
Registre bascules JK
J CK K
J CK
J CK
J CK
Vhdl : registre
entity reg8generic is generic (N : natural := 8); port ( d :in std_logic_vector(N-1 downto 0); clk : in std_logic; q: out std_logic_vector(N-1 downto 0) ); end entity reg8generic; architecture comport of reg8generic is begin stockage : process(clk,d) is begin if (clk=1 and clkevent) then q <= d; end if; end process stockage; end architecture comport;
Les monostables
Monostable simple
Circuit ne poss edant quun etat stable Q Q Etat Souvent : 0 1 Stable 1 0 Quasi Stable Etat Quasi Stable est momentan e Dur ee Quasi Stable x ee par circuit RC
Monostable simple
Q T =RC Q
C R
Monostable simple
Q
=f(RC) =f(RC) =f(RC) =f(RC)
Q
=f(RC) =f(RC) =f(RC)
Boole = 2 etats : 0 et 1 Connexion de 2 composants sur le m eme l ? Premi` ere Solution : Court Circuit PERDU Seconde Solution : multiplexeur encombrant Troisi` eme Solution : Composant dinterface La porte 3 etats GAGNE
Introduction dun Etat Z Etat Haute Imp edance Tout ce passe comme si le l n etait pas connect e
Vhdl : registre
entity reg8generic is generic (N : natural := 8); port ( d :in std_logic_vector(N-1 downto 0); en, clk : in std_logic; q: out std_logic_vector(N-1 downto 0) ); end entity reg8generic; architecture comport of reg8generic is begin stockage : process(d,en,clk) is begin if (clk=1 and clkevent) then if en = 1 then q <= d; else q<= (others=>Z); end if; end if; end process stockage; end architecture comport;
Les registres (D ej` a vus) Les m emoires Les compteurs Le contr ole (les pipelines) Les Machines ` a Etats (Cours Synth` ese des Syst` emes Num eriques) What Else ?
Les m emoires
Association de plusieurs Registres Utilisation de Bascules D souvent M emoires Asychrones Bascules Asynchrones M emoires Synchrones Bascules Synchrones Ajout dune entr ee de s election
Les m emoires
S election sortie 3 etats
Enable
CK
Les m emoires
M emoire 2 mots de 2 bits
Adresse
E D Q D
E Q
CK
CK
2 Donne Entrante
E D Q D E Q
Donne Sortante
CK
CK
Horloge
Les Compteurs
Syst` eme s equentiel dont les sorties sont une suite pr e-d etermin ee d etats Bascules D ou JK Plus ou Moins Complexes
Simple (B ete) compte de 0 ` a N 1 en boucle log2 (N ) bascules Complexes
Initialisation Arr et - Reprise Compteur - D ecompteur Fonctions n ecessaires ` a lapplication
Les compteurs
Q3Q2Q1 Q0
0000 Un systme squentiel plus complexe 0001 un compteur 0010 Un compteur est un circuit dont la valeur des sorties est 0011 directement lie au nombre d'impulsions appliques sur son 0100 entre d'horloge 0101 base de bascules (souvent bascules D) 0110 Suite simple des nombres binaires : 0111 1000 Q0 change chaque fois 1001 ( chaque top dhorloge) 1010 Q1 change une fois sur deux 1011 (tous les 2 tops dhorloge) 1100 Q2 change une fois sur quatre (tous les 4 tops) 1101 Q3 change une fois sur huit (tous les 8 tops) 1110 1111
Les compteurs
Q0
H Q0
T0=2TH
D1 = Q n +1 = Q n = Q1
H1 = Q 0
Les compteurs
D0 H
Q0 Q0
D1
Q1 Q1 TH 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0
H Q0 Q1
Il faudrait que Q1 soit modifi sur le front descendant de Q0 Il suffit de prendre H1=Q0
Les compteurs
Q2 Q2 D2 Q2 Q2
D0 H
Q0 Q0
D1
Q1 Q1
D2
Pour 4 bits :
compteur!
H Q0 Q1 Q2 Q3
1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1
Les compteurs
Avec 4 bascules : 4 bits en sortie, 24 valeurs possibles=16 Compteur par 16 ou modulo 16 Avec N bascules : N bits en sortie, 2N valeurs possibles Compteur par 2N ou modulo 2N Compteurs Dcompteurs Q : entre Clk de la bascule suivante Q : entre Clk de la bascule suivante
Les compteurs
2. Comment sarrter P ? remise zro P-1 utilisation des entres asynchrones (Reset, Set)
Exemple : compteur par 5 000 001 010 011 100 000 tats indsirables: 101 110 Reset=1 111 Reset=Q2.(Q1+Q0)
Les compteurs
Inconvnients de ces compteurs : Quand on prend en compte les temps de propagation de chaque bascule: Des problmes dala de fonctionnement (Glitch) indsirables peuvent apparatre Compteurs asynchrones Toutes les bascules nont pas la mme horloge
Les compteurs
Les compteurs
Pour viter les problmes dus aux temps de propagation Compteurs synchrones Toutes les bascules sont commandes par la mme horloge => Pas de problme de cumul des temps de propagation => Etats transitoires parasites limits Une mthode unique pour raliser tous les types de compteurs
Les compteurs
Synthse dun compteur modulo P partir de bascule D synchrones 1 - Nombre de bascules ncessaires : n, o 2n-1< P 2n 2 - Etablir la table de transition du compteur tat suivant (Qi+) en fonction de l'tat prsent (Qi) QnQ1Q0 .. 010 Qn+Q1+Q0+ .. 011
Les compteurs
Les compteurs
Q2
0 1 Q2 Q1 Q0 Q2
+
1 1
0 0
0 0
1 1
D0 = Q0
Q1
Q0
D1
Q1Q0 Q2
00 0 0
01 1 1
11 0 0
10 1 1
0 1
D1 = Q1 Q0 + Q1 Q0 D1 = Q0 Q1
D2 = Q2 Q1Q0 + Q2 Q1 + Q2 Q0
D2
Q1Q0 Q2
00 0 1
01 0 1
11 1 0
10 0 1
0 1
D2 = Q1 Q0 Q2 + (Q1 Q0 )Q2
D2 = Q2 (Q1 Q0 )
Les compteurs
D0 = Q0
D2 = Q2 (Q1 Q0 )
Compteur modulo 2n Clk Q0 Q1 Q2 Q2 Q1 Q0
D1 = Q0 Q1
D0 = Q0
(Q2Q1Q0)
Les compteurs
Exemple : compteur modulo 6 1. Combien de bascules ? 22=4 < 6 < 23=8 3 bascules 2. Table de vrit
Q2 Q1 Q0 Q2+ Q1+ Q0+
Les compteurs
3. Calcul des expressions des entres Di = Qi+ = f(Qi) D0=Q0 D1=Q2.(Q1 + Q0) D2=Q1.Q0 + Q2Q0 tats indsirables ? 110 ? 111 ? On vrifie que les tats suivants sont dans la boucle de comptage OU on indique ces tats dans la table de vrit en choisissant les tats suivants ( 000 souvent) et on en tient compte dans les quations
Les compteurs
Avec cette mthode on peut raliser: Des compteurs dcrivant dautres cycles que lnumration binaire -dcompteur -code de Gray -cycles quelconques
Compteurs programmables : En ajoutant des entres asynchrones, on peut crer -chargement parallle du compteur -commande de validation / inhibition du comptage -programmation du sens du comptage
Le contr ole
Contr ole du ux des donn ees Un registre entre 2 op erateurs R ealisation dun pipeline
A Registre S Multiplieur Additionneur B Registre
Sn = (An1 + Bn1 ) Bn
Les Al eas
CK
Pipeline
Pipeline
Principe : D ecouper lop erateur en plusieurs etages isol es les uns des autres. Cest le signal dhorloge qui autorise les transfert des donn ees dun etage ` a lautre. Cette technique permet dacc el erer la cadence de production des r esultats. Latence La latence (dur ee dex ecution totale) de lop erateur est sup erieure dau moins ` a celle dun op erateur non pipelin ee. Si la dur ee maximale dun etage de lop erateur pipelin e est de tmax et quil y a n etages, alors la latence de lop erateur est T = n tC LK avec tc lk > tm ax + th + ts avec ts et th les temps de pr epositionnement et de maintien des bascules.
H
Aprs le premier top dhorloge a1(2) b1(2) a1(3) b1(3)
a1(1) b1(1)
Cout1=c11 s0
H
a1(2) b1(2) a1(3) b1(3)
Cout2=c12 s1 s0
H
a1(3) b1(3)
Cout3=c13 s2 s1 s0
cout s3 s2 s1 s0
cout s2 s1 s0 s3
Quel est lintrt de larchitecture pipeline ? Avant le premier top dhorloge a1(2) b1(2) a1(3) b1(3)
H
Aprs le premier top dhorloge a2(2) a1(2) b2(2) b1(2) a2(3) a1(3) b2(3) b1(3)
Aprs le deuxime top dhorloge a3(1) b3(1) a2(1) b2(1) a2(0) b2(0) c20 Cout1=c21 s20 s10
H
a3(2) a3(3) b3(2) b3(3) a2(2) a1(2) a2(3) a1(3) b2(2) b1(2) b2(3) b1(3)
Cout2=c12 s11
H
a3(2) b3(2) a2(2) b2(2) a3(3) b3(3) a2(3) a1(3) b2(3) b1(3)
Cout3=c13 s12
H
a3(2) b3(2) a3(3) b3(3) a2(3) b2(3)
c1out s13
H
a3(3) b3(3)
s30 s20
c3out
R ef erences
Conception des ASICS - P. Naish et P. Bishop - Masson Logic Reference Guide 4Q2001 - Texas Instrument http://www.ti.com Des Liens Utiles pour tous les Electroniciens http://perso.wanadoo.fr/xcotton/electron/index.htm
Vocabulaire
Quelques grandeurs caract eristiques F Fr equence de Fonctionnement P Puissance Dissip ee Tp Temps de Propagation Sortance : nombre maximal dentr ees qui peuvent etre pilot ees par une sortie.
Int egration ?
Plusieurs niveaux dint egration SSI: Small Scale Integration < 12 portes logiques MSI: Mean Scale Integration de 12 ` a 99 portes logiques LSI: Large Scale Integration de 100 ` a 9999 portes logiques VLSI: Very Large Scale Integration de 10000 ` a 99999 portes logiques ULSI: Ultra Large Scale Integration 100000 et plus de portes logiques
Technologie - 1
Comment r ealiser des fonctions logiques ? N ecessit e de composants command es electriquement Les Diodes (Famille DTL)
Vdd = 5V
Vss = 0V
Les Transistors
Technologie - 2
Bipolaire
La Famille TTL : Transistor - Transistor - Logic
Vdd = 5V
R1
R2
R4
A B
R3
Vss = 0V
T.T.L 1
Historique : premi` ere famille : 1964 - Texas Instrument Famille 54/74 Famille 74 : Famille de r ef erence Tous les fabricants utilisent cette r ef erence Compatibilit e des circuits entre eux Tension dalimentation : 0-5V 1 logique : Vih > 2V 0 logique : Vil < 0, 8V
T.T.L 2
Plusieurs Variantes de la famille 74 74L : Famille Faible consommation 74H : Famille rapide 74S : Famille rapide bas ee sur des Diodes Schottky 74LS : Famille Schottky Faible consommation 74AS et 74 ALS : Famille Avanc ee Schottky
T.T.L 3
74 9 10 35 10
74L 33 1 3 20
74S 3 20 125 20
74LS 9,5 2 45 20
Bipolaire
Il existe dautres technologies bipolaire pour le num erique ECL : Emitter Coupled Logic - Plus Rapide et Plus ch` ere I2L : Utilis e dans des circuits logiques complexes
Maintenant et Demain
Quelle technologie aujourdhui et demain ? Hasardeux de pr edire lavenir Mais ... Pr evisions Texas Instruments
PRODUCT LIFE CYCLE
AC ABT GTL LVC CBT AHC CBTLV AV C GTLP AUC ALVT TTL ALVC LV LVT FB+ FCT BCT
HC ALS F AS CD4000 LS S
Little Logic
Introduction
Growth
Maturity
D ecline
Obsolescence
CMOS
Avantage du CMOS Faible Co ut Facilit e de fabrication Petite Dimension, jusqu` a un rapport 50 par rapport au bipolaire Pas d el ement r esistif Faible consommation originale
le PMOS
le NMOS
Mise en oeuvre de charges mobiles de polarit e compl ementaire = ComplementaryMOS NMOS conduit si Vg > Vs de plus de VT PMOS conduit si Vg < Vs de plus de VT
Num erique = Fonctionnement en mode interrupteur NMOS Vg = 0 = transistor bloqu e, interrupteur ouvert NMOS Vg = Vdd = transistor passant, interrupteur ferm e PMOS Vg = 0 = transistor passant, interrupteur ferm e PMOS Vg = Vdd = transistor bloqu e, interrupteur ouvert
1
Vdd
Vss
Vdd
Vdd
0 0
Vss
Vss
Vdd
Vout
Vin
Vdd
Imax
Ic
Vdd
Vdd = 5V
out in
Vss = 0v
Mod` ele coh erent jusqu` a 20 MHz Permet de mod eliser la sortance dune porte
&
PMOS Parallle S A B
NMOS Srie
Vss
PMOS Srie A B
S NMOS Parallle
Vss
CMOS - limites ?
Du ` a la commutation A technologie constante, le CMOS nit par consommer plus que le bipolaire si F ou C augmente Baisser la tension dalimentation Modier les proc ed es technologiques de fabrication de CI.
Famille CMOS
Plusieurs familles CMOS 74HC : Compatibilit e TTL
Famille CMOS
Famille CMOS
R ef erences
Communication
Le monde num erique est un monde discr etis e Le monde r eel est un monde continu Le monde nest pas num erique Comment Interfacer les 2 mondes ? A travers des Capteurs
Communication
Capteur = Fonction de conversion du Monde en grandeur electrique Capteur renvoie une Valeur Analogique N ecessit e dune fonction de conversion Analogique Num erique Conversion Analogique Num erique : CAN Conversion Num erique Analogique : CNA
Communication
Grandeur Physique
Grandeur Electrique
Capteur
CAN
nn
eu
Ac
CNA
M bits
tio
CAN : D enitions
La conversion analogique num erique consiste ` a transformer une grandeur electrique repr esent ee par un signal en une grandeur num erique exprim ee sur N bits apr` es echantillonage et quantication du signal. Cette valeur est une valeur cod ee repr esentant un nombre proportionnel ` a la grandeur electrique.
CAN : D enitions
Echantillonage : prise p eriodique de valeur du signal, attention ` a Shannon Fe > 2 Fsignal Quantication : association dune mesure ` a la valeur echantillonn ee, cest une fonction de m emorisation. Pour le traitement Echantillonage/Quantication on parle aussi d echantillonnage-blocage ou d echantillonage-m emorisation. Codage : repr esentation de la valeur quanti ee dans un alphabet interpr etable par un circuit num erique
CAN : D enitions
R esolution : Amplitude de la plus petite variation. Correspond au LSB (Least Signicant Bit) Temps de conversion : Temps de stabilisation de la donn ee en sortie Erreur de Quantication : Incertitude du ` a la conversion Pleine Echelle : Etendue de la grandeur Analogique dentr ee
CAN : Types
Il exite di erents type de conversion La conversion ` a rampe La conversion ` a double rampe La conversion ` a approximation successive La conversion Flash La conversion Sigma-Delta
La conversion ` a rampe
Vin
+
Horloge Compteur Raz N
Controle
La conversion ` a rampe
Idt =
I Ct
Vin = Vc le comparateur passe de 1 ` a 0 et bloque le compteur sur la valeur N correspondant au nombre binaire recherch e
+
Horloge Compteur Raz N
CNA
Controle
C Vin R Vref
+
Compteur Raz N
Controle
Phase 1 : Connexion du montage sur Vin . Chargement de C pendant un temps xe T0 Phase 2 : Connexion du montage sur Vref , de polarit e inverse a Vin . D ` echargement de C jusqu` a 0. Durant ce temps on incr emente le compteur jusqu` a N . N est la valeur binaire recherch ee.
Vin
+
Registre Horloge N
CNA
Controle
D etermination des valeurs de bits de N les unes apr` es les autres en commen cant par le bit de poids fort On xe le bit de poids fort ` a 1 et les autres a ` 0. Conversion NA du registre et comparaison ` a Vin Si Vin est plus grand alors le bit reste ` a 1 sinon il passe ` a 0. On garde la valeur du bit de poids fort et on passe au bit suivant On r er ete le m eme traitement que pr ec edemment pour ce bit et ainsi de suite jusquau bit de poids faible.
La conversion Flash
Vref Vin R1
+
S1
R2
Codeur
+
S0 R3
S2
+
R4
R4
R4
+
R4
R4
La conversion Flash
Flash = Parall` ele Principe : Comparer Vin ` a un ensemble de tensions pr ed enie Utiliser un codeur pour g en erer le nombre binaire
7V +
C7
Codeur
1k
6V +
C6
1k
5V +
C5
S1 S0 S2
1k
4V +
C4
1k
3V +
C3
1k
2V +
C2
1k
1V +
C1
1k
Vi n <1 >1, <2 >2, <3 >3, <4 >4, <5 >5, <6 >6, <7 >7
C1 1 0 0 0 0 0 0 0
C2 1 1 0 0 0 0 0 0
C3 1 1 1 0 0 0 0 0
C4 1 1 1 1 0 0 0 0
C5 1 1 1 1 1 0 0 0
C6 1 1 1 1 1 1 0 0
C7 1 1 1 1 1 1 1 0
S2 0 0 0 0 1 1 1 1
S1 0 0 1 1 0 0 1 1
S0 0 1 0 1 0 1 0 1
La conversion Sigma-Delta
Convertisseur Sigma-Delta : peut etre vu comme un convertisseur double rampe en commutation continue pour maintenir la charge int egr ee nulle en moyenne.
CAN : Comparaison
R esolution Moyenne ` a elev ee (7 ` a 14 bits) Elev ee (10 a ` 18 bits) Moyenne ` a elev ee (8 a ` 6 bits) Faible ` a Moyenne (4 ` a 10 bits)
CNA : Types
Il existe di erents type de Conversion Num erique Analogique R esistances Poids Proportionnels R eseau R2R
2R a1 4R a2
Vref
8R a3
+
aN
N 2 R
CNA : Comparaison
http://www.comelec.enst.fr/tpsp/eni/poly/enipa1.html#enich3.html Page regroupant des adresses sur tous les sujets de llectronique : http://perso.orange.fr/xcotton/electron/coursetdocs.htm Bascules D http://www.premiumorange.com/daniel.robert9/Digit/Digit_5T.html