Beruflich Dokumente
Kultur Dokumente
Cours 1 - La numration
I - Dfinitions I-1) Expression gnrale La base b d'un systme de numration reprsente le nombre d'units d'un certain rang, ncessaires pour former une unit de rang immdiatement suprieur. L'ensemble Bb =[0,1,2....b-1], soit b caractres (chiffres en base 10) quantifie le nombre d'units d'un rang quelconque. Tout nombre en base b s'crit Nb=an......a1a0a-1....am et s'exprime en base 10 l'aide de la base b : (E-1) N10 = an.bn + an-1.bn-1+.....+a0.b0 + a-1.b-1 + ..... + am bm
On peut aussi l'exprimer en base b l'aide de la base 10 : (E-2) Nb = an.(10)bn + an-1.(10)bn-1+.....+a0.(10)b0 + a-1.(10)b-1 + ..... + am .(10)bm
o ai est un chiffre de base b positionn au rang i. n et m sont les rangs extrmes. n>0 pour la partie entire et m<0 pour la partie fractionnaire. b est un nombre crit en base 10 et bi exprime le poids du rang i. Remarque : (10)b=(b)10 et d'autre part ai est compris entre 0 inclu et (b)10 exclu. I-2) Rappels : la numration dcimale. La base b=10, donc Bb=[0,1,....,9]. Ici N10 et Nb sont confondus. Soient quelques exemples : N10=(5807)10=(5.103+8.102+0.101+7.100)10=(5000+800+7)10 N10=(4,75)10=(4.100+7.10-1+5.10-2)10=(4+0,7+0,05)10 II - Systme de numration binaire. II-1) Expression Ce systme cr par Leibnitz (17e s) utilise la base 2 donc Bb=[0,1]. Chaque nombre se prsente ainsi : N2=(100,11)2=(1.1022+0.1021+0.1020+1.102-1+1.102-2)2 A partir de l'quivalence b=(2)10=(10)2 , il vient : N2=(100,11)2=(1.22+0.21+0.20+1.2-1+1.2-2)2 Numration binaire : N10 = an.2n + an-1.2n-1+.....+a0.20 + a-1.2-1 + ..... + am .2m II-2) Conversion Binaire-Dcimal Mthode : partir de l'quivalence donne ci-dessus, la conversion de N2 s'obtient en dcomposant le nombre en une somme de termes selon l'expression (E-1). Exemple : N2=(100,11)2 -> N10=1.22+1.2-1+1.2-2=(4+0,5+0,25)10=(4,75)10 II-3) Conversion Dcimal-Binaire. Mthode : On effectue une suite de divisions successives du nombre N10 par la base b, les restes obtenus constituant chaque rang le caractre ai du nombre N2. Exemple : N10 = (14)10.
2
2
0 7
1 3
2 1 1
1 0
Conversion par dcomposition en puissance de 2 (cas des petits nombres) (14)10 = (0.16) + (1.8) + (1.4) +(1.2) (+0.1) = (01110)2. II-4) Cas des nombres fractionnaires. Mthode : On effectue une suite de multiplications successives de N10 par la base b, de la partie fractionnaire seulement, la partie entire des rsultats obtenus constituant chaque rang le caractre ai du nombre N2. Exemple : N10 = (0,3)10. Autre reprsentation 0,3 mul x 2 x2 parties 0,3 entires rang -1 quotients -1 0,6 0 0 0 , 6 rang 1,2 1 x2 0,4 0 1 1 , 2 -> 0,2 rang -2 0,8 rang -4 0 x2 0,4 rang -3 0 (0,3) = (0,01001...) 2 x2 10 0,8 rang -4 0
etc.... Remarque : cette conversion ne s'arrte pas car dans la reprsentation binaire, on ne peut exprimer exactement tous les nombres fractionnaires de N10. Il faut donc se limiter un format en respectant la prcision dcimale souhaite (ex 10-5).
II-5) Prcision fractionnaire. Pour un nombre donn en base 10, avec une prcision de 10-n prs, on effectue une conversion binaire telle que l'unit du rang du dernier chiffre obtenu soit gale ou infrieure celle du dernier rang donn en base 10. Donc pour la base 2 : 1.2-m 1.10-n log10 2-m log1010-n Soit m n/log102 = n. 3,32 Prenons un exemple. Soit (0,3)10 10-4 prs. m 4.3,32 soit 13,28, c'est dire 14 chiffres aprs la virgule. En binaire : (0,3)10 = (0,01001100110001)2. II-6) Utilisation pour la longueur de conversion dcimale-binaire. Ce rsultat peut tre utilis dans la dtermination du format du nombre binaire quivalent (occupation et longueur des registres binaires). En effet, si N10 a une longueur de n chiffres et si N2 a une longueur de m chiffres, pour des nombres entiers on a : m 3,32 n Exemples : (32)10 = (100000)2 n= 2 m=6 m/n=3 (500)10 = (111110100)2 n=3 m=9 m/n=3 (64)10 = (1000000)2 n=2 m=7 m/n=3,5 Dans ce dernier cas, le registre binaire sera de longueur directement suprieure (3.32 n)
III - Autres systmes de numrations. III-1) Systme de numration octale. La base est b=8 et l'ensemble B8 = [0,1,2,...7]. Il y a quivalence entre : b=810=108=(1000)2 et 8n=23n Expression : N8=(13257)8=(1.1084+3.1083+2.1082+5.1081+7.1080)8 ou encore : N8=(265,42)8=(2.1082+6.1081+5.1080+4.108-1+2.108-2) Conversion : partir des relations d'quivalence ci-dessus donne (5807)10 pour le premier et (181,53125)10 pour le deuxime. Conversion dcimale octale : La mthode est analogue celle employe pour la conversion dcimale binaire. On pourra aussi utiliser des tables de conversion. Exemple : Nombre entier div 8 (5807) 725 90 11 1 7 5 2 3 Nombre fractionnaire x8 0,83 6,64 5,12 0,96 7,68 0 6 5 0 7
(5807) =(13257) 8 10
(0,83) = (0,6507) 8 10
Remarque : 1) cette base qui est une puissance de 2 n'utilise souvent pas plus de chiffres qu'en dcimal. 2) La prcision fractionnaire est ici m n/log108 = 1,1.n III-2) Systme de numration hexadcimale. La base est b=16 et l'ensemble Bb=[0,1,2....9,A,B,C,D,E,F]. Chaque lettre a une quivalence dcimale (voir tableau). Expression : Relations d'quivalence : b=1610=1016=208=(10000)2 et 16n=24n N16=(16AF)H = (1.10163 + 6.10162 + A.10161 +F.10160) N16 = (B5,23)H = (B.10161 + 5.10160 + 2.1016-1 + 3.1016-2). Conversion hexadcimal-dcimal : Une premire mthode consiste utiliser l'expression (E-1). On trouve ainsi (5807)10 et (181,137)10 pour les nombres proposs ci-dessus. Numration hexadcimale : N2 = an.16n + an-1.16n-1+.....+a0.160 + a-1.16-1 + ..... + am .16m Une deuxime mthode consiste utiliser un tableau de conversion permettant une rapidit de calcul ainsi qu'une simplification de celui-ci. Exemple : (A37F)H = (A000 +0300 +0070 + 000F)H = (40960 + 768 + 112 + 15)10 = (41855)10.
Nombres entiers hexadcimaux 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 1E 20 32 40 64 FF 100 12C 1F4 200 3E8 FFF 1000
Equivalents en base 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 32 50 64 100 255 256 300 500 512 1000 4095 4096
nombres fractionnaires hexadcimaux 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,A 0,B 0,C 0,D 0,E 0,F 0,FFF FFF....
Equivalents en base 10 0,0625 0,125 0,1875 0,25 0,3125 0,375 0,4375 0,5 0,5625 0,625 0,6875 0,75 0,8125 0,875 0,9375 0,999 999
Conversion dcimale hexadcimale : la mthode est toujours la mme, mais il faut convertir les restes des divisions ou les parties entires des produits en hexadcimal lorsqu'ils sont compris entre 10 et 15. Exemple :
Nombre fractionnaire x 16 O , 66 0 , 10 , 56 A 8 , 96 8 15 , 36 F 5 , 76 5
N = (16AF) 16 16
N = (0,A8F5) 16 16
Une autre mthode consiste utiliser le tableau de conversion. N10 = (5807)10 = (5000 + 800 + 7)10 N16 = (1388 + 0320 + 0007)16 = (16AF)16 l'addition est faite ici en hexadcimal. On peut aussi passer par le binaire. Remarques : 1) La base tant aussi une puissance de 2 mais qui ne ncessite cependant autant ou moins de caractres que la base dix pour la mme quantit d'units.
TD Informatique Industrielle IUT Troyes 2) La prcision fractionnaire est m n/log1016 = 0,83.n. Dans l'exemple (0,66)10 est 10-2 prs m 1,66 donc N16 = (0,A9)16 III-3) Conversions entre systmes de numration (2, 8 ou 16). N8 -> N16 On remplace chaque caractre de rang i de N8 par son quivalent binaire. Exemple : (23,76)8 = (010 011,111 110)2. N16 -> N2 mme mthode. Exemple : (A8)16 = (1010 1000)2. N2 -> N8 On remplace chaque groupe de 3 bits par son quivalent octal. Exemple : (101,110 010 1)2 = (5,624)8. N2 -> N16 mme mthode mais par groupe de 4 bits de N2. Exemple : (0111 1010,1001 11)2 = (7A,9C)H. Applications : Ces conversions entre systmes servent : - crire sous forme condense des mots de 8, 16 et 32 bits dans les programmes, - convertir rapidement les nombres dcimaux en binaire (passage par N16 ou N8), - effectuer des oprations.
HEXADECIMAL ----> DECIMAL 1000 2000 3000 4000 5000 6000 7000 8000 9000 A000 B000 C000 D000 E000 F000 4096 8192 12288 16384 20480 24576 28672 32768 36864 40960 45056 49152 53248 57344 61440 0100 0200 0300 0400 0500 0600 0700 0800 0900 0A00 0B00 0C00 0D00 0E00 0F00 256 512 768 1024 1280 1536 1792 2048 2304 2560 2816 3072 3328 3584 3840 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0 00D0 00E0 00F0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DECIMAL ---> HEXADECIMAL 10000 20000 30000 40000 50000 60000 2710 4E20 7530 9C40 C350 EA60 1000 2000 3000 4000 5000 6000 7000 8000 9000 03E8 07D0 0BB8 0FA0 1388 1770 1B58 1F40 2328 100 200 300 400 500 600 700 800 900 0064 00C8 012C 0190 01F4 0258 02BC 0320 0384 10 20 30 40 50 60 70 80 90 000A 0014 001E 0028 0032 003C 0046 0050 005A
IV - Exercices. 1) Trouver le nombre reprsent par ces bouliers. Les crire dans leur base et en base 10. b3 b2 b1 b3 b2 b1 b0
b0
boules utilises
2) On dnombre en base 10 des lments d'un ensemble. Ces nombres crits en base b sont nots Nb. Dans quelle base sont-ils crits ? Soit 19 lments ----> Nb = (201)b ---> base = ? Soit 170 lments ---> Nb = (442)b ---> base = ? 3) On compte en base b un ensemble de chaussures. Le nombre de paires est : Nb = (352)b. Le nombre de chaussures est : Nb = (724)b. Dcouvrir dans quelle base s'est fait le dnombrement et quel est le nombre de chaussures exprim en base 10. 4) Etude de conversions : * Exprimer N2, N10, N8 pour N16 = (ABCD)16 ; (10)16 ; (A07F)16 ; (F6,B8)16 ; (0,B2F)16. * Exprimer N2, N16, N8 pour N10= 105 ; 29 ; 35 ; 14625 ; 123,312. * Exprimer N10 pour N8 = (476)8 ; (350,32)8 ; (0,327)8.
Soient quelques exemples : - La longueur des mots binaires tant l=11, quelle est la capacit de reprsentation C ? C=211=2048 (=2K) - Quelle doit tre la longueur d'un mot binaire pour avoir une capacit de reprsentation C=64 kilo ? b=2 l=Ln(C)/Ln(2) soit 15,9 bits => l=16 bits. - Si C = 10 Mga, quelle doit tre la longueur des mots binaires crits en base 16 (hexadcimal) ? b=16, l=5,8 soit l=6 caractres hexa (ou 3 octets). I - Reprsentation des entiers positifs. L'ensemble des entiers positifs donns en format fixe est N=[0,1,2,3,.....,Nmax]. Sa reprsentation circulaire est : Nmax 0 1 2 Pour une capacit de reprsentation C donne 3 .. .. l'utilisation de l'opration INC (incrmentation . . de +1) est possible. Mais on constate que Nmax +1 = 0. Cala signifie que pour le format considr, il y a dpassement. Celui-ci tant marqu par un indicateur V=1 (Overflow) DEC INC
- Dans l'utilisation de l'opration DEC (dcrmenter), on remarque que 0-1 = Nmax. Il faut alors prendre en compte la retenue dans l'opration suivante (C=1, Carry). Exercice : Montrer que pour l=8 en binaire la somme de A=16010 (soit A0H) et de B=12710 (soit 7FH) est 3210 et V=1. II - Reprsentation des entiers relatifs. L'ensemble des entiers relatifs donns en format fixe est : N = [-Nmax,...,-1,0,1,.....,+Nmax]. Il est donc ncessaire de coder le signe algbrique. Pour cela, plusieurs reprsentations sont possibles. II-1) reprsentation par bit de signe et valeur absolue. Si le nombre s'crit Nb = (s an-1.....a1 a0 )b alors s reprsente le signe et an-1...a0 la valeur absolue. Le bit d'ordre n est alors rserv au signe et vaut 1 si s signe - et 0 si s signe +. Reprsentation circulaire :
..
Nmax 0 1 2 3
..
. Cette reprsentation : -ncessite un traitement spar du signe et de la valeur absolue dans les oprations arithmtiques, -possde deux reprsentations du zro : -0 = 10000000 +0 = 00000000
<0
>0
-1
-0
+Nmax
Exemples : Si b=2, l=8 => C=256. (+13)10 = (00001101)2 = (0D)H (-13)10 = (10001101)2 = (8D)H +Nmax = (01111111)2 = (7F)H = (+127)10 -Nmax = (11111111)2 = (FF)H = (-127)10 II-2) Reprsentation par le complment restreint de N (complment 1). Dans cette reprsentation, le signe est trait avec la valeur. Il est cependant reprsent par le bit de poids fort. Le complment restreint CR N = (2l-1)10 - N10 avec (2l-1) plus grand nombre que l'on puisse reprsenter avec le format de l bits. Il s'obtient donc en inversant chaque bit de N2 sans oublier le bit de poids fort (signe).
..
<0
>0
+Nmax Nmax Remarques : - Il y a deux reprsentations du zro +0 : (00)H et -0 (FF)H. - les instructions INC et DEC ne sont pas utilisables partout. - Connatre le signe d'un rsultat est parfois complexe : par exemple, (-75)10 =(180)10, (-25)10 = (230)10 (-75-25)=(180+230)=(410)10=(255+155)=155 (>127) d'o 255-155=(100)=>(-100). II-3) Reprsentation par le complment vrai de N (complment deux). On le dfinit comme tant la valeur : Cv N = (2l)10-N10 = CRN + 1
Il s'obtient donc en ajoutant 1 au complment restreint. Le premier bit reste toujours le bit de signe.
Donc -N s'crit N +1
2 2 Reprsentation circulaire -1 0 1 2 3 .. .. .
DEC <0
INC >0
Le demi-cercle s'obtient (pour les nombres ngatifs) en dcalant (INC) d'un pas de faon superposer +0 et -0. Il y a donc un seul zro et il est possible d'utiliser les oprateurs INC et DEC.
Nmax-1 +Nmax Exemples de reprsentation Valeur algbrique dcimale -127 -105 -15 -12 -3 -2 -1 0 +1 +2 +3 +12 +15 +105 +127 Reprsentation des nombres par : Bit de signe et valeur absolue 1111 1111 1110 1001 1000 1111 1000 1100 1000 0011 1000 0010 1000 0001 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111 Complment restreint 1000 0000 1001 0110 1111 0000 1111 0011 1111 1100 1111 1101 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111 Complment vrai 1000 0001 1001 0111 1111 0001 1111 0100 1111 1101 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111
Exemples : N10 = 75 -> (01001011)2 N10 = -75 -> (10110101)2 100 -75 =25 50 -75 -25 01100100 -01001011 00011001 00110010 -01001011 11100111 01100100 +10110101 1 00011001 lecture directe du rsultat 00110010 +10110101 11100111 le rsultat est en complment deux : 256231=25
Remarques : 1) Pour effectuer une soustraction, il suffit de faire une addition avec le complment deux. Le rsultat se lit directement en complment deux : - si le signe est + la lecture est directe, - si le signe est - on convertit le rsultat en recherchant le complment deux de celui-ci.
2) Il existe une autre mthode pour obtenir le complment vrai. On examine le nombre binaire en commenant par le bit de poids faible. On conserve les zros s'il y en a jusque et y compris le premier 1 rencontr. On complmente ensuite les autres bits. III - Reprsentation des nombres fractionnaires. La situation de la virgule dans les nombres fractionnaires se fait sur des conventions suivant sa position l'intrieur de celui-ci. Elle n'est cependant pas reprsente. III - 1) Virgule place un rang fixe quelconque. Dans cette convention, la virgule est place de faon immuable. Exemple de reprsentation : (l=8) position conventionnelle de la virgule
a a0 1 Partie fractionnaire
Exemples : (+14,75)10 = +(1110,11)2 -> (00111011)2 (-7,5)10 = -(0111,1)2 -> (1110010)2=Cv N2 (le complment vrai est pris sur tous les bits) (+20)10 = +(10100)2 -> (01010000)2 (+0,25)10 = +(0,01)2 -> (00000001)2 Remarque : Dans cette convention, il existe des limites aux dimensions des parties entire et fractionnaire (ici 5 et 2 bits). D'autre part, on n'utilise pas dans certains cas les bits significatifs. III - 2) virgule situe droite du dernier rang. Dans cette convention, on ramne tous les nombres fractionnaires des entiers en les multipliant par (210)n, c'est dire 102n. Reprsentation (l=9) position conventionnelle de la virgule. a 1 a 0 facteur de cadrage C
7 Signe
Le but de cette convention est de ne conserver que la partie significative du nombre. Afin de pouvoir faire la lecture de celui-ci, il est ncessaire d'associer ce nombre un facteur de cadrage (d'chelle) qui n'est autre que c = n (+, - ou 0). Exemples : (reprsentation sur 8 bits) -(+14,75)10 = +(1110,11)2=(111011.(10)2-2)2 -->(00111011)2 et C=-2. Cela signifie que la virgule relle se trouve 2 rangs gauche de la virgule conventionnelle. - (+328)10 = (101001000)2 = (1010010.102) -->(01010010)2 et C=2 : virgule relle 2 rangs droite. - (-0,656)10 --> (+0,656)10 = (0,101001)2 = (101001.10-6)2 donc --> (00101001)2 ; il vient : (-0,656)10 --> (11010111)2 et C=-6 : virgule six rangs gauche. Remarque : Le facteur de cadrage peut tre modifi pour conserver certains bits significatifs.
10
III-3) Virgule situe droite du bit de signe. Dans cette convention, on ramne tous les nombres fractionnaires un nombre fractionnaire infrieur un (0,101101....) en les multipliant par 210n (102n).
a7 Signe
a 6 ..............................
facteur de cadrage C
Le facteur de cadrage est choisi tel que le premier bit derrire la virgule soit 1. Exemples : - (+14,75)10 = (1110,11)2 = (0,111011.104)2 -->(01110110)2 et C=4. La virgule est situe 4 rangs droite de la virgule conventionnelle. - (+328)10 = (101001000)2 = (0,101001.109)2 -->(01010010)2 et C=9. la virgule est au 9 rang droite. -(-0,3125)10 --> (+0,3125)10 = (0,0101)2 = (0,101.10-1)2 donc --> (01010000)2 et C=-1. (-0,3125)10 --> (1011000)2 c'est dire (0,11.10-1)2 pour la partie fractionnaire qui se normalise par : (11100000)2 et C'=C-1=-2 (nouveau facteur de cadrage). La virgule est ici place 2 rangs gauche de la virgule conventionnelle. Remarque : Dans cette convention, on peut modifier, si c'est ncessaire, le facteur de cadrage afin d'utiliser au mieux tous les bits significatifs. On dit alors que l'on travaille en virgule flottante III-4) Norme ANSI IEEE standard 754 pour la reprsentation des rels. III-4-a) Simple prcision.
31 S signe exposant biais (8 bits) E 22 M mantisse (23 bits) 0
type float du langage C (compilateur 16 bit sur IBM PC). valeur : (-1)signx1,M22.....M0x2(E-127)
IV - Exercices. 1) Dans un micro-ordinateur une variable entire simple est reprsente sur 2 octets. Quelle est la capacit de reprsentation ? 2) Reprsenter en binaire sur 8 bits les nombres (+98)10 et (-98)10 dans les trois conventions de reprsentation. Les crire en hexadcimal.
11
3) Une calculatrice travaille en binaire sur un format de 12 bits avec la convention du complment vrai et donne ses rsultats en hexadcimal. Quelles sont en base 10 les nombres quivalents aux rsultats suivants : (B46)16 ; (07F)16 ; (FF8)16. 4) A partir des conventions des nombres entiers et fractionnaires, donner les reprsentations binaire et hexadcimale dans un format de 8 bits, des nombres +(48,625)10 puis -(48,625)10 reprsents par le complment vrai. 5) -a- Pour un systme de numration dans la base b de l chiffres de longueur, quelle est la capacit de reprsentation. -b- le cot de la reprsentation est environ : p=b.l ; pour une capacit C donne, quelle est la base de reprsentation la moins coteuse ? -c- comparer par rapport cette base thorique le cot de la base 2, puis 3, 4, 10, 16, pour une capacit de 65536. 6) Pour effectuer des oprations arithmtiques, on utilise la mthode du complment vrai sur des nombres de 2 chiffres s'crivant D1D0. a)Le format tant donn, D1D0 est un nombre dont l'criture est comprise entre 00 et 99. Si CVN = 100N, le signe du nombre N dpend de D1. Si D1 (> ou =)5 alors N<0 ; si D1 <5 N>0. Reprsenter de -10 +10 les nombres signs. Quelles sont les valeurs de -Nmax et + Nmax. b) Effectuer 7+3 ; 7-3 ; 3-7 ; -3-7. Expliquer vos rsultats. c) Effectuer 40-25 ; 33-48;-15-12;15-15. 7) Si on effectue l'addition de 2 nombres signs N1 et N2 de signes respectifs s1 et s2, le rsultat possde un signe s3. A partir des tats 0 ou 1 des 3 variables s1,s2 et s3, donner l'tat du calcul sachant qu'il y a 8 combinaisons possibles. Etats possibles : signe rel du rsultat : positif N=0, ngatif N=1 Dbordement V=1 Il y aura donc deux variables d'tat N et V = f(s1,s2,s3). Donner les quations de N et V. Proposer un schma NANDs.
12
Exemple : Tlcommande d'une maquette de bateau. On dispose de 4 commandes : marche avant, bbord, marche arrire, tribord. Pour simplifier le systme de tlcommande, on choisit de n'utiliser que 2 bits pour transmettre les ordres la maquette. a x voie SM } sens codage transcodage b dcodage moteur M de c en en SG } gouvernail d code B G y transmission code A o o o o AV AR B T clavier abcd AV 0001 AR 0010 B 0100 T 1000 En absence d'ordre
xy M SM G SG 00 1 1 0 X 01 1 0 0 X 10 0 X 1 1 11 0 X 1 0 AV ou AR : M=0 B ou T : G=0
M=0 moteur arrt M=1 moteur marche G=0 gouvernail centre G=1 bbord/tribord SG : sens gouvernail
II - Diffrents types de codes Il existe un certain nombre de codes qui possdent chacun leurs particularits et qui correspondent une application prcise.
13
- codes arithmtiques qui permettent de faire les calculs : codes pondrs, codes dcimaux, codes auto-complments. - codes alphanumriques qui n'ont aucune proprit arithmtique mais qui servent reprsenter des lettres, des chiffres, des signes typographiques. Code tlgraphique international ASCII (American Standard Code for Information Interchange). - codes de position mcanique {code adjacent sans rgime transitoire parasite } - codes de transmission codes dtecteurs d'erreur, codes autocorrecteurs. II-1) Codes arithmtiques * codes pondrs : chaque bit de ces codes reprsente un poids dont l'quivalent en base 10 de chaque combinaison est donn par la somme des poids de tous les bits de la combinaison gaux 1. Chacune des combinaisons un quivalent dcimal, suprieur d'une unit celui de la combinaison prcdente. * codes dcimaux : ce sont des codes 10 combinaisons reprsentants les 10 chiffres dcimaux. Ils comportent au moins 4 bits et ils sont par consquent redondants (toutes les combinaisons binaires ne sont pas utilises). Exemple :
dcimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 code binaire naturel 8421 (poids) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Dcimal Code Binaire (DCB) plutt appel Binary Coded Decimal (BCD) (poids) 8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Non cod Non cod Non cod Non cod Non cod Non cod
Les codes dcimaux servent l'affichage ou l'impression des nombres. Pour entrer ou sortir en machine un nombre dcimal, on le transcode en passant par le code BCD. (172)10 ---------------->(0001 0111 0010)BCD -----------------> (10101100)2 L'arithmtique en code BCD est complique (voir addition plus loin dans le poly). II-2) Codes de position : (rflchis ou reflex) Une position angulaire thta analogique est transforme en grandeur numrique au moyen d'un disque cod li la pice dont on veut reprer le mouvement. Le disque est divis en p couronnes correspondant p bits et reprant ainsi 2p positions ; chaque couronne prsente des parties soit opaques et transparentes (lecture optique) soit conductrices et isolantes (lecture lectrique). A chaque position du disque correspond alors un nombre binaire.
14
partie transparente
4 0110 5 0111 6 0101 Le numro binaire correspondant ne peut tre que 0111 ou 0101 soit 5 ou 6 4 0100
5 0101 6 0110
BINAIRE NATUREL
On peut bien sr coder ainsi un dplacement linaire avec une plaque forme de pistes parallles. Le code le plus utilis est le code Gray. Il existe aussi des codes (BDR . BDR xs 3) o les chiffres dcimaux sont cods sparment et juxtaposs (code qui se prte mieux l'affichage). Dans ces codes, un seul bit change d'tat la fois quand on passe d'une combinaison la suivante, de faon limiter les erreurs.
Ces codes ne sont pas pondrs. Ils sont cycliques si un seul bit change d'tat entre la dernire combinaison et la premire. (Les codeurs angulaires sont obligatoirement cycliques). II-3) Codes dtecteurs Dans la transmission d'une grandeur numrique peuvent se glisser des erreurs (1 transform en 0 ou 0 en 1) quelque soit le moyen de transmission (bande magntique, carte perfore, procds optiques) S'il peut se produire une erreur sur un bit (probabilit d'erreur p : ex 1/10000 ; p = 10-4), il est beaucoup plus rare que deux erreurs se produisent simultanment (probabilit p2 ). En partant de ce principe, on utilisera pour transmettre les donnes, des codes dont toutes les combinaisons ont une caractristique commune : - chaque combinaison ne comprend par exemple que 2 bits gaux un et tous les autres zro. - chaque combinaison contient un nombre pair de 1. Les combinaisons reues qui n'ont pas cette caractristique n'appartiennent pas au code et sont donc errones. Ces codes sont tous redondants. Exemples : code "2 parmi 5 "
15
dcimal, pondr (sauf 0) On ajoute 1 cinquime bit de telle sorte redondance : 22 que chaque combinaison contienne un (32 combinaisons. 10 utiles) nombre pair de 1.
63210 0 1 2 3 4 5 6 7 8 9 00110 00011 00101 01001 01010 01100 10001 10010 10100 11000 poids
8421 0
0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 1000 1 1001 0
Soit transmettre (4)10 dans les 2 codes prcdents : (4)10 01010 (4)10 01001 Quel que soit le bit sur lequel se produit l'erreur, la combinaison n'appartient pas au code. Nbre de 1 3 1 3 1 3 erreur sur A la rception du code, on vrifie la parit. Si elle est correcte le mot est valid. (Voir TP : codeur de Hamming). Codes autocorrecteurs : Quand on sait qu'on a une erreur dans un mot, il est intressant de la localiser pour pouvoir la corriger : il suffit alors d'inverser le bit fautif). On obtient ainsi une transmission parfaite. On construit ces codes en ajoutant aux bits d'informations des bits de "contrle". Nombre de 1 impair impair impair impair imapair
Erreur sur
II-4)Codes alphanumriques : Ils n'ont aucune proprit arithmtique mais ils servent coder des chiffres, des lettres et des signes. On travaille par comparaison et non par calcul. Exemple : code tlgraphique international N5 (dit code ASCII) Chaque symbole y est reprsent par 8 bits (dont 1 de parit) prcds d'un signal de dbut (START) et d'un signal de fin (STOP). START 1 2 3 4 5 6 7 8 STOP
9,9 ms
2x9,9 ms
Ce code est utilis par les rseaux informatiques assurant les connexions entre les ordinateurs et les organes priphriques (claviers, visu., imprimantes).
16
Le Baud tant l'inverse de la dure d'un signal lmentaire, le code ASCII fonctionne une vitesse de 1/0,0099 = 110 bauds.
17
+ ] <
& ; >
* : .
( ' /
) " ^
+ %
18
decimal hexadecimal
10 16
^d (par dfaut) ^h
I-7) Chanes de caractres Les chanes de caractres sont des caractres ASCII entours par des apostrophes : 'ceci est une chane' I-8) Oprateurs expressions et quations Les oprateurs logiques sont : Oprateur description ! non ou complment 1 & et # ou $ ou exclusif !$ identit (non ou exclusif)
priorit 1 2 3 3 3
Les oprateurs arithmtiques peuvent permettre de dfinir des oprations arithmtiques entre plusieurs membres d'une expression. Oprateur exemple description priorit -A ngation ou complment deux 1 A-B soustraction 3 + A+B addition 3 * A*B multiplication 2 / A/B division entire non signe 2 % A%B reste de la division (oprateur modulo) 2 << A<<B dcalage gauche de A de B bits 2 >> A>>B dcalage droit de A de B bits. 2 Les oprateurs relationnels sont : oprateur description == galit != diffrent < infrieur <= infrieur ou gal > suprieur >= suprieur ou gal
priorit 4 4 4 4 4 4
Les oprateurs d'affectation sont de deux sortes : = affectation combinatoire := affectation squentielle. Tous les oprateurs sont associatifs gauche-droite. On peut utiliser des parenthses pour changer la priorit. I-9) Les ensembles Une ensemble est une collection de signaux et constantes qui oprent comme un seul. Un ensemble est reprsent comme une liste de signaux et constantes spares par des virgules et entours par des crochets. [B7,B6,B5,B4,B3,B2,B1,B0] est un ensemble de huit signaux. On peut raliser des oprations sur les ensembles condition qu'ils aient le mme nombre d'lments. Exemples : Addr = [A15,A14,A13]; "dclaration d'ensemble (A13 est considr comme le poids faible) chip_sel = Addr==[1,0,1]; est quivalent chip_sel=A15 & !A14 & A13 ou chip_sel = Addr==5; Il existe une dclaration simplifie lorsque les broches sont numrotes : Addr = [a15..a0] dclare 16 entres de a0 a15. I-10) La structure de programme
19
M0DULE Le module donne un nom au module et indique si des arguments sont utiliss.
OPTIONS les options contrlent la compilation du fichier source utilisant les options de la ligne de commande TITRE Le titre peut tre utilis pour donner un titre ou une description du module
EQUATIONS Vous pouvez utiliser Equations State_Diagrams, des Truth_Tables pour decrire une conception logique
TEST_VECTORS Les vecteurs de tests sont utiliss en simulation pour s'assurer que le travail de conception est conforme ce qu'on en attend
END On finit le module avec cette directive. I-11) Les points extensions Il s'agit de mettre un caractre point suivi d'une extension qui a une signification dtermine. On donne quelques unes de ces extensions pour la bascule D la bascule RS et la bascule JK ci-aprs. Celles de la D Latch et de la bascule T ne seront pas dtailles.
20
.OE D .CLK .FB .PIN Point-extensions dans une architecture inverse .OE .RE .D .CLK .PR .Q .PIN .OE .AR .R .CLK .S .AP .Q .PIN Point-extensions dtailles Pour une architecture en bascule RS I-12) Les macros R
CLEAR
.OE Q Q .CLK .FB .PIN Point-extensions dans une architecture non inverse D Q Q
RESET
PRESET
.OE .AR Q .J .CLK .K .AP .Q .PIN Point-extensions dtailles Pour une architecture en bascule JK J
CLEAR
S PRE Q
K PRE Q
Des exemples seront plus parlant qu'un grand discours. Nand3 MACRO (A,B,C) {!(?A & ?B & ?C)} ; s'utilise comme : D = Nand3(Clock,Helle,Busy) ; syntaxe : id_macro MACRO [(arg_faux [,arg_faux]...)] { bloc } ; Remarque : une macro dans un langage est toujours du remplacement de texte par du texte (et ceci avant la compilation). Cela a des consquences sur les priorits. Par exemple : Y1 macro { B # C } alors X1 = A & Y1 s'interprtera A & B # C donc (A & B) # C (ce qui peut surprendre !)
II) Applications Nous donnons un ensemble de programmes destins la comprhension des notions que nous venons d'exposer.
21
II-1) Passage table de vrit -> quations La compilation de ce fichier exo1.abl que l'on vous demande de raliser donne : out = ( B & C # !A & B ) que l'on interprte comme : out = B. C + A.B " : est le dbut d'un commentaire qui se termine en fin de ligne istype 'com' : signifie sortie combinatoire II-2) Simulation Notre but est de comprendre comment sont interprtes les lignes de la table de vrit non spcifies. Nous avons 3 entres, il devrait donc y avoir 8 spcifications (8 = 23). La partie test_vectors est destine la simulation : on lui demande de simuler le rsultat pour toutes les possibilits sur les entres (8 lignes) et le .X. signifie qu'on lui demande de calculer la sortie. Il est possible de mettre des 0 ou des 1 la place des .X. pour vrifier un rsultat.
_
MODULE EXO1 title 'exercice 1 par LeProf' "entres A,B,C pin; "sortie out pin istype 'com'; truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0; end
MODULE EXO2 title 'exercice 2' A,B,C pin; "entres out pin istype 'com'; "sortie truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0; test_vectors ( [A, B, C] ->out) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; [0, 1, 1] -> .X.; [1, 0, 0] -> .X.; [1, 0, 1] -> .X.; [1, 1, 0] -> .X.; [1, 1, 1] -> .X.; end MODULE EXO4 title 'exercice 4' A,B,C pin; "entres out pin istype 'com'; "sortie equations out = !A&B&C # A&B&C; test_vectors ( [A, B, C] ->out) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; [0, 1, 1] -> .X.; [1, 0, 0] -> .X.; [1, 0, 1] -> .X.; [1, 1, 0] -> .X.; [1, 1, 1] -> .X.; end MODULE EXO5 title 'exercice 5' A,B,C pin; "entres out1,out2 pin istype 'com'; "sortie truth_table ( [A, B, C] -> [out1, out2]) 0 -> [ 1 , 0 ]; "entres spcifies 2 -> [ 1 , 1 ]; "par des chiffres 4 -> [ 0 , 1 ]; " en base 10 7 -> [ 0 , 0 ]; test_vectors ( [A, B, C] ->[out1, out2]) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; " ajoutez vos vecteurs tests ici [1, 1, 1] -> .X.; end
II-3) Introduction des quations logiques On programme maintenant directement des quations logiques avec les oprateurs : NON : ! (priorit 1) ET : & (priorit 2) OU : # (priorit 3) OU EXCLUSIF : $ (priorit 3) IDENTITE : !$ (priorit 3) affectation combinatoire : = Une compilation pourra simplifier ces quations.
II-4) Plusieurs sorties. Nous avons amlior notre manire de programmer de diffrentes manires : dfinition de nom : X et Xs spcification d'une entre par des chiffres en base 10. On peut faire de mme pour les sorties et on peut aussi changer de base avec ^h (hexadcimal), ^b (binaire), ^o (octal), ^d (dcimal). Les vecteurs tests peuvent aussi tre spcifis avec des chiffres.
22
y= F(a,b)
y= a.b
y= a+b
&
b b
>1
y= a
b fonction entres
sortie
ET
OU
NON
II - Reprsentation des fonctions logiques - Table de vrit : Une fonction logique sera dfinie par sa table de vrit. C'est un tableau comportant les valeurs des variables d'entre et faisant correspondre celle de la fonction (variable de sortie).Elle donne tous les cas de situation d'entre. Pour viter les oublis, les combinaisons des valeurs logiques sont donnes dans l'ordre binaire (Code Binaire Naturel). Deux fonctions qui ont la mme table de vrit sont identiques. - Diagramme de Wenn : Chaque variables logiques divisent l'espace en deux sous-espaces :celui o la variable est vraie (1) et son complment, celui o elle est fausse (0).Ce type de diagramme sera peu employ. - Diagramme de Karnaugh : c'est un tableau drivant du diagramme de Wenn et de la table de vrit. Chaque ligne de la table de vrit est reprsente par une case dont les coordonnes (lignes, colonne) sont des combinaisons de variables d'entre. a b 0 1 2 3 0 0 0 1 1 0 1 1 y 0 0 0 1 Diagramme de Wenn b 1 0 1 y Diagramme de Karnaugh Tableau de Karnaugh a b 0 0 0 y=F(a,b) y=a.b a 0 1
Table de vrit
- Logigrammes : ce sont des schmas logiques reprsentant les fonctions dsires, ils utilisent des oprateurs lmentaires (ET, OU, NON, ET-NON, OU-NON, OU-EXCLUSIF), ils sont ralisables physiquement avec des circuits lectriques, lectroniques ou pneumatiques plus ou moins complexes, c'est la concrtisation des machines numriques.
23
- Chronogrammes : ce sont des graphiques reprsentant l'volution des variables d'entre et de sortie (signaux logiques) en fonction du temps. La bonne interprtation de ces signaux est fondamentale pour le technicien qui disposera d'un oscilloscope la mise au point du montage. fem a b a b Logigramme & a y=a.b 1 0 b 1 a b schma lectrique 0 y y=a.b a1 0 1 b 0 y1 0 chronogrammes
t t t
III - Fonctions lmentaires. a, b, y appartiennent {0,1},y=f(a,b) III-1) Fonction d'une variable - Fonction identit ou OUI : y=a ay a 01 00 01 11 a y
a 1
y=a
y=a
a CE(0,1) - Fonction complment ou NON : y = /a (se lit " a barre") (not y=!a en langage ABEL)
_
0 1 1 0
a 01 10 a y
1
y=1
y=a
y=a
01 11
a 01 1 1
- Fonction faux: y=0 quelque soit a. (les deux fonctions vrai et faux existent dans les circuits programmables UAL, car elles ont un sens en arithmtique). ex: dfaut la masse ay a 0 1 y=0 a 00 0 0 0 10 y =0 III-2) Fonction de deux variables : f(a,b) - Fonction OU: ("addition" logique, runion) aby 000 011 101 111 a b 01 001 1 1 1y b a a E b a+ y=a+b =a pour a=0: pour a=1: y a b >1 y a b y y= a+b =a U b =a V b (y=a#b en ABEL)
24
a + =1 a+a= a + /a = a+b=
- Fonction ET: ("produit" logique, intersection) y= a.b (y = a&b en ABEL) y=A B=A B a a ab y b 01 a y a 00 0 0 00 b 101 01 0 b y a b & y 10 0 E 11 1 b y=a.b - lment neutre - lment absorbant - idempotence - complment - commutativit a . =a a . =0 a.a= a . /a = a.b= pour a=0:
pour a=1:
(y = !(a#b) en ABEL)
y=a+b=a.b
a a b b y a b >1 y a b y
a b
&
Les oprateurs OU-NON et ET-NON sont trs importants, car ce sont des oprateurs complets, ils permettent la synthse de toutes les fonctions eux seuls, ce n'est pas le cas du ET ni du OU.
(y = a$b en ABEL)
a b b y =1 a b y
Le OU-EXCLUSIF joue un rle trs important en arithmtique ( 1/2 additionneur). - Fonction IDENTITE : c'est le complment du OU-EXCLUSIF, son emploi en temps qu'oprateur est rare. Il est not y = a !$ b en langage ABEL.
25
ab 00 01 10 11
y 1 0 0 1
a b 01 01 0 10 1 y b
y =a
a b
b
y a b y
va & vient
=1
- Les 16 fonctions 2 variables d'entre: y=f(a,b) (voir TD) : 1, 0, a, /a, b, /b, a.b, /a.b, a./b, /a./b, a+b, /a+b, a+/b, /a+/b, a b, /(a b) IV - Exercice : les 16 fonctions F(a,b) variables d'entres n b a 0 0 0 1 0 1 2 1 0 3 1 1 DK 0 0 1 1 Expression F Complment /F symbole Ansi Equivalent d'aprs /F symbole normalis variables d'entres n b a 0 0 0 1 0 1 2 1 0 3 1 1 DK 0 0 1 1 Expression F Complment /F symbole Ansi Equivalent d'aprs /F symbole normalis Intersection (ET) 1 1 0 0 0 2 0 1 0 0 3 0 0 1 0 4 0 0 0 1 5 1 1 0 0 Non 6 1 0 1 0 Dilemmes 7 1 0 0 1 8 0 1 1 0
Runion (OU) 9 1 1 1 0 10 1 1 0 1 11 1 0 1 1 12 0 1 1 1 13 0 1 0 1
Oui 14 0 0 1 1
Permanent 15 1 1 1 1 16 0 0 0 0
26
I - Dfinitions. Une fonction boolenne est une fonction qui un ensemble de variables d'entres boolennes fait correspondre une variable boolenne. Elle se reprsente en gnral comme une association de sommes (ou logique ou conjonction) et de produits (et logique ou disjonction). Si l'expression est une somme de produits, la forme est dite disjonctive. Par exemple : /a.b.d+a./b+b.c (not !a & b & d # a & !b # b & c en langage ABEL) Si l'expression est un produit de sommes, le forme est dite conjonctive. Par exemple : (/a+c+/d).(a+b).(/c+d) (not (!a#c#!d)&(a#b)&(!c#d) en ABEL) Une fonction boolenne est dite sous forme normale ou canonique si chaque terme contient toutes les variables. /a./b./c+a.b.c+a./b.c : est sous forme normale disjonctive, (/a+/b+/c).(a+b+c).(/a+b+c) : est sous forme normale conjonctive. Lorsqu'une fonction boolenne n'est pas sous forme normale, elle est dite sous sa forme simplifie. II - Les reprsentations. II-1) Table de vrit . Cette reprsentation a t dfinie prcdemment, elle suffit dfinir compltement la fonction raliser. Si nous ne dfinissons que les cas o la fonction est vraie, implicitement les combinaisons manquantes seront celles o la fonction est fausse et rciproquement. Pour les besoins d'un automatisme une table peut ne pas tre complte, les combinaisons non utilises pourront tre remplaces par 0 ou 1 au choix du concepteur en vue d'une meilleure simplification. Ces cas seront reprs par la lettre phi () ou par la lettre X. n 0 1 2 3 4 5 6 7 cba 000 001 010 011 100 101 110 111 0 1 1 1 0 0 1 1 f y0 y1 y2 y3 y4 y5 y6 y7 n=cba =a.1+b.2+c.4 f= y1+y2+y3+y6+y7 f={1,2,3,6,7} 1 f={0,4,5} 0
Remarque : En langage ABEL une table de vrit s'crit comme ci-contre. Il s'agit ici d'une fonction de 3 variables d'entres A, B et C et d'une variable de sortie : out. II -2) Reprsentation numrique.
truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0;
27
Si nous affectons chaque variables un poids binaire, nous effectuerons la runion des combinaisons o F=1, nous crirons F = {1,2,3,6,7}1, nous pouvons aussi dfinir le complment /F = {0,4,5}0. II-3) Changement de reprsentation. * Lecture des 1 de la table de vrit: nous obtenons la premire forme canonique. Cette prsentation de l'quation est bien adapte la synthse avec des ET/OU ou des ET-Non. f= y1+y2+y3+y6+y7 f= c.b.a + c.b.a + c.b.a + c.b.a + c.b.a * Lecture des 0 de la table de vrit : nous obtenons la deuxime forme canonique. Cette prsentation de l'quation est bien adapte la synthse OU/ET ou OU-Non. f={0,4,5}0 f=y0+y4+y5 f=y0+y4+y5 =y0.y4.y5
III - Exercices. 1) Donnez les expressions boolennes reprsentes par : u x a S2 S1 y v b c w z x a b & c 1 a b c S4 S1 >1 y z a b c u & & & a b c S2 v & w & & &
S3
S3
S5
S6
Hors TD
Ecrire ensuite ces expressions en utilisant la syntaxe ABEL. 2) Exprimer les quations suivantes sous la forme canonique disjonctive (somme de produits) : y1 = a+b, y2 = a.b.c + /a.b 3) Mme question, mais sous forme conjonctive (produit de somme) : y3 = a+b+/a./b.c, y4 = (a+b+c).(/a+b). Indication : on peut utiliser les zros de la table de vrit. 4) Soient les trois fonctions boolennes : F1 = (/a.b+a./b)./c + (/a./b+a.b).c F2 = a./b + b./c + c./a + a.b.c F3 = (a+b+c).(a+b+/c).(a+/b+/c).(a+/b+c).(/a+b+c).(/a+/b+c). a) Ecrire les tables de vrit correspondantes (dont une avec la syntaxe ABEL). b) Ecrire ces fonctions sous formes canoniques disjonctives et conjonctives. c) Donner les reprsentations numriques de ces fonctions.
28
2 variables:4 cases
f y0 y1 y2 y3 y4 y5 y6 y7
b.a c
00 01 11 10 y1 y5 y3 y7 y2 y6
0 y0 1 y4
4 variables:16 cases
3 variables:_8 cases
Appliqu l'expression f=b+a./c, cela donne le rsultat ci-contre. La simplification s'opre de la faon suivante : - Faire des regroupements de cases les plus grands possibles (intersections premires) - Runir ces intersections en ne conservant que ceux qui sont indispensables (liminer les consensus).
f 0 1 1 1 0 0 1 1
b.a 00 c 0 1 0 0
01 1 0
11 1 1
10 1 1
Le rsultat est sous la forme de somme de produit, car nous avons port notre raisonnement sur les 1. Si nous travaillons sur les 0, nous travaillons avec le complment de f, par la complmentation du rsultat et l'emploi de De Morgan, le rsultat sera sous la forme d'une somme de produit. Le choix d'une des deux mthodes dpend du nombre de 1 et de 0 dans le tableau. Les regroupement de cases ne peuvent se faire que si l'adjacence algbrique existe, ces cases doivent tre en ligne ou en carr.
29
Exemple : f(a,b,c) ={3,4,5,7} solution par les 1 : f=(3,7)+(5,7)+(4,5) (5,7)est redondant (consensus) f = a.b + c.b solution par les 0 : f = a.b + b.c f = a.b + b.c = a.b . b.c = (a+b).(b+c) rsolution algbrique : f(a,b,c) = {3,4,5,7} = a.b.c + a.b.c + a.b.c + a.b.c f = a.b.(c+c) +b.c.(a+a) = a.b + b.c = (a+b).(b+c) Exercice : soit f(a,b,c,d) = {2,6,E} dfini par les 1 et f = {5,D} dfini par les 0, le reste n'est pas dtermin. Reprsentez le tableau de Karnaugh, rsoudre par les 1 et par les 0. d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 cba 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 f b.a 00 01 11 10 c 0 1 0 1 0 1 1 1 0 0
b.a d.c 00 01 11 10 00 01 11 10
II - Mthodes algbriques. II-1) Emploi des thormes de l'algbre de Boole : Le tableau ci-dessous rsume les principaux thormes de l'algbre de Boole que l'on utilisera cette anne.
En rsum et retenir :
1) Elment neutre 2) Elment absorbant 3) Idempotence 4) Complment 5) Commutativit 6) Associativit 7) Distributivit a) ET a.1=a a.0=0 a.a=a a./a=0 a.b=b.a a.(b.c)=(a.b).c=a.b.c a.(b+c)=a.b+a.c b) OU a+0=a a+1=1 a+a=a a+/a=1 a+b=b+a a+(b+c)=(a+b)+c=a+b+c a+(b.c)=(a+b).(a+c)
30
8) Relations diverses
dualit
Il est important de remarquer la dualit entre le OU et le ET, en transposant les ET avec les OU et les 1 avec les 0. Exercice : vrifiez chaque relation sur un Tableau de Karnaugh ou algbriquement. Distributivit, liminer les redondances, emploi judicieux de De Morgan, consensus, fonction biforme carre, adjonction d'lment neutres et mise en facteur, tenir compte ventuellement de la nature des portes servant la ralisation, ...., voir TD. II-2) Mthode du consensus Il faut prendre tour tour chaque variable, rechercher ses consensus s'ils existent, nous pouvons supprimer les termes contenant ces consensus. Le rsultat final est l'apparition d'intersections premires, ...voir TD. III - Exercices. 1) Vrifiez avec les tableaux de Karnaugh les thormes de distributivit. 2) Simplifiez : y1= a .b.c + a.c + (a+b). c y2 = b.c + a.c + a.b +b y3 = (a./b+c)(a+/b).c y4 = (a.c+b./c).(a+/c).b y5 = (!a&b#a&!b)&(a&b#!a&!b) HORS TD
_ _ _ _ _ _
B = c . d + a . b + c. d + a. b
31
synthse ET/OU
a b c d e f g 1 2 e.f.g 3 couches c.d
synthse ET/OU
a b
a.b y=a.b+c.d+e.f.g
c d e f g 1
& &
a.b y=a.b+c.d+e.f.g
c.d
>1
&
2
e.f.g 3 couches
II - Synthse ET-Non. La structure prcdente amne naturellement celle ET-Non. Le thorme de De Morgan permet cette transformation. Le montage reste constitu de trois couches.
synthse ET-Non
u
v
w
y >1
u v w
1 1 1 &
a b c d e f
a.b
&
y=a.b + c.d +e.f.g
& 1
1 2
c.d
&
y = u + v + w = u.v.w
De Morgan
&
e.f.g 3 couches
32
REMARQUE : Il est important de passer par une forme " somme de produit " simplifie, pas ncessairement canonique (car pas simplifie). Il ne faut pas partir d'une expression quelconque et chercher supprimer les OU par un emploi abusif de De Morgan.
y=a.(b+c)+d
quation type somme de produits construction ET-Non emploi systmatique de DE Morgan pour supprimer les OU
1 & 1 1 2 1 2 3 4 2 couches 4 couches 4portes (2 ou 3 entres) 6 portes (2 entres) d OUI III - Portes ET-Non limites par le nombre d'entre. Lorsqu'on choisit un circuit intgr, il comporte plusieurs portes du mme type (ex. en TTL :le 7400 possde 4 portes deux entres). Parfois, il n'est plus possible de raliser la synthse en trois couches, on travaillera alors sur des groupes de termes gaux au nombre d'entre des portes choisies.
portes ET-Non 2 entres:
2 entres 3 entres
NON
1 & &
4 couches
6 portes 2 entres
&
( ).( )
&
( ).( ).( )
y = a . b + a . c + d = (a . b + a . c) . (d)
& 1
&
y = (( a . b ) . (a . c)) . (d)
IV - Synthse avec la structure OU/ET. C'est la mthode duale de celle ET/OU. Aprs simplification algbrique ou par Karnaugh, la fonction doit tre mise sous forme de produit de somme (pas ncessairement canonique). Les schmas ainsi obtenus possdent au maximum trois couches de circuits. Cela est important pour minimaliser le temps de propagation.
synthse OU/ET
a b c d e f g
1
>1
y=(a + b + c).(d + e).( f + g)
y
>1 1 >1
2
&
3 couches
V - Synthse OU-Non. La structure prcdente amne naturellement celle OU-Non. Le thorme de De Morgan permet cette transformation. Le montage reste constitu de trois couches.
33
synthse OU-Non
u v w y u v w
1 1 1 >1
&
a b c d
e
y = (a + b + c) .(d + e) . (f + g)
>1
y
>1 >1
>1
y=u.v.w =u + v + w De Morgan
f g
1
3 couches
y=a.(b + c.d)
quation type produit de somme emploi systmatique de De Morgan pour supprimer les ET
REMARQUE : Il est important de passer par une forme "produit de somme" simplifie, pas ncessairement canonique (car pas simplifie). Il ne faut pas partir d'une expression quelconque et chercher supprimer les ET par un emploi abusif de De Morgan.
construction OU-Non
y = a . (b + c.d) = a + (b + c.d)
y=a.(b+ c.d)=a.(b+c).(b+d)
y = a + (b + c + d)
1 >1 >1
1 2 couches 4 portes (2 ou 3 entres) 2 1
>1
1 >1 1 1
2
>1
3 4
>1
4 couches
6 portes (2 entres)
OUI
VI - Portes OU-Non limites par le nombre d'entre
NON
Lorsqu'on choisit un circuit intgr, il comporte plusieurs portes du mme type (ex. en TTL :le 7402 possde 4 portes deux entres). Parfois, il n'est plus possible de raliser la synthse en trois couches, on travaillera alors sur des groupes de termes gaux au nombre d'entre des portes choisies.
1 1 1 >1
>1
>1
VII - Optimisations
34
&
a c
1 &
&
b a b c
& &
z b c
&
mettre en commun des ET-Non en utilisant a.b = a. a.b ex : z = a.b + a.b.c = a.b . b + a . a.b . c
(thorme 8-4a)
&
w
a
w=a.b + a.c
& 1 &
= a . (b + c) =a. b.c
b c
&
&
>1
a c
1 >1
>1
b a b c
>1 >1
z b c
>1
mettre en commun des ET-Non en utilisant a+b = a+ a+b ex : z = (a+b).(a+b+c) = (a+b + b).(a + a+b + c) (thorme 8-4b)
>1
w
a
w = (a + b ).(a + c)
>1 1 >1
= a + (b . c) =a+ b+c
b c
>1
>1
VIII - Exercices
1) Elaborez les schmas ET-Non puis OU-Non en 3 couches maxi. et optimum en nb. de portes : solution : ET-Non OU-Non 1: y= a.(b+c) 3 3 2 4 2: y= a.b + /c 3: y= /a.b + a.c 4 4 4: y= /a.b +a./b 4 5 5: y= ((/a+b).(a+c) + b.c).(a+b+c) 4 4 6: y= /a.b./c + a./b.c 5 7 7: y= !a&(c# b&d) 4 3 8: y= (!a#!b)&(c#d) 4 5 9: y= /a.b + a./b.c 4 6 10:y= a.(/b+/c) + /b.c 4 5 11:y= /A.E0 + A.E1 (multiplexeur) 4 4 12:y= a./b + a.c + b./c 4 4 13:y= /a.b + a./b + a.c 5 5 14:y= a./c + b./c 4 2 15:y= (/a+b).(a+/b) 5 4 2) Ralisez avec des ET-Non 2 entres seulement: 1: y= a.b + b.c + c.d 2: y= a.b.c 3: y= a+b+c
12 11 10 9 8 14 Vcc 13 3 1 2 4
35
TD 5 - Mthode du SI-ALORS.
Nous avons appris jusqu' prsent simplifier, et raliser de manire matrielle les fonctions logiques. Malheureusement, dans les problmes concrets, les fonctions logiques ne sont pas souvent donnes directement par des quations logiques. Nous allons donc maintenant examiner comment passer d'un cahier des charges des fonctions logiques. I - Prsentation du tableau SI-ALORS I-1) Table de vrit Nous avons dj eu l'occasion de parler des tables de vrit. Ici, nous allons nous contenter de remarquer qu'une table de vrit peut tre vue sous un autre angle. Par exemple crire : a 0 0 .... b 0 1 ... s 0 1 ... peut s'interprter : SI a=0 et b=0 ALORS s=0 SI a=0 et b=1 ALORS s=1.....
Nous concluons : une table de vrit est quivalente une quation boolenne, une table de vrit est quivalente une liste de conditions SI ... ALORS ... Nous nous demandons : Si nous appelons une table de vrit un tableau dans lequel ne figurent que des uns et zros, est-il possible d'inventer un tableau dans lequel figurent des uns, des zros et des variables ? I-2) Tableau SI-ALORS Un tableau SI-ALORS sera un tableau compos de deux parties : une partie condition (SI) et une partie conclusion (ALORS). La partie conditions pourra tre compose par des quations boolennes quelconques ayant comme variables les entres (et les entres seulement), mais pour simplifier nous prendrons par la suite cette partie comme celle d'une table de vrit c'est dire ne comportant que des uns et zros. La partie conclusion sera compose d'quations boolennes simples (du genre s=1) ou sorties en fonction des entres. D'autre part lorsqu'aucune spcification n'est faite pour certaines entres, il sera suppos que la sortie est alors nulle, sauf dans le cas o la sortie est spcifie zro. Exemple : SI ALORS Soit un circuit comprenant comme entre e1 et e2 et comme sortie s. e1 e2 s Une quation SI pourrait tre e1=e2, une quation ALORS pourrait tre s=1. 1 1 1 (On suppose naturellement que si la condition n'est pas vrifie la sortie sera s=0) D'un tableau SI-ALORS, il est toujours possible de trouver une quation boolenne. Donner ici une mthode systmatique pour passer d'un tableau SI-ALORS une quation boolenne serait trop long et fastidieux. Nous allons plutt donner les exemples les plus courants que l'on rencontrera par la suite. II - Exemples Les entres seront notes e1, e2, ... ei et la sortie s. Les exemples gnraliseront la table de vrit par ordre de difficult croissante. SI ALORS (les =1 ne sont pas crits par simplification) Equation logique (E.L.) e1 e2 s SI e1.e2 alors s donne s=e1.e2 1 1 1 (Si la condition n'est pas vrifie s=0)
36
Dans cet exemple on a tout simplement une table de vrit. Abordons les problmes plus difficiles: SI ALORS e3 e2 e1 s La difficult est qu'ici il faut simplifier algbriquement. 0 1 1 e4+/e5 E.L. : s=(e4+/e5)(e1.e2./e3)+(/e4+e5)(e1.e2.e3)+ /e5(e1./e2.e3) 1 1 1 /e4+e5 Doit ventuellement se simplifier. 1 0 1 /e5 La grande nouveaut est l'apparition d'quations logiques dans la partie ALORS. Remarques IMPORTANTES : un tableau SI-ALORS est parfois utilis pour dcrire des circuits un peu compliqus. Il est quand mme SI appel table de vrit (truth table) par les fabricants e3 e2 e1 de composants. Tout circuit un peu compliqu (plus 1 0 0 de 5 entres) ne peut qu'tre dcrit par ce genre de 0 1 1 tableau. Nous utiliserons par la suite la convention montre ci-contre pour tous les tableaux SI-ALORS : les conditions SI porteront toujours sur des entres "spciales" dessines de bas en haut. Elles sont parfois appeles entres de programmation. III - Tables SI-ALORS et le langage ABEL Il est possible de spcifier des tables SI-ALORS avec Abel mais on ne peut pas le faire l'intrieur d'une table de vrit. Il faut spcifier cela l'aide des quations. Par exemple : Vous pouvez constater ci-contre la MODULE EXO6 title 'exercice 6 : MUX 2 vers 1' facilit avec laquelle on spcifie e1,e2,A pin;"entrees une table SI-ALORS l'aide de la out pin istype 'com'; "sorties structure when ...then...else. Notez que le test de l'galit se fait X=.X.; equations comme en langage C par when !A then out=e1; l'oprateur ==. else out=e2;
test_vectors ( [A, e1, e2] ->out) [0, 0, 0] -> X; " ajoutez vos vecteurs ici [1, 1, 1] -> X; end
MODULE EXO7 title 'exercice 7 : MUX 4 vers 1 par la methode du SI ALORS' e0,e1,e2,e3,A,B pin;"entrees out pin istype 'com'; "sorties selecteur = [B, A]; equations when selecteur==0 then out=e0; when selecteur==1 then out=e1; when selecteur==2 then out=e2; when selecteur==3 then out=e3; end
37
Le langage Abel permet de spcifier des quations grce des oprateurs relationnels permettant ainsi en une seule ligne de spcifier beaucoup de donnes. Nous vous donnons cicontre des spcifications que l'on vous demande de comprendre. Ce n'est pas proprement parler la mthode du SI-ALORS prsente plus haut mais ce genre de spcifications est trs utile.
module M6809A title '6809 memory decode Jean Designer Data I/O Corp Redmond WA' A15,A14,A13,A12,A11,A10 pin 1,2,3,4,5,6; ROM1,IO,ROM2,DRAM pin 14,15,16,17; H,L,X = 1,0,.X.; Address = [A15,A14,A13,A12, A11,A10,X,X, X,X,X,X, X,X,X,X]; equations !DRAM = (Address <= ^hDFFF); !IO = (Address >= ^hE000) & (Address <= ^hE7FF); !ROM2 = (Address >= ^hF000) & (Address <= ^hF7FF); !ROM1 = (Address >= ^hF800); test_vectors (Address -> [ROM1,ROM2,IO,DRAM]) ^h0000 -> [ H, H, H, L ]; ^h4000 -> [ H, H, H, L ]; ^h8000 -> [ H, H, H, L ]; ^hC000 -> [ H, H, H, L ]; ^hE000 -> [ H, H, L, H ]; ^hE800 -> [ H, H, H, H ]; ^hF000 -> [ H, L, H, H ]; ^hF800 -> [ L, H, H, H ]; end M6809A
IV - Exercices. Nous allons montrer d'abord avec les trois premiers exercices (un seul sera trait), que pour certains problmes pratiques l'utilisation de la mthode SI-ALORS se rduit l'utilisation d'une table de vrit. 1) Une socit est compose de 4 actionnaires ayant les nombres suivants d'actions : A=60 , B=100, C=160, D=180. Nous dsirons construire une machine voter automatiquement, tenant compte dans le rsultat du poids en actions de chaque personne. La machine dispose de quatre boutons poussoirs (A, B, C, D). Le rsultat sera un voyant (V) qui s'allumera si la majorit pondre appuie sur les boutons. Aprs une tude de V = f (A,B,C,D) , construire une machine avec des ET-Non. 2) Une automobile dispose de 4 commandes de feux : v veilleuses, c croisement, r route, a antibrouillards, qui prennent l'tat 1 si on les actionne. Les phares concerns (V,C,R,A) sont l'tat 1 (allums) selon la logique suivante : - les feux V, C, R, A ne peuvent tre allums ensembles, - les feux de croisement sont prioritaires sur ceux de route et d'antibrouillard, - les antibrouillards sont prioritaires sur ceux de route, - les veilleuses peuvent tre allumes seules, mais l'allumage des autres entrane celui des veilleuses. Donnez les tables de vrit et DK de V,C,R,A et les schmas ET-Non, puis OU-Non, puis ET-Non 2 entres seulement. 3) Dans une usine de briques, la qualit de celles-ci se fait selon quatre critres : Poids P, longueur L, largeur l, hauteur H, (0 : pas correct ,1: correct) Les briques sont classes en quatre catgories: *** A : le poids et 2 dimensions au moins sont corrects. ** B : seul le poids est mauvais OU le poids est correct mais au moins deux dimensions sont fausses. * C : le poids est incorrect et une dimension seulement est incorrecte. D: refus: les autres cas. Faites l'tude des DK et des schmas ET-Non. Le quatrime exercice et les suivants montrent, par contre, que dans certains cas la mthode du SIALORS est beaucoup plus efficace.
38
4) Un multiplexeur (composant sur lequel nous E0 reviendrons plus tard) ralise une fonction E1 complexe pouvant tre schmatise ci-dessous : E2 E3 C1 C2
a) Combien de lignes comporterait une table de vrit dcrivant ce composant ? b) Montrer qu'un tableau SI-ALORS de 4 lignes peut dcrire ce composant. c) En dduire l'quation logique de ce multiplexeur. 5) Unit logique : il s'agit d'introduire la notion de fonction programmable. Etablir la nature des huit fonctions F(A,B) programmables selon a, b, c. X S UL Y Y S Y =1 abc a b c a b c X X =1 & =1 S
Montrer qu'une prsentation en SI-ALORS convient bien ce genre de problme. Ecrire le programme ABEL correspondant. 6) Le circuit intgr TTL 7487 est un gnrateur de fonctions. Quelle est la nature des fonctions programmables ? A1 A2 A3 Y1 Ai Yi
87
Y2 Y3
Ai & =1 Yi
A4 B C Y4 B C
4X
1 B C
4X
39
BA 00 01 11 10 DC 00 01 11 10 S1
2) Donner la forme simplifie disjonctive. Rponse : S1 = Exercice 2. On donne le schma en OU-NON suivant :
4) Donner la forme conjonctive simplifie Rponse : S1 = 5) Ecrire la fonction S1 sous forme numrique par les 1 avec A poids faible et D poids fort Rponse : S1 =
a b c
3) Ecrire la fonction Y sous forme disjonctive canonique en fonction de a,b,c Rponse : Y = 4) Ecrire la fonction Y sous forme disjonctive simplifie. Rponse : Y = 5) Raliser un schma en NANDS (3 couches maxi) correspondant la fonction Y Rponse : schma raliser ci-dessous
ba 00 01 11 10 c 0 1 Y
Exercice 3. Soit la fonction boolenne de 5 variables : Z = a.b.c + a.d+ b.c.d.e + a. d. e 1) Simplifier de manire algbrique cette fonction boolenne. Rponse : 2) Passer ensuite la fonction Z sous forme conjonctive l'aide de la distributivit de l'addition par rapport la multiplication. Rponse : NOM :
_ _ _ _ _ _
40
Prnom : Groupe : FEUILLE DE REPONSE N2 Exercice 4 (cours). On rappelle que le passage de la base 10 avec une prcision fractionnaire de 10-x vers la base 2 avec une prcision fractionnaire de 2-n au moins aussi bonne se fait avec n >3,32.x 1) Quelle est la prcision fractionnaire de 37,8 Dtail de calcul de 37,8 en base 2 : Rponse : 2) calculer ce nombre en base 2. Rponse : 3) Reprsenter -1 en complment deux sur 4 bits. Rponse :
Exercice 5. (Mthode du SI-ALORS) On veut raliser une unit logique programmable dont le schma fonctionnel est donn ci-contre. Son fonctionnement est dcrit par la table SI-ALORS dtaille ci-dessous SI a 0 0 1 1 b 0 1 0 1 ALORS S= e1.e2 /(e1.e2) e1+e2 /(e1+e2)
e1 e2 a b
ba 00 01 11 10 e2e1 00 01 11 10 S e1 Y =1 e2 b S
2) remplir le tableau de Karnaugh ci-contre correspondant S=f(a,b,e1,e2). 3) En dduire une quation simplifie sous forme disjonctive. Rponse :
4) Combien de portes ET-NON faut-il pour un schma trois couches ? Rponse : 5) On prfre raliser le circuit l'aide d'un OU-EXCLUSIF et de portes ET-NON comme indiqu ci-contre. En vous aidant de la table SI-ALORS d'un OU-EXCLUSIF utilise en TP et TD, crire l'quation simplifie Y=f(a,e1,e2) et complter le schma ci-contre l'aide d'un schma en ETNON. Rponse : Y =
41
=1 =1 =1 =1 =1 =1
G0 G1 G2 G3
B0 B1
B2 B3
II - Circuits existants. On trouve dans le commerce quelques types de circuits dont l'emploi en grand nombre justifie une fabrication en srie. Nous allons en prsenter quelques uns. On trouvera tous les autres dans les catalogues de feuilles de donnes des fabricants. Exemples : Dcodeurs : Binaire/dcimal -->74154 BCD/Dcimal -->7442 Exces 3/Dcimal -->7443 Exces 3 Gray/Dcimal -->7444 Transcodeurs : BCD/Binaire -->74184 Binaire/BCD -->74185 BCD/7 segments -->7447 Codeurs : Dcimal/Binaire -->74148
Exemple : dcodeurs d'affichage 7447. L'afficheur lumineux 7 segments (TIL 302) est un circuit intgr form de 7 diodes luminescentes en forme de btonnets permettant de reprsenter tout chiffre de 0 9.
42
a f g e d c b
Ka 1 Kf 2 + 3 4 5 Kp 6 Ke 7 e p f
a b g c d
14 13 12 11 10 9
+ Kb
Entres
Kg Kc +
8 Kd
1 2 3 6 7 8 9 10 11 13 14
L'allumage d'un segment se fait donc par une mise zro de la cathode (K) qui joue le rle d'entre, l'anode (+) tant + 5V.
TIL 302
A B C D
If
+Vcc Uf
7447
a b c d e f g
+Vcc
43
C1 C0
S=E0C1C0+E1C1C0+E2C1C0+E3C1C0 La position de l'interrupteur est fixe par une commande n (2 entiers => n lments binaires de commande) On a une entre validation V : V=1 multiplexage, V=0 S=0
Un dmultiplexeur est un circuit qui distribue l'information d'entre vers l'une des sorties slectionne. S0 S1 E0 S2 S3 C1 C0 Do A D1 A B D2 A B D3 A B V
Do A B D1 A B D2 AB D3 A B V
Si l'entre est toujours gale 1, le dmultiplexeur fonctionne comme un dcodeur binaire. Schmas
D A A S B A B A B B S0=D si BA=00 S1=D si BA=01 S2=D si BA=10 S3=D si BA=11
& &
Utilisation : si l'on envoie distance les informations issues d'un grand nombre de sources diffrentes, on multiplexe ces informations pour les transmettre en srie sur une seule ligne. A l'autre extrmit, il faut dmultiplexer. adresse adresse R0 Rcepteur E0 R1 parallle E1 transmission srie . R2 Emission . . parallle . . dmultiplexeur En . multiplexeur Rn Avec la structure prcdente, on trouve commercialiss : - multiplexeur simple 8 (ou 16 entres) -> 74151 - (74150) - double multiplexeur 2x4 entres et 2 sorties ->74153
44
- quadruple multiplexeur 4x2 entres et 4 sorties -> 74157 Pour les dmultiplexeurs, on emploie des dcodeurs avec entre sur la validation. - dcodeur binaire/dcimal -> 74139 1 entre et 4 sorties, -> 74138 1 entre et 8 sorties II - Application particulires. * Transformation parallle/srie : R0 1 0 1 1 1 0 1 0 D0 D1 D2 D3 D4 D5 D6 D7 H t t t t t 1 2 3 4 5 6 7 1 2 3 t t 1 0 1 1 1 0 1 0
Mult. 8/1
A B
A B C H R0 Compteur binaire n
C 0
Mult. 8/1
Mult. 8/1
45
Plage du 1
en entre
Plage du 1
Niveau de sortie en sortie
5V
VS 5V
3V 2V VIHmin
VOHmin
0,8 V
VILmax
0,5 V temps
VOLmax
temps
Plage du 0 en entre.
46
Comme la sortie d'une porte alimente l'entre d'une autre porte, il faut que la plage de reconnaisance en entre soit plus large que la plage de variation du signal de sortie de faon disposer d'une marge de scurit.
VOH(1)
VIH(2) VIL(2)
VOL(1)
immunit pour le 1
immunit pour le 0
II-3) Courants de sortie et d'entre. Les sigles suivants dsignent les courants d'entre et de sortie. - IIH (High Level Input Current) : courant d'entre au niveau haut, - IIL (Low Level Input Current) : courant d'entre au niveau bas, - IOH (High Level Output Current) : courant de sortie au niveau haut, - IOL (Low Level Output Current) : courant de sortie au niveau bas.
VOH & IIL 1 IIL & & VOH IOH IIH & IIH 1
IOL
L'entrance (fan-in) vaut 1 pour une NAND. La sortance (fan-out) est le nombre maximal d'entres qu'une sortie peut alimenter : c'est le plus petit des rapports IOH/IIH ou IOL/IIL L'assemblage des circuits suit une rgle trs simple : il suffit que la sortance d'un circuit soit suprieur ou gale la somme des entrances des circuits qu'il commande.
E=4 E=2 E=1 E=1 & S=20 E=2 D PRE CLK CLR Entrances et sortances de circuits. Q S=20 S=20
E=4
II-4) Courant de court-circuit. Il est not IOS (Short Circuit Output Current) est fourni par une sortie, normalement l'tat 1, mais force l'tat 0 par un court-circuit la masse (peut tre destructif) . Pour une TTL ALS il vaut 140 mA (contre 400 micro normalement).
47
III - Paramtres temporels. Deux paramtres caractrisent le retard d'un circuit : - tPHL (propagation delay time, high to low level), temps de propagation pour la transition descendante du signal de sortie, - tPLH (propagation delay time, low to high leval), temps de propagation pour la transition ascendante du signal de sortie.
E : entre S : sortie
tPLH
La porte 74LS00A (NAND) et l'inverseur 74ALS04B ont les valeurs extrmes : tPHLmax = 8 ns, tPHLmin = 2 ns, tPLHmax = 11 ns et tPLHmin = 3 ns. IV - Exercices. 1)Dans un montage (ALS), une porte P alimente un circuit C dont l'entrance est de 4 charges ALS. Pour obtenir un temps de calcul meilleurs, on conserve la porte P en technologie ALS et l'on remplace le circuit C par son quivalent en technologie AS. Ce circuit AS prsente des courants IIH et IIL de 20 microA et -1,5 mA respectivement. Vrifier le bon fonctionnement du montage. 2) Dans le schma ci-dessous, les variables d'entre passent de dcb=100 (F=1) dcb=110 (F=0). Combien de temps met cette fonction pour passer de 1 0. (Rponse min 7 ns, max 27 ns)
b 1 & c d 1 & F
Fonction 6 inverseurs 4 Nand 2E 3 Nand 3E 2 Nand 4E 1 Nand 8E 4 And 2E 4 Nor 2E 3 Nor 3E 4 0r 2E 6 tampons
Numro 74ALS04B 74ALS00A 74ALS10A 74ALS20A 74ALS30A 74ALS08 74ALS02 74ALS27 74ALS32 74ALS34
48
V ext VCC
Boitier Sortie
charge externe
Commande d'une charge externe La porte collecteur ouvert commande une charge alimente soit sous 5 V (diode lectroluminescente par exemple), soit sous une tension externe leve, avec un courant important (relais fonctionnant sous 30 V ). I-2) mise en parallle des sorties. L'intrt essentiel de tels circuits rside en fait dans la possibilit de relier entre elles les sorties de plusieurs portes collecteur ouvert. Le point commun donne la fonction ET.
VCC R Sortie x Sortie y pc x s s b b y s b s b pc s s s b x y pc 0 0 0 1
0 0 0 1 1 0 1 1 logique
symbole
pc=x & y
>1
>1
&
>1 >1
49
Les portes standards ne permettent pas la mise en parallle de leurs sorties. La solution collecteur ouvert a l'inconvnient d'avoir des temps de commutation trop levs. Une autre solution consiste utiliser des portes sortie trois tats : deux de basse impdance (0 et 1) et un de haute impdance. Dans ce troisime tat, tout se passe comme si les sorties taient dconnectes. Il existe de nombreuses applications de ce type de portes, surtout lorsqu'un BUS runi en parallle plusieurs portes. Nous aurons l'occasion d'en voir des exemples concrets dans les TD sur le microprocesseur. Par exemple, le circuit 74 ALS 1244A comporte huit tampons trois tats, rpartis en deux groupes identiques placs sous la dpendance d'une entre de validation /G. 2A1 2A2 2A3 2A4 2G 1A1 1A2 1A3 1A4 1G 74 ALS 1244 2Y1 2Y2 2Y3 2Y4
A G G 1 0 0
Tampon octal 3 tats Les paramtres lectriques et temporels sont identiques sauf : - IOb, IOh : courants de sortie aux niveaux bas et haut : 16 mA absorbs et 15 mA fournis, contre 8 mA absorbs et 0,4 mA fournis. - VOH : tension de sortie au niveau haut. Cette valeur dpend de l'importance du courant fourni IOH ; pour une faible valeur (0,4 mA) on retrouve le VOH d'une porte standard. - ICC courant consomm plus important que celui d'une porte standard (20 mA au lieu de 3 mA) - tPLH, tPHL : temps de propagation lgrement plus levs que pour une porte standard( 14 ns au lieu de 11 ns). - tPZH, tPZL, tPHZ, tPLZ : ces nouveaux paramtres caractrisent le temps de passage de l'tat bloqu vers les tats de basse impdance (O ou 1) et inversement. Rgles d'utilisation : - Le point commun d'un groupement de portes trois tats ne doit pas servir commander un autre circuit quand toutes les sorties sont dans l'tat haute impdance. - A un instant donn, une seule sortie se trouve en basse impdance dans un groupement de portes trois tats. Le court-circuit entre les trois tats s'appelle conflit de bus. III - Portes entres trigger de schmitt. Si le signal d'entre d'une porte standard a des temps de monte et de descente trop long, la sortie oscille. Les portes entres trigger de schmitt vitent ce dfaut
Par rapport une porte standard, quatre nouveaux paramtres caractrisent les entres : - VT+ et VT- : seuils de basculement haut et bas, qui remplacent VIH et VIL, - IT+ et IT- : courants d'entre aux seuils haut et bas.
50
TD 6 - La fonction mmoire.
Nous allons maintenant nous intresser des fonctions plus complexes que les fonctions combinatoires : les fonctions squentielles. Ces dernires sont caractrises par le fait qu'une mme combinaison des entres peut donner des sorties diffrentes. En fait les sorties dpendent de l'tat prcdent. I - Mmoire RS. I-1) Principe de fonctionnement. Ce circuit mmorise une information lmentaire (0 ou 1). Il possde une entre S (Set) pour la mise 1, une entre R (Reset) pour la mise 0, et une sortie Q donnant l'tat de l'information mmorise.
Mise 1 Mise 0 S R Sortie Entres R S 0 0 0 1 1 0 1 1 Etat futur Q 1 0 X fonction ralise mmoire Mise 1 Mise 0 priorit
En l'absence de demande (R=S=0), la sortie maintint son tat antrieur. Avec les deux commandes contradictoires (R=S=1), la sortie de la bascule dpend de la faon dont elle est ralise : - si elle vaut 1, on parle de mmoire S prioritaire, - si elle vaut 0, on parle de mmoire R prioritaire, - si elle vaut l'tat prcdent, on parle de mmoire mmoire prioritaire. I-2) Exemples de bistable RS.
R 1 Q S & Q
&
A noter que la deuxime sortie de ces montages est le complment /Q de l'autre sortie Q, sauf dans le cas R=S=1. On vitera donc de la noter /Q. I-3) Mthodes d'tudes. Ces circuits peuvent s'tudier, comme dans le cas du combinatoire, l'aide des tableaux de Karnaugh (ou de tables de vrits). Mais ceux-ci tant caractriss par un bouclage, une variable prsentant l'tat prcdent doit y figurer. Ils sont caractriss par une quation de rcurrence.
R 1 y 1 S Y R 0 0 0 1 1 S 0 0 1 0 1 y 0 1 0 0 0 Y 0 1 1 0 0 y RS 00 01 11 10 0 0 0 0 1 0 0 1 1 1 Y Tableau de Karnaugh Y=R.S+Ry Equation de rcurrence.
table de vrit
Une autre mthode consiste les caractriser par des fonctions de commutation : epsilon : enclenchement (mise 1) delta : dclenchement (mise zro) mu : mmoire (reste dans l'tat prcdent. II - La mmoire D. La mmoire D (D latch) possde une entre d'horloge CLK (clock), une entre de donne D (Data) et une sortie Q donnant l'tat de l'information mmorise.
51
Donne Horloge
D CLK
Sortie Q
Entres CLK D X 0 0 1 1 1
Etat futur Q q 0 1
III - La mmoire RST. Une entre T supplmentaire est ajoute la mmoire RS servant synchroniser les commandes R et S : si T=0 les entres R et S sont inhibes, si T=1 les commandes sont identiques la RS. IV - Exercices. Exercice 1. Pour une RS mmoire prioritaire, complter ce chronogramme. R t S t Y t Exercice 2. Les deux mmoires RS suivantes sont actives par des niveaux 0 : R S Q1 R Q 1 & & S R & S Dterminer la nature des priorits, dessiner les en schma crois. Exercice 3. Complter ce chronogramme pour une D latch.
T 1 t 0 D 1 t 0 Q 1 t 0
R T S
R T S
& &
R' Q S'
Q2 &
t 9 3 8
Exercice 4. Raliser une mmoire D avec une RST. Exercice 5. Raliser une mmoire D autour d'une RS ET-NON, en n'utilisant que 4 portes.
52
TD 7 - Les bascules.
I - Fonction bascule. Pour leur volution ces circuits sont pulss par des signaux d'horloge. Ils fonctionnent sur des fronts montants ou descendants. La fonction BASCULE est telle que la sortie l'instant n+1 est le complment de ce qu'elle tait l'instant n prcdent. Dans ces fonctions pulses, le temps est repr par l'indice n, car il est maintenant discret. Les diagrammes suivants prcisent la nature d'une bascule. H
Q 0 1 H
diagramme d'volution
Q
chronogrammes
schma fonctionnel
II - Comptage. La bascule est la fonction de base des compteurs, trois bascules correspondant trois variables d'tat pouvant prendre 8 valeurs selon les combinaisons binaires. Si nous employons des bascules front descendant, nous obtenons un compteur, et avec des fronts montants un dcompteur.
COMPTAGE Q1 H H Q1 Q2 Q3 Q Q2 Q Q3 n 0 1 Q 2 3 t 4 5 6 7 0 000 001 010 011 100 101 110 111 1 H H H Q1 Q2 Q3 Q DECOMPTAGE Q1 Q Q2 Q3 Q t n 0 1 2 3 4 5 6 7 0 000 001 010 011 100 101 110 111 Q3 Q2 Q1 1 H
Q3 Q2 Q1
III - Les diffrentes bascules. Toutes les fonctions ayant une horloge travaillant sur des fronts s'appellent "bascules". Elles ne possdent pas toutes ce mode de commutation, mais elles peuvent toutes tre cbles en bascule. Ces circuits possdent les fonctions de commutation des mmoires (enclenchement, dclenchement et mmoire). La bascule JK rassemble toutes ces fonctions en plus de la fonction bascule.
+ +
0 1
Il ya quatre modes de commutation, donc en plus de l'horloge, deux entres seulement suffisent pour programmer le mode de commutation dsir (ce sera la JK).Si il n'y a qu'une commande, seuls deux modes de commutation seront possibles (ce sera le cas de la D, et de la T). Si il n'y a aucune commande, seule le basculement est possible: voir ci-dessus. La JK permet de raliser les autres.
IV - Bascule JK. C'est la bascule la plus complte, elle utilise les quatre modes de commutation. Elle dispose de deux entres de prslection du mode de commutation. Il existe diffrentes technologies de JK que nous tudierons dans un prochain chapitre. Nous considrerons ici, seulement la bascule front positif ou ngatif.
53
J K + + 0 + + =J.K + J.K = J + =J.K + J.K = K + =J.K + J.K = K + =J.K + J.K = J JK Q(n) 0 1 00 0 1 01 0 0 11 1 0 10 1 1 J 0 K volution sur H Equation de rcurrence : Q(n+1)=J.Q(n) + K.Q(n) Q(n+1)=(K+Q(n)).(J+Q(n)) 1 + H Clk J 1 K J K Q Q 0 0 0 1 1 0 1 1
D'aprs la table de vrit, vrifier chaque reprsentation et interprtation. V - Bascule T. Cette bascule n'est pas commercialise sous forme de C.I., mais on la retrouve dans certaines macrocellules de circuits programmables. Elle peut tre ralise l'aide d'une JK. Elle utilise le mode mmoire et le mode bascule, donc une seule entre (T) permet la slection du mode de commutation. T T Q(n+1) 1 0 T 1 T 0 Q(n) 0 T Evolution sur H Ralisation d'une bascule T : T T Q T J Q 1 Q(n) Evolution sur H
H H Q Q K clk clk Ces bascules seront utilises dans certaines techniques de synthse. VI - Bascule D. Cette bascule est ralise en C.I., elle est trs utilise dans certaines technologies, o sa fabrication est plus facile que celle de la JK (ECL, certains rseaux programmables). Elle ne doit pas tre confondue avec la mmoire D niveau (chapitre prcdent). Elle utilise deux modes de commutation, l'enclenchement et le dclenchement. Une seule entre (D) suffit pour choisir ce mode.
54
0 1
Q(n+1)
0 1 D
Q
Q D
0
D
1
0 1 D H clk
Evolution sur H
D Evolution sur H
Remarque : A partir d'une rflexion gnrale sur les quatre modes de commutation, nous voyons qu'avec une JK, nous pouvons raliser les autres bascules (B, T, D), ce sera l'objectif d'un prochain exercice. Avec les trois autres et un environnement combinatoire, nous pouvons aussi raliser n'importe quelle autre bascule. VII - Exercices 1) Complter les chronogrammes suivants pour des bascules front montant :
H 1 0 J 1 0 K 1 0 Q 1 t t t
bascule
JK 0 D 1 0
bascule
D 0 T 1 0
Q 1 t
bascule
T 0
Q 1 t
2) Nous disposons d'une bascule JK, la transformer avec d'ventuelles portes logiques en bascules B,D, T. 3) Nous disposons d'une bascule D, la transformer en B, T, JK. 4) Nous dsirons raliser la bascule suivante : E - si E=0 Q=0, - si E=1 Q(n+1)=/Q(n) (/q : complment logique de q)
55
Proposer une ralisation autour d'une JK puis d'une D. 5)Vrifier que le montage suivant ralise une JK :
Q J H K 1 h & 1 B Q
56
TD 8 - Les registres.
Deux applications des bascules sont importantes : construction des registres et des compteurs. La proprit principale des registres est leur possibilit de stocker des donnes ; la proprit principale des compteurs est leur possibilit de compter, c'est dire de dcrire une squence de nombres. Nous allons nous intresser maintenant aux registres. Un des plus connu est le registre dcalage. Sa principale application est de stocker des donnes qui arrivent, ou qui doivent tre envoyes sous forme de squence de bits. Ce registre est une machine squentielle trs simple, constitu de bascules et de portes inverseuses. Pourtant, dans la plupart des machines squentielles une partie combinatoire consquente est ncessaire. I - Registres I-1)Dfinitions. Un registre est une association de mmoires unitaires, avec laquelle il est possible d'effectuer les 3 oprations fondamentales suivantes : enregistrer un instant donn une information constitue d'une suite quelconque de 0 et 1 (mot binaire) : c'est la fonction criture (WRITE) ou chargement (LOAD) conserver ce mot en mmoire aussi longtemps que ncessaire : fonction mmorisation (STORAGE) restituer le mot enregistr la demande : fonction lecture (READ). D'autres types de circuits permettent d'effectuer ces mmes oprations, mais sur plusieurs mots qui sont alors classs et identifis l'aide d'une adresse : ce sont les mmoires actives (ACTIVES MEMORIES) appeles aussi R.A.M (RANDOM ACCES MEMORIES). Il existe aussi des mmoires mortes R.O.M (READ ONLY MEMORIES) pour lesquelles la fonction criture a t ralise une fois pour toutes lors de la fabrication. I-2) Structures des registres. La structure d'un registre dpendra du mode, srie ou parallle, utilis : pour y crire l'information, pour la lire ensuite. On distinguera donc, des registres : criture et lecture en parallle, (registre tampon, BUFFER REGISTER) criture et lecture en srie, (registre dcalage, SHIFT REGISTER) criture en parallle et lecture en srie, (PARALLEL IN- SERIAL OUT) criture en srie et lecture en parallle. (SERIAL IN - PARALLEL OUT) I-3) Ecriture d'un mot dans un registre. Quelle que soit la structure du registre chaque bit du mot est toujours crit et gard en mmoire grce une fonction D. I-3-a) criture en parallle peut se faire de 2 manires : - soit sur l'entre D des bascules (entre synchrone),
57
1
D Cp S Q
0
D Cp S Q
1
D Cp S Q
Ordre d'criture
Mot crire
D Cp
S Q
D Cp
S Q
D Cp
S Q
RAZ
I-3-b) criture en srie Pour crire en srie un mot de 3 bits (par exemple), dans un registre de 3 bascules, il faut 3 ordres d'criture. Il faut donc : que la premire bascule recopie chaque ordre d'criture la valeur logique prsente sur l'entre srie du registre, que la seconde recopie chaque ordre d'criture l'tat dans lequel la premire, juste avant cet ordre, la troisime bascule recopie de la mme manire les tats successifs de la seconde.
Mot crire
1
D S Q Cp Q
Q1 D Cp S Q
Q2
D Cp
S Q
Q3
Es = Entrs srie
Impulsions de synchro
I-4) Lecture d'un mot contenu dans un registre. I-4-a) lecture en parallle
D Cp R S Q1 D Cp R S Q Q2 D Cp R S Q Q3
Ordre de lecture L1
& L2
& L3
&
58
1
R Q R
1
Q R
Ordres de lecture
I-4-c) lecture en srie rptitive. Dans les deux exemples prcdents, le mot contenu dans le registre se trouve, aprs lecture en srie, remplac par un autre (000 dans l'exemple choisi). Il est donc dtruit. Registre dcalage circulaire :
Entre srie Q1 D Cp S Q D Cp S Q Q2 D Cp S Q
Sortie srie
1
R Q
1
R Q R
0
Q
Q3
Ordres de lecture
II - Exercices. 1) Donner le schma complet d'un registre de 3 mmoires criture et lecture en parallle, ralis avec des mmoires D de type LATCH. Prcisez l'allure du signal de commande d'criture. Peut-on raliser un registre criture et lecture srie avec des mmoires D ? 2) Donner le schma d'un registre de 3 bascules criture et lecture en srie ralis avec des bascules JK. 3) Donner la liste des 5 modes de fonctionnement du registre de dcalage 74194. La seule entre asynchrone du 74194 qui est prioritaire sur toutes les autres entres est __________. Quel est l'effet d'une impulsion d'horloge quand le registre 74194 est dans l'tat d'attente passive ? Il faut _______ impulsion(s) d'horloge pour le chargement parallle de 4 bits dans le 74194. L'entre DSR est en fonctionnement pour S0 = _____ (0) (1) et S1 = _____(0) (1). Le 74194 est activation par _________ (front positif d'impulsion) (impulsion).
59
FUNCTIONAL DESCRIPTION The functional characteristic of the "194" 4-Bit Bidirectional Shift Register are indicated in the Logic Diagram and Thruth Table. The register is fully synchronous, with all operations taking place in less 20 nanoseconds (typical) for the 54/74 and 54LS/74LS, and 12 ns (typical) for 54S/74S, making the device especially useful for implementing very high speed CPUs, or for memory buffer register. The "194" design has special logic features which increase the range of application. The synchronous operation of the device is determined by two Mode Select inputs, S0 and S1. As shown in the mode Select Table, data can be entered and shifted from the left to right (shift right, Q0 ->Q1, etc.) or ; right to left (shift left ,Q3 -> Q2, etc.) or, parallel data can be entered loading all four bits of the register simultaneously. When both S0 and S1 are LOW, existing data is retained in a hold (do nothing) mode. The first and last stage provide D-type serial data inputs (DSR,DSL) to allow multistage shift right or shift left data transfers without interfering with parallel load operation. Mode Select and Data inputs on the 54S/74S194 and 54LS/74LS194A are edge triggered, responding only to the LOW-to-Hight transition of the clock (CP). MODE SELECT - FUNCTION TABLE OPERATING INPUTS MODE CP MR S1 S0 DSR DSL Dn Reset (clear) X L X X X X X Hold (do nothing) X H l(b) l(b) X X X Shift Left H h l(b) X l X Shift Left H h l(b) X h X Shift Right H l(b) h l X X Shift Right H l(b) h h X X Parallel Load H h h X X dn
Q0 L q0 q1 q1 L H d0
OUTPUTS Q1 Q2 L L q1 q2 q2 q3 q2 q3 q0 q1 q0 q1 d1 d2
Q3 L q3 L H q2 q2 d3
SIGNETICS
H = HIGH voltage level h = HIGH voltage level one setup time prior to the LOW-to-HIGH clock transition L = LOW voltage level l = LOW voltage level one setup time prior to the LOW-to-HIGH clock transition dn (qn) = Lower case letters indicate the state of the referenced inputs (or outputs) one setup time prior to the LOW-to-HIGH clock transition X = Don't care = LOW-to-HIGH clock transition NOTES b. the HIGH-to-LOW transition of the SO and S1 inputs on the 54/74194 should only take place while CP is HIGH for conventional operation.
Therefore, the only timing restriction is that the mode Control and selected Data Inputs must be stable one setup time prior to the positive transition of the clock pulse. The four parallel inputs (D0 - D3) are D-type inputs. data appearing on D0-D3 inputs when S0 and S1 are HIGH is transfered to the Q0 - Q3 outputs respectively following the next LOW-to-HIGH transition of the clock. When LOW, the asynchronous Master reset (/MR) overrides all the other input conditions and forces the Q outputs LOW.
60
D0 (3)
D1 (4)
D2 (5)
D3 (6)
& >1 1
&
&
& >1
&
&
&
& >1
&
&
&
& >1
&
&
DSL (7)
S Q0 CP R R 0
S Q1 CP R R 1
S Q2 CP R R 2
S Q3 CP R R 3
CP (11) MR (1) 1
4) Donner le schma d'un registre de 3 bits, programmable, criture et lecture en srie par dcalage droite ou gauche, circulaire ou non. Prvoir 2 entres de programmation P1et P2, et donner le code de programmation choisi. Utiliser des bascules D synchrones front montant. Indications : on a encore ici une bonne illustration de l'utilisation de la mthode du SI-ALORS.
61
I-1) Analyse d'un compteur synchrone de type registre en anneau. On a 4 variables (A,B,C,D) donc 16 tats. Mais combien de cycles ? D
A Q Q D Q Q
B D Q Q
C D Q Q
n 2
DCBA 0010
Da 1
H A B C D
On a donc rempli deux tableaux diffrents : un pour chaque cycle. En gnral le nombre de cycles peut tre quelconque et on mettra pour cela tous les cycles dans un mme tableau tout simplement en prenant soin de les sparer par des traits horizontaux. C'est ce que l'on fera dans l'exercice suivant. I-2) Analyse d'un systme ayant plusieurs cycles. Remplir le tableau et le diagramme d'volution ci-dessous.
62
C D Q Q D Q Q
I-3) Gnrateur de chiffres pseudo-alatoires. Nous faisons Da = C $ D (Notation ABEL du ou exclusif). A H n DCBA 0 0000 1 0001 Da 0 0 H =1 D Q Q D Q Q D Q Q D Q Q B C D Da=C$D Db=A Dc=B Dd=C
I-4) Mthode d'analyse d'un systme quelconque. Pour chaque tat (actuel) nous recherchons quel sera l'tat futur ?
63
A >1 Da Qa Db Qb
Da = Db =
Si tat actuel 0 1 2 3
Db
I-5) Montage avec JK. Cette mme mthode peut s'appliquer aux montages JK. A B Ja Qa Jb Qb 3 Ka Qa Kb Qb 2 1
SI n 0 B A Jb Kb
Alors Ja Ka a B A n b
H t A
1 2 3 B
II - Synthse des compteurs synchrones. Il s'agit de rechercher les lois de commande des entres afin de prslectionner la fonction de commutation dsire. Il s'agit donc d'une recherche de type combinatoire. la synthse JK pourrait paratre plus complique qu'avec des D. Mais ces bascules offrant plus de possibilits amnent des schmas plus simples. Exemple de structure pour deux variables d'tat :
64
A Ka Ja
B Kb Jb C A Da
B Db C A B
K H
Q H
D : recherche de 2 fonctions.
Synthse d'un compteur modulo 4. Note : le terme modulo provient de l'arithmtique entire, o le modulo est le reste de l'opration de division (ex: 18 modulo 4 = 2). Il en est de mme pour un compteur : 18 impulsions compter en partant de 0 l'entre d'un compteur par 4, il arrivera l'tat 2. On a besoin de 4 tats pour raliser cela donc de 2 bascules. Commenons par la synthse en JK : H 0 1 0 A 3 1
A B 0 0 1
A B 0 0 1
A B 0 0 1
A B 0 0 1
1 J Q J Q
65
H 0 0 A 3 1 1
A B 0 0 1
A B 0 0 1
1 D Q D
Vous devez constater une complication du schma par rapport aux JK. III - Exercices. 1) Ralisez la synthse d'un diviseur de frquence par trois JK et D. Un diviseur de frquence n'est pas un compteur, il sert en lectronique pour l'laboration de frquence. Vous pouvez choisir les cycles que vous voulez. Il n'y a pas de considration concernant l'tat initial. Par contre toutes les phases devront tre connexes. 2) Ralisez un gnrateur de signaux carrs dphass de 90 (en quadrature) 3) Raliser un gnrateur de signaux triphass (120). Le rapport cyclique sera de 1/2. Montrer qu'il faut ncessairement 6 tats pour le raliser. 4) Nous allons tudier une machine possdant une entre autre que H. Nous appellerons cette entre C. Si C= 0 on a le cycle : 0 3 C A
1 2 Si C=1 on a le cycle : Les changements de cycle selon C se feront en synchronisme avec l'horloge. Dans cet exercice, il est important de travailler avec le diagramme des phases et non pas avec les chronogrammes qui sont trop complexes. IV - Limitation en frquence des compteurs synchrones.
Ce montage ralise un compteur binaire modulo 16. Il est limit en frquence par les temps de propagation (tp) des portes et des bascules.
A 1 1 H J Q J K Q Q
& J
C & Q J Q
K Q
K Q
K Q
66
Pour un temps tp moyen de 20 ns par porte et par bascule, quelle serait la frquence maximum applicable en entre pour un fonctionnement correct. Mme question pour le schma ci-dessous : A 1 B & C & J Q J Q J Q J Q D
1 H
Gnralisation et conclusion : .... ? V - Initialisation d'un compteur. Pour initialiser (premire phase) ou pour viter des cycles parasites, il faut parfois imposer les conditions de dpart par un forage asynchrone en utilisant les R et S des bascules : ici : dpart A=0, B=1. Proposez un schma RC pour avoir une initialisation la mise sous tension sur les /R et /S. Init R A B
S VI - Forage asynchrone des compteurs synchrones ( rtroaction). Ce type de montage se rencontre parfois dans la pratique, pour des cas simples. Il est cependant dconseill de l'employer. Exemple : transformer un compteur modulo 16 en diviseur de frquence par 12 (comptage de 0 11). SI (n=12) ALORS n := 0 A B C D F C H Compteur modulo 16 R Pourquoi cette simplification ? n = 12 si /A./B.C.D = 1 R = F(A,B,C,D) R=C.D
67
H A B C D R
10 11
Exemple d'application complexe : le diviseur programmable. Le nombre N est cod en binaire, il peut varier. F Diviseur programmable n N VII - Compteurs et le langage ABEL. Il y a trois manires de spcifier un fonctionnement squentiel de type compteur : quations de rcurrences (equations) diagramme de transition (state_diagram) tables de vrits (truth_table) Nous donnons ci-dessous un exemple pour lequel il y a une partie squentielle et une partie combinatoire. MODULE EXO8 title 'exercice 8 compteur binaire 4 etats' ck pin; "entree horloge PARTIE COMMUNE q1,q0 pin istype 'reg'; "sorties sequentielles out pin istype 'com'; "sortie combinatoire AUX TROIS PROGRAMMES X=.X.; Xs=[X,X,X]; etat = [q1, q0]; outs=[q1,q0,out]; front =.c.; equations equations equations etat.clk = ck; "declare qui etat.clk = ck; etat.clk = ck; "est horloge out = q1 $ q0; "combinatoire truth_table (etat.fb:>etat->out) etat := etat + 1; "equation state_diagram etat 0 :> 1 -> 0; "specification "sequentielle state [0,0] : goto [0,1]; 1 :> 2 -> 1; "decimale out = q1 $ q0; "equation state [0,1] : goto [1,0]; 2 :> 3 -> 1; "combinatoire state [1,0] : goto [1,1]; 3 :> 0 -> 0; state [1,1] : goto [0,0]; test_vectors (ck -> outs) front -> Xs; PARTIE COMMUNE front -> Xs; front -> Xs; AUX TROIS PROGRAMMES front -> Xs; front -> Xs; end N cod en binaire F/N F Dcompteur synchrone prpositionnable F/N
68
Remarques : Notez que lors de la spcification par table de vrit, la partie combinatoire se spcifie sur l'tat prsent (not .fb). La spcification par diagramme d'tat pourrait elle aussi se faire en dcimal. Les quations de rcurrence pourraient tre dtailles sous la forme : q1 := ..... et q0 := ... qui seraient des quations logiques. Le + utilis ici n'est pas un OU logique mais bel et bien une addition binaire. Il est bien vident que la spcification par diagramme d'tat est la plus simple : "s'ecrit tout simplement : etat = [q1, q0]; "q0 poids faible car a droite ..... equations etat.clk = ck; state_diagram etat state 0 : goto 2; state 2 : goto 3; state 3 : goto 1; state 1 : goto 0;
0 1 3 2
Remarque : On ne peut pas se passer de la partie equations ! qui renseigne ABEL sur l'horloge.
69
TD 10 - Compteurs asynchrones.
Nous allons dans ce cours examiner rapidement le comptage asynchrone. Il est caractris par le fait que toutes les bascules utilises n'ont pas une horloge commune. Nous allons d'abord nous intresser l'analyse de ces compteurs sur des circuits existants, puis nous proposerons titre d'exercice un problme de synthse. Ce problme ne sera rsolu en TD que si le temps le permet. I - Analyse de circuits existants. I -1) Prsentation gnrale : le compteur binaire.
1 J CLK K
Q 1
1 J CLK K
Q
Q0
Q
Q1
Q
J CLK K
Q
Q
Q2
On a souvent besoin de compteurs modulo N c'est dire comptant entre 0 et N-1. Pour raliser un tel compteur il existe deux solutions : - un bouclage asynchrone, - un conditionnement des entres des bascules. I-2) Le compteur 7493. Ce circuit est compos de 4 bascules JK. Il possde 4 commandes : 2 horloges et 2 commandes de remise 0. Si l'on n'utilise que l'entre A d'horloge on aura un compteur modulo2. En utilisant l'entre d'horloge B et les sorties QB, QC, QD on a un compteur modulo 8.
1 Horloge A 1 R0(1) RO(2) & Horloge B QA QB J Q 1 1 J Q CLK K B 1 1 J CLK K C Q 1 1 J Q CLK K D
CLK A K
QC
QD
I-3) Le compteur 7490. Ce circuit est compos d'un diviseur par 2 et d'un diviseur par 5. Par mise en cascade, il permet une division par 10. Le cycle 10 positions est diffrent suivant l'ordre de la mise en cascade. Le cycle ayant un rapport cyclique de 1/2 est appel Bi-quinaire, et l'autre comptage BCD. Il comprend d'autre part une entre de mise 0 et une entre de mise 9.
R9(1) R9(2) Horloge A Horloge B R0(1) RO(2) & QA QB QC QD & J Q CLK Q K J Q CLK Q K 1 J Q CLK Q K 1
& S Q CLK Q R
70
II - Exercice. A l'aide de la structure interne du 7490 ci-dessus, on vous demande de remplir les deux tableaux des squences. Trouver lequel correspond au comptage BCD et lequel au Bi-quinaire ? Etat 0 1 2 3 4 5 6 7 8 9 III - Synthse. Raliser la synthse asynchrone du compteur ci-dessous. H Q0 Q1 Q2 Q3 Sorties QD QC QB QA Etat 0 1 2 3 4 5 6 7 8 9 Sorties QD QC QB QA
Remplir les tableaux de Karnaugh et en dduire le schma. Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10 JO J1 J2 Q1Q0 Q1Q0 Q1Q0 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10 KO K1 K2 J Q CLK K Q J Q CLK Q K J Q CLK K Q Q3Q2 00 01 11 10 00 01 11 10 J3 Q1Q0 Q3Q2 00 01 11 10 00 01 11 10 K3 J Q CLK K Q
71
NOM : Prnom :
QC
Diagramme de transition de la JK
J K Q(n+1) j
000
Table de vrit
QbQa 00 01 11 10 Qc 0 1 Jc QbQa Qc 00 01 11 10 0 1 Kc
QbQa 00 01 11 10 Qc 0 1 Jb QbQa Qc 00 01 11 10 0 1 Kb
QbQa 00 01 11 10 Qc 0 1 Ja QbQa Qc 00 01 11 10 0 1 Ka
72
NOM : Prnom :
En dduire les quations Jc = Kc = Jb = Kb = Ja = Ka = Complter le schma ci-contre y compris le signal d'horloge : la synthse sera faite avec les portes de votre choix.
Feuille rponse n2
J a Qa Clk
Jb Qb
Clk
Jc Qc
Clk
Ka Qa
Kb Qb
Kc Qc
Exercice 2. On souhaite effectuer la conversion d'un mot de donnes de 8 bits arrivant par le bus de donnes B1 sous forme parallle, en un mot de donnes 8 bits repartant sous forme srie sur B2. Pour cela on utilise le montage dcrit par la figure 1.
+VCC
7476
Q CLK K Q S J R Q CLK K Q S J R
Vcc &
Fs1
Q CLK K Q S J R
Fs2
H
DSa
7491 SRG8
CP
B2
Q
Vcc
Q & 1D
2
A 0 B C1 2 0 1 2 3 4 74151 5 6 7 EN
DSb
FIGURE 1
B1 8
D0 D1 D2 D3 D4 D5 D6 D7
MUX 8/1
Y Y
Fc 1
1) La transformation du mot parallle en srie est assure par le multiplexeur 8 vers 1 (CI3 - doc 1). La slection des donnes est assure par le compteur/dcompteur Fs1. a) A quoi servent les entres S et R des bascules JK de la figure 1 ? Appelle-t-on cela des entres synchrones ou asynchrones. Prcisez le front d'horloge actif en H. Rponse : b) Analyser le schma de la fonction fs1 (figure 1)et donner les quations des entres J et K de chaque bascule. Rponse : J0 = K0 = J1 = K1 = J2 = K2 =
73
NOM : Prnom :
Feuille rponse n3
c)Remplir la table de vrit ci-dessous dfinissant le cycle de fonctionnement de fs1 puis prcisez la fonction de comptage obtenue. Etat actuel Entres Etat futur Rponse type de comptage : Q2 Q1 Q0 K2 J2 K1 J1 K0 J0 Q2 Q1 Q0 type : modulo :
Y sortie MUX
Q0 Q1 Q7
sortie registre
FIGURE 2
2) On entre sur le bus de donnes B1 un mot binaire D7D6....D0 gal (10111010)2. a) Analyser le schma de la fonction Fc1 puis prciser le rle et le niveau d'activation de l'entre /G des entres C, B, A. Rponses : b) Si Q0=A, Q1=B et Q2=C, complter sur le chronogramme de la figure 2 la reprsentation de l'volution temporelle de la sortie Y. 3) La mmorisation du mot binaire apparaissant en Y ncessite le registre dfini par la fonction Fs2 sur le schma figure 1. a) Donner la table de vrit CP D Q(n+1) j : mode de la sortie Q en fonction de D et CP pour la bascule D 1 S Q & dfinie ci-contre en prcisant le front actif de l'horloge sur CP et les modes de Table de vrit CP fonctionnements obtenus. R Q 1 En dduire le graphe d'volution (graphe des tats ou graphe de transitions)
Diagramme d'volution
74
c) Si Cp = H, reprsenter sur la figure 2 l'volution temporelle des sorties Q0, Q1 et Q7 de ce registre. Prciser le nombre d'impulsions d'horloge H ncessaire pour obtenir sur B2, la sortie complte du mot binaire entr sur B1. Rponse :
Exercice 3. (mmoire) On utilisera la notation habituelle qui consiste utiliser les minuscules pour les variables avant changement d'tat et les majuscules pour les variables aprs changement. Complter tableau de Karnaugh Equation simplifie de Y sous forme disjonctive Rponse : RS 00 01 11 10
Une fonction mmoire est dcrite par son schma : R 1 & S >1 Y
0 1 Y
Faire un schma crois en Nands
75
partie oprative
partie commande
SAP : systme automatis de production. PC partie commande. Pendant la dmarche de conception, l'information sur l'automatisme est affine, des outils de reprsentation (grafcet, gemma,....) sont utiliss permettant la communication entre les diffrents intervenants impliqus dans le processus depuis la phase de conception jusqu' l'exploitation. II - Description par GRAFCET.
76
Le grafcet permet de reprsenter par affinements successifs le comportement de la partie commande d'un systme automatis de production selon les souhaits du concepteur. II-1) Exemple : description progressive d'un systme automatis de perage :
3 4
Vue globale
Le niveau global reprsente le point de vue de l'utilisateur, il dcrit les interactions du systme sur le produit : aprs avoir effectu la mise en place de la pice l'oprateur demande le perage(tat 1) au reu de cette information la partie commande donne l'ordre de serrage (tat 2) aprs contrle du bon serrage de la pice l'ordre de perage est alors donn (tat 3) le perage termin l'ordre de desserrage est donn (tat 4) l'automatisme revient en position initiale (tat 1)
1
demande oprateur
1
SERRAGE PIECE
pice serre ROTATION BROCHE PERCAGE 3 pice pere RECUL FORET retour effectu DESSERRAGE PIECE desserrage effectu
pice serre ALIMENTER MOTEUR BROCHE 3 AVANCER VERIN BROCHE pice pere
4 5
4 5
RECULER VERIN BROCHE retour effectu RENTRER VERIN SERRAGE PIECE desserrage effectu
Vue du concepteur
Vu au niveau de la commande
Le concepteur du procd dcrit les diffrentes actions effectues par la partie oprative. Le grafcet vu au niveau de la commande concerne l'automaticien .Il dcrit tous les ordres que l'quipement de commande doit mettre pour obtenir les effets dsirs. C'est ce grafcet que nous retenons pour concevoir le programme de l'automate, le cblage de la commande . II-2) Diffrents niveaux de spcification. Reprenons l'exemple prcdent.
77
Ce grafcet ne prsume pas des choix technologiques (capteurs, practionneurs,...) de la partie oprative ni de la partie commande.
1 2
demande oprateur SORTIR VERIN SERRAGE PIECE
pice serre ALIMENTER MOTEUR BROCHE 3 AVANCER VERIN BROCHE pice pere
4 5
RECULER VERIN BROCHE retour effectu RENTRER VERIN SERRAGE PIECE desserrage effectu
Vu au niveau de la commande
Si nous effectuons les choix techniques suivants: Capteurs : demande oprateur pice serre pice perce retour effectu desserrage effectu Actionneurs : mouvement de serrage mouvement de descente rotation fort
: bouton poussoir d : capteur fin de course a1 : capteur fin de course b1 : capteur fin de course bo : capteur fin de course ao
: vrin double effet command par un distributeur 5/2 bistable a + =serrage a- =desserrage : vrin simple effet command par un distributeur monostable b+ =descente broche : moteur lectrique command par contacteur r
78
1 d 2 a1 3 b1 4 bo 5 ao
III - Le GRAFCET ( rgles d'tablissement). III-1) Etapes. Une tape est reprsente par un carr. Elle peut avoir deux tats : tat actif (une marque l'intrieur du carr) tat inactif Rgle 1 : La situation initiale d'un grafcet caractrise le comportement de la partie commande vis vis de la partie oprative et correspond aux tapes actives au dbut du fonctionnement de la partie commande . ... convergence en OU
a+ r b+
a-
1 inactive
Remarques :
1 active
1 initiale
cas gnral
1
..... divergence en OU
la situation initiale peut n'tre obtenue qu'une seule fois la mise sous tension on peut utiliser plusieurs tapes initiales :
79
GRAF1
1
1 a 2 b 3 c 4 d
GRAF2 a
10 e 11
2 b 3 c 4
=1
III-2) Transitions. Une transition est reprsente par un trait horizontal. A chaque transition est associe une rceptivit. Une transition est valide lorsque toutes les tapes immdiatement prcdentes relies cette transition sont actives.
simple
jonction ET distribution ET
jonction ET distribution ET
paralllisme structural Rgle 2 : l'volution de la situation d'un grafcet correspondant au franchissement d'une transition ne peut se faire : que lorsque cette transition est valide et que la rceptivit associe cette transition est vraie . Lorsque ces deux conditions sont runies, la transition devient franchissable et elle est obligatoirement franchie. Rgle 3 : Le franchissement d'une transition provoque : la dsactivation de toutes les tapes immdiatement prcdentes relies cette transition . l'activation de toutes les tapes suivantes relies cette transition . exemples :
80
3 (a+b).c 4
a.(b+c)
10
11
Rgle 4 : plusieurs transitions simultanment franchissables sont simultanment franchies exemple : montrer que ces deux reprsentations sont quivalentes
4 h.X11 5
11 h.X4 12
11
h 12
Rgle 5 : si au cours du fonctionnement de l'automatisme une mme tape doit tre simultanment active et dsactive, elle reste active. exemple :
1 a .b
III-3) Graphe des tats. Le graphe des tats est une reprsentation "dveloppe" du GRAFCET : c'est le GRAFCET quivalent avec une restriction : il y a toujours un et un seul jeton dans ce GRAFCET. Pour le distinguer du GRAFCET on le reprsente l'aide d'tapes rondes (ce sont des tats). Exemple : on donne ci-dessous le graphe des tats du GRAFCET not GRAF1 du texte.
1 d 4 c 3
a 2 b
81
IV - EXERCICES. EXERCICE 1 : Etablir le graphe des tats des grafcet not GRAF2 et GRAF3 dans le texte. EXERCICE 2 : on considre le grafcet suivant, complter le chronogramme
a b c
a 2 b 3 c
X1 X2 X3
Quel est le nombre d'tats possibles ? Tracer un graphe des tats . EXERCICE 3 : On donne les deux grafcets ci-dessous :
1 a 2 b 3 d 4 f 11 g 10 e 4 b.c 3
1 a 2 b 10 c 11 e 12 f d
Tracer le graphe des tats. Quel est le nombre d'tats possibles dans les deux cas ? Que se passe-t-il si l'on remplace la transition /b.c par c ? Commenter. Que se passe-t-il si l'on remplace la convergence en ET par une convergence en OU ? EXERCICE 4 : respect de la syntaxe
82
1 a 2
1 a
3 b 4
1 a
3 b
1 a
b 4 2 5 4 2
b 2
D1 G1 A1 D2 G2 A2 B2 B1
Les deux chariots C1 et C2 sont supposs initialement en position de rfrence ( A1 pour C1, A2 pour C2). Chacun des deux chariots effectue un aller et retour ds rception de la consigne (m). Un nouveau dpart n'est possible que si les chariots sont revenus en position de rfrence.
A1 A2 B1 B2 m
D1 D2 G1 G2
m principe
3 Construire une autre variante en utilisant deux grafcets spars. 4 Reprsenter partir du grafcet de la question 2 le graphe des tats. 5 Montrer que la solution ci-dessous relve d'une erreur de conception.
83
10 X5 2 B1 3 A1 G1 D1
20 m.X10 5 B2 6 A2 G2 D2
EXERCICE 6 : Utilisation de temporisations. Exemple : X27 27 action B 4s/X27 28 X28 a) On veut faire la slection d'une impulsion longue (> 3s) : l'action sur un bouton poussoir (BP) doit tre maintenue pendant un temps minimum de trois secondes pour provoquer une action B. b) Mme exercice pour une impulsion courte (< 1s). EXERCICE 7 : squences simultanes. Plateau tournant 3 postes poste 1 : chargement vacuation poste 2 : perage poste 3 : taraudage. 4s/X27 action B 4s
cy/cy
auto
dcy
Faire le GRAFCET de cette machine trois postes : les trois oprations doivent se faire en mme temps afin de gagner du temps (le GRAFCET restera descriptif, on ne dtaillera pas les oprations de perage, taraudage et chargement-vacuation). Il est demand de prvoir deux fonctionnements possibles : automatique (marche continue sans appui sur dcy) cycle par cycle (il faut appuyer sur dcy pour dmarrer chaque cycle). Pour simplifier, on supposera : Lors de l'arrt on laissera le plateau dans l'tat : sans le vider. Lors d'un dpart on supposera le plateau comme laiss par un arrt, c'est dire prt recevoir les actions chargement/vacuation, perage et taraudage.
84
III - Mthode asynchrone On associe une mmoire RS chaque tape. La quatrime rgle de franchissement impose de prendre des mmoires S prioritaire. L'tat logique des sorties de la bascule reflte alors l'tat actif ou non de l'tape correspondante. Cette mthode consiste laborer les ACi l'aide de circuits combinatoires et les amener sur le SET des mmoires, laborer les Di l'aide de la sortie des mmoires, ceci pour viter les alas de fonctionnement, et les amener sur les RESET des mmoires.
85
Par exemple : R S QI R S QJ
I C K
C & R S QK
IV - Mthodes synchrones Il existe au moins deux mthodes synchrones, une simple qu'il est absolument ncessaire de connatre, et une plus complique que nous ne ferons que signaler. IV-1) Mthode d'activation-dsactivation synchrone Cette mthode est connatre parfaitement. Elle reprend pour l'essentiel la mthode asynchrone, savoir une bascule (et non plus une mmoire) par tape. Les bascules utilises seront videmment des bascules D. L'ide gnrale est d'laborer pour chaque tape : xi+ = ACi + /Di.xi Chaque xi sera amen sur l'entre D de la bascule correspondante. En fait si l'on veut fouiller un peu plus il faut prvoir une entre I destine au marquage initial et les relations implanter par de la circuiterie combinatoire sont : xi+ = ACi + /Di.xi + I pour les tapes initiales, xi+ = (ACi + /Di.xi )./I pour les tapes ordinaires. Exemple : (pour le GRAFCET de la page prcdente).
x1 D Q H D Q H D Q H D Q H x4 x2
a1 a2 a3 a4 1
x3
clk Remarques : Cette mthode de synthse est simple mais pas compltement adapte aux circuits programmables squentiels puisqu'elle ncessite beaucoup de bascules (1 par tape) et peu de
86
combinatoire. Les circuits programmables comportent en gnral au contraire beaucoup de portes combinatoires et peu de bascules. Ceci n'est plus forcment vrai pour les circuits modernes. On peut se demander quel est l'intrt d'ajouter l'entre d'initialisation I. En fait il faut bien comprendre que dans cette synthse nous laissons de ct un nombre important d'tats. Il faut bien prvoir un moyen de revenir un tat connu si par hasard on se retrouve dans un tat non prvu (par exemple 3 jetons dans le GRAFCET ci-dessus ! IV-2) Mthode optimise en nombre de bascules Il est clair que : un systme de n bascules comporte 2n tats, un GRAFCET de m tapes comporte 2m tats au maximum, mais bien souvent beaucoup moins. On en conclut que souvent m<<n. Il est possible dans une synthse d'utiliser bien moins de bascules que d'tapes. Pour cela, il suffit de : compter les tats du GRAFCET et d'en dduire ainsi le nombre de bascules ncessaire, coder les tats et dfinir un graphe d'volution ou graphe d'tat, implanter ce graphe. Exemple : Nous allons donner un exemple complet maintenant. 1 e1 2 e2 3 5 e4 4 e3 Assignation Etats Codes 1 000 2,4 001 3,4 010 2,5 011 3,5 100 Rappel des quations de rcurrences (ne sont pas utilles pour cette synthse) x1+ = x3.x5.e4+x1./e1+I x2+ = (x1.e1+x2./e2)./I x3+ = (x2e2+/(x5e4)x3)/I x4+ = (x1e1+e3x4)/I x5+ = (x4e3+/(x3e4)x5)/I
Etat futur
Q2+Q1+Q0+ 001 000 001 010 011 100 100 010 100 011 000 100
La gestion de l'initialisation doublerait la taille du tableau. On peut cependant directement faire intervenir cette initialisation dans les quations de rcurrence : &!I ici pour toutes les quations car initialis (000)2. V - Exercices 1) Raliser la synthse des trois GRAFCETs ci-dessous : mthode d'activation dsactivation synchrone ( une bascule par tape). Remarquer la notation d'une action conditionnelle. 2) Raliser une synthse optimise de ces trois GRAFCET.
87
1 e1 2 e2 3 a3 e3 a4
a1 a2
a1 a2 e1
1 e1 2 e2 3 a4 a3 4
a1 a2
e1 4 a3 e4 2 e2 3 a3 a4 4 N a5
e4 e1 e3 5 e4 e5 5 e4 e3./e4 a4 6 e5 a5
5 e5
C a4
C a4
88
F1 F2 Schma classique
F1 F2 Rseau OU
Nous donnons titre d'exemple le contenu d'une PAL 16 R4 ci-dessous. Le R dsigne registered. 4 veut donc dire qu'il y a 4 sorties squentielles (sur bascules D). Le 16 veut dire qu'il y a possibilit de raliser 16 entre.
PLA 16 R4
89
Nous allons nous intresser maintenant un autre type de PAL les GAL de srie V (pour versatile) qui veut dire que les sorties peuvent tre programmes. Ce qui caractrise ce genre de composant est la notion de macro-cellule comme montre sur la figure ci-dessous. Une telle cellule est configurable l'aide de bits internes locaux (appels SLnx) et globaux (appels SGn) o n dsigne le numro du bit et x le numro de la macro-cellule. Elle est constitue d'autre part par des multiplexeurs qui peuvent permettre plusieurs configurations de la macro-cellule ces derniers tant dtermins par les 2 bits SG1 et SL0x. To Adjacent 1 1 1 1 Macrocell OE PALCE20V8 Macrocell 1 0 Vcc 0 0 0 X 0 1 1 0 SL0x
1 1 0 X D SL1x CLK Q Q 1 0 1 1 0 X From Adjacent Pin 1 0
SG1
I/0x
SL0x *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.
II - Exercices 1) Trouver l'aide du schma de la macro-cellule de la GAL 20V8 tous les schmas quivalents possibles. Donner la liste des configurations impossibles pour 2 macro-cellules distinctes (bits globaux incompatibles). 2) On donne un programme ainsi que le schma quivalent associ. module exo2 Clk pin 1; Toggle pin 2; !Ena pin 11; Qout pin 16 istype 'reg'; equations !Qout := Qout.FB & Toggle; Qout.CLK = Clk; Qout.OE = Ena; test_vectors([Clk,!Ena,Toggle] -> Qout) [.c.,0,0]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,1,1]->.X.; [.c.,0,1]->.X.; [.c.,1,1]->.X.; [.c.,0,1]->.X.; end 1 Toggle Clk a) Donner l'ensemble des rsultats des vecteurs tests prsents dans le programme. (Sorties possibles 0, 1, Z) b) Compltez les schmas ci-dessous : numro des broches et fusibles non grills pour les deux architectures 16 R8 et 20v8. Dans ce dernier cas, on vous demande de corriger le programme pour la dclaration des broches et de rflchir d'abord la valeur des bits internes. & D Q Ena 1 Qout
Vcc
I/07 I13
I/O5 I/04
I/O3 I/02
I/01
I12 0E
I/O6
I/O0
GAL 20 V8
CLK I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 GND
90
16R8
1 1 0 X 1 0
PALCE20V8 Macrocell
SL01
OE Vcc
1 1 0 0
1 0 0 1
To Adjacent Macrocell
1 1 0 X 1 0
I/01
1 0 1 1 0 X
SL01 *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.
Remarque : Il est possible d'utiliser une sortie en entre (pattes I/Oi) mais il faut absolument crire une quation qui oblige la sortie a tre en tat haute impdance. Out.oe=0; "par exemple
91
0123
4567
16 17 18 19 8 9 10 11 12 13 14 15
1 I1 2 0 1 2 3 4 5 6 7 I2 3 8 9 10 11 12 13 14 15 I3 4
I13 23
OE Vcc
1 1 1 0 0 0 0 1
SG0
1 1 0 X 1 0
SL07 SG1
D Q Q 1 0 1 1 0 X
1 1 0 X 1 0
I/O7 22
SL17
*SG1 SL07
1 1 0 X 1 0
SL06 SG1
OE Vcc
1 1 1 0 0 0 0 1
1 1 0 X
Q Q
I/O6 21
1 0
SL16
1 0 1 1 0 X
*SG1 SL06
1 1 0 X 1 0
SL05 SG1
OE Vcc
1 1 1 0 0 0 0 1
I4 5
16 17 18 19 20 21 22 23
1 1 0 X 1 0
1 1 0 X
Q Q
I/O5 20
1 0
SL15
1 0 1 1 0 X
*SG1 SL05
I5 6
24 25 26 27 28 29 30 31
SL04 SG1
OE Vcc
1 1 1 0 0 0 0 1
1 1 0 X
Q Q
I/O4 19
1 0
SL14
1 0 1 1 0 X
*SG1 SL04
1 1 0 X 1 0
32 33 34 35 36 37 38 39 I6 7
SL03 SG1
OE Vcc
1 1 0 0
1 0 0 1
1 1 0 X
I/O3 18
Q Q
1 0
SL13
1 0 1 1 0 X
*SG1 SL03
1 1 0 X 1 0
40 41 42 43 44 45 46 47 I7 8
SL02 SG1
OE Vcc
1 1 1 0 0 0 0 1
1 1 0 X
I/O2 17
Q Q
1 0
SL12
1 0 1 1 0 X
*SG1
SL02
1 1
48 49 50 51 52 53 54 55 I8 9
0 X 1 0
SL01 SG1
OE Vcc
1 1 1 0 0 0 0 1
1 1 0 X
Q Q
I/O1 16
1 0
SL11
1 0 1 1 0 X
*SG1
SL01
1 1
I9 10 I10 11
56 57 58 59 60 61 62 63
0 X 1 0
SL00 SG1
OE Vcc
1 1 1 0 0 0 0 1
1 1 0 X
I/O0 15
Q Q
1 0
SL10
1 0 1 1 0 X
*SG1 SL00
I12 14 OE/I11 13
1 0
SG0
92
1 1 0 X 1 0
PALCE20V8 Macrocell
SL0x
OE Vcc
1 1 0 0
1 0 0 1
To Adjacent Macrocell
1 1 0 X 1 0
I/0x
1 0 1 1 0 X
SL0x *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.
Dedicated Input
SG1=0 SL0=1
93
C1
C1
C0 I
S1
DQ HQ B1 H
A1
1) La cellule de base d'un PAL destin l'arithmtique est donne ci-contre. Exprimer les valeurs logiques des fils internes 8, 9, 10 et 11 (voir schma) en fonction de A1 et B1 : 8= 9= 10 = 11 = A quoi sert I ? Quels fils internes utiliser pour raliser un ou exclusif ? ................. A1.......... ? B1.................. ? 2) Le PAL 16X4 est en fait form par 4 cellules comme ci-contre. On dsire montrer qu'une telle cellule permet d'implanter sur ce PAL un addition-neur binaire : (C'1 S'1)2 = (A1)2 + (B1)2 + (C0)2 Remplir les tableaux de Karnaugh ci-dessous A1B1 C0 00 01 11 10 0 1 S1 A1B1 C0 00 01 11 10 0 1 C1
8 9 10 11
En dduire les quations : S'1 = /C'1 = S'1 sera exprim l'aide de OU exclusifs, tandis que /C'1 sera exprim sous forme canonique simplifie. Dessiner les fusibles non grills sur la figure ci-dessus. On rappelle : /A1./B1=(/A1+/B1)(/A1+B1)(A1+/B1) A quoi servent les bascules D dans l'opration arithmtique ralise par le PAL ?
IV - COMPLEMENT : PROGRAMMATION D'UN GRAFCET EN ABEL Nous donnons maintenant un exemple complet de GRAFCET exprim dans le langage ABEL. Nous utilisons ici des macros ce qui n'est pas obligatoire mais rend le programme plus lisible parce que plus proche des quations de rcurrences dj rencontres.
MODULE EXO12 title 'exercice 12' exo12 device 'P20V8'; clock,e1,e2,e3,e4,I pin 1,2,3,4,5,6; "entrees x1,x2,x3,x4,x5 pin 15,16,17,18,19 istype 'reg';
1 e1 4 e3 5 e2 x5 x6 x4
x1 /e1*e4 2 e2 3 e3 x3 x2 x6
"sorties sequentielle x6 pin 20 istype 'com'; "sortie combinatoire AC1 macro {x5&e2#x3&e3};"activation tape 1 AC2 macro {x1&!e1&e4};"activation tape 2 AC3 macro {x2&e2};"activation tape 3 AC4 macro {x1&e1};"activation tape 4 AC5 macro {x4&e3};"activation tape 5 D1 macro {e1#!e1&e4}; "desactivation "etape1 D2 macro {e2}; "desactivation etape 2 D3 macro {e3}; "desactivation etape 3 D4 macro {e3}; "desactivation etape 4 D5 macro {e2}; "desactivation etape 5 equations [x1,x2,x3,x4,x5].clk = clock; "obligatoire x1 := AC1 # !(D1) & x1 # I; "etape initiale x2 := AC2 & !I # !(D2) & x2 & !I; "etape 2 x3 := AC3 & !I # !(D3) & x3 & !I; "etape 3 x4 := AC4 & !I # !(D4) & x4 & !I; "etape 4 x5 := AC5 & !I # !(D5) & x5 & !I; "etape 5 x6 = x5 # x2; "equation combinatoire end
94
Commandes
R.A.M
BUS DONNEES
Exercice : Quelle est la largeur du bus de donnes, du bus d'adresse. On positionne le bus d'adresse 0000, quelle valeur retrouvera-t-on sur le bus de donnes lors d'une lecture. On positionne l'adresse 0110 en criture avec 00001111 sur le bus de donnes. Que se passe-t-il ? Chaque cellule a un numro appel adresse. n cellules donc adresses de 0 n-1. Chaque cellule contient k bits (donc 2k valeurs possibles). Les adresses contiennent m bits donc 2m cellules directement adressables. Le nombre de bits d'adresse ne dpend que du nombre de cellules adressables et non de leur taille. I-2) Analyse. Nous allons commencer par un travail d'analyse sur un schma, en vue d'une comprhension de l'architecture. Pour le schma ci-dessous, dessiner les chronogrammes des sorties en fonction des entres. Essayer de faire le diagramme de transition pour ce schma.
95
A4 A3 A2 A1 A0
PROM 32x8 01 02 03 04 05 06 07 08 h
E1
63 S081
1D 2D 3D 4D 5D 6D 7D 8D 0C CLK
Registre 74ALS574
1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q
Adresses 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111
1010 1010 0000 0000 1000 1000 0011 0111 1100 1100 1000 1000 1111 1111 0110 0110 0
C h
E A B C F
II - Synthse (mmoire plus registre). La synthse consiste partir d'un problme brut, trouver le GRAFCET puis raliser une architecture matrielle et enfin remplir la mmoire. Nous allons commencer par donner un exemple complet avec optimisation :
1 e1 2 e2 3 5 e4 4 e3 x1+ = x3x5e4+x1/e1 x2+ = x1e1+x2/e2 x3+ = x2e2+/(x5e4)x3 x4+ = x1e1+e3x4 x5+ = x4e3+/(x3e4)x5 Assignation Etats Codes 000 1 2,4 001 010 3,4 2,5 011 100 3,5
SYNTHESE REGISTRE PLUS MEMOIRE ADRESSES EtatInitial Condition e1 e2 e3 e4 Q2Q1Q0 1XXX 000 0XXX 000 X00X 001 X10X 001 X01X 001 X11X 001 XX1X 010 XX0X 010 X1XX 011 X0XX 011 XXX1 100 XXX0 100 CONTENU Etat futur Q2+Q1+Q0+ 001 000 001 010 011 100 100 010 100 011 000 100
96
Un chariot est l'arrt en A. Si l'on appuie sur le bouton D de dpart, le chariot se dplace en marche avant jusqu'au point B et revient en marche arrire. Il s'arrte lorsqu'il arrive en A. Le cycle peut alors recommencer. 1-a) Dcrire cet automatisme l'aide d'un GRAFCET. 1-b) On donne l'architecture ci-dessous, en dduire le contenu de la mmoire. Pour cela on remplira le tableau donn en commenant par coder chaque tape. Puis pour chaque tape il faut trouver l'tat futur dans les deux cas : volution ou pas. 1-c) Remarquer que ce tableau permet une synthse rapide en remplaant la mmoire par un circuit combinatoire (et ventuellement le registre par deux bascules D) : quelles sont les quations implanter?
A B D Adresse Q1 Q2 A B D Sorties Q'1=Q1+ Q'2=Q2+
A4 A3 A2 A1 A0 PROM 32x8
E1 63 S081
01 02 03 04 05 06 07 08 h
1D 2D 3D 4D 5D 6D 7D 8D 0C CLK
Registre 74ALS574 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q
III - Synthse compteur plus mmoire. La synthse prcdente prsente l'inconvnient de ncessiter des mmoires trop importantes. Nous allons voir que l'utilisation d'un compteur et d'une mmoire permet de supprimer ce problme. Notre nouvelle architecture est constitue au minimum de deux parties : - une mmoire contenant les instructions proprement dites. - un compteur programme pouvant : * rester dans une mme position en attente d'un vnement extrieur, * s'incrmenter pour passer l'instruction suivante, * s'initialiser zro, * modifier son contenu (fonction LOAD) pour permettre un saut dans un programme Format d'une instruction : champ opration : ensemble d'lments binaires qui viennent commander la fonction du compteur champ adresse : adresse de condition + adresse de branchement, champ action : sorties... III-1) Squenceur enchanement squentiel C'est le systme le plus simple, constitu d'un compteur et d'une mmoire programme. Le champ opration ne contient qu'un seul bit, le reste tant pour les sorties. Si ce bit est 0, on a un enchanement squentiel, s'il est 1 c'est une remise zro (RAZ). Le langage associ cette architecture peut tre rsum par le tableau : Bit I0 0 1 Instruction NEXT-ST sortie END-ST sortie
Remarque : ce langage est simple mais sa smantique manque de clart cause du fait que chaque instruction ralise en fait deux oprations X et ST !
97
INIT Code opration I0=0 1 1 1 I0 1 I1=1 1 On dsire raliser un gnrateur des signaux A,B et C reprsents ci-contre. Donner le contenu de la PROM sachant qu'il s'agit d'une PROM 32x8 (63S081). Champ opration Sorties Champ action I0=0 Mmoire INIT Horloge Clear >1 Compteur
Adresse
C t 5 4 6 7 3 cycle 1 0 5 4
III-2) Squenceurs enchanement conditionnel Dans le squenceur prcdent, il n'y a aucune condition logique autorisant le passage d'une tape une autre. Or la plupart des squenceurs ne doivent quitter une tape que si la condition de franchissement est vrifie. => code opration : 1er bit comme plus haut, 2eme bit permettant de choisir entre l'enchanement conditionnel ou squentiel, champ adresse de condition (li au multiplexeur) Le langage associ cette architecture peut tre rsum par le tableau : Bit I0 0 1 0 Bit I1 1 X 0 Instruction NEXT-ST sortie END-ST sortie NEXT-IF condition ST sortie
Remarque : ce langage est simple mais sa smantique manque de clart cause du fait que chaque instruction ralise en fait deux oprations X et ST. De plus ici la dernire instruction possde deux oprandes. Ce que l'on recherche c'est une architecture pouvant supporter un langage avec un oprateur et 0 ou 1 oprande au plus.
98
INIT
Horloge compteur
EN >1 Clear
MUX
>1 INIT
C1 1 C2
C C
Adresse n
Mmoire k I 0 Champ Opration I 1 Champ Adresse Champ action
n-1
Adresse de condition
1 M
Arret Dplacement vers Exercice : Avec la mme PROM que l'exercice prcdent, donner son contenu pour le montage ci-dessus et le cahier des charges ci-contre.
la droite
B
3 A Dplacement vers la gauche
4
1
Arret
III-3) Squenceur avec branchement inconditionnel Un branchement inconditionnel ressemble au GOTO du basic.
Horloge
C1
MUX
>1 INIT
Adresse C n Mmoire
k
I Adresse de condition 0 Champ Opration I 1 Champ Adresse Champ action
I0 I1 1 x branchement
Condition inconditionnel
branchement
0 0 enchainement conditionnel
0 1 enchainement inconditionnel
Bit I0 0 1 0
Bit I1 1 X 0
99
Pour prsenter un intrt, il faut en gnral l'associer un squenceur avec branchement conditionnel. III-4) Squenceur avec branchement conditionnel L'objectif est de pouvoir prendre des dcisions en fonction de l'tat du systme command. Il correspond la structure de contrle de choix dans les langages volus : le IF .. THEN .. ELSE du pascal.
Horloge compteur INIT >1 LOAD CLEAR
MUX
I0=0
IF condition JMP adresse ELSE NEXT ST sortie END-ST sortie Remarque : la premire instruction manque vraiment de claret !!!!
I0=1
Adresse
C n Mmoire
k
I Adresse de condition de branchement 0 Champ Opration Champ Adresse Champ action
Condition
branchement
IV - Exercice Pour chacun des GRAFCETs prsents, dimensionner le multiplexeur et la mmoire, puis remplir cette dernire l'aide d'un langage que l'on dfinira.
Horloge 1 1 a 2 b 3 c GRACET 1 GRAFCET 2 s3 s2 b s1 2 a s2 c.b 3 s4 4 s3 e d 5 s3 6 s4 f g s1 C1 MUX 1 INIT Cn k I2 & Mmoire I1 IO Champ Action 1 EN Clear Load Compteur
m Adresse
Adresse condition
Adresse branchement
100
Avril 1996
{1}
1 a
{2,12}
12 c C B b./c 14
2 b 3
13
1) La notation {2,12} dsigne l'tat pour lequel l'tape 2 et l'tape 12 sont actives en mme temps. Complter le graphe des tats en page prcdante. 2) Combien d'tats comporte ce GRAFCET ? Rponse :
3) Conclusion sur ce grafcet. Rponse : 4) Complter le graphe des tats pour le nouveau grafcet corrig ci-dessous :
101
GRAFCET donn
1 a
2 b 3
A B
12 c 13 d
B b./c 14 d
{2,13} {3,13}
15 d
{2,15} {3,15}
5) Ecrire les quations de rcurrence correspondant au nouveau GRAFCET que l'on vient de complter. On utilisera une entre I d'initialisation. Rponse :
6) On dsire raliser ce grafcet en utilisant une bascule D par tape (synthse non optimise) : dfinir les entres de fce : fonction combinatoire d'entre. faire le schma correspondant l'quation de rcurrence de x2 seulement. donner le schma de fcs complet : fonction combinatoire de sortie.
Q1
Q2
Q3
D12 Q12 Clk D13 Q13 Clk D14 Q14 Clk fce D15 Q15 Clk fcs
102
1) Recherche de GRAFCET. On donne le programme ABEL MODULE EXO3 exo3 device 'P20V8'; clock,e1,e2,e3,I pin 1,2,3,4,5; "entrees x1,x2,x3 pin 19,20,21 istype 'reg'; act pin 22 istype 'com'; "sortie combinatoire AC1 macro {x3&e3};"activation tape 1 AC2 macro {x1&e1};"activation tape 2 AC3 macro {x2&e2};"activation tape 3 D1 macro {e1}; "desactivation etape 1 D2 macro {e2}; "desactivation etape 2 D3 macro {e3}; "desactivation etape 3 equations [x1,x2,x3].clk = clock; "obligatoire x1 := AC1 # !(D1) & x1 # I; "etape initiale x2 := AC2 & !I # !(D2) & x2 & !I; "etape 2 x3 := AC3 & !I # !(D3) & x3 & !I; "etape 3 act = x1 # x3; "equation combinatoire end 2) Vecteurs Tests On ajoute au programme ci-dessus les vecteurs tests ci-dessous. Que donneront ces vecteurs tests ? Donnes Rponses Dessiner le GRAFCET correspondant
Test_vectors ([clock,e1,e2,e3,I]->[x1,x2,x3,act]) [.c.,0,0,0,1]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,1,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,1,0,1]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,1,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,1,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,1,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.];
3) Donner les quations pour ce GRAFCET : de rcurrence de l'tape 2 de sortie de l'action act Rponses pour les quations de rcurrence : x2+ = act = On vous demande d'implanter ces deux quations sur la GAL 20V8 de la page suivante en donnant les fusibles non grills (croix) ainsi que la valeur des bits internes correspondants ci-dessous. Rponses ici pour les bits internes : SG1 = SG1 = SL05 = SL07 = SL15 = SL17 = <-- pour x2 <-- pour act
103
4) Graphe d'tat et programme ABEL correspondant. Pour le GRAFCET trouv on vous demande de reprsenter dans le tableau ci-dessous son graphe d'tat puis de complter la partie du programme ABEL en state_diagram correspondant ce graphe d'tat pour les deux transitions manquantes (donc en laissant de ct les tats inutiliss) et sans optimiser. Graphe d'tat : rponse : Partie du programme ABEL correspondant state_diagram([x1,x2,x3]) state [1,0,0] : if e1 then [0,1,0] else [1,0,0];
end
0123
4567
8 9 10 11
12 13 14 15
16 17 18 19 20 21 22 23
1 0
I1 2 0 1 2 3 4 5 6 7 I2 3 8 9 10 11 12 13 14 15 I3 4
I13 23
OE Vcc
1 1 1 0 0 0 0 1
SG0
1 1 0 X 1 0
SL07 SG1
D Q Q
1 0 1 1 0 X 1 1 0 X 1 0
I/O7 22
SL17
*SG1 SL07
1 1 0 X 1 0
SL06 SG1
OE Vcc
1 1 0 0
1 0 0 1
1 1 0 X
Q Q
1 0
I/O6 21
SL16
1 0 1 1 0 X
*SG1 SL06
1 1 0 X 1 0
SL05 SG1
OE Vcc
1 1 0 0
1 0 0 1
16 17 18
1 1 0 X
19 20 21
22 23
Q Q
1 0
I/O5 20
SL15
1 0 1 1 0 X
I4 5
1 1
*SG1 SL05
I5 6
24 25 26 27 28 29 30 31
0 X 1 0
SL04 SG1
OE Vcc
1 1 0 0
1 0 0 1
1 1 0 X
I/O4 19
Q Q
1 0
SL14
1 0 1 1 0 X
*SG1 SL04
Ajouter sur la figure ci-dessus l'affectation (ou nom symbolique) des broches utilises par ABEL pour les entres / sorties.
104
Pour le systme binaire, on dfinit l'addition comme pour le systme dcimal, en utilisant la table d'addition ci-contre.
B 0 1 10
0 0 1 10
1
1 10 11
10
10 11
Selon ce principe, l'addition de 2 bits a et b donne : - 1 bit S de somme (SUM en anglais) - 1 bit C de retenue (Carry). Recherchons leurs expressions
100
a b 0 1 0 1 0 1 1 0 S b 0 1 0 1 0 0 0 1 C
On peut donc raliser cette addition sur un bit l'aide des schmas logiques ci-dessous :
S ADD 1 bit C
a b
=1 &
C b
a.ab
&
b.ab
S=a $ b
DEMI ADITIONNEUR
C'est un demi-additionnneur, en effet de faon plus gnrale l'addition s'effectue sur des nombres quelconques donc comportant plus de 2 bits.
Exemple : Retenues 100 0 11 1 0 11 0 0 1 0 1 2 addition Carry in (Cin) est la retenue de l'addition des bits de rang prcdent (r-1). Carry out (Cout) sera la retenue de l'addition des bits du rang (n). out S r
L'addition s'effectue donc sur 3 bits et donne un bit de somme et un bit de retenue. Etablissons les expressions de Sn et Cout. Table de vrit C in a n 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 bn 0 1 0 1 0 1 0 1 C out 0 0 0 1 0 1 1 1 Sn 0 1 1 0 1 0 0 1
A +B CS
C in + an +b n =C
ab in 0 1
00 0 0
01 0 1
11 1 1
10 0 1 C out
ab 00 in 0 1 0 1
01 11 1 0 0 1
10 1 0 S n
Sn =(a $ b) $ Cin
La ralisation de l'additionneur complet ncessite deux demi-additionneurs et peut se faire selon ces deux schmas :
retenue prcdente C in C in a n bn ADD C out retenue suivante a b
=1 & =1 & >1
S n Cout
ADDITIONNEUR
105
Remarque : Dans les additionneurs intgrs, on cherche minimiser le nombre de couches d'oprateurs logiques, c'est dire le temps de rponse du circuit complet. On utilise pour cela d'autres critures de Sn et Cout. I- 2) Addition parallle retenue en cascade : Additionneur retenue propage : Ce circuit utilise n additionneurs complets. L'addition s'effectue sur les n bits simultanment mais en reportant la retenue de chaque calcul sur l'entre Cin de l'entre de l'additionneur suivant. Tout se passe comme si la retenue se propageait d'tage en tage.
a0 b0 a1 b1 a2 b2 a3 b3 C in a b ADD C out S C in a b ADD C out C3 (dpassement) S C in a b ADD C out S C in a b ADD C out S s0 s1 S2 s3
ADDITIONNEUR A RETENUE PROPAGEE Remarque : 1) Si pour un additionneur le temps T'p de calcul de la retenue vaut 2tp pour les n tages, le rsultat ne s'affichera compltement (C3 incluse) qu'au bout d'un temps T=2.n.tp (ici 8 tp), celui-ci pouvant tre trs long si n est grand. 2) Dans une reprsentation circulaire il y a dpassement C3=1 si la somme S>2n. Additionneur retenue anticipe :
b3 b2 b1 a3 Calcul de R3 Rn b2 b1 b0 a2 a1 a0 Rn b1 b0 a1 a0 Rn b0 a0 Calcul de Rn R0 b0 a 0 Add S0 b1 a1 Add S1 Calcul de R2 b3 a3 Add S3 a2 a1 b0 a0 R 3
* Pour un additionneur complet de 1 bit nous avons vu que Cout=ab+(a+b)Cin ceci signifie que : - Si a=b=1 Cout=1 quel que soit Cin, il y a gnration systmatique d'une retenue Cout et l'on dfinit donc G=a.b (terme de gnration) - Si l'un des deux bits a ou b est 1 et que Cin=1, il y a propagation de la retenue Cin et l'on dfinit P=a+b (terme de propagation). Dans ces conditions, les quations de l'additionneur deviennent : Cout = G + P.Cin et S=(a xor b) xor Cin.
Calcul de R1 b2 a2 Add
S2
* le raisonnement s'applique pour un additionneur de deux nombres de 4 bits : - Pour chaque rang, on cre les deux termes Gi et Pi.ri-1 en posant R=Cout et r=Cin
Pour chaque bit : RO=G0+P0.r0 R1=G1+P1r1=G1+P1G0+P1P0r0 car r1=R0 R2=G2+P2.r2 =G2+P2G1+P2P1G0+P2P1P0.r0 R3=G3+P3.r3 avec r3=R2 =G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0r0 Shma a
&
bi
C in
>1
=1 =1
Pi
- Pour chaque additionneur, on effectue le calcul de la retenue Ri-1 et pour cela on leur associe un gnrateur de retenue anticipe (GRA).
106
Remarque : En observant la structure interne (page prcdente), on constate que le calcul de Ri ne se fait qu' travers 3 couches d'oprateurs seulement. C'est sur ce principe qu'est ralis le 7483, additionneur 4 bits. II - La soustraction. II-1) Principe (rappel) Exemple: * En binaire comme en arithmtique dcimale, la A soustraction A-B s'effectue en ajoutant (10)2 au chiffre de rang i (si ncessaire) puis en retranchant - B 1 de report (retenue) au chiffre b de rang suivant. =D
(+10) (+10)
report
0010 1110
* Pour calculer la diffrence D, on utilise la Exemple : mthode du complment vrai et on effectue donc 0101 0101 1011 1011 une somme. A 0101 -0 1 0 1 <=> +1 0 1 1 A-B=D <=> A+CVB=S avec CVB=CRB+1 - B - 1011 Le rsultat de cette dernire opration est toujours = D 1 0110 0110 01010 =D donn en complment vrai dans un format fixe. S retenue retenue S - si la dernire retenue de l'addition est 1 D=S=+0110 D=-C S = - 0110 alors D=S ; on nglige celle-ci et D est V positif. - si celle-ci est gale 0 alors D=-CVS, on Remarque : A n'est pas reprsent en complment recherche le complment vrai en ngligeant vrai. la dernire retenue. Remarque : le 4eme bit ( partir de la droite) donne le signes dans une reprsentation de nombre sign s=0 S>0 et s=1 S<0. Seuls les 3 premiers bits ont un sens. II-2) Soustraction parallle par complment vrai Nous prsentons ci-dessous l'aide d'un schma le principe du calcul.
107
A0 A1 A A2 A3 BO B B1 B2 B3
1 1 1 1
d'0 d'1 d'2 d'3 * Le principe de l'opration est identique, l'addition se fait sur chaque bit mais en utilisant des additionneurs parallles. 1er niveau : recherche de la somme et du signe A-B=A+B+1=D' s=1 signe + s=0 signe 2eme niveau : dcomplmentation du rsultat. si s=1 (D' $ 0)plus 0 plus Cin -> D'=D si s=0 D = (D' $ 1)plus 0 plus Cin D=D'+1=C D' V
D'
1
1 si ngatif
d'0
=1
d'1
D'
=1
=1 =1
d'2 d'3
d0
d1 d3 d4 D
Exemple
1 Cin =s 0 a Add2 1 b
D= (-)
0 1 0 0 1 0
0 1 1 0 1 0
=1 =1 =1
b0 b1 b2 b3 C out
=1
&
III - Exercices - Additionneurs / Soustracteurs. 1) Construire un additionneur 1 bit partir de deux demi-additionneurs.
108
2) Si le temps de propagation travers une porte est tp, calculer en fonction de tp le temps de propagation d'un additionneur 4 bits retenue propage puis le temps de propagation d'un additionneur 4 bits retenue anticipe. 3) On dsire additionner deux chiffres cods BCD dont la somme est =A+B. On dispose d'additionneurs binaires 4 bits effectuant la somme (S)2=(A)2+(B)2. a) Si on additionne A et B et que S<10 on a alors =S. Si S>=10, on constate que =S+n. Fixez-vous A et B, calculez S puis et dterminez la valeur de n. Justifiez ce rsultat. b) Soit D le circuit de dtection de S>=10. Recherchez l'quation de D. On dispose de 2 additionneurs binaires et de portes NAND. Proposez un schma tel que =A+B pour S<10 et que =A+B+n pour S>=10. c) En prenant ensuite un exemple dont la somme est suprieure 15 montrez qu'un circuit combinatoire doit tre ajout pour la retenue finale. 4) Etablir la table de vrit des fonctions Di (diffrence) et ci+1 d'un soustracteur de nombres non signs partir de ai, bi et ci. Comparer Di avec la fonction Si d'un additionneur. 5) Les mots "addition parallle" se retrouvent dans le cours. Il h existe une autre version d'additionneur ralisant une addition srie : On donne ci-dessous deux shmas d'additionneur srie. h On vous demande combien de cycles d'horloge faut-il pour raliser une opration complte sur n bits ?
an-1 a .... Reg. R 1 bn-1 b .... Reg. R 2 0 Ss a ADD 0 Ss b C in Q M Q RAZ 1 bit C out D h S h E s Reg R3
Sn-1
109
FEATURES LOGIC SYMBOL Magnitude comparison of any binary words 10 12 13 15 Serial or parallel expansion A0 A1 A2 A3 without extra gating 2 IA<B Use 54S/74S85 for very 3 IA=B high speed comparisons 4 IA>B
A>B Vcc = pin 16 GND = pin 8
11 14
B0 B1 B2 B3
A=B
A<B
SIGNETICS
II - Multiplication Pour imaginer un multiplieur binaire il faut analyser les lois d'obtention du rsultat partir des valeurs multiplier. En dcimal, la multiplication ncessite trois oprations : - multiplication chiffre par chiffre ncessitant la connaissance des tables de multiplications,
110
- dcalage des rsultats successifs, - addition des rsultats partiels. II-1) Table de multiplication binaire ( un bit). Elle se rsume 0x0=0 0x1=0 1x0=0 1x1=1 Elle est identique la fonction ET. II-2) Ralisation d'un multiplieur de deux nombres 3 bits A2 En implantant directement la "structure" mme des oprations de multiplication, il est facile de concevoir un circuit permettant de multiplier A et B, chacun de ces nombres ayant 3 bits. Avec les dcalages, il est facile d'imaginer que la rsultat se fera sur 6 bits. B0 B1 & B2 & + S5 S4 + & + S3 & + & + S2 S1 S0 & + & A1 & A0 &
II-3) Circuit intgr. Le circuit TTL 74274 est un multiplieur 4 bits bas sur ces principes. Il possde 8 bits de sortie protgs par des portes Trois tats commandes par des broches /G1 et /G2.
III - Architectures d'une calculette simple Il nous faut commencer par dcrire la ressource c'est dire l'ensemble des circuits lectroniques commands par le squenceur.
111
- Unit arithmtique pouvant raliser les oprations LDA, ADDC, SUBC RIEN. La commande "b" ncessite donc au moins 2 bits. - C registre de retenue (Carry) ; commande "c" 1 bit. - ACC registre dcalage 7x4 bits permettant un dcalage gauche, droite une remise zro. Donc sa commande "a" comprend au moins 2 bits. - RE identique ci-dessus sauf commande "d". - AFF 7 afficheurs ayant comme fonctionnalit : extinction, affichage, clignotement (dpassement) Sa commande "e" comprend donc au moins 2 bits. - Le squenceur permettant la scrutation du clavier et l'excution des microcommandes "a", "b", "c", "d", "e".
C c
Cout
UA
4 E6 4
E5
RE
4
E4
4
E3
4
E2
4
E1
4 4
E0
e B d b
(chiffre)
7 4 1 0
8 5 2 CE
9 6 3 C
+ -
micro-commandes a b c d e
Squenceur
=
+ -
CLAVIER
IV - Exercices 1) Exercice sur la soustraction BCD. Puis addition/soustraction pour l'UAL de la calculette. 2) Exercice sur la multiplication BCD. Peut-on faire simplement une modification de la calculette pour la faire multiplier ?
112
Mmoire donnes
Registre donnes adresse donnes
Ecriture Lecture B0 B1 000 001 010 I1,0 I1,1
Carte d'entre
Unit Logique
OP
Registre Instructions
Carte de sortie
horloge
L A =
Acc.
Mmoire programme
Compteur Programme PC
IM
EP
Automate programmable
II - Langage IL II-1) La norme 1131-3 (Extraits choisis)
NOP
COP OPDE
Il existe deux langages littraux : ST et IL. Ces deux langages ont des lments communs II-1-a) Elments communs (p226 de la norme) Les lments littraux dfinis l'article 2 doivent tre communs aux langages littraux (IL et ST) dfinis dans le prsent article. En particulier, les lments de structuration des programmes suivants doivent tre communs aux langages littraux : TYPE...END_TYPE VAR...END_VAR VAR_INPUT...END_VAR VAR_OUTPUT...END_VAR VAR_IN_OUT...END_VAR VAR_EXTERNAL...END_VAR FUNCTION...END_FUNCTION
113
FUNCTION_BLOCK...END_FUNCTION_BLOCK PROGRAM...END_PROGRAM STEP...END_STEP INITIAL_STEP...END_STEP TRANSITION...END_TRANSITION ACTION...END_ACTION II-1-b) Langage IL (Liste d'instructions) (p226 de la norme) Le prsent paragraphe dfinit la smantique du langage IL (Liste d'instructions) dont la syntaxe formelle est donne un peu plus loin. Instructions Comme l'indique le Tableau 1, une liste d'instructions est compose d'une suite d'instructions. Chaque instruction doit dbuter sur une nouvelle ligne et doit contenir un oprateur accompagn de modificateurs optionnels et, si cela est ncessaire pour l'opration considre, un ou plusieurs oprandes spars par des virgules. Les oprandes peuvent tre choisis parmi les reprsentations de donnes dfinies en 2.2 pour les libells et en 2.4 pour les variables. L'instruction peut tre prcde d'une tiquette d'identification suivie de deux points (:). Si un commentaire tel que dfini en 2.1.5 est prsent, il doit constituer le dernier lment d'une ligne. Des lignes vides peuvent tre insres entre les instructions. Tableau 1 - Exemples de champs d'instructions Etiquette START: Oprateur LD ANDN ST Oprande %IX1 %MX5 %QX2 Commentaire (* BOUTON POUSSOIR *) (* NON INHIBEE *) (* MARCHE VENTILATEUR *)
Oprateurs, modificateurs et oprandes (p228 de la norme) Les oprateurs standards ainsi que leurs modificateurs et oprandes autoriss doivent tre tels qu'numrs dans le tableau 2. ...... ..... Le modificateur "N" indique une ngation boolenne de l'oprande. Par exemple l'instruction ANDN %IX2 est interprte de la manire suivante : resultat := resultat AND NOT %IX2 Le modificateur parenthse gauche "(" indique que l'valuation de l'oprateur est diffre jusqu' ce qu'un oprateur parenthse droit ")" soit rencontr ; par exemple la squence d'instructions suivante: AND( %IX1 OR %IX2 ) doit tre interprte de la manire suivante : resultat := resultat AND (%IX1 OR %IX2) Le modificateur "C" indique que l'instruction donne ne doit tre excute que si le rsultat faisant l'objet de l'valuation en cours a la valeur boolenne 1 (ou la valeur boolenne 0 si l'oprateur est combin avec le modificateur "N"). Tableau 2 - Oprateurs de liste d'instructions (p 230 de la norme) N 1 2 3 Oprateur LD ST S R Modificateur N N Note 3 Note 3 Oprande Note 2 Note 2 BOOL BOOL Smantique Rendre le rsultat courant gal l'oprande Mmoriser le rsultat l'emplacement de l'oprande Positionner l'oprande boolen 1 Remettre l'oprande boolen 0
114
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
AND & OR XOR ADD SUB MUL DIV GT GE EQ NE LE LT JMP CAL RET
N, ( N, ( N, ( N, ( ( ( ( ( ( ( ( ( ( ( C, N C, N C, N
BOOL BOOL BOOL BOOL Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 LABEL NAME
21 ) NOTES 1 Se reporter au texte prcdent pour toute explication relative aux modificateurs et l'valuation des expressions. 2 Ces oprateurs doivent tre soit surchargs soit saisis comme dfini en 2.5.1.4. Le rsultat courant et l'oprande doivent tre du mme type 3 Ces oprations sont effectues si et seulement si le rsultat courant a la valeur boolenne 1 4 Le nom du bloc fonctionnel est suivi par une liste d'arguments entre parenthses, tels que dfinis en 3.2.3. 5 Lorsqu'une instruction JMP est contenue dans une construction ACTION...END_ACTION l'oprande doit tre une tiquette l'intrieur de la mme construction Fonctions et blocs fonctionnels (p 230 de la norme) Les fonctions doivent tre lances en inscrivant le nom de la fonction dans le champ oprateur. Le rsultat courant doit tre utilis comme premier argument de la fonction. Si ncessaire les arguments supplmentaires doivent tre fournis dans le champ oprande. La valeur renvoye par une fonction, aprs excution correcte d'une instruction RET ou lorsque la fin physique d'une fonction est atteinte doit devenir le "rsultat courant". Les blocs fonctionnels peuvent tre lancs sous condition ou inconditionnellement l'aide de l'oprateur CAL (Appel) figurant dans le tableau 2. Comme l'illustre le tableau 3, ce lancement peut prendre trois formes. Les oprateurs d'entre indiqus dans le tableau 4 peuvent tre utiliss conjointement la caractristique 3 du tableau 3. Tableau 3 - Caractristiques du lancement de bloc fonctionnel en langage IL (p 232) N 1 Description / exemple CAL avec liste d'entres CAL C10 (CU := %IX10, PV:=15) 2 CAL avec entres de charge/mmoire LD 15 ST C10.PV LD %IX10 ST C10.CU CAL C10 3 Utilisation d'oprateurs d'entre: LD 15 PV C10 LD %IX10 CU C10 NOTE - Une dclaration telle que VAR C10 : CTU; END_VAR est suppose dans les
AND boolen AND boolen OR boolen OR exclusif boolen Addition Soustraction Multiplication Division Comparaison : > Comparaison : >= Comparaison : = Comparaison : <> Comparaison : <= Comparaison : < Saut vers l'tiquette Appel d'un bloc fonctionnel (Note 4) Retour d'une fonction appele ou d'un bloc fonctionnel Evaluation d'une opration diffre
115
exemples ci-dessus Dure (p 52 de la norme) Les donnes relatives la dure doivent tre dlimites gauche par le mot clef T#, TIME#, t# ou time#. La reprsentation des donnes relatives la dure, en termes de jours, heures, minutes, secondes et millisecondes, ou toute combinaison de ces derniers, doit tre pris en charge conformment au tableau 5. L'unit de temps la moins significative peut tre crite en notation relle sans exposant. Les units des libells peuvent tre spars par des caractres de soulignement. Le "dpassement" de l'unit la plus significative d'un libell de temps est permis; par exemple la notation T#25h_15m est permise. Les units de temps, comme par exemple secondes, millisecondes, etc. peuvent tre reprsentes en majuscules et en minuscules. Tableau 5 - Caractristique de libells de temps N Description de la caractristique Libells de temps sans caractres de soulignement : Prfixe court Prfixe long Libells de temps avec caractre de soulignement : Prfixe court Prfixe long Exemples T#14ms T#14.7s T#14.7m T#14.7h t#14.7d t#25h15m t#5d14h12m18s3.5ms TIME#14ms time#14.7s
1a 1b
2a 2b
Types de donnes lmentaires (p 56 de la norme) Les types de donnes lmentaires, le mot clef relatif chaque type de donne, le nombre de bits par lment d'information, et la plage de valeurs relative chaque type de donnes lmentaire doivent tre tels que dfinis dans le tableau 6. Tableau 6 - Types de donnes lmentaires N Mot clef Type de donne 1 BOOL Boolen 2 SINT Entier court 3 INT Entier 4 DINT Entier double 5 LINT Entier long 6 USINT Entier cour non sign 7 UINT Entier non sign 8 UDINT Entier double non sign 9 ULINT Entier long non sign 10 REAL Nombre rel 11 LREAL Rels longs 12 TIME Dure 13 DATE Date (uniquement) 14 TIME_OF_DAY ou TOD Heure du jour (uniquement) 15 DATE_AND_TIME ou DT Date et heure du jour 16 STRING Cordon de caractres de longueur variable 17 BYTE Cordon de bits de longueur 8 18 WORD Cordon de caractres de longueur 16 19 DWORD Cordon de caractres de longueur 32 20 LWORD Cordon de caractres de longueur 64 NOTES 1 La longueur de ces donnes dpend de l'application concerne. Bits 1 8 16 32 64 8 16 32 64 32 64 Note 1 Note 1 Note 1 Note 1 Note 1 8 16 32 64 Etendue Note 8 Note 2 Note 2 Note 2 Note 2 Note 3 Note 3 Note 3 Note 3 Note 4 Note 5 Note 6 Note 6 Note 6 Note 6 Note 7 Note 7 Note 7 Note 7 Note 7
116
2 L'tendue des valeurs, relatives des variables de ce type de donne, est comprise entre (2**(Bits-1)) et (2**(Bits-1))-1. 3 L'tendue des valeurs, relatives des variables de ce type de donne, est comprise entre 0 et 2**(Bits)-1. 4 L'tendue des valeurs, relatives des variables de ce type de donne, doit tre telle que dfinie dans la norme CEI 559 pour le format virgule flottante largeur binaire. 5 L'tendue des valeurs, relatives des variables de ce type de donne, doit tre telle que dfinie dans la norme CEI 559 pour le format virgule flottante double largeur binaire. 6 L'tendue des valeurs, relatives des variables de ce type de donne, dpend de l'application concerne. 7 Une tendue numrique de valeurs ne s'applique pas ce type de donne. 8 Les valeurs que peut prendre variables de ce type de donne doivent tre 0 et 1, correspondant respectivement aux mots cls FAUX et VRAI. Remarques : on peut se demander qui a traduit aussi mal cette norme !!!!! Pour les n 18, 19 et 20, il s'agit de cordon de bits (Bit string) et non pas de cordon de caractres Le mot cordon n'est d'ailleurs pas appropri on parle plutt habituellement de chane. Dans la note 8 sont traduits des mots cls ce qui est impossible !!!! Les oprandes sont : (Tableau 7 p70 de la norme) N Prfixe Signification Emplacement d'entre I 1 Emplacement de sortie Q 2 Emplacement de mmoire M 3 Taille d'un seul bit X 4 Taille d'un seul bit Aucun 5 Taille d'un octet (8bits) B 6 Taille d'un mot (16 bits) W 7 Taille d'un double mot (32 bits) D 8 Taille d'un mot long (Quad) (64 bits) L 9 NOTES 1 Sauf dclaration contraire, le type de donne d'une variable directement adressable, de la taille d'un "seul bit" doit tre BOOL. 2 Les organismes nationaux de normalisation peuvent publier des tables de traduction de ces prfixes. On peut rsumer le langage IL par sa description formelle : sa grammaire (p 292 de la norme). REGLES DE PRODUCTION: instruction_list ::= instruction {instruction} instruction ::= [[label':'] (il_operation | il_fb_call)] EOL label ::= identifier il_operation ::= il_operator [' ' il_operand_list] il_operand_list ::= il_operand {',' il_operand} il_operand ::= [identifier ':='] (constant | variable) il_fb_cal ::= 'CAL' ['C'['N']] fb_name ['(' il_operand_list ')'] il_operator ::= ('LD' | 'ST ') ['N'] | 'S' | 'R' | ('AND' | 'OR' | 'XOR') ['N']['('] | ('ADD' | 'SUB' | 'MUL' | 'DIV') ['('] |('GT' | 'GE' | 'EQ' | 'LT' | 'LE') ['('] |('JMP' | 'RET') ['C' ['N']] |'S1' | 'R1' | 'CLK' | 'CU' | 'CD' | 'PV' |'IN' | 'PT' | ')' |function_name identifier ::= (lettre - ('_'(lettre | chiffre))) {['_'](lettre | chiffre)}
117
II -2) Exemple du TSX 37 (Telemecanique) instructions de tests : LD, LDN, LDR, LDF, AND, ANDN, ANDR, ANDF, OR, ORN, ORR, ORF, XOR, XORN, XORR, XORF, AND(, AND(N, AND(R, AND(F, OR(, OR(N, OR(R, OR(F. On peut donc utiliser des parenthses avec ventuellement des modificateurs : N, F (Falling edge), R (Rising edge) des blocs entre crochets [ et ]. Remarque : Dans la norme 1131-3 n'apparaissent pas les modificateurs R et F mais des blocs fonctionnels de dtection de front montants et de fonts descendants (p140 de la norme). On pourrait expliquer LDR, LDF, ANDR, ANDF ... comme fonctions prdfinies par Telemecanique. Mais il ne peut en tre de mme pour AND(R, ... Il semblerait que Telemcanique ait pris quelques libert ici. instructions d'actions : ST, STN, R, S instructions de contrles : JMP, JMPC, JMPCN, SRn, RET, RETC, RETCN, END, ENDC, ENDCN, HALT (END ... HALT n'apparaissent pas dans la norme 1131-3 et SRn s'appelle CAL) On dispose de trois instructions de manipulation de pile: MPS (Memory PuSh) stocke l'accumulateur sur la pile MRD (Memory ReaD) lit le sommet de la pile MPP (Memory PoP) lit en dstockant le sommet de la pile Ces instructions sont hors norme 1131-3 et on ne peut pas considrer qu'il s'agit de fonctions car ils ne satisfont pas la rgle de la norme (p 84) : "Les fonctions ne doivent comporter aucune information concernant les tats internes, c'est dire que le lancement d'une fonction dote des mmes arguments (paramtres d'entre) doit toujours donner la mme valeur" Quand aux blocs fonctionnels ils doivent satisfaire la rgle (norme p 118) " Toutes les valeurs des variables de sortie et des variables internes ncessaires de cette structure de donnes doivent persister, d'un bloc fonctionnel au suivant; par consquent, il n'est pas toujours ncessaire que le lancement du mme bloc fonctionnel ayant les mmes arguments (paramtres d'entre) aboutissent aux mmes valeurs de sortie" Le problme c'est que selon la norme l'appel se fait alors avec un CAL (voir II-1-b ci-dessus) Les oprandes sont : des entres notes %I1.0, %I1.1, ..... (avec le signe %) des sorties notes %Q2.0, %Q2.1,.... (avec le signe %) des bits internes nots %M0, %M1.... (avec le signe %) des bits systmes nots %Si .... (avec le signe %) S0 est le bit systme de reprise froid et S1 le bit systme de reprise chaud. des bits extraits de mots nots MWi:Xk (kime bit du ime mot) des bits de bloc de fonction. II - 3) Programmation de GRAFCETs en langage IL Il existe deux mthodes pour rsoudre ce problme. A noter que des atelier comme ISaGRAF qui se disent conforme la norme ne proposent pas la deuxime mthode ci-dessous. Premire mthode : on utilise les quations de rcurrence. 1 I1.0 2 I1.1 3 I1.2 LD %S1 (*M0 == tape 1 *) OR(%M2 (*M2 == tape 3 *) AND %I1.2 ) S %M0 R %M2 LD %M1 (*M1 == tape 2*) AND %I1.1 S %M2 R %M1 ....
Deuxime mthode : des lments prdefinis existent : construction STEP ... END_STEP ou INITIAL_STEP ... END_STEP construction TRANSITION ... END_TRANSITION (TRANSITION FROM et TO)
118
TD Informatique Industrielle IUT Troyes construction ACTION ...END_ACTION Exemples : (tirs de la norme p 160) Langage IL STEP STEP7 : A(N);END_STEP (*action A normale *) TRANSITION FROM STEP7 TO STEP 8 : LD %IX2.4 AND %IX2.3 END_TRANSITION STEP STEP8 : B(S);END_STEP (* action SET B*) STEP STEP7 : A(N);B(L,t#10s); END_STEP TRANSITION FROM (STEP7,STEP8) TO STEP 9 : LD %IX2.4 AND %IX2.3 END_TRANSITION STEP STEP9 : B(S);A(N);END_STEP (*deux actions*) Langage ST STEP STEP7 : END_STEP TRANSITION FROM STEP7 TO STEP 8 : := %IX2.4 & %IX2.3; END_TRANSITION STEP STEP8 : END_STEP
IV - Exercices Exercice 1 L'tat interne d'un automate de style TSX37 est donn ci-contre. Donnez sur les schmas suivants l'ensemble des modifications lors du droulement du programme complet. S0 bit systme de reprise froid S1 bit systme de reprise chaud op oprde Q0,-I0,-I0,00 0 I0,01 1 I0,02 0
S0 1
bits U.L.
bits
119
op
oprde
Q0,--
op
oprde
Q0,--
S0 U.L.
bits
bits
S0 U.L.
bits
bits
Acc Compteur Programme op oprde 1 Q0,00 2 LD %I0,01 Q0,01 3 OR %I0,02 Q0,02 4 ST %Q0,01 END Compteur Programme op oprde
Acc
Q0,--
Q0,--
S0 U.L.
bits
bits
S0 U.L.
bits
bits
Acc
Le langage IL admet l'utilisation de parenthses. Modifier l'architecture de l'exercice prcdent pour pouvoir excuter un programme avec parenthses. Ne pas oublier que l'on peut faire plusieurs niveaux de parenthses. Exercice 3 La norme 1131-3 prvoit certains blocs fonctionnels prdfinis : R_TRIG entre CLK et sortie Q dtection de front montant F_TRIG entre CLK et sortie Q dtection de front descendant CTU entres CU,R boolens compteur (ne fonctionnant pas sur front!) entre PV INT (valeur maximale) sortie Q boolenne sortie CV INT (valeur en cours) 1) Raliser en IL un compteur de 0 10 sur front. 2) Refaire le programme en utilisant les spcificits telemecanique.
120
Exercice 4 Programmer le rseau ci-dessous avec le langage IL et l'imbrication de parenthses %I1.1 %I1.2 %I1.3 %I1.4 %I1.5 %I1.6 %I1.7 %I1.8 %I1.4 Ladder Diagram %M10 Exercice 5 Questions 1) Reprendre le GRAFCET ci-contre et le programmer en langage IL en utilisant un bit mmoire par tape. 2) Programmer ce GRAFCET avec les STEP... END_STEP etc.. 3) Montrer que ce dernier genre de programme ncessite une architecture comme ci-dessous %Q2.3 %Q2.0 Programmer le rseau ci-dessous avec le langage IL et les instructions de pile. %I1.1 %I1.2 %I1.3 %M0 %M1 %Q2.1 %Q2.2 %Q2.0
1 I1,0 2 I1,2 3 Q0,1 4 Q0,3 I1,1 . /I1,2 Q0,2 I1,2 I1,3 5 Q0,1 I1,3
Architecture interne du TSX 37 mmoire op oprde Q0,00 Q0,01 Q0,02 Q0,-I0,00 I0,01 I0,02 I0,-X0 X1 X2 X Xf Xf0 Xf1 Xf2
bits
bits
Acc
121
D'autres types d'actions consistent forcer la variable ( faux ou vrai) quand l'tape devient active. Voici la syntaxe de ces actions : <variable_bool> (S) ; <variable_bool> (R) ; force la variable TRUE quand le signal d'activit de l'tape prend l'tat TRUE force la variable FALSE quand le signal d'activit de l'tape prend l'tat TRUE
On peut trouver les qualificatifs d'action suivants : Nant, N, R, S, L, D, P, SD, DS et SL (Norme p172). La variable boolenne doit tre INTERNE ou de SORTIE. La programmation SFC suivante reprsente le comportement indiqu dans le chronogramme:
122
10
Actions boolennes
I-2-b) Actions impulsionnelles Une action impulsionnelle est une liste d'instructions ST ou IL, excute une seule fois quand l'tape devient active. Les instructions sont crites selon la syntaxe SFC suivante : ACTION (P) : (* Enoncs ST *) END_ACTION ; Voici le chronogramme d'une action de type P :
123
<resultat> := <sous_programme> ( ) ; END_ACTION; ou ACTION (N) : <resultat> := <sous_programme> ( ) ; END_ACTION; Pour les blocs fonctionnels crits en "C" ou en ST, IL, LD, FBD: ACTION (P) : Fbinst(in1, in2); result1 := Fbinst.out1; result2 := Fbinst.out2; END_ACTION; ou ACTION (N) : Fbinst(in1, in2); result1 := Fbinst.out1; result2 := Fbinst.out2; END_ACTION; Vous trouverez la syntaxe dtailles de ces appels dans le chapitre concernant le langage ST. Exemple d'appel de sous-programme dans un bloc d'action : (* Appel de sous-programme dans une action SFC*)
1
ACTION (P) : Init:=SPInit(); END_ACTION;
I-2-f) Convention IL La programmation en IL (Instruction List) peut tre directement insre dans un bloc d'action, selon la syntaxe suivante : NORME 1131-3 ACTION (P) : (* ou N *) <instruction> <instruction> .... END_ACTION; ISaGRAF ACTION (P) : (* ou N *) #info=IL <instruction> <instruction> .... #endinfo END_ACTION; (* Programme SFC et action programme en IL *) ACTION (P) : 1 #info=IL LD False ST led1 ST led2 #endinfo END_ACTION;
(* Programme SFC et action programme en IL *) ACTION (P) : 1 LD False ST led1 ST led2 END_ACTION;
124
Ordre "A"
20 c
S ORDRE "A"
25 k
R ORDRE "A"
25.X k
18 c
18.X c
Ordre "A" Ordre non mmoris mais retard 10.X 5s 0s 5s & Ordre "A"
10 b
10.X b
Ordre "A"
20 c
25 k
R ORDRE "A"
Ordre "A"
20 c
"A"
25 k
R ORDRE "A"
Ordre "A"
125
20 c
Ordre memoris et limit dans le temps 20.X 25.X 20.X S 25.X R 5s 5s 0s &
Ordre
"A"
25 k
R ORDRE "A"
Ordre "A"
Forme 1 10 b Forme 2 10 b Forme 1 10 b Forme 2 10 b d 10.X 25.X d Ordre "A" R ORDRE "A" k SC ORDRE "A" si "d" d b d Ordre "A" C ORDRE "A" si "d" 10.X
Ordre conditionnel
10.X d &
Ordre "A"
C ORDRE "A"
SC ORDRE "A"
10.X S 25.X R d
&
Ordre "A"
25
Drapeau d'tape. A une tape repre par *** on associe une variable d'tape not ***.X Temps coul pour une tape : ***.T On notera l'quivalence des deux notations ci-dessous : L ACTION_1 t#10s P ACTION_2 N ACTION_3 DN1 STEP S8: ACTION_1(L,t#10s,DN1); ACTION_2(P); ACTION_3(N); END_STEP
II) Conditions attaches aux transitions A chaque transition est attache une expression boolenne, qui conditionne le franchissement de la transition. Les conditions sont gnralement dcrites en langage ST. C'est le niveau 2 de la transition. Mais d'autres conventions d'criture sont autorises :
126
II-1) Convention ST Vous pouvez utiliser le langage ST (Structured Text) pour dcrire la condition attache une transition. L'expression doit tre du type boolen et doit tre termine par un point virgule, selon une des syntaxes suivantes : TRANSITION FROM XXX TO XXX < expression_booleenne > ; < expression_booleenne > ; END_TRANSITION XXX dsigne une tape ou plusieurs tapes alors entre parenthses. L'expression peut tre une valeur constante TRUE ou FALSE, une variable boolenne interne ou d'entre, ou une combinaison de variables reprsentant une grandeur boolenne. Voici un exemple de transition programme en ST : (* Programme SFC avec conditions programmes en ST *)
1
Run & not erreur II-2) Convention LD Le langage LD (schma relais) peut tre utilis pour dcrire une condition associe une transition. Le schma est alors compos d'un seul chelon contenant un seul relais. La valeur du relais reprsente la valeur de la transition. Voici un exemple de transition programme en LD:
Run
Erreur
Run
Erreur
ISaGRAF
Le langage IL (Instruction List) peut directement tre utilis pour programmer la condition d'une transition, selon la syntaxe suivante : NORME 1131-3 TRANSITION FROM XXX TO XXX <instruction> <instruction> .... END_TRANSITION ISaGRAF #info=IL <instruction> <instruction> .... #endinfo
La valeur contenue dans le rsultat courant (registre IL) la fin de la squence programme indique le rsultat de la condition attache la transition : rsultat courant = 0 condition = FALSE rsultat courant <> 0 condition = TRUE Voici un exemple de condition programme en IL : (* Programme SFC avec transitions programmes en IL *)
127
III) Exercices 1) On dsire grer un feu de carrefour simple 2 voies. On a une entre jour nuit, et 6 sorties (2 x vert, orange, rouge) et on ne dispose pas de bit spcial type SY6 (1 Hz). Raliser un GRAFCET qui ralise ce problme. S'il est vrai qu'un programme SFC sert en gnral dcrire une commande d'une machine de production, la norme 1131-3 peut faire voluer les choses. Les cibles vises par les programmes vont s'tendre de l'automate programmable aux microcontrleurs. ISaGRAF propose un atelier logiciel pouvant gnrer du C. Les parties opratives seront alors des circuits lectroniques. 2) On peut reprendre le problme du tachymtre. Le schma de principe est donn dans la page suivante. On suppose que l'on communique avec la partie oprative par : - l'entre capteur qui donne les impulsions venant du photocapteur, - 8 sorties (1 digits). a) L'affichage se faisant sur 4 digits il faudra multiplexer (voir figure ci-aprs). On suppose comme en TP que l'on a une roue perce de 60 trous pour un tour et qu'ainsi il suffit de compter le nombre de trous qui passent en une seconde et d'afficher le rsultat pour avoir la vitesse en tour par minutes. Le multiplexage de l'affichage se fait toutes les 20 ms. Le compteur est suppos respecter la norme 1131, c'est dire qu'il est actif sur niveau (et non sur front) et qu'il compte en entier. Utiliser donc la transformation INT_TO_BCD de la norme pour l'affichage. On demande d'crire un programme SFC dcrivant le squencement de ce tachymtre. b) Ajouter ensuite la possibilit de dclencher le relais si la vitesse dpasse une valeur pouvant tre programme. La programmation de cette vitesse se fait en appuyant sur SW1 et SW3 pour incrmenter et sur SW2 et SW3 pour dcrmenter. L'appui sur SW3 seul permet uniquement de consulter la valeur de cette vitesse maximale. L'incrmentation (ou la dcrmentation) se fait d'abord lentement puis de plus en plus vite au fur et mesure que le temps pendant lequel on appuie augmente.
128
X1000
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS
X100
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS
X10
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS
X1
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS
C1 m 100 F P30 P31 P20 P33 P34 P35 P36 P37 RP1 18 75W VSSOUT1 17 IN1 OUT1 16 IN1 OUT1 15 IN1 OUT1 14 IN1 OUT1 13 IN1 OUT1 12 IN1 OUT1 11 IN1 OUT1 10 IN1 SUB U2 UDN2585A
R18 10 k
01 2N7000
VCC R17 10 k
02 2N7000
VCC R16 10 k
03 2N7000
C1 m 100 F C2
VCC 28 11
U1 87C752
VDD P3.7 25 P3.6 26 XTAL1P3.5 27 22pF X1 VCC P3.4 1 12 Mhz C3 10 P3.3 R13 XTAL2P3.2 2 22pF C4 10 k 9 P3.1 4 VCC + 5 RST 24 PWM P3.0 10mF 23 22 6 P0.3 T0 21 7 P0.2 INT1 20 8 SDA INT0 17 SCL ADC4 ADC3 16 19 AVCC VREF ADC2 15 C6 ADC1 14 100nF 18 AVSS ADC0 13 12 VSS
1N4148 SW2 CR10 1N4148 CR11 SW3 1N4148 CR12 1N4148 VCC VEE VDD 4 3 2 1 J3 J3 J3 J3
1 J1 4 J1 5 J1 6 J1 2 J1 3 J1 SETPOINT SWITCHING
K1 TQ2E-5V
05 2N7000 R14 10k VCC +8 VOLTS VCC +8 VOLTS U7 +8 VOLTS R11 4NB5 GROUND220 6 1 5 2 J2 1 4 3 J2 2
R12 4,7k
SPEEDMETER INPUT
129
130
II - Reprsentation des fonctions logiques.............................................................................. 23 III - Fonctions lmentaires. .................................................................................................. 24 III-1) Fonction d'une variable ..................................................................................... 24 III-2) Fonction de deux variables : f(a,b) ................................................................... 24 IV - Exercice : les 16 fonctions F(a,b) .................................................................................... 26 TD 2 - Les fonctions Boolennes........................................................................................................ 27 I - Dfinitions. ........................................................................................................................ 27 II - Les reprsentations. ......................................................................................................... 27 III - Exercices. ....................................................................................................................... 28 TD 3 - Simplification des fonctions logiques....................................................................................... 29 I - Tableaux de Karnaugh. ..................................................................................................... 29 II - Mthodes algbriques. ..................................................................................................... 30 II-1) Emploi des thormes de l'algbre de Boole :.................................................... 30 II-2) Mthode du consensus....................................................................................... 31 III - Exercices. ....................................................................................................................... 31 TD4 - Ralisation des circuits............................................................................................................. 32 I - Synthse avec la structure ET/OU..................................................................................... 32 II - Synthse ET-Non. ......................................................................................................... 32 III - Portes ET-Non limites par le nombre d'entre................................................................ 33 IV - Synthse avec la structure OU/ET. ................................................................................. 33 V - Synthse OU-Non. ........................................................................................................ 33 VI - Portes OU-Non limites par le nombre d'entre. ............................................................. 34 VII - Optimisations. ................................................................................................................ 34 VIII - Exercices ...................................................................................................................... 35 TD 5 - Mthode du SI-ALORS............................................................................................................ 36 I - Prsentation du tableau SI-ALORS ................................................................................... 36 I-1) Table de vrit.................................................................................................... 36 I-2) Tableau SI-ALORS ............................................................................................. 36 II - Exemples. ........................................................................................................................ 36 III - Tables SI-ALORS et le langage ABEL............................................................................. 37 IV - Exercices. ....................................................................................................................... 38 Devoir surveill n1 d'informatique industrielle................................................................................... 40 Cours 5 - Circuits de transcodage. ..................................................................................................... 42 I - Ralisation d'un circuit de transcodage.............................................................................. 42 II - Circuits existants. ............................................................................................................. 42 Cours 6 - Multiplexage - Demultiplexage............................................................................................ 44 I - Dfinitions. ........................................................................................................................ 44 II - Application particulires.................................................................................................... 45 Cour 7 - Paramtres lectriques et temporels. ................................................................................... 46 I - Familles et sous familles. .................................................................................................. 46 I-1) TTL. .................................................................................................................... 46 I-2) ECL .................................................................................................................... 46 I-3) CMOS................................................................................................................. 46 II - Paramtres lectriques..................................................................................................... 46 II-1) Niveaux d'entre et de sortie.............................................................................. 46 II-2) Immunit aux bruits ........................................................................................... 47 II-3) Courants de sortie et d'entre............................................................................. 47 II-4) Courant de court-circuit...................................................................................... 47 III - Paramtres temporels. .................................................................................................... 48 IV - Exercices. ....................................................................................................................... 48 Cours 8 - Portes collecteur ouvert, trois tats, trigger de schmitt. ....................................................... 49 I - Portes sortie collecteur ouvert. ....................................................................................... 49 II - Porte sortie 3 tats. ....................................................................................................... 49 III - Portes entres trigger de schmitt. ................................................................................. 50 TD 6 - La fonction mmoire. .............................................................................................................. 51 I - Mmoire RS. ..................................................................................................................... 51 I-1) Principe de fonctionnement................................................................................. 51 I-2) Exemples de bistable RS. ................................................................................... 51 I-3) Mthodes d'tudes. ............................................................................................. 51 II - La mmoire D. ................................................................................................................. 51
131
III - La mmoire RST. ............................................................................................................ 52 IV - Exercices. ....................................................................................................................... 52 TD 7 - Les bascules. .......................................................................................................................... 53 I - Fonction bascule. .............................................................................................................. 53 II - Comptage. ....................................................................................................................... 53 III - Les diffrentes bascules. ................................................................................................. 53 IV - Bascule JK...................................................................................................................... 53 V - Bascule T......................................................................................................................... 54 VI - Bascule D. ...................................................................................................................... 54 VII - Exercices ....................................................................................................................... 55 TD 8 - Les registres............................................................................................................................ 57 I - Registres ........................................................................................................................... 57 I-1)Dfinitions............................................................................................................ 57 I-2) Structures des registres....................................................................................... 57 I-3) Ecriture d'un mot dans un registre. ...................................................................... 57 I-4) Lecture d'un mot contenu dans un registre. ......................................................... 58 II - Exercices. ........................................................................................................................ 59 TD 9 - Les compteurs synchrones ...................................................................................................... 62 I - Analyse des machines pulses franchissement synchrone. ............................................ 62 I-1) Analyse d'un compteur synchrone de type registre en anneau............................. 62 I-2) Analyse d'un systme ayant plusieurs cycles....................................................... 62 I-3) Gnrateur de chiffres pseudo-alatoires............................................................ 63 I-4) Mthode d'analyse d'un systme quelconque. ..................................................... 63 I-5) Montage avec JK. ............................................................................................... 64 II - Synthse des compteurs synchrones................................................................................ 64 III - Exercices. ....................................................................................................................... 66 IV - Limitation en frquence des compteurs synchrones. ....................................................... 66 V - Initialisation d'un compteur............................................................................................... 67 VI - Forage asynchrone des compteurs synchrones ( rtroaction)....................................... 67 VII - Compteurs et le langage ABEL. ..................................................................................... 68 TD 10 - Compteurs asynchrones....................................................................................................... 70 I - Analyse de circuits existants.............................................................................................. 70 I -1) Prsentation gnrale : le compteur binaire. ...................................................... 70 I-2) Le compteur 7493. .............................................................................................. 70 I-3) Le compteur 7490. .............................................................................................. 70 II - Exercice. .......................................................................................................................... 71 III - Synthse. ........................................................................................................................ 71 Devoir Surveill d'informatique industrielle n2 .................................................................................. 72 TD11 - Le GRAFCET (outil de description) ........................................................................................ 76 I - Systme automatis.......................................................................................................... 76 I-1) Gnralits. ........................................................................................................ 76 I-2) La dmarche de conception d'un systme automatis de production................... 76 II - Description par GRAFCET. .............................................................................................. 76 III - Le GRAFCET ( rgles d'tablissement). .......................................................................... 79 III-1) Etapes. ............................................................................................................. 79 III-2) Transitions. ....................................................................................................... 80 III-3) Graphe des tats............................................................................................... 81 IV - EXERCICES. .................................................................................................................. 82 TD12 - GRAFCET (synthse matrielle non programme)................................................................. 85 I - Voir le GRAFCET comme une description de machine squentielle .................................. 85 II - Gnralits....................................................................................................................... 85 III - Mthode asynchrone ....................................................................................................... 85 IV - Mthodes synchrones ..................................................................................................... 86 IV-1) Mthode d'activation-dsactivation synchrone .................................................. 86 IV-2) Mthode optimise en nombre de bascules ...................................................... 87 V - Exercices ......................................................................................................................... 87 TD 13 - Logique programmable et ABEL............................................................................................ 89 I - Prsentation de la logique programmable.......................................................................... 89 I-1) Les conventions de reprsentation des PALs ...................................................... 89 I-2) Notre GAL 20V8.................................................................................................. 89
132
II - Exercices ......................................................................................................................... 90 IV - COMPLEMENT : PROGRAMMATION D'UN GRAFCET EN ABEL ................................. 94 TD 14 - GRAFCET : Synthse programme. .................................................................................... 95 I - Bien comprendre l'architecture. ......................................................................................... 95 I-1) Mmoires............................................................................................................ 95 I-2) Analyse............................................................................................................... 95 II - Synthse (mmoire plus registre). .................................................................................... 96 III - Synthse compteur plus mmoire. .................................................................................. 97 III-1) Squenceur enchanement squentiel............................................................ 97 III-2) Squenceurs enchanement conditionnel ....................................................... 98 III-3) Squenceur avec branchement inconditionnel .................................................. 99 III-4) Squenceur avec branchement conditionnel ..................................................... 100 IV - Exercice.......................................................................................................................... 100 DS Informatique Industrielle n3 ........................................................................................................ 101 TD 15 - Les oprations arithmtiques................................................................................................. 105 I - Addition binaire. ................................................................................................................ 105 I-1) Principe :............................................................................................................. 105 I- 2) Addition parallle retenue en cascade : ........................................................... 106 II - La soustraction. ................................................................................................................ 107 II-1) Principe (rappel)................................................................................................. 107 II-2) Soustraction parallle par complment vrai........................................................ 107 II-3) Addition/soustraction en complment vrai. ......................................................... 108 III - Exercices - Additionneurs / Soustracteurs........................................................................ 108 TD 16 - Comparaison et multiplication.et calculette............................................................................ 110 I - Comparaison.................................................................................................................... 110 II - Multiplication .................................................................................................................... 110 II-1) Table de multiplication binaire ( un bit)............................................................. 111 II-2) Ralisation d'un multiplieur de deux nombres 3 bits ........................................... 111 II-3) Circuit intgr................................................................................................................. 111 III - Architectures d'une calculette simple............................................................................... 111 IV - Exercices ........................................................................................................................ 112 TD 17 - CEI 1131-3 : Le langage IL et LD .......................................................................................... 113 I - Architecture mmoire plus compteur plus UAL .................................................................. 113 II - Langage IL ....................................................................................................................... 113 II-1) La norme 1131-3 (Extraits choisis) ..................................................................... 113 II -2) Exemple du TSX 37 (Telemecanique)............................................................... 118 II - 3) Programmation de GRAFCETs en langage IL.................................................. 118 IV - Exercices ........................................................................................................................ 119 TD 18 - CEI 1131-3 Langage SFC et ST ............................................................................................ 122 I) Programmation des actions ................................................................................................ 122 I-1) Gnralits sur les actions .................................................................................. 122 I-2) Les diffrentes actions ........................................................................................ 122 I-3) Exemples dtaills de qualificatifs d'action.......................................................... 124 II) Conditions attaches aux transitions.................................................................................. 126 II-1) Convention ST ................................................................................................... 127 II-2) Convention LD ................................................................................................... 127 II-3) Convention IL..................................................................................................... 127 III) Exercices ......................................................................................................................... 128 TABLE DES MATIERES.................................................................................................................... 130
133