Cours de Mr Jbilou

62
1 Fonctions logiques élémentaires II.1 Systèmes binaires et algèbre de Boole Actuellement, alors que les ordinateurs analogiques sont encore du domaine de la recherche, les informations traitées par les systèmes informatiques sont codées sous forme binaire. Un système binaire (signal, circuit, etc…) est un système qui ne peut exister que dans deux états autorisés. Le circuit de la figure 1 est un exemple plus que simpliste de circuit binaire : selon que l'interrupteur S est ouvert ou fermé la tension V 0 ne peut être égale qu'à +5 V ou 0 V. R +5V S V 0 Figure 1 Diverses notations peuvent être utilisées pour représenter ces deux états : numérique : 1 et 0 (bit : bi nary digit ) logique : vrai et faux (true et false) oui et non (yes et no) électronique : ON et OFF haut et bas (HI et LO, H et L, H et B) Pour étudier les fonctions de variables binaires on utilise une algèbre développée au XIX ème siècle par un mathématicien anglais : Georges Boole. Dans ce chapitre nous nous proposons de présenter les fonctions de base de l'algèbre booléenne ainsi que leurs représentations symboliques en électronique. Nous rappellerons également, sans prétendre à la rigueur mathématique, les quelques notions élémentaires nécessaires à l'étude des circuits électroniques. L'algèbre de Boole concerne la logique des systèmes binaires. Une variable booléenne ne peut prendre que deux valeurs possibles 0 ou 1. En électronique les deux états d'une telle variable peuvent être associés à deux niveaux de tension : V(0) et V(1) pour les états 0 et 1 respectivement. On distingue les logiques positive et négative selon que V(1) > V(0) ou

description

Cours

Transcript of Cours de Mr Jbilou

  • 1

    Fonctions logiques lmentaires

    II.1 Systmes binaires et algbre de Boole

    Actuellement, alors que les ordinateurs analogiques sont encore du domaine de la

    recherche, les informations traites par les systmes informatiques sont codes sous forme

    binaire. Un systme binaire (signal, circuit, etc) est un systme qui ne peut exister que dans deux tats autoriss. Le circuit de la figure 1 est un exemple plus que simpliste de circuit binaire :

    selon que l'interrupteur S est ouvert ou ferm la tension V0 ne peut tre gale qu' +5 V ou 0 V.

    R

    +5V

    S

    V0

    Figure 1

    Diverses notations peuvent tre utilises pour reprsenter ces deux tats :

    numrique : 1 et 0 (bit : binary digit)

    logique : vrai et faux (true et false)

    oui et non (yes et no)

    lectronique : ON et OFF

    haut et bas (HI et LO, H et L, H et B)

    Pour tudier les fonctions de variables binaires on utilise une algbre dveloppe au

    XIXme sicle par un mathmaticien anglais : Georges Boole. Dans ce chapitre nous nous

    proposons de prsenter les fonctions de base de l'algbre boolenne ainsi que leurs

    reprsentations symboliques en lectronique. Nous rappellerons galement, sans prtendre la

    rigueur mathmatique, les quelques notions lmentaires ncessaires l'tude des circuits

    lectroniques.

    L'algbre de Boole concerne la logique des systmes binaires. Une variable boolenne ne

    peut prendre que deux valeurs possibles 0 ou 1. En lectronique les deux tats d'une telle variable

    peuvent tre associs deux niveaux de tension : V(0) et V(1) pour les tats 0 et 1

    respectivement. On distingue les logiques positive et ngative selon que V(1) > V(0) ou

  • 2

    V(1) < V(0). Ce que nous pouvons rsumer dans la table suivante donnant la signification logique

    des niveaux physiques :

    Niveau Logique positive Logique ngative

    H 1 0

    L 0 1

    Table 1

    En pratique un niveau est dfini par un domaine en tension ou en courant. Par exemple en

    technologie TTL, un niveau sera dit haut s'il est compris entre +2 V et +5 V et un niveau sera bas

    s'il est infrieur +0.8 V.

    V(1)

    V(0)

    V(1)

    V(0)

    Logique positive Logique ngative

    "0"

    "1" "0"

    "1"

    Figure 2

    II.2 Porte OU (inclusif)

    L'opration OU (OR), encore appele addition logique, a au moins deux entres. La sortie

    d'une fonction OU est dans l'tat 1 si au moins une de ses entres est dans l'tat 1. La fonction

    OU, note +, est reprsente par le symbole indiqu sur la figure 3 et est dfinie par la table de

    vrit suivante :

    A B Y = A + B

    0 0 0

    0 1 1

    1 0 1

    1 1 1

    Table 2

    A

    BY

    Figure 3

    Il est facile de vrifier les proprits suivantes de la fonction OU :

  • 3

    (A + B) + C = A + (B + C) = A + B + C Associativit

    A + B = B + A Commutativit

    A + A = A Idempotence

    A + 0 = A Elment neutre

    A + 1 = 1

    II.3 Porte ET

    L'opration ET (AND), encore dnomme produit logique ou intersection, a au moins

    deux entres. La sortie d'une fonction AND est dans l'tat 1 si et seulement si toutes ses entres

    sont dans l'tat 1. La fonction ET, note , est reprsente par le symbole indiqu sur la figure 4 et est dfinie par la table de vrit suivante :

    A B Y = A B

    0 0 0

    0 1 0

    1 0 0

    1 1 1

    Table 3

    A

    BY

    Figure 4

    Il est facile de vrifier les proprits suivantes de la fonction ET :

    (A B) C = A (B C) = A B C Associativit A B = B A Commutativit A A = A Idempotence A 1 = A Elment neutre A 0 = 0

    D'autre part, les oprations ET et OU sont distributives l'une par rapport l'autre :

    A (B + C) = (A B) + (A C) A + (B C) = (A + B) (A + C)

    II.4 Inverseur : porte NON

  • 4

    L'opration NON (NOT) a une seule entre et une seule sortie. La sortie d'une fonction

    NON prend l'tat 1 si et seulement si son entre est dans l'tat 0. La ngation logique est

    symbolise par un petit cercle dessin l'endroit o une ligne en entre ou en sortie rejoint un

    symbole logique, comme par exemple sur la figure 5. La table 4 donne la table de vrit

    correspondante.

    A Y = A

    0 1

    1 0

    Table 4

    A Y

    Figure 5

    A partir des dfinitions des fonctions NON, OU et ET nous pouvons dduire :

    BABAA0AA

    1AA

    AA

    II.5 Thormes de De Morgan

    De Morgan a exprim deux thormes qui peuvent se rsumer sous la forme suivante :

    ...CBA...CBA

    ...CBA...CBA

    Pour vrifier le premier thorme nous remarquons que si toutes les entres sont 1 les deux

    membres de l'quation sont nuls. Par contre si une au moins des entres est 0 les deux membres

    de l'quation sont gaux 1. Il y a donc galit quels que soient les tats des diverses entres. Le

    second thorme se vrifie de la mme manire : si toutes les entres sont 0 les deux membres

    de l'quation sont 1, par contre si au moins une des entres est 1 les deux expressions sont 0.

    Les thormes de De Morgan montrent qu'une fonction ET peut tre fabrique partir des

    fonctions OU et NON. De mme une fonction OU peut tre obtenue partir des fonctions ET et

    NON. La figure 6 montre la conversion d'une porte OU en porte ET et rciproquement, utilisant

    le fait que :

  • 5

    BABABA

    BABABA

    De mme, partir des thormes de De Morgan nous pouvons montrer qu'une porte ET en

    logique positive fonctionne comme une porte OU en logique ngative et vice versa.

    A+B

    A

    B

    A

    B

    A.B

    A

    B

    A.B

    A

    B

    A+B

    Figure 6

    II.6 Portes NON ET et NON OU

    Une porte NON ET (NAND : NOT AND) est constitue par un inverseur la sortie d'une

    porte ET (fig 7). Une ngation la sortie d'une porte OU constitue une fonction NON OU (NOR :

    NOT OR) symbolise sur la figure 8. Leurs tables de vrit respectives sont donnes par les

    tables 5 et 6 :

    A B BAY A B BAY 0 0 1 0 0 1

    0 1 1 0 1 0

    1 0 1 1 0 0

    1 1 0 1 1 0

    Table 5

    Table 6

    A

    BY

    Figure 7

    A

    BY

    Figure 8

    Comme les transistors qui interviennent comme lments de base des portes sont par

    essence des inverseurs, les portes NAND et NOR sont trs usites dans la ralisation des circuits

    logiques. Grce aux lois de De Morgan il est possible de raliser des systmes logiques avec

    uniquement des portes NAND ou NOR. La figure 9 montre, par exemple, comment les portes

    NOT, OR et AND peuvent tre obtenues partir de portes NOR.

  • 6

    Y=A.B

    A

    B

    A Y=A

    AB

    Y=A+B

    Figure 9

    II.7 Porte OU exclusif

    La sortie d'une fonction OU exclusif (XOR) deux entres est dans l'tat 1 si une entre

    et seulement une est dans l'tat 1. La reprsentation symbolique d'une fonction XOR (note ) est donne sur la figure 10 et sa table de vrit est la suivante :

    A B BAY 0 0 0

    0 1 1

    1 0 1

    1 1 0

    Table 7

    A

    BY

    Figure 10

    Nous pouvons formuler de diverses manires la dfinition prcdente : BAY est gal 1 si et seulement si A = 1 ou B = 1 mais pas simultanment. Ce que nous pouvons crire :

    )BA()BA(BA

    Nous pouvons encore dire BAY est gal 1 si A = 1 et B = 0 ou si B = 1 et A = 0. Soit :

    )AB()BA(BA

    Une fonction XOR fournit un comparateur d'ingalit : BAY ne vaut 1 que si A et B sont diffrents. Si A et B sont gaux 1 ou si A et B sont gaux 0 alors Y = 0. Ce qui s'crit :

    )BA()BA(BA

    La fonction BAYZ correspond un dtecteur d'galit. Nous avons encore la relation suivante qui peut tre dmontre en utilisant les thormes de De Morgan :

  • 7

    )BA()BA(BA

    A ces quatre relations logiques correspondent quatre circuits ralisant la fonction XOR partir de

    portes OR et AND.

    A

    B

    A

    B

    AB

    AB

    Figure 11

    II.8 Porte Trois Etats

    La porte "3 tats", ou tri-state", n'est pas une porte logique au sens strict. Elle est

    principalement utilise pour connecter une sortie sur une ligne commune plusieurs circuits (un

    bus par exemple). Elle remplace gnralement une porte ET. En effet, la mise en parallle sur une

    mme ligne de plusieurs portes ET introduit des capacits parasites. Ceci augmente les constantes

    de temps et a pour effet de dtriorer les fronts de monte et de descente des signaux. Cela peut

    perturber le fonctionnement d'un systme. Une porte 3 tats est schmatise sur la figure

    suivante :

    A Y

    C

    Figure 12

    C A Y sortie

    1 0 0 faible impdance

    1 1 1 faible impdance

    0 X 0 haute impdance

    Table 8

    Lorsque la commande C est 0 l'impdance de sortie est trs grande : pratiquement dconnecte.

    D'autre part, ces portes "3 tats" fournissent une amplification de puissance.

  • 8

    II.9 Rsum des identits boolennes de base

    Il est possible montrer que toute fonction boolenne d'un nombre quelconque de variables

    peut s'crire avec les trois fonctions de base ET, OU et NON. Nous avons rassembl dans la table

    9 les relations de base de l'algbre de Boole qui nous seront utiles par la suite.

    OU (A + B) + C = A + (B + C) = A + B + C

    A + B = B + A

    A + A = A

    A + 0 = A

    A + 1 = 1

    Associativit

    Commutativit

    Idempotence

    Elment neutre

    ET (A B) C = A (B C) = A B C A B = B A A A = A A 1 = A A 0 = 0

    Associativit

    Commutativit

    Idempotence

    Elment neutre

    Distributivit A (B + C) = (A B) + (A C) A + (B C) = (A + B) (A + C)

    NON AA

    1AA

    0AA

    A + (A B) = A A (A + B) = A

    A)BA()BA(

    BA)BA(A

    De Morgan

    ...CBA...CBA

    ...CBA...CBA

    OU exclusif )BA()BA(BA

    )AB()BA(BA

    )BA()BA(BA

    )BA()BA(BA

    Table 9

  • 9

    II.10 Ecritures canoniques d'une fonction logique

    II.10.a Somme canonique de produits

    Considrons trois variables boolennes x, y et z. A partir de ces trois variables nous

    pouvons construire huit produits logiques (ou minterms) Pi=0,7 faisant intervenir x ou x , y ou y

    et z ou z . Pour chacune des huit combinaisons Ci=0,7 (000, 001, 010, etc) des variables x, y et

    z, nous pouvons calculer les valeurs de ces produits. Celles-ci sont rassembles dans la table 10.

    Chacun de ces produits ne prend la valeur 1 que pour une et une seule combinaison : Pi vaut 1

    uniquement pour la combinaison Ci.

    P0 P1 P2 P3 P4 P5 P6 P7

    Ci x y z zyx zyx zyx zyx zyx zyx zyx zyx 0 0 0 0 1 0 0 0 0 0 0 0

    1 0 0 1 0 1 0 0 0 0 0 0

    2 0 1 0 0 0 1 0 0 0 0 0

    3 0 1 1 0 0 0 1 0 0 0 0

    4 1 0 0 0 0 0 0 1 0 0 0

    5 1 0 1 0 0 0 0 0 1 0 0

    6 1 1 0 0 0 0 0 0 0 1 0

    7 1 1 1 0 0 0 0 0 0 0 1

    Table 10

    Pour toute fonction logique de trois variables x, y et z, nous pouvons crire sa table de

    vrit, c'est--dire expliciter sa valeur pour chacune des huit combinaisons Ci. Considrons, par

    exemple, la fonction F dont la table de vrit est donne dans la table 11 :

    Ci x y z F P1 + P3 + P4

    0 0 0 0 0 0

    1 0 0 1 1 1

    2 0 1 0 0 0

    3 0 1 1 1 1

    4 1 0 0 1 1

    5 1 0 1 0 0

    6 1 1 0 0 0

    7 1 1 1 0 0

    Table 11

    Cette fonction F prend la valeur 1 pour la combinaison C1 comme le produit P1, la combinaison

    C3 comme P3 et la combinaison C4 comme P4. La fonction F prenant la valeur 0 pour toutes les

    autres combinaisons comme les produits P1, P3, P4, nous pouvons donc crire que F est gale la

    fonction :

    F = P1 + P3 + P4

  • 10

    Nous pouvons vrifier cette identit dans la table 11. Nous pouvons donc exprimer F en fonction

    des variables x, y et z sous la forme :

    zyxzyxzyxF

    Cette faon, trs gnrale, d'crire une fonction boolenne est appele somme canonique de

    produits.

    II.10.b Produit canonique de sommes

    Soient encore trois variables binaires x, y et z. Nous pouvons dfinir huit sommes

    logiques des trois variables faisant intervenir x ou x , y ou y et z ou z . La table 12 donne les

    tables de vrit de ces sommes. Nous constatons que chacune de ces fonctions ne prend la valeur

    0 que pour une et une seule combinaison.

    S0 S1 S2 S3 S4 S5 S6 S7

    Ci x y z zyx zyx zyx zyx zyx zyx zyx zyx

    0 0 0 0 0 1 1 1 1 1 1 1

    1 0 0 1 1 0 1 1 1 1 1 1

    2 0 1 0 1 1 0 1 1 1 1 1

    3 0 1 1 1 1 1 0 1 1 1 1

    4 1 0 0 1 1 1 1 0 1 1 1

    5 1 0 1 1 1 1 1 1 0 1 1

    6 1 1 0 1 1 1 1 1 1 0 1

    7 1 1 1 1 1 1 1 1 1 1 0

    Table 12

    Reprenons l'exemple prcdent de la fonction F. Celle-ci vaut 0 pour les combinaisons

    C0, C2, C5, C6 et C7 en mme temps que S0, S2, S5, S6 et S7. La fonction F peut donc tre vue

    comme le produit logique de ces cinq sommes, ce qui est vrifi dans la table 13. Nous pouvons

    donc exprimer la fonction F sous la forme suivante :

    )zyx()zyx()zyx()zyx()zyx(F

    Cette criture est appele produit canonique de sommes. Celle-ci est moins utilise que la somme

    canonique de produits.

    Ci x y z F S0 S2 S5 S6 S7

    0 0 0 0 0 0

    1 0 0 1 1 1

    2 0 1 0 0 0

    3 0 1 1 1 1

    4 1 0 0 1 1

    5 1 0 1 0 0

    6 1 1 0 0 0

  • 11

    7 1 1 1 0 0

    Table 13

    II.11 Simplification de l'criture des fonctions logiques

    II.11.a Simplification algbrique

    Simplifier une expression boolenne c'est lui trouver une forme plus condense, faisant

    intervenir moins d'oprateurs et conduisant une ralisation matrielle plus compacte. On peut

    simplifier une fonction par manipulation algbrique en utilisant par exemple les relations

    rassembles dans la table 9. Considrons la fonction F dfinie par la table de vrit suivante :

    x y z F

    0 0 0 0

    0 0 1 0

    0 1 0 0

    0 1 1 1

    1 0 0 0

    1 0 1 1

    1 1 0 1

    1 1 1 1

    Table 14

    Nous en dduisons sa forme canonique somme de produits :

    zyxzyxzyxzyxF

    Nous pouvons crire :

    xzzyyx

    )zz(yx)yy(zx)xx(zy

    )zyxzyx()zyxzyx()zyxzyx(

    zyxzyxzyxzyxF

    Cependant cette mthode, qui demande astuce et chance, n'est pas toujours trs aise mettre en

    uvre. Nous allons maintenant dcrire une mthode graphique trs utile pour un nombre de variables infrieur 6.

    II.11.b Tableaux de Karnaugh

    La mthode de simplification de Karnaugh repose sur l'identit :

  • 12

    A)BB(A)BA()BA(

    Elle est base sur l'inspection visuelle de tableaux disposs de faon telle que les cases adjacentes

    en ligne et en colonne ne diffrent que par l'tat d'une variable et une seule.

    Si une fonction dpend de n variables il y a 2n produits possibles. Chacun de ces produits

    est reprsent par une case dans un tableau. Les figures suivantes donnent la structure des

    tableaux de Karnaugh pour 2, 3, 4 et 5 variables. Pour 5 variables, deux reprsentations sont

    possibles. Le tableau de Karnaugh peut tre traits comme deux tableaux 4x4 superposs (fig. 15)

    ou un seul tableau de 4x8 (fig. 16). Observez comment sont numrotes les lignes et les

    colonnes : d'une case sa voisine une seule variable change d'tat.

    0 1

    0

    1

    xy

    Tableau 2 variables

    Figure 13

    xyz 00 01 11 10

    0

    1

    Tableau 3 variables

    Figure 14

    xyzt 00 01 11 10

    00

    01

    11

    10

    Tableau 4 variables

  • 13

    00

    01

    11

    10

    00 01 11 10ztxy

    00

    01

    11

    10

    00 01 11 10ztxy

    u0 1

    Tableau 5 variables

    Figure 16

    xyztu 000 001 011 010 110 111 101 100

    00

    01

    11

    10

    Tableau 5 variables

    Figure 17

    Chaque case d'un tableau correspond au seul minterm prenant la valeur 1 pour la combinaison

    identifie par la ligne et la colonne. Par exemple les trois cases colories dans les tableaux de la

    figure 18 correspondent respectivement aux produits suivants :

    tzyxettzyx,tzyx

    Il faut comprendre chaque ligne et chaque colonne comme une structure cyclique continue :

    chaque case a toujours quatre voisins qu'il faut ventuellement chercher l'autre extrmit de la

    ligne ou de la colonne. Les tableaux de la figure 18 illustrent ce concept, les croix y matrialisent

    les voisins des cases colories :

  • 14

    00

    01

    11

    10

    00 01 11 10ztxy

    00

    01

    11

    10

    00 01 11 10ztxy

    00

    01

    11

    10

    00 01 11 10ztxy

    Figure 18

    Dans le cas de la reprsentation en deux tableaux superposs chaque case a cinq voisins :

    les quatre dans le mme plan et une dans l'autre plan.

    Le passage de la table de vrit au tableau de Karnaugh consiste remplir chaque case

    avec la valeur de la fonction pour le produit correspondant. Il est possible de n'indiquer que les 1.

    La mthode de simplification de Karnaugh consiste rassembler les cases adjacentes

    contenant des 1 par groupes de 2, 4 ou 8 termes. Considrons en effet le groupement vertical de

    deux cases, en rouge, de la figure 19. Il correspond la somme de deux termes :

    tyxtyxG

    Il est possible de factoriser le produit x y :

    yx)tt(yxG

    La variable t qui prend les deux valeurs 0 et 1 dans le groupement disparat. Il ne reste que le

    produit des variables x et y, qui gardent ici la valeur 1.

    Dans un groupement de deux termes on limine donc la variable qui change d'tat et on

    conserve le produit des variables qui ne changent pas. Dans un groupement de quatre on limine

    les deux variables qui changent d'tat. Dans un groupement de huit on limine trois variables,

    etc

    On cherche avoir le minimum de groupements, chaque groupement rassemblant le

    maximum de termes. Une mme case peut intervenir dans plusieurs groupements car C + C = C.

    C'est le cas de la case jaune sur la figure 19.

    Pour les cases isoles on ne peut liminer aucune variable. On conserve donc le produit

    caractrisant la case. L'expression logique finale est la runion des groupements aprs limination

    des variables qui changent d'tat.

    Reprenons l'exemple de la fonction F dfinie par la table de vrit 14. La figure 19 donne

    le tableau de Karnaugh correspondant :

  • 15

    xyt

    0

    1

    00 01 11 10

    11

    1

    1 xt

    yt

    xy

    Figure 19

    Nous y observons trois groupements de deux termes, nous pouvons crire pour la fonction :

    xzzyyxF

    Nous retrouvons le rsultat prcdent.

    Considrons une autre fonction F de quatre variables x, y, z et t dfinie par la table 15. La

    figure 20 donne le tableau de Karnaugh quivalent. Sur cette figure nous avons galement

    matrialis les trois groupements possibles : deux groupements de quatre termes, dont un

    contenant les quatre coins, et un groupement de deux termes. Cette mthode nous permettent

    d'crire :

    tzytyyxF

    x y z t F

    0 0 0 0 1

    0 0 0 1 0

    0 0 1 0 1

    0 0 1 1 0

    0 1 0 0 0

    0 1 0 1 1

    0 1 1 0 0

    0 1 1 1 0

    1 0 0 0 1

    1 0 0 1 1

    1 0 1 0 1

    1 0 1 1 1

    1 1 0 0 0

    1 1 0 1 1

    1 1 1 0 0

    1 1 1 1 0

    Table 15

  • 16

    00 01 11 10

    00

    01

    11

    10

    xyzt

    1

    1

    1

    1

    1

    1 1

    1

    Figure 20

    Logique combinatoire

    Dans ce chapitre nous nous intressons une famille de circuits logiques pour lesquels la

    sortie dpend uniquement des tats des entres.

    III.1 Addition binaire

    III.1.a Demi-additionneur

    Addition et soustraction sont deux oprations arithmtiques de base. Commenons par

    l'addition de deux nombres binaires, la soustraction sera tudie dans le prochain paragraphe. En

    base 2 l'addition de deux bits s'crit :

    1011

    0101

    0110

    0000

    Comme en dcimal, nous devons donc tenir compte d'une ventuelle retenue (carry). La figure 1

    montre la dcomposition de l'addition de deux nombres binaires de quatre bits.

    a3 a aa 012

    bb bb3 2 1 0

    s3 2 1 0s ss

    r3 2 1 0r rr

    nombre A

    nombre B

    somme : S = A + B

    retenues

    +

    Figure 1

  • 17

    L'addition des deux bits de bas poids (LSB : Least Significant Bit) a0 et b0, donne un rsultat

    partiel s0 et une retenue r0. On forme ensuite la somme des deux bits a1 et b1 et de la retenue r0.

    Nous obtenons un rsultat partiel s1 et une retenue r1. Et ainsi de suite, nous obtenons un rsultat

    sur quatre bits S et une retenue r3.

    Considrons la cellule symbolise sur la figure 2, comptant deux entres A et B les deux bits

    sommer et deux sorties D le rsultat de la somme et C la retenue.

    A B

    HA

    C D

    Figure 2

    Ce circuit, qui permettrait d'effectuer l'addition des deux bits de plus bas poids est appel demi-

    additionneur (Half-Adder). Ecrivons la table de vrit de celui-ci :

    A B C D

    0 0 0 0

    0 1 0 1

    1 0 0 1

    1 1 1 1

    Table 1

    Si nous crivons ces deux fonctions sous leur forme canonique il vient :

    BAC

    BABAD

    Nous reconnaissons pour la sortie D une fonction OU exclusif, donc :

    BAC

    BAD

    Ce qui peut tre ralis par le circuit schmatis sur le logigramme de la figure 3.

  • 18

    A

    BD

    C

    Figure 3

    III.1.b Additionneur

    Il faut en fait tenir compte de la retenue des bits de poids infrieurs, un circuit

    additionneur doit donc comporter trois entres et deux sorties, comme reprsent sur la figure 4.

    A B

    FA

    CS

    R

    Figure 4

    Ce serait possible en combinant deux demi-additionneurs comme prsent par la figure 5. En

    pratique pour minimiser le nombre de composants, ou de portes dans un circuit intgr, un tel

    additionneur est ralis directement.

    HA

    HAC2

    C

    S

    1

    1

    R

    A

    B

    S

    C

    Figure 5

    Les entres A et B reprsentent les bits additionner et R le report de la retenue de l'addition des

    bits de poids infrieurs. La sortie S reprsente le rsultat de la somme et C la retenue. La table de

    vrit de ce circuit est la suivante :

  • 19

    A B R S C

    0 0 0 0 0

    0 0 1 1 0

    0 1 0 1 0

    0 1 1 0 1

    1 0 0 1 0

    1 0 1 0 1

    1 1 0 0 1

    1 1 1 1 1

    Table 2

    A partir de cette table nous pouvons crire pour S et C les expressions boolennes suivantes :

    RBARBARBARBAC

    RBARBARBARBAS

    Nous pouvons simplifier l'expression de C en utilisant un tableau de Karnaugh :

    ABR 00 01 11 10

    0

    1 1 1

    1

    1

    Figure 6

    Nous en dduisons :

    C = A B + A R + B R

    Le bit de carry est gal 1 si au moins deux des entres sont 1. D'autre part, nous pouvons

    remarquer qu'intervertir les 0 et les 1 dans la table 2 revient permuter les lignes 1 et 8, 2 et 7, 3

    et 6, 4 et 5. La table de vrit reste globalement invariante par inversion des entres et des sorties,

    nous avons donc :

    RBRABAC

    A partir de cette relation, nous pouvons crire :

    RBACR

    RBARBARBAC)RBA(RBACB

    RBACA

  • 20

    Ce qui nous permet de rcrire l'expression de S :

    RBAC)RBA(S

    La figure 7 donne un exemple de ralisation d'un additionneur 1 bit bas sur deux portes AOI

    (AND OR INVERT), c'est--dire un ensemble de portes ET suivies d'une porte NON-OU.

    A B R

    S

    C

    Figure 7

    III.1.c Addition en parallle

    L'addition de nombres comptant plusieurs bits peut se faire en srie (bit aprs bit) ou en

    parallle (tous les bits simultanment). La figure 8 montre l'exemple d'un additionneur 4 bits

    comptant quatre "Full Adders", comparables celui schmatis figure 7, monts en parallle ou

    en cascade. Chaque additionneur FAi est affect l'addition des bits de poids i. L'entre

    correspondant au report de retenue pour FA0 est impose 0 (en logique positive). La retenue

    finale C indique un dpassement de capacit si elle est gale 1. Le temps d'tablissement du

    rsultat correspondant au temps de propagation des retenues au travers des diverses cellules. Si t

    est le temps rponse d'une cellule, la sortie S0 et la retenue R0 sont valables aprs un retard t, la

    sortie S1 et la retenue R1 ne sont correctes qu'aprs un retard 2 t, et ainsi de suite. La figure 9 prsente un exemple de ralisation logique d'un additionneur de deux mots de 2 bits.

  • 21

    A B

    FA

    C S

    3

    3 3

    3

    FA 2 FA 1 FA 0

    A AA2 1 0B BB2 1 0

    S SS 012

    Figure 8

    RA B0 0 A1 1B

    S0 S1

    C1

    Figure 9

    III.1.d Addition squentielle

    Dans un additionneur squentiel chacun des nombres A et B est reprsent par un train

    d'impulsions (figure 10) synchrones par rapport un signal d'horloge. L'ordre chronologique

    d'arrive des impulsions correspond l'ordre croissant des poids : le bit le moins significatif se

    prsentant le premier. Ces impulsions sont injectes sur les deux lignes d'entre d'un additionneur

    (figure 11). A chaque cycle d'horloge, la retenue provenant des bits de poids infrieurs doit tre

    mmorise (par exemple, l'aide d'une bascule D qui sera tudie dans le chapitre suivant).

  • 22

    Un additionneur parallle est plus rapide mais ncessite plus de composants.

    A = 01101

    B = 01011

    D = 11000

    LSB

    20

    2 2 222 3 41 t

    Figure 10

    A B

    FA

    CS

    R

    TD

    Figure 11

    III.2 Soustraction

    III.2.a Demi-soustracteur

    La table de vrit pour un demi-soustracteur (ne tenant pas compte d'une ventuelle

    retenue provenant des bits de poids infrieurs) est la suivante :

    A B D C

    0 0 0 0

    0 1 1 1

    1 0 1 0

    1 1 0 0

    Table 3

  • 23

    O D reprsente le rsultat de la soustraction A B et C la retenue. Nous en dduisons les expressions logiques dfinissant D et C :

    BAC

    BABABAD

    et le schma correspondant :

    A

    BD

    C

    Figure 12

    Nous pourrions maintenant tudier un soustracteur prenant en compte la retenue. Nous

    allons plutt tirer parti de certaines proprits de la numration binaire pour traiter de la mme

    manire l'addition et la soustraction.

    III.2.b Additionneur-soustracteur

    Nous savons qu'avec un mot de n bits nous pouvons reprsenter un entier positif dont la

    valeur est comprise entre 0 et 2n 1. Le complmentaire d'un mot de n bits est obtenu entre prenant le complment de chacun des n bits. Ainsi, si nous sommons un nombre et son

    complment nous obtenons un mot dont tous les bits sont 1. C'est--dire :

    12AA n

    Attention : dans ce paragraphe le signe + reprsente l'opration addition et non la fonction logique

    OU. Nous pouvons encore crire :

    n21AA

    Mais sur n bits l'entier 2n est identique 0 :

    )bitsn(02n

    C'est--dire qu'il est possible dcrire un nombre entier ngatif comme le "complment 2" de sa valeur absolue :

    1AA

    Nous reviendrons sur les divers codages des entiers signs plus tard. Nous pouvons utiliser cette

    proprit pour crire la soustraction de deux mots de n bits sous la forme suivante :

    )bitsn(1BA21BABA n

  • 24

    Ce rsultat conduit au schma de principe prsent sur la figure 13 combinant les fonctions

    addition et soustraction. Celui-ci est bas sur l'emploi d'un additionneur n bits et d'un

    multiplexeur deux lignes d'entre. Nous tudierons ce type de circuit un peu plus loin dans ce

    chapitre. Selon le code opration O (0 pour une addition et 1 pour une soustraction) ce

    multiplexeur permet de slectionner une des deux entres, B ou son complmentaire. Le code

    opration est galement inject sur l'entre report de retenue de l'additionneur. Pour simplifier le

    schma et viter de reprsenter n lignes de connexion parallles, on ne matrialise qu'une seule

    ligne. Celle-ci est barre et accompagne d'une valeur qui indique le nombre rel de connexions.

    n

    n

    n

    n

    n

    n1

    0

    C

    DA

    B

    O

    A

    D

    D

    Figure 13

    III.3 Comparaison

    On rencontre trs souvent la ncessit de comparer deux entiers (A = B, A > B ou A < B).

    Ecrivons la table de vrit correspondant ces trois fonctions de comparaison de 2 bits. La

    fonction C doit tre gale 1 si et seulement si A > B, la fonction D si et seulement si A < B et la

    fonction E si et seulement si A = B. Ce qui nous donne :

    A B C (A > B) D (A < B) E (A = B)

    0 0 0 0 1

    0 1 0 1 0

    1 0 1 0 0

    1 1 0 0 1

    Table 5

    Nous en dduisons les expressions logiques de C, D et E :

    DCBABABAE

    BAD

    BAC

  • 25

    La figure 14 prsente le diagramme d'un bloc logique comparant deux bits A et B.

    AB

    C

    E

    D

    Figure 14

    III.4 Contrle de parit

    La parit d'un mot binaire est dfinie comme la parit de la somme des bits, soit encore :

    - parit paire (ou 0) : nombre pair de 1 dans le mot;

    - parit impaire (ou 1) : nombre impair de 1 dans le mot.

    La fonction OU-exclusif donne la parit d'un sous-ensemble de deux bits. Le contrle de parit

    est bas sur la constatation que le mot de n+1 bits form en adjoignant un mot de n bits son bit

    de parit est toujours de parit 0. La figure 15 reprsente le diagramme logique d'un gnrateur-

    contrleur de parit pour 4 bits. Si l'entre P' est impose 0 ce circuit fonctionne comme

    gnrateur de parit : la sortie P reprsente la parit du mot compos par les bits A, B, C et D.

    P

    AB

    C

    D

    P'

    Figure 15

    Le contrle de la parit est utilis, par exemple, pour augmenter la fiabilit d'un systme

    de transmission ou de stockage de donnes. La figure 16 montre l'utilisation du circuit prcdent

    en gnrateur de parit du ct de l'mission et contrleur de parit du ct de la rception. La

    sortie P2 doit tre 0 pour chaque mot transmis, sinon cela indique un problme de transmission.

    Emetteur

    A

    C

    D

    P'

    PB

    Rcepteur

    A

    C

    D

    P'

    PB

    P2

    Figure 16

  • 26

    Remarquons cependant que la parit ne permet de dtecter qu'un nombre impair de bits en

    erreur dans un mot. Par ailleurs il ne permet pas corriger les erreurs dtectes. Pour ce faire il faut

    utiliser des codes correcteurs d'erreur qui ncessitent plusieurs bits supplmentaires.

    III.5 Dcodage

    Dans un systme numrique les instructions, tout comme les nombres, sont transportes

    sous forme de mots binaires. Par exemple un mot de 4 bits peut permettre d'identifier 16

    instructions diffrentes : l'information est code. Trs souvent l'quivalent d'un commutateur 16

    positions permet de slectionner l'instruction correspondant un code. Ce processus est appel

    dcodage. La fonction de dcodage consiste faire correspondre un code prsent en entre sur n

    lignes une seule sortie active parmi les N = 2n sorties possibles. A titre d'exemple, nous allons

    tudier le dcodage de la reprsentation DCB des nombres.

    III.5.a Reprsentation DCB (Dcimale Code Binaire)

    Le code DCB (ou en anglais BCD : Binary Coded Decimal) transforme les nombres

    dcimaux en remplaant chacun des chiffres dcimaux par 4 chiffres binaires. Cette

    reprsentation conserve donc la structure dcimale : units, dizaines, centaines, milliers, etc Chaque chiffre est cod sur 4 bits selon le code de la table 6 :

    Dcimal DCB

    0 0000

    1 0001

    2 0010

    3 0011

    4 0100

    5 0101

    6 0110

    7 0111

    8 1000

    9 1001

    Table 6

    Par exemple le nombre dcimal 294 sera cod en DCB : 0010 1001 0100. Ce type de codage

    permet, par exemple, de faciliter l'affichage en dcimal du contenu d'un compteur. Pour ce faire

    on peut utiliser des tubes de Nixie, contenant 10 cathodes ayant chacune la forme d'un chiffre

    (fig. 17) ou des afficheurs lumineux sept segment (fig. 18).

  • 27

    centaines

    dcodeur

    4

    10

    dizaines

    4

    units

    4

    Nixie

    10

    Nixie

    10

    Nixie

    dcodeur dcodeur

    Figure 17

    La fonction de chaque dcodeur est d'activer une des dix lignes en sortie et une seule en

    fonction du code prsent sur les quatre entres. Par exemple, si ce code est gal 5, la 6me

    ligne

    de sortie est mise dans l'tat 1 et le chiffre 5 est affich par le tube de Nixie.

    centaines

    transcodeur

    4

    7

    dizaines

    transcodeur

    4

    7

    units

    transcodeur

    4

    7

    Figure 18

    La fonction de chacun des transcodeurs est de positionner 1 les lignes de sortie

    correspondant aux segments allumer selon de code port par les quatre lignes d'entre. De

    manire gnrale, un transcodeur fait correspondre un code A en entre sur n lignes, un code B

    en sortie sur m lignes.

    III.5.b Dcodeur DCB-dcimal

    Nous allons tudier l'exemple d'un dcodeur DCB-dcimal. La table de vrit de ce

    dcodeur est trs simple :

  • 28

    D C B A L0 L1 L2 L3 L4 L5 L6 L7 L8 L9

    0 0 0 0 1

    0 0 0 1 1

    0 0 1 0 1

    0 0 1 1 1

    0 1 0 0 1

    0 1 0 1 1

    0 1 1 0 1

    0 1 1 1 1

    1 0 0 0 1

    1 0 0 1 1

    Table 7

    A chacune des lignes de sortie nous pouvons associer un produit prenant en compte

    chacune des quatre entres ou leur complment. Ainsi la ligne 5 correspond :

    DCBA

    D'autre part, on souhaite souvent n'activer les lignes de sortie qu'en prsence d'un signal

    de commande global (strobe ou enable). Ce signal S est mis en concidence sur chacune des dix

    portes de sortie. Dans l'exemple suivant, si S est dans l'tat 0 le dcodeur est bloqu et tous les

    sorties sont galement dans l'tat 0.

    0

    1

    8

    9

    S A B C D

    Figure 19

    III.6 Multiplexage

    Le multiplexage est un dispositif qui permet de transmettre sur une seule ligne des

    informations en provenance de plusieurs sources ou destination de plusieurs cibles. La figure 20

  • 29

    en prsente une analogie mcanique avec deux commutateurs plusieurs positions. Choisir une

    ligne revient dfinir l'angle du levier ou une adresse.

    multiplexeur dmultiplexeur

    Figure 20

    III.6.a Dmultiplexeur

    Un dmultiplexeur est un circuit comptant une entre et N sorties et qui met en relation

    cette entre avec une sortie et une seule. Pour pouvoir slectionner cette sortie il faut galement

    des lignes d'adressage : le code port par ces lignes identifie la ligne de sortie utiliser. Ce circuit

    est trs proche d'un dcodeur. Considrons un dmultiplexeur avec quatre lignes de sortie. Il faut

    deux lignes d'adresse. Supposons que nous souhaitons galement valider les donnes avec un

    signal de contrle E (pour laisser par exemple le temps aux niveaux d'entre de se stabiliser). Par

    convention nous choisissons de prendre en compte les donnes pour E = 0.

    E B A Y0 Y1 Y2 Y3 Produit

    0 0 0 D 0 0 0 DEBA

    0 0 1 0 D 0 0 DEBA

    0 1 0 0 0 D 0 DEBA

    0 1 1 0 0 0 D DEBA

    1 0 0 0 0 0 0

    1 0 1 0 0 0 0

    1 1 0 0 0 0 0

    1 1 1 0 0 0 0

    Table 8

    De cette table nous dduisons le logigramme suivant :

  • 30

    0

    1

    2

    3

    A B

    D

    E

    D : donnesE : enable

    (A, B) : adresse

    Figure 21

    Il existe sous forme de circuits intgrs des dmultiplexeurs avec 2, 4 ou 16 lignes de

    sortie. Pour constituer des dmultiplexeurs d'ordre suprieur on peut tre amen cascader des

    dmultiplexeurs. Par exemple un dmultiplexeur avec 32 sorties peut tre ralis avec un "tronc"

    de 4 sorties et 4 "branches" de 8 sorties :

    0

    7

    0

    7

    0

    7

    0

    7

    S

    E D

    C B AA B C D E : adresse

    S : donnes

    Figure 22

  • 31

    III.6.b Multiplexeur

    Un multiplexeur, ralise l'opration inverse. Il slectionne une entre parmi N et transmet

    l'information porte par cette ligne un seul canal de sortie. Considrons un multiplexeur

    quatre entres, donc deux lignes d'adressage, et une ligne de validation. La table de vrit de ce

    circuit est donne par la table 9. De cette table nous dduisons une expression logique pour la

    sortie :

    3210 XEBAXEBAXEBAXEBAY

    Cette expression correspond au schma prsent sur la figure 23.

    E B A Y

    0 0 0 X0

    0 0 1 X1

    0 1 0 X2

    0 1 1 X3

    1 0 0 0

    1 0 1 0

    1 1 0 0

    1 1 1 0

    Table 9

    Y

    X

    X

    X

    X

    0

    2

    3

    1

    E A B

    Figure 23

  • 32

    Tout comme pour les dmultiplexeurs on peut cascader plusieurs multiplexeurs pour

    obtenir un multiplexeur d'ordre suprieur. La figure 24 montre comment un multiplexeur 32

    entres peut tre ralis partir de quatre multiplexeurs 8 entres et d'un multiplexeur 4

    entres.

    Y

    ED

    A B C

    24

    31

    16

    23

    8

    15

    0

    7

    A B C D E : adresse

    Y : sortie

    Figure 24

    III.6.c Conversion parallle-srie

    Considrons un mot de n bits (par exemple 4) prsent en parallle sur les entres d'un

    multiplexeur :

    - X0 bit correspondant 20;

    - X1 bit correspondant 21;

    - X2 bit correspondant 22;

    - X3 bit correspondant 23.

    Supposons que les lignes d'adresse A et B soient connectes aux sorties d'un compteur de priode

    T, nous aurons en fonction du temps :

  • 33

    t B A Y

    [0,T] 0 0 X0

    [T,2T] 0 1 X1

    [2T,3T] 1 0 X2

    [3T,4T] 1 1 X3

    [4T,5T] 0 0 X0

    Table 10

    Les bits X0, X1, X2 et X3 se retrouvent en srie dans le temps sur la sortie Y du multiplexeur.

    III.7 Encodage

    Nous venons d'tudier le principe du dcodage, passons l'opration inverse ou encodage.

    Un encodeur est un systme qui comporte N lignes d'entre et n lignes de sortie. Lorsquune des lignes d'entre est active l'encodeur fournit en sortie un mot de n bits correspondant au codage

    de l'information identifie par la ligne active.

    Considrons un encodeur transformant un nombre dcimal en son quivalent en code

    DCB. Il comportera donc 10 entres (0 9) et 4 sorties. Nous pouvons par exemple imaginer que

    chacune des dix lignes d'entre peut tre relie une touche d'un clavier. La table 11 correspond

    la table de vrit de cet encodeur. A partir de cette table nous pouvons crire les expressions

    logiques dfinissant les sorties partir des entres.

    W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 Y3 Y2 Y1 Y0

    1 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 1 0 0 0 0 0 0 0 0 0 0 0 1

    0 0 1 0 0 0 0 0 0 0 0 0 1 0

    0 0 0 1 0 0 0 0 0 0 0 0 1 1

    0 0 0 0 1 0 0 0 0 0 0 1 0 0

    0 0 0 0 0 1 0 0 0 0 0 1 0 1

    0 0 0 0 0 0 1 0 0 0 0 1 1 0

    0 0 0 0 0 0 0 1 0 0 0 1 1 1

    0 0 0 0 0 0 0 0 1 0 1 0 0 0

    0 0 0 0 0 0 0 0 0 1 1 0 0 1

    Table 11

    983

    76542

    76321

    975310

    WWY

    WWWWY

    WWWWY

    WWWWWY

  • 34

    En effet Y0 est gal 1 quand la ligne W1 est dans l'tat 1, ou la ligne W3, ou la ligne W5, ou la

    ligne W7, ou la ligne W9. La ligne Y0 est nulle dans tous les autres cas. Il est possible de raliser

    ces fonctions OU avec des diodes selon le montage de la figure suivante :

    Y Y Y Y0123

    +

    -5 V

    W9

    W

    W

    W

    W

    W

    W

    7

    6

    5

    4

    3

    8

    0

    1

    2

    W

    W

    W

    Figure 25

    En effet considrons le circuit de la figure 26 :

    A

    B S

    DA

    DB

    Figure 26

    A B S

    0 0 DA et DB bloques 0

    +V 0 DA passante/DB bloque +V

    0 +V DA bloque/DB passante +V

    +V +V DA et DB passantes +V

  • 35

    Si nous traduisons la signification logique des niveaux haut et bas en logique positive, au circuit

    de la figure 26 correspond la table de vrit 12. La fonction ralise est donc un OU inclusif.

    A B S

    0 0 0

    0 1 1

    1 0 1

    1 1 1

    Table 12

    La figure 25 reprsente un exemple de ralisation dun encodeur DCB ralis avec des diodes. Le bon fonctionnement de ce codeur suppose qu'une seule ligne d'entre peut tre dans

    l'tat 1.

    Par contre, si plusieurs entres sont actives simultanment le rsultat pourra ne pas avoir

    de signification. Par exemple, si les deux lignes W7 et W8 sont dans l'tat 1 (frappe simultane

    des deux touches), il en sera de mme pour les quatre sorties. Pour viter ce problme on utilise

    un encodeur prioritaire. Pour ce type de circuit si plusieurs lignes d'entre sont actives

    simultanment le rsultat correspondant une seule parmi celles-ci est affich en sortie. La rgle

    peut tre, par exemple, de mettre en sortie le code correspondant la ligne d'entre d'indice le

    plus lev. Par exemple, si W7 et W8 sont dans l'tat 1 l'encodeur prioritaire donne en sortie le

    code correspondant W8. La table de vrit correspondant ce choix est donne par la table 13.

    Chaque croix indique que le code en sortie doit tre indpendant de l'tat de l'entre concerne.

    W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 Y3 Y2 Y1 Y0

    1 0 0 0 0 0 0 0 0 0 0 0 0 0

    X 1 0 0 0 0 0 0 0 0 0 0 0 1

    X X 1 0 0 0 0 0 0 0 0 0 1 0

    X X X 1 0 0 0 0 0 0 0 0 1 1

    X X X X 1 0 0 0 0 0 0 1 0 0

    X X X X X 1 0 0 0 0 0 1 0 1

    X X X X X X 1 0 0 0 0 1 1 0

    X X X X X X X 1 0 0 0 1 1 1

    X X X X X X X X 1 0 1 0 0 0

    X X X X X X X X X 1 1 0 0 1

    Table 13

    Alors que les expressions logiques dfinissant les lignes de sortie Yi ne dpendaient que des 1

    dans la table 11, il faut ici tenir compte des 0. Par exemple pour Y0 nous avons :

    998798765

    98765439876543210

    WWWWWWWWW

    WWWWWWWWWWWWWWWWY

  • 36

    Nous pouvons mettre le complmentaire de W9 en facteur dans les quatre premiers termes, puis

    en utilisant l'identit :

    BABAA

    il vient, aprs factorisation du complment de W8 :

    9776576543765432180 W)WWWWWWWWWWWWWWWW(WY

    Soit encore :

    9765654365432180 W)WWWWWWWWWWWWW(WY

    97655435432180 W)WW)WWWWWWWWW((WY

    976543432180 W)WW)WWWWWWW((WY

    97654332180 W)WW)WW)WWWW(((WY

    9765432180 W)WW)WW)WWW(((WY

    Soit en rorganisant l'ordre des termes :

    )))WWW(WW(WW(WWY 2134567890

    Pour la ligne Y1 nous avons :

    9879876

    9876543987654321

    WWWWWWW

    WWWWWWWWWWWWWWWY

    Soit en factorisant :

    ))WW)WWW(WW(WW(WWY 543236677981

    En utilisant toujours la mme identit nous pouvons simplifier cette expression, il vient en

    rordonnant les termes :

    ))WW(WWWW(WWY 234567891

    Pour Y2 nous devons crire :

    9879876987659876542 WWWWWWWWWWWWWWWWWWY

    Soit encore :

  • 37

    )))WWW(WW(WW(WWY 4556677892

    En utilisant toujours la mme identit il vient :

    )WWWW(WWY 4567892

    Enfin pour Y3 nous avons :

    899983 WWWWWY

    Logique squentielle

    IV.1 Logique squentielle asynchrone et synchrone

    Dans le chapitre prcdent portant sur la logique combinatoire nous avons fait abstraction

    du temps : les signaux de sortie ne dpendaient que des tats des variables d'entre. Pour les

    circuits de logique squentielle nous devons tenir compte de l'tat du systme. Ainsi les sorties

    dpendent des entres mais galement de l'tat du systme. Celui-ci dpend aussi des entres. Si

    nous notons Q l'tat d'un systme squentiel, X ses entres et Y ses sorties, nous avons de

    manire gnrale :

    )Q,X(gY

    )Q,X(fQ

    La logique squentielle permet de raliser des circuits dont le comportement est variable

    avec le temps. L'tat d'un systme constitue une mmoire du pass.

    Lorsque les changements d'tat des divers composants d'un circuit squentiel se

    produisent des instants qui dpendent des temps de rponse des autres composants et des temps

    de propagation des signaux on parle de logique squentielle asynchrone. Cependant les retards

    peuvent ne pas tre identiques pour toutes les variables binaires et conduire certains alas.

    Ceux-ci peuvent tre vits en synchronisant la squence des diverses oprations logiques sur les

    signaux priodiques provenant d'une horloge. La logique squentielle est alors dite synchrone :

    tous les changements d'tat sont synchroniss sur un signal de contrle.

    Nous commenons notre tude par celle des bascules, lments de base des circuits

    squentiels. Puis nous tudierons les registres et les compteurs.

    IV.2 Les bascules

    Une bascule (flip-flop) a pour rle de mmoriser une information lmentaire. C'est une

    mmoire 1 bit. Une bascule possde deux sorties complmentaires Q et Q . La mmorisation

  • 38

    fait appel un verrou (latch) ou systme de blocage, dont le principe de rtro-action peut tre

    reprsent de la faon suivante :

    Q

    Q

    A

    B

    Figure 1

    Nous pouvons vrifier :

    )0Q()1A()1Q()0B()0Q(

    )1Q()0A()0Q()1B()1Q(

    Une bascule ne peut donc tre que dans deux tats : "1" )0Q,1Q( et "0" )1Q,0Q( . Les

    interconnexions du verrou interdisent les deux autres combinaisons : 1QQ ou 0QQ .

    Ce type de circuit, qui n'a que deux tats stables possibles, est encore appel circuit bistable.

    Un verrou permet de conserver un tat, il nous faut maintenant savoir comment charger

    cet tat.

    IV.2.a Les bascules R-S

    Les verrous les plus frquemment rencontrs sont raliss avec deux portes NOR ou

    NAND. Considrons dans un premier temps le circuit suivant :

    R

    S

    Q

    Q

    Figure 2

    La table 1 donne la table de vrit correspondante. Si on applique S = 1 et R = 0 ou S = 0

    et R = 1 on impose l'tat de la sortie Q respectivement 1 ou 0, la sortie Q prenant la valeur

    complmentaire. Cet tat se maintient lorsque les deux entres retournent 0. La configuration

    S = R = 1 est proscrire car ici elle conduit 0QQ , ce qui est inconsistant logiquement

    avec notre dfinition. Mais surtout, lorsque R et S reviennent 0, l'tat QQ tant incompatible

    avec les interconnexions, l'une de ces deux sorties va reprendre l'tat 1, mais il est impossible de

  • 39

    prdire laquelle : la configuration S = R = 1 conduit une indtermination de l'tat des sorties et

    est donc inutilisable. La reprsentation d'une bascule RS est donne sur la figure 4.

    S R Q Q

    0 0 Q Q Sorties inchanges

    1 0 1 0 Set : Remise Un : RAU

    0 1 0 1 Reset : Remise Zro : RAZ

    1 1 0 0 A proscrire

    Table 1

    Considrons maintenant la bascule ralise avec des portes NON-ET.

    Q

    Q

    S

    RR

    S

    Figure 3

    Il lui correspond la table de vrit suivante :

    S R S R Q Q

    0 0 1 1 Q Q

    1 0 0 1 1 0

    0 1 1 0 0 1

    1 1 0 0 1 1

    Table 2

    L'utilisation des deux inverseurs sur les lignes d'entre nous permet de retrouver une table de

    vrit comparable celle de la bascule RS prcdente.

    S

    R

    Q

    Q

    Figure 4

    IV.2.b Dispositif anti-rebond

  • 40

    On est souvent amen commander un tat physique l'aide d'un bouton poussoir ou d'un

    inverseur (par exemple les touches d'un clavier). Cependant lorsqu'on ferme un interrupteur le

    contact n'est pas franc instantanment et on peut observer une srie de rebonds du signal avant

    d'obtenir la position ferme (fig. 5). Pour viter ce dfaut on ralise un montage quivalent celui

    prsent sur la figure 6 faisant appel un inverseur et une bascule.

    +5 V

    S

    I

    I

    S

    t

    t

    Figure 5

    S

    R

    Q

    +5 V

    I

    t t3 4t t1 2

    I

    R

    S

    Q

    2 1

    1 2 1

    Figure 6

    Supposons l'interrupteur initialement dans la position 1 comme indiqu par la figure 6 :

    l'entre S est la masse donc, en logique positive, dans l'tat logique "0" et l'entre R sous

    tension c'est--dire dans l'tat logique "1". La sortie Q se trouve donc dans l'tat "1". A l'instant t1

    nous basculons l'interrupteur de la position 1 la position 2. Ds que le contact est ouvert en 1

    l'entre S se trouve sous tension et passe dans l'tat logique "1". Par contre le contact en 2 peut

    s'tablir avec un lger retard d au mouvement du contacteur et ne pas tre immdiatement franc.

    L'entre R passe dans l'tat "0" t2, quelques rebonds peuvent suivre. A t2 lorsque les entres se

    trouvent dans la configuration S = 1 et R = 0 la sortie Q passe dans l'tat "0". Par contre dans la

    configuration S = 1 et R = 1, c'est--dire entre t1 et t2 et pendant les rebonds, les sorties restent

    inchanges : les rebonds ne sont pas visibles sur la sortie Q. Le fonctionnement est symtrique

    lors du passage de la position 2 1.

  • 41

    IV.3 Bascule R.S.T ou R.S.Clock

    La bascule R.S.T. est une bascule pour laquelle les entres S et R ne sont prises en compte

    qu'en concidence avec un signal de commande. Ce signal peut tre fourni par une horloge, nous

    avons alors une bascule synchrone. Ce circuit peut tre ralis de la faon suivante et sa

    reprsentation est donne sur la figure 8.

    S

    R

    Clk

    Q

    Q

    Figure 7

    Lorsque le signal de commande, not ici Clk, est 1 la bascule fonctionne comme indiqu

    prcdemment et les sorties suivent les variations des entres S et R. Par contre, lorsque le signal

    de commande est 0, la bascule est bloque : Q est indpendant des ventuels changements de S

    et R. L'tat mmoris correspond au dernier tat avant le passage de la ligne de commande de 1

    0.

    S

    R

    Q

    Q

    ClK

    Figure 8

    Dans un systme synchrone le signal de commande est fourni par une horloge (clock).

    Celui-ci est constitu par une succession priodique d'impulsions de largeur tp, suppose petite

    devant la priode T. L'tat de chacune des sorties restera donc bloqu pendant les intervalles

    sparant deux impulsions. Nous notons Qn la valeur de la sortie Q pendant le nime

    intervalle

    prcdant la nime

    impulsion et Qn+1 la valeur correspondante dans l'intervalle suivant la nime

    impulsion (fig 9).

    0 T (n-1)T nT (n+1)T t

    Qn Qn+1

    Figure 9

    Considrons l'instant t = nT + , o Clk = 1. Si S = R = 0, la sortie Q ne change pas donc Qn+1 = Qn. Si S = 1 et R = 0 alors la sortie Q est force 1. Si R = 1 et S = 0 alors la sortie Q est

  • 42

    mise 0. Si S = R = 1 alors les deux sorties Q et Q sont toutes les deux 1. Cet tat est instable

    et ne persiste pas lorsque le signal de commande revient 0. L'tat final sera indtermin,

    dpendant des vitesses relatives des portes. Cette situation ne doit pas tre autorise. L'tat Q

    reste ensuite fig jusqu' (n+1)T. Si nous notons Sn et Rn les valeurs de S et R juste avant l'instant

    t = nT nous pouvons crire la table de vrit :

    Sn Rn Qn+1

    0 0 Qn

    1 0 1

    0 1 0

    1 1 ?

    Table 3

    IV.4 Bascules J-K, D et T

    IV.4.a Bascule J-K

    La bascule J-K permet de lever l'ambigut qui existe dans la table 3. Ceci peut tre

    obtenu en asservissant les entres R et S aux sorties Q et Q selon le schma logique indiqu sur

    la figure 10.

    S

    R

    Q

    Q

    ClK

    JQ

    KQ

    Figure 10

    Nous avons alors pour les signaux R et S :

    QKR

    QJS

    Ce qui nous permet de construire la table de vrit de la bascule J-K.

    Jn Kn Qn nQ S R Qn+1

    0 0 0 1 0 0 0

    0 0 1 0 0 0 1

    0 1 0 1 0 0 0

    0 1 1 0 0 1 0

    1 0 0 1 1 0 1

    1 0 1 0 0 0 1

    1 1 0 1 1 0 1

    1 1 1 0 0 1 0

    Table 4

  • 43

    Nous constatons que nous ne rencontrons jamais la combinaison R = S = 1. Cette table peut se

    rsumer sous la forme suivante :

    Jn Kn Qn+1

    0 0 Qn

    0 1 0

    1 0 1

    1 1 nQ

    Table 5

    La figure 11 explicite le diagramme logique d'une bascule J-K. Le rle des entres Pr et Cr sera

    tudi dans le prochain paragraphe.

    Q

    Q

    J

    K

    Clk

    Pr

    Cr

    Figure 11

    A partir de la table 5 nous pouvons construire la table de transition de la bascule J-K. La

    table 6 donne les tats dans lesquels doivent se trouver les entres J et K pour obtenir chacune des

    quatre transitions possibles de la sortie Q. Une croix indique que l'tat de l'entre considre est

    indiffrent : 0 ou 1. Par exemple, pour obtenir la transition 0 1 de la sortie Q il faut que l'entre J soit dans l'tat 1, quelque soit l'tat de l'entre K. En effet, nous pouvons avoir J = K = 1 qui

    inverse l'tat de la bascule ou J = 1 et K = 0 qui charge 1 dans la bascule.

    Qn Qn+1 Jn Kn

    0 0 0 X

    0 1 1 X

    1 0 X 1

    1 1 X 0

    Table 6

    Comme les deux entres ne sont jamais spcifies simultanment il est possible de choisir pour

    simplifier l'galit des deux entres :

    J = K

  • 44

    On utilise parfois l'expression logique donnant Qn+1 en fonction de Jn, Kn et Qn. Pour

    cela nous pouvons par exemple construire le tableau de Karnaugh partir de la table de vrit

    (table 4) de la bascule J-K :

    00 01 11 10

    0

    1

    JKQ

    11

    11

    D'o nous tirons l'quation caractristique qui exprime l'tat futur en fonction de l'tat prsent et

    des entres :

    nnnn1n QKQJQ

    IV.4.b Preset et Clear

    Les entres asynchrones (car utiliser en absence de signal d'horloge) Pr (Preset) et Cr

    (Clear) permettent d'assigner l'tat initial de la bascule, par exemple la mise sous tension pour

    viter tout ala. En fonctionnement normal ces deux entres doivent tre maintenues 1. Lorsque

    le signal d'horloge est 0 nous avons la table de vrit suivante :

    Pr Cr Q

    1 1 Q

    0 1 1

    1 0 0

    Table 7

    La figure 12 donne la reprsentation symbolique d'une bascule J-K avec les entres Preset et

    Clear.

    J

    K

    Q

    Q

    ClK

    Cr

    Pr

    Figure 12

  • 45

    IV.4.c Bascule J-K Matre-Esclave

    Jusqu' prsent nous avons construit les tables de vrit partir de la logique

    combinatoire qui suppose que les entres sont indpendantes des sorties. Or dans la bascule J-K

    nous avons introduit des connexions d'asservissement entre les entres et les sorties. Ainsi

    supposons qu'avant le signal d'horloge nous avons J = K = 1 et Q = 0 (notations de la figure 11).

    Lorsque le signal d'horloge passe 1 la sortie Q devient 1. Ce changement intervient aprs un

    intervalle de temps t. Nous avons alors J = K = Q = 1. D'aprs la table 4 nous voyons que la sortie Q doit alors revenir 0. Ainsi la sortie Q va osciller entre 0 et 1 pendant toute la dure du

    signal d'horloge rendant le rsultat ambigu.

    Pour viter ce problme on monte deux bascules R-S en cascade (fig. 13) en asservissant

    (traits pais) les entres de la premire (Matre) aux sorties de la seconde (Esclave). D'autre part,

    le signal d'horloge parvenant l'esclave est invers.

    Supposons Pr = Cr = 1. Pendant la nime

    impulsion le signal d'horloge est haut pour le

    matre et bas pour l'esclave. L'tat Qn est donc invariant pendant la dure tp de l'impulsion. Le

    problme prcdent est donc rsolu et l'tat de la sortie de la bascule matre QM est donn par la

    table 5. Ensuite lorsque le signal d'horloge passe 0 pour le matre celui-ci est bloqu alors que

    l'esclave est libr. Nous avons alors :

    )1Q,0Q()1R,0S()1Q,0Q(

    )0Q,1Q()0R,1S()0Q,1Q(

    1n1nMM

    1n1nMM

    L'tat de la bascule matre est transfr la bascule esclave lors de la transition 1 0 (front descendant) du signal d'horloge.

    J

    Clk

    K

    QM

    QM

    Q

    Q

    S

    R

    Pr

    Cr

    Figure 13

  • 46

    IV.4.d Bascule D

    Une bascule D (Delay) est obtenue partir d'une bascule J-K en envoyant simultanment

    une donne sur l'entre J et son inverse sur l'entre K :

    J

    K

    Q

    Q

    ClK

    Cr

    PrD

    H

    Figure 14

    A partir de la table 5 nous pouvons crire :

    0Q)1K,0J(0D

    1Q)0K,1J(1D

    1nnnn

    1nnnn

    Ce qui peut se rsumer par Qn+1 = Dn. Ainsi l'tat de la bascule Q pendant l'intervalle n+1 est

    gal la valeur de l'entre D pendant l'intervalle n. Une bascule D agit comme une unit retard

    pour laquelle la sortie suit l'entre avec un cycle de retard. Sa reprsentation symbolique est

    donne par la figure 15.

    D Q

    Q

    ClK

    Cr

    Pr

    Figure 15

    IV.4.e Bascule D commande sur front montant

    1

    2

    3

    4

    5

    6 Q

    QH

    D

    Clear

    Preset

    Figure 16

  • 47

    Dans ce deuxime type de bascule D c'est la valeur de l'entre D prsente au moment de

    la transition 0 1 du signal d'horloge qui est charge dans la bascule. Ensuite, que H soit gal 1 ou 0, la bascule est isole de l'extrieur jusqu'au prochain front montant du signal H. L'entre

    doit tre stabilise un peu avant la transition de H et conserver cette valeur un certain temps

    aprs.

    Considrons le circuit schmatis sur la figure 16, dont la reprsentation symbolique est

    donne par la figure 17. Notons S1, S2, S3 et S4 les sorties des portes NAND numrotes

    respectivement 1, 2, 3 et 4. En fonctionnement normal nous devons avoir Clear = 1 pour ne pas

    bloquer les portes 1, 3 et 5 et Preset = 1 pour ne pas bloquer les portes 4 et 6. Pour H = 0 nous

    avons S2 = S3 = 1. Considrons maintenant le passage de H 1.

    1er cas : D = 1

    Porte 1 : D = S2 = Clear = 1 S1 = 0

    Porte 2 : S1 = 0 S2 = 1

    Porte 4 : S1 = 0 S4 = 1

    Porte 3 : H = S4 = Clear = 1 S3 = 0

    Porte 6 : S3 = 0 Q = 1

    Porte 5 : Q = S2 = Clear = 1 0Q

    2me cas : D = 0

    Porte 1 : D = 0 S1 = 1

    Porte 2 : H = S1 = S3 = 1 S2 = 0

    Porte 4 : S1 = S3 = Preset = 1 S4 = 0

    Porte 3 : S4 = 0 S3 = 1

    Porte 5 : S2 = 0 1Q

    Porte 6 : 1QesetPrS3 Q = 0

    Dans les deux cas nous vrifions que Q = D. Maintenant considrons une transition de D alors

    que le signal H est encore 1.

    1er cas : D = 1 0 (juste avant cette transition nous avons : S1 = S3 = 0, S2 = S4 = 1)

    Porte 1 : D = 0 S1 = 1

    Porte 2 : S3 = 0 S2 = 1

    Porte 4 : S3 = 0 S4 = 1

    Porte 3 : H = S4 = Clear = 1 S3 = 0

  • 48

    Porte 6 : S3 = 0 Q = 1

    Porte 5 : Q = S2 = Clear = 1 0Q

    2me cas : D = 0 1 (juste avant cette transition nous avons : S1 = S3 = 1, S2 = S4 = 0)

    Porte 1 : S2 = 0 S1 = 1

    Porte 2 : H = S1 = S3 = 1 S2 = 0

    Porte 4 : S1 = S3 = Preset = 1 S4 = 0

    Porte 3 : S4 = 0 S3 = 1

    Porte 5 : S2 = 0 1Q

    Porte 6 : 1QesetPrS3 Q = 0

    Dans les deux cas la sortie Q reste inchange. Etudions maintenant les oprations de Remise

    Zro et Remise Un :

    Preset = 0 et Clear = 1 :

    Preset = 0 S4 = Q = 1

    si H = 0 alors S2 = 1

    si H = 1 alors H = S4 = Clear = 1 S3 = 0 S2 = 1

    Dans les deux cas : 0Q1ClearSQ 2

    Preset = 1 et Clear = 0 :

    Clear = 0 1QSS 31

    1esetPrQS3 Q = 0

    D Q

    Q

    ClK

    Cr

    Pr

    Figure 17

  • 49

    IV.4.f Bascule T

    Dans la table 5 nous constatons que si J = K = 1 alors n1n QQ . L'tat de la sortie est

    invers chaque cycle d'horloge. Une bascule T (Trigger) est obtenue partir d'une bascule J-K

    en injectant le mme tat dans les entres J et K (fig. 18). Sa table de vrit est donne dans la

    table 7 et sa reprsentation par la figure 19.

    J

    K

    Q

    Q

    ClK

    Cr

    PrT

    H

    Figure 18

    Tn Qn+1

    1 nQ

    0 Qn

    Table 7

    T Q

    Q

    ClK

    Cr

    Pr

    Figure 19

    IV.5 Registre de mmorisation

    Un registre permet la mmorisation de n bits. Il est donc constitu de n bascules,

    mmorisant chacune un bit. L'information est emmagasine sur un signal de commande et ensuite

    conserve et disponible en lecture. La figure 20 donne un exemple de registre 4 bits ralis avec

    quatre bascules D.

  • 50

    Q

    Q

    D

    Clk

    E0

    Q0

    Q

    Q

    D

    Clk

    E1

    Q1

    Q

    Q

    D

    Clk

    E2

    Q2

    Q

    Q

    D

    Clk

    E3

    Q3

    W

    R

    Figure 20

    En synchronisme avec le signal d'criture W le registre mmorise les tats des entres E0,

    E1, E2 et E3. Ils sont conservs jusqu'au prochain signal de commande W. Dans cet exemple les

    tats mmoriss peuvent tre lus sur les sorties Q0, Q1, Q2 et Q3 en concidence avec un signal de

    validation R.

    IV.6 Registre dcalage

    Dans un registre dcalage les bascules sont interconnectes de faon ce que l'tat

    logique de la bascule de rang i puisse tre transmis la bascule de rang i+1 quand un signal

    d'horloge est appliqu l'ensemble des bascules. L'information peut tre charge de deux

    manires dans ce type de registre.

    - Entre parallle : comme dans le cas d'un registre de mmorisation. En gnral une porte

    d'inhibition est ncessaire pour viter tout risque de dcalage pendant le chargement parallle.

    - Entre srie : l'information est prsente squentiellement bit aprs bit l'entre de la premire

    bascule. A chaque signal d'horloge un nouveau bit est introduit pendant que ceux dj

    mmoriss sont dcals d'un niveau dans le registre. La figure 21 schmatise le chargement d'un

    registre 4 bits en quatre coups d'horloge.

    a3 a4

    a4

    a2 a3 a4

    a2

    a3

    a4

    a1

    a1 a2 a3 a4

    top n 1

    top n 2

    top n 3

    top n 4

    Figure 21

  • 51

    De mme l'information peut tre lue en srie ou en parallle. D'autre part, certains

    registres peuvent tre capables de dcaler gauche et droite. Un registre dcalage universel

    serait donc constitu des entres, des sorties et des commandes suivantes :

    Registre dcalage

    Horloge

    Sortie sriedcalage droite

    Sortie sriedcalage gauche

    Sorties

    parallles

    Entresparallles

    Validation

    entres parallles

    Dcalage droiteou gauche

    Entresrie

    Validationentre srie

    Figure 22

    Gnralement on utilise des bascules du type matre-esclave D ou R-S.

    IV.6.a Entre srie - Sortie parallle

    La figure suivante donne un exemple de registre de 4 bits entre srie et sortie parallle

    ralis avec des bascules D.

    QD

    Clk

    S0

    QD

    Clk

    S1

    QD

    Clk

    S2

    QD

    Clk

    S3

    E.S.

    H

    S.S.

    Figure 23

    Ce type de registre permet de transformer un codage temporel (succession des bits dans le

    temps) en un codage spatial (information stocke en mmoire statique).

    La sortie srie peut galement tre utilise. L'intrt d'utilisation d'un registre dcalage

    en chargement et lecture srie rside dans la possibilit d'avoir des frquences d'horloge

    diffrentes au chargement et la lecture. Le registre constitue alors un tampon.

  • 52

    IV.6.b Entre parallle - sortie srie

    La figure 24 prsente un exemple de registre dcalage entre parallle ou srie et

    sortie srie. Si X = 1 l'entre parallle est inhibe et l'entre srie est valide. Si X = 0 l'entre

    srie est bloque par contre le chargement par l'entre parallle est autoris.

    QD

    Clk

    E0

    QD

    Clk

    E1

    E.S.

    H

    X

    S.S.

    Figure 24

    Un registre dcalage entre parallle et sortie srie transforme un codage spatial en codage

    temporel.

    IV.6.c Entre parallle - Sortie parallle

    La figure suivante prsente un exemple de registre dcalage avec entres srie et

    parallle et sorties srie et parallle ralis avec des bascules de type D.

    D Q

    ClK

    Cr

    Pr

    Q0

    E0

    D Q

    ClK

    Cr

    Pr

    Q1

    E1

    E.S.

    H

    X

    Figure 25

  • 53

    La commande permet de slectionner le mode de chargement et d'inhiber le signal

    d'horloge en cas de chargement parallle. Si X = 0 nous avons Pr = Cr = 1, ce qui garantit le

    fonctionnement normal des bascules. Si X = 1 alors selon l'tat de chacune des entres nous

    avons :

    ii

    ii

    iiEQ

    0Q)0Cr,1(Pr0E

    1Q)1Cr,0(Pr1E

    IV.6.d Registre dcalage droite et gauche

    La figure 26 prsente un exemple de registre dcalage universel de 4 bits. Les diverses

    possibilits sont slectionnes par les lignes commande S0 et S1. Considrons la ligne

    transportant le signal d'horloge aux bascules, elle est gouverne par l'expression logique :

    )SS(HSSHClk 1010

    Le signal d'horloge sera donc inhib si S0 = S1 = 0.

    Pour slectionner le chargement parallle (entres A, B, C et D) il faut :

    1SSSS 1010

    C'est--dire S0 = S1 = 1. Le chargement se fera sur un signal d'horloge.

    Pour slectionner le dcalage droite (entre E1, sortie QD) il nous faut S0 = 1 et S1 = 0 et pour

    le dcalage gauche (entre E0, sortie QA) S0 = 0 et S1 = 1. Ce que nous pouvons rsumer dans

    le tableau suivant :

    S0 S1 Fonction

    0 0 Registre bloqu

    0 1 Dcalage gauche

    1 0 Dcalage droite

    1 1 Chargement parallle

    Table 8

    Un registre dcalage droite et gauche permet d'effectuer des multiplications et des

    divisions entires par des puissances de 2. En effet une multiplication par 2 est quivalente un

    dcalage vers la gauche et une division par 2 un dcalage vers la droite. Une multiplication par

    2n sera obtenue par n dcalages gauche et une division par 2n par n dcalages droite.

  • 54

    SR

    Q

    Clk

    Q

    B

    SR

    Q

    ClkC

    r

    QB

    SR

    Q

    Clk

    QC

    SR

    Q

    ClkC

    r

    Q

    C

    SR

    Q

    Clk

    Q

    A

    SR

    Q

    ClkC

    r

    QA

    QD

    SR

    Q

    ClkC

    r

    Q

    D

    S0

    S1

    HC

    lear

    E0

    E1

    Figure 26

  • 55

    IV.7 Compteurs

    Un compteur est un ensemble de n bascules interconnectes par des portes logiques. Ils

    peuvent donc mmoriser des mots de n bits. Au rythme d'une horloge ils peuvent dcrire une

    squence dtermine c'est--dire occuper une suite d'tats binaires. Il ne peut y avoir au

    maximum que 2n combinaisons. Ces tats restent stables et accessibles entre les impulsions

    d'horloge. Le nombre total N des combinaisons successives est appel le modulo du compteur.

    On a N 2n. Si N < 2n un certain nombre d'tats ne sont jamais utiliss.

    Les compteurs binaires peuvent tre classs en deux catgories :

    - les compteurs asynchrones;

    - les compteurs synchrones.

    De plus on distingue les compteurs rversibles ou compteurs-dcompteurs.

    IV.8 Compteurs asynchrones

    Un compteur asynchrone est constitu de n bascules J-K fonctionnant en mode T. Le

    signal d'horloge n'est reu que par le premier tage (bascule LSB : Least Significant Bit). Pour

    chacune des autres bascules le signal d'horloge est fourni par une sortie de la bascule de rang

    immdiatement infrieur.

    Considrons par exemple (fig. 27) un compteur modulo 8 suivant le code binaire pur

    constitu de trois bascules J-K matres-esclaves.

    J

    K

    Q

    Q

    ClK

    J

    K

    Q

    Q

    ClK

    J

    K

    Q

    Q

    ClK

    Q 0 Q 2Q 1

    H

    "1"

    Figure 27

    Supposons les trois bascules zro l'instant t = 0. Nous avons vu que pour une bascule

    matre-esclave la sortie change d'tat juste aprs le passage du signal d'horloge de l'tat 1 l'tat 0

    (front descendant). L'volution temporelle des trois sorties Q0, Q1 et Q2 par rapport aux

    impulsions d'horloge est reprsente sur la figure 28. La sortie Q0 bascule sur chaque front

    descendant du signal d'horloge. La sortie Q1 change d'tat chaque transition 1 0 de la sortie

    Q0. De mme le basculement de la sortie Q2 est dclench par une transition 1 0 de la sortie

    Q1.

  • 56

    H

    Q 0

    Q

    Q

    1

    2

    1 2 3 4 5 6 7 8

    Figure 28

    A partir de ce chronogramme nous pouvons crire la liste des tats successifs des trois sorties :

    Impulsion Q2 Q1 Q0

    tat initial 0 0 0

    1 0 0 1

    2 0 1 0

    3 0 1 1

    4 1 0 0

    5 1 0 1

    6 1 1 0

    7 1 1 1

    8 0 0 0

    Table 9

    Nous avons ralis un compteur s'incrmentant d'une unit chaque top d'horloge, avec un cycle

    de huit valeurs de 0 7 (modulo 8).

    Nous constatons que les sorties Q0, Q1 et Q2 fournissent des signaux priodiques de

    frquences respectivement 2, 4 et 8 plus faibles. La division de frquence est une des applications

    des compteurs.

    IV.8.a Compteur-dcompteur asynchrone

    Nous obtenons un compteur en dclenchant chaque bascule lorsque celle de rang

    immdiatement infrieur passe de l'tat 1 0. Pour raliser un dcompteur il faut que le

    changement d'tat d'une bascule intervienne lorsque la bascule de rang immdiatement infrieur

    passe de l'tat 0 1. Pour cela il suffit d'utiliser la sortie Q de chaque bascule pour dclencher la

    suivante.

  • 57

    On ralise un compteur-dcompteur en utilisant un multiplexeur 2 entres - 1 sortie entre

    chaque tage pour slectionner la sortie utiliser. Pour l'exemple prsent sur la figure 29, selon

    l'tat de la ligne de commande X nous pouvons slectionner le mode de comptage :

    X = 1 compteur;

    X = 0 dcompteur.

    J

    Clk

    K

    Q

    Q

    Etage i

    Q i

    J

    Clk

    K

    Q

    Q

    Etage i+1

    Q i+1

    "1"

    X

    Figure 29

    IV.8.b Remise Zro et chargement d'un compteur

    La figure 30 prsente un exemple de montage permettant de remettre zro un compteur

    ou de le charger avec une valeur dtermine. Pour cela on utilise les entres asynchrones des

    bascules. En fonctionnement normal du compteur nous devons avoir : DS = R = 1. Nous avons

    alors : J = K = Pr = Cr = 1 sur chaque bascule du compteur.

    Pour RAZ : R = 0

    J = K = 0 Interdit tout basculement sur une impulsion du signal Clk;

    (Pr = 1, Cr = 0) Q = 0.

    Chargement : (DS = 0, R = 1)

    J = K = 0 Interdit tout basculement sur une impulsion du signal Clk;

    D = 0 (Pr = 1, Cr = 0) Q = 0

    D = 1 (Pr = 0, Cr = 1) Q = 1

    Dans ces deux cas nous obtenons Q = D. Nous sommes donc capable de charger chaque bit du

    compteur avec une valeur donne prsenter sur l'entre D, donc d'initialiser le compteur.

  • 58

    J

    K

    Q

    Q

    ClK

    Cr

    Pr

    D.S.

    R

    D

    Figure 30

    IV.8.c Compteur cycle incomplet

    On peut souhaiter compter jusqu' un nombre N qui ne soit pas une puissance de 2, par

    exemple 10 (systme dcimal). Pour cela on utilise un compteur de n bascules, tel que 2n > N. On

    lui ajoute un asservissement de l'entre Clear pour remettre le compteur zro tous les N coups.

    Considrons par exemple un compteur modulo 10. Nous voulons que l'entre Clear soit

    0 lorsque le compteur atteint 1010 = 10102. Pour cela nous pouvons crire l'expression logique :

    0123 QQQQCr

    En fait dans ce cas particulier nous pouvons simplifier cette relation logique en ne tenant compte

    que des sorties 1 dans l'expression binaire de N. En effet il ne peut y avoir ambigut : toute

    combinaison contenant les mmes sorties 1 et au moins une autre 1 correspond un nombre

    plus grand que N et ne peut tre rencontre dans la squence dcrite par le compteur. Pour un

    compteur modulo 10 nous pouvons donc utiliser :

    13 QQCr

    ce qui nous conduit au schma suivant :

  • 59

    J

    K

    Clk

    Q

    Cr

    Q 1

    J

    K

    Clk

    Q

    Cr

    Q 2

    J

    K

    Clk

    Q

    Cr

    Q 3

    J

    K

    Clk

    Q

    Cr

    Q 0

    H

    "1"

    Figure 31

    IV.8.d Inconvnients des compteurs asynchrones

    Comme chaque bascule a un temps de rponse le signal d'horloge ne parvient pas

    simultanment sur toutes les bascules. Ceci a pour consquence de provoquer des tats

    transitoires qui peuvent tre indsirables. Supposons le mme temps de rponse tr pour toutes les

    bascules. Considrons la chronologie du passage d'un compteur asynchrone 4 bits de 0111

    1000. Celle-ci est prsente sur la figure 32. Nous constatons que le compteur passe par les tats

    transitoires 0110, 0100 et 0000 qui sont faux. Ceci est un inconvnient rdhibitoire chaque fois

    que le compteur est exploit par des organes rapides.

    0111 0111 0110 0100 0000 1000 t

    H

    Q 0

    1

    2

    3

    Q

    Q

    Q

    Figure 32

    IV.9 Compteurs synchrones

    Dans un compteur synchrone toutes les bascules reoivent en parallle le mme signal

    d'horloge. Pour faire dcrire au compteur une squence dtermine il faut chaque impulsion

    d'horloge dfinir les entres synchrones J et K. Pour cela on utilise la table de transition de la

    bascule J-K (table 6). Nous avons dj remarqu que cette table peut se simplifier. En effet, pour

  • 60

    chacune des quatre transitions possibles une seule des entres J ou K est dfinie. Rien ne nous

    interdit donc de les mettre dans le mme tat, c'est--dire J = K, comme dans une bascule T.

    Prenons l'exemple d'un compteur synchrone 3 bits fonctionnant selon le code binaire pur.

    Nous pouvons dresser un tableau prcisant les valeurs des entres J et K permettant d'obtenir

    chaque transition (passage d'une ligne la suivante). Pour qu'une bascule change d'tat il faut que

    ses deux entres soient 1.

    # top Q2 Q1 Q0 J2 = K2 J1 = K1 J0 = K0

    0 0 0 0 0 0 1

    1 0 0 1 0 1 1

    2 0 1 0 0 0 1

    3 0 1 1 1 1 1

    4 1 0 0 0 0 1

    5 1 0 1 0 1 1

    6 1 1 0 0 0 1

    7 1 1 1 1 1 1

    8 0 0 0

    Table 10

    Chaque ligne de cette table correspond une mme tranche de temps. Il est assez facile d'en

    dduire les expressions logiques reliant les entres aux sorties :

    1022

    011

    00

    QQKJ

    QKJ

    1KJ

    De manire gnrale nous pouvons vrifier que les quations de commutation satisfont les

    relations de rcurrence suivantes :

    1i10ii

    00

    Q...QQKJ

    1KJ

    ou encore :

    1iQ1iii

    00

    JKJ

    1KJ

    Procdons de mme pour raliser un dcompteur, nous crivons la table des transitions

    recherches :

    # top Q2 Q1 Q0 J2 = K2 J1 = K1 J0 = K0

    0 1 1 1 1 1 1

    1 1 1 0 0 0 1

    2 1 0 1 0 1 1

    3 1 0 0 0 0 1

  • 61

    4 0 1 1 1 1 1

    5 0 1 0 0 0 1

    6 0 0 1 0 1 1

    7 0 0 0 0 0 1

    8 0 0 0

    Table 11

    Nous en dduisons l'expression logique des entres d'un dcompteur :

    1022

    011

    00

    QQKJ

    QKJ

    1KJ

    Nous constatons que les quations de commutation sont identiques en utilisant cette fois les

    sorties complmentaires Q .

    Aux deux manires d'exprimer les relations de rcurrence des quations de commutation

    correspondent deux types de circuits. Le premier (fig. 33) est dit report parallle, le second

    (fig. 34) report srie. Dans le report srie on utilise la fonction Ji-1. On vite ainsi des portes

    multiples entres. Par contre, il faut tenir compte du retard dans l'tablissement de Ji-1. Il faut

    donc que la largeur des impulsions d'horloge soit assez grande et la vitesse maximum de

    fonctionnement sera plus faible que pour le report parallle.

    Les deux schmas prsents sur les figures 33 et 34 correspondent des compteurs-dcompteurs

    (X = 0 compteur, X = 1 dcompteur).

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk"1"

    X

    H

    Figure 33

  • 62

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk

    J

    K

    Q

    Q

    Clk"1"

    X

    H

    Figure 34