Plan du site  
français  English
pixel
pixel

Articles - Étudiants SUPINFO

Chapitre 06 - L'interconnexion des portes logiques

PLAN DU CHAPITRE

Il sera décrit dans ce chapitre :

  • Les circuits combintaoires

  • Les circuits de traitements

  • Les circuits séquentiels

OBJECTIF DU CHAPITRE

Ce chapitre a pour objectif de manipuler les opérations logiques vues dans la théorie des ensembles. Nous allons adapter et appliquer cette logique pour créer des fonctions applicables aux calculs dans un ordinateur. Il sera décrit comment créer l'assemblage de plusieurs portes logiques. La composition des portes va permettre de créer des circuits pour véhiculer de l'information et pour calculer et stocker des valeurs.

A la fin du chapitre, il sera possible de trouver rapidement des résultats en fonction de règles logiques assimilables à des algorithmes. Une équation logique est constituée de données liées par des opérateurs. Le résultat de telles équations sera exprimé par des valeurs booléennes.

La « valuation booléenne » est notée par VRAI ou FAUX ce qui dénote la logique du résultat ou des données. Les valeurs numériques qui seront utilisées pour nos fonctions seront 1 pour Vrai et 0 pour Faux. Nous organiserons les successions de valeurs pour créer les simulations de l’intégralité de toutes les valeurs possibles. L’ensemble de cette simulation, produira une équation (algorithme) qui pourra être réduite par l’algorithme de la table de Karnaugh.

Un ordinateur est fabriqué avec des circuits intégrés. Les circuits électriques, mis en œuvre dans un ordinateur sont :

  1. construits à partir de circuits logiques.

  2. des fonctions spécialisées (UAL, mémoire, circuit décodeur,… etc.).

  3. des opérations sur des variables logiques (binaires).

Les circuits électriques, mis en œuvre dans un ordinateur, peuvent être de 2 types :

  • Passifs : Ils n'ont pas besoin d'apport externe d'énergie pour fonctionner (il s'agit par exemple de la diode, de la résistance, du condensateur ...).

  • Actifs : ils ont besoin d'un apport externe d'énergie (les transistors, les portes logiques).

Pour ces 2 types, les éléments ne peuvent pas changer instantanément d'état lorsque la tension ou l'intensité change à leur borne. Et donc il est utilisé un condensateur qui se charge et se décharge de façon exponentielle avec le temps :

Figure 1.1. Evolution de charge et décharge électrique

Evolution de charge et décharge électrique

Un transistor passe de l'état bloqué à l'état passant (et inversement) en modifiant lentement le champ électrique entre les jonctions N et P. Cette propriété, appelée temps de commutation, va être mise à profit pour construire des dispositifs de mémorisation. Dans les prochaines parties, nous utiliserons l’outil Digsim pour réaliser les simulations de nos circuits. Simple d’utilisation cet outil dispose de librairies pour sélectionner les composants dont nous aurons besoin. La particularité de cet outil est que toutes les jonctions de fils doivent être mises bout à bout et non entrelacées ou chevauchées. Cet outil n’est qu’un simulateur pour vérifier les fonctionnalités préalablement établies par des études approfondies pour en obtenir un résultat.

Les circuits combinatoires

Définition : Un circuit combinatoire est défini par une ou plusieurs fonctions logiques. Les fonctions de sortie se réalisent à l’aide d’expressions logiques basées sur les variables d’entrée. La théorie utilisée est l’algèbre de Boole.

Figure 1.2. Schéma d’une fonction combinatoire avec son entrée et sa sortie

Schéma d’une fonction combinatoire avec son entrée et sa sortie

Pour un circuit combinatoire, il n’y a pas de notion de temps. Il s’agit d’une fonction qui utilise des valeurs d’entrées pour transmettre une valeur en sortie.

Il est à noter qu’il sera important de fixer des valeurs lors d’utilisation de circuits électronique. Nous apportons deux définitions pour caractériser nos études :

Définition du bistable : Signal qui a 2 états stables. Par exemple, nous avons les états logiques notés "1" ou "0". Il faut préciser qu’il faut une intervention extérieure pour changer d'état.

Définition du monostable : Signal qui ne prend en compte qu’un seul état stable, l'autre état, si il existe sera temporaire et non pris en compte

Le décodeur

Le décodeur est un circuit élémentaire, souvent utilisé comme composant de base pour la fabrication de circuits plus complexes (adresse mémoire, accès données, …). Le décodeur est un boîtier électronique qui permet de sélectionner une sortie en fonction des informations placées sur des lignes d'entrée. Il va transformer une valeur donnée en entrée en une nouvelle valeur de sortie. Il permet, par exemple, de transformer des signaux binaires en signaux décimaux ou il décode et active l’accès à des données.

[Note]

Nom de l’algorithme : Décodeur 3 bits

Donnée d’entrée : 3 entrées

Donnée produite : 8 sorties

But : Sélectionner une des sorties en fonction des informations placées sur les entrées.

Un décodeur n bits possède n entrées et 2n sorties. Si nous choisissons n = 3 comme sur la figure suivante, nous aurons 23 sorties, soit 8 sorties. Les lignes de sorties sont numérotées en fonction des valeurs possibles en entrée. C’est ainsi que si nous avons 3 bits en entrée, nous aurons 8 codes possibles soit 000, 001, 010, …, 111 pour obtenir les sorties 0, 1, 2 3,…, 7. La ligne de sortie correspond au numéro donné par les entrées activées à 1 et 0. Toutes les autres sorties dont le numéro ne correspond pas à l’activation de l’entrée restent à 0.

Figure 1.3. Schéma bloc du décodeur 3 bits

Schéma bloc du décodeur 3 bits

Suivant le schéma bloc de la figure 154, nous considérons, un circuit combinatoire avec les éléments suivants :

  • 3 entrées nommées A, B et C.

  • 8 sorties nommées de S0 à S7. Les 8 sorties sont 8 lignes identifiées par une valeur décimale entière.

Si les lignes de sélection ABC reçoivent 0112 (A=0, B=1 et C=1), cela signifie que la sortie S3 (rappelons que 011 en binaire est égal à 3 en entier décimal) est sélectionnées et vaut 1. Les autres sorties Si sont à 0. Avec ces hypothèses, il est donc facile de faire la table de vérité d’un tel circuit.

Table 1.1. Table de vérité du décodeur

A B C S0 S1 S2 S3 S4 S5 S6 S7
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1


A partir de la table ci-dessus, nous pouvons établir les équations sur les fils de sortie. Nous devons produire 8 équations indépendantes :

S0 = (/A/B/C) S4 = (A/B/C)

S1 = (/A/BC) S5 = (A/BC)

S2 = (/AB/C) S6 = (AB/C)

S3 = (/ABC) S7 = (ABC)

D’après les équations de S0 à S7, nous constatons que :

  • nous avons 8 « ET » distincts entre 3 éléments à chaque fois, donc nous utiliserons 8 portes ET à 3 entrées.

  • nous utilisons les signaux A, B, C et leurs complémentaires, nous utiliserons 3 portes NON (3 inverseurs).

Figure 1.4. Circuits du décodeur

Circuits du décodeur

Pour simuler le fonctionnement de la figure 155, il suffit de faire alterner les valeurs en A, B et C pour constater le décodage des valeurs. Ainsi dans cet exemple ABC = 0112 = 310 soit bien S3 en sortie.

Le multiplexeur

Un multiplexeur peut-être perçu comme l’inverse d’un décodeur. Le multiplexeur est un boîtier qui permet de router plusieurs entrées sur une même sortie grâce à des lignes de sélection. Son rôle consiste à sélectionner, à l’aide de signaux de commande, une des entrées et à la lier à la sortie. Il permet de transmettre sur une même sortie plusieurs types d’entrées différentes. Il sera utile pour les liaisons, les accès aux réseaux et à la distribution de données.

[Note]

Nom de l’algorithme : Multiplexeur 3 bits

Donnée d’entrée : 11 entrées : 8 données, 3 commandes

Donnée produite : 1 sortie

But : Sélectionner, à l’aide de signaux de commande, une des entrées et à la lier à la sortie.

Un multiplexeur n bits dispose d’une sortie et sélectionne une entrée parmi les 2n entrées dont il dispose. Par conséquent, un multiplexeur n bits à n + 2n entrées. Les n entrées sont nommées les bits d’adresses car elles permettent de choisir le numéro de la ligne des autres entrées. Dès que la sélection est faite, la sortie S est branchée dessus. Les lignes d’entrées sont numérotées en fonction des bits d’adresse. C’est ainsi que si nous avons 3 bits d’adresse en entrée, nous aurons 8 entrées possibles soit 000, 001, 010, …, 111 pour obtenir les entrées 0, 1, 2 3,…, 7. La ligne de sortie correspond à l’entrée dont le numéro est donné par les bits d’adresse. Toutes les autres entrées dont le numéro ne correspond pas à l’activation ne sont pas branchées sur la sortie. La sortie est égale à la valeur de l’entrée sélectionné et comme l’entrée peut avoir 0 ou 1 comme valeur alors la sortie pourra valoir 1 ou 0.

Figure 1.5. Schéma bloc d’un multiplexeur

Schéma bloc d’un multiplexeur

Suivant le schéma bloc de la figure ci-dessus, nous considérons, un circuit combinatoire avec les éléments suivants :

  • données d’entrées nommées de D0 à D7. Les valeurs disponibles sur les lignes d’entrées D valent 0 ou 1.

  • 1 sortie nommée S.

  • 3 lignes de sélection nommée A, B et C (les bits d’adresse).

Si les lignes des bits d’adresse reçoivent 0102 (A=0, B=1 et C=0), cela signifie que la sortie S est égale à l'entrée D2 (rappelons que 010 en binaire est égal à 2 en entier décimal). Les valeurs des autres sorties ne sont pas une référence pour la mise en équation du circuit pour D2. Il est nécessaire de faire toute la séquence de valeur de D0 à D7, donc de faire une table de vérité du composant. Avec ces hypothèses, il est donc facile de faire la table de vérité d’un tel circuit.

Table 1.2. Table de vérité complète du multiplexeur

A B C D0 D1 D2 D3 D4 D5 D6 D7 S
0 0 0 0 X X X X X X X 0
0 0 0 1 X X X X X X X 1
0 0 1 X 0 X X X X X X 0
0 0 1 X 1 X X X X X X 1
0 1 0 X X 0 X X X X X 0
0 1 0 X X 1 X X X X X 1
0 1 1 X X X 0 X X X X 0
0 1 1 X X X 1 X X X X 1
1 0 0 X X X X 0 X X X 0
1 0 0 X X X X 1 X X X 1
1 0 1 X X X X X 0 X X 0
1 0 1 X X X X X 1 X X 1
1 1 0 X X X X X X 0 X 0
1 1 0 X X X X X X 1 X 1
1 1 1 X X X X X X X 0 0
1 1 1 X X X X X X X 1 1


Pour alléger les écritures, il est possible de ne pas notifier les X dans la table de vérité ci-dessus, puisque que ce sont des valeurs non utilisées dans la mise en équation de S.

Table 1.3. Table de vérité du multiplexeur, avec case vide non prise en compte

A B C D0 D1 D2 D3 D4 D5 D6 D7 S
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1


Pour bien visualiser notre équation, les lignes de sortie à 0 ne sont pas utilisées.

Table 1.4. Table de vérité du multiplexeur, avec réorganisation et suppression de ligne inutile

A B C D0 D1 D2 D3 D4 D5 D6 D7 S
0 0 0 1 1
0 0 1 1 1
0 1 0 1 1
0 1 1 1 1
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1


A partir de la lecture de la table de vérité ci dessus, nous avons l’équation de S suivante :

S = (/A/B/CD0)+(/A/BCD1)+(/AB/CD2)+(/ABCD3)+(A/B/CD4)+(A/BCD5)+(AB/CD6)+(ABCD7)

D’après l’équation de S, nous constatons que :

  • nous avons un « OU » entre 8 éléments, il est possible d’utiliser une porte « OU » à 8 entrées ou une combinaison de porte OU pour arriver à 8 entrées.

  • nous avons 8 « ET » distincts entre 4 éléments à chaque fois, il est possible d’utiliser 8 portes « ET » à 4 entrées, ou une combinaison de portes ET pour arriver à 8 entrées.

  • les bits d’adresse A, B, C et leurs complémentaires, il est possible d’utiliser 3 portes « NON » (3 inverseurs).

Nous pouvons maintenant faire les schémas du multiplexeur :

Figure 1.6. Circuits du multiplexeur

Circuits du multiplexeur

Pour simuler le fonctionnement de la figure ci-dessus, il suffit de faire alterner les valeurs d’adresse en A, B, C pour établir la connexion de l’entrée sur la sortie. Ainsi dans cet exemple ABC = 0102 = 210 soit bien D2 en entrée branchée sur la sortie S.

Le démultiplexeur

Un démultiplexeur peut-être perçu comme un aiguillage. Le démultiplexeur est un boîtier qui permet de « router » une entrée sur une de ses sorties grâce à des lignes de sélection. Son rôle consiste à sélectionner, à l’aide de signaux de commande, une des sorties et à la lier à son entrée. Il permet de transmettre sur une donnée sur plusieurs types de sorties différentes. Il sera utile pour les liaisons, les accès aux réseaux et à la distribution de données.

[Note]

Nom de l’algorithme : Démultiplexeur 3 bits

Donnée d’entrée : 4 entrées : 1 donnée, 3 commandes

Donnée produite : 8 sorties

But : Sélectionner, à l’aide de signaux de commande, une des sorties et à la lier à son entrée.

Un démultiplexeur n bits dispose 2n sorties et une entrée. Par conséquent, un démultiplexeur n bits à 1 + n entrées. Les n entrées sont nommées les bits de sélections car elles permettent de choisir le numéro de la ligne de sortie. Dès que la sélection est faite l’entrée D est branchée dessus. Les lignes de sorties s sont numérotées en fonction des bits de sélection. C’est ainsi que si nous avons 3 bits de sélection en entrée, nous aurons 8 sorties possibles soit 000, 001, 010, …, 111 pour obtenir les sorties 0, 1, 2 3,…, 7. La ligne d’entrée est branchée à la ligne de sortie dont le numéro est donné par les bits de sélection. Toutes les autres sorties dont le numéro ne correspond pas à l’activation ne sont pas branchées sur la sortie. La sortie est égale à la valeur de l’entrée et comme l’entrée peut avoir 0 ou 1 comme valeur, alors la sortie pourra valoir 1 ou 0.

Figure 1.7. Schéma bloc d’un démultiplexeur

Schéma bloc d’un démultiplexeur

Suivant le schéma bloc de la figure158, nous considérons, un circuit combinatoire avec les éléments suivants:

  • 1 entrée nommée D, elle représente la valeur qui sera routée.

  • 8 sorties nommées de S0 à S7 qui représentent les 8 sorties.

  • 3 lignes de sélection A, B et C (les bits de sélection).

Si les lignes de sélection reçoivent 0102 (A=0, B=1 et C=0), cela signifie qu’une sortie sera égale à la valeur de l’entrée D et que les autres sorties ne participeront pas au routage. En d’autres termes, nous pouvons considérer que des lignes de sélection ABC est un nombre binaire notifiant une sortie qui est une valeur décimale entière (rappelons que 010 en binaire est égal à 2 en entier décimal). Cette sortie sélectionnée recevra la valeur de l’entrée D. Avec ces hypothèses, il est donc facile de faire la table de vérité d’un tel circuit.

Table 1.5. Table de vérité complète du démultiplexeur

A B C D S0 S1 S2 S3 S4 S5 S6 S7
0 0 0 0 0 X X X X X X X
0 0 0 1 1 X X X X X X X
0 0 1 0 X 0 X X X X X X
0 0 1 1 X 1 X X X X X X
0 1 0 0 X X 0 X X X X X
0 1 0 1 X X 1 X X X X X
0 1 1 0 X X X 0 X X X X
0 1 1 1 X X X 1 X X X X
1 0 0 0 X X X X 0 X X X
1 0 0 1 X X X X 1 X X X
1 0 1 0 X X X X X 0 X X
1 0 1 1 X X X X X 1 X X
1 1 0 0 X X X X X X 0 X
1 1 0 1 X X X X X X 1 X
1 1 1 0 X X X X X X X 0
1 1 1 1 X X X X X X X 1


Pour alléger les écritures, il est possible de ne pas notifier les X dans la table de vérité ci-dessus, puisque que ce sont des valeurs non utilisées dans la mise en équation de S.

Table 1.6. Table de vérité du démultiplexeur, avec case vide non prise en compte

A B C D S0 S1 S2 S3 S4 S5 S6 S7
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1


Nous savons qu’une table de vérité permet d’établir une solution avec les 1 contenus dans la table. Il est donc possible d’optimiser la table de vérité ci-dessus, comme suit :

Table 1.7. Table de vérité du démultiplexeur, avec réorganisation et suppression de ligne inutile

A B C D S0 S1 S2 S3 S4 S5 S6 S7
0 0 0 1 1
0 0 1 1 1
0 1 0 1 1
0 1 1 1 1
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1


En lecture de la table de vérité ci-dessus, nous avons nos 8 sorties S0 S1 S2 S3 S4 S5 S6 S7, qui correspondent aux monômes conjonctifs d’une ligne dont la sortie est égale à 1 :

S0 = D/A/B/C S1 = D/A/BC S2 = D/AB/C S3 = D/ABC

S4 = DA/B/C S5 = DA/BC S6 = DAB/C S7 = DABC

D’après les équations de S0 à S7, nous constatons que :

  • nous avons 8 « ET » distincts entre 4 entrées à chaque fois, nous utiliserons 8 portes « ET » à 4 entrées.

  • nous utilisons les signaux A, B, C et leurs complémentaires, nous utiliserons donc 3 portes « NON » (3 inverseurs).

  • nous utiliserons uniquement l’entrée D, nous n’avons pas d’équation impliquant /D. Nous pouvons maintenant faire les schémas du démultiplexeur :

Figure 1.8. Schémas électriques du démultiplexeur

Schémas électriques du démultiplexeur

Pour simuler le fonctionnement de la figure ci-dessus, il suffit de faire alterner les valeurs de sélection en A, B, C et alterner 0 ou 1 sur l’entrée D pour constater le transfert de l’entrée D sur une sortie S. Ainsi dans cet exemple ABC = 1012 = 510 soit bien D5 en sortie qui reçoit la valeur 1 de l’entrée D.

Le multiplexage

Le démultiplexeur est un complément du multiplexeur. Utilisés ensemble, ils permettent le multiplexage dans les ordinateurs. Ils permettent de faire transiter un maximum d’informations hétérogènes (numériques, analogiques, et autres transferts) en un minimum de place. Le multiplexage est une combinaison de circuits représentant une opération qui permet d’assembler plusieurs signaux en un seul signal destiné à être transmis sur une même voie de transmission. Grâce à l’ensemble des multiplexages, les informations peuvent être découpées (un principe de sérialisation) pour être transmises. Si nous ajoutons le phénomène de synchronisation ou de désynchronisation, nous pouvons faire passer plusieurs informations (parfois différentes) en une même période de temps donnée. Le multiplexeur est présenté comme l’initiateur du codage de l’information. Souvent en début de circuit le multiplexeur transmet les informations au un ou plusieurs multiplexeurs qui ont pour rôle d’affecter l’information transmise vers les sorties souhaitées.

Il existe plusieurs multiplexages :

  • Le multiplexage FDM (Frequency Division Multiplexing) qui partage la bande de fréquence en une série de canaux pour faire circuler en continu les signaux. Nous le retrouvons pour augmenter le débit des lignes téléphoniques et des liaisons physiques en paires torsadées.

  • Le multiplexage TDM (Time Division Multiplexing) permet de découper les signaux pour les transmettre en leur attribuant l’ensemble de la bande passante disponible. Ce multiplexage émule une communication asynchrone en une communication synchrone. Comme il y a un découpage de l’information, le rôle des multiplexeurs est de réorganiser l'information transmis pour en garder l’information originale en sortie.

  • Le multiplexage statistique reprend les caractéristiques du multiplexage FDM. Pour augmenter les performances, il s’appuie sur des statistiques pour éviter des interruptions de débit.

Les circuits de traitements

L’additionneur 1 bit

[Note]

Nom de l’algorithme : Demi-additionneur 1 bit

Donnée d’entrée : 2 entrées binaires

Donnée produite : 2 sorties binaires

But : Additionner les 2 entrées pour en donner un résultat selon l’addition des binaires.

Nous allons d’abord construire le demi-additionneur 1 bit pour ensuite faire l’additionneur 1 bit. Nous considérons 2 nombres A et B de 1 bit chacun. Lorsque nous les additionnons, nous obtenons un nombre qui peut être codé sur 2 bits. Comme la somme de A et B peut ne pas tenir sur 1 bit, la somme tient sur 2 bits. Sur les 2 bits nous déterminons un résultat S et une retenue C (Carry). Avec les hypothèses, nous pouvons produire la table de vérité suivante :

Table 1.8. Table de vérité pour la somme de A et B sur 1 bit avec résultat S et retenue C

A B Somme (A B) C S
0 0 00 0 0
0 1 01 0 1
1 0 01 0 1
1 1 10 1 0


A partir la table de vérité ci-dessus, et selon les résultats énoncés pour C et S, nous pouvons déduire que C = A et B = A · B, et que S = A ou Exclusif B.

Figure 1.9. Schémas de la somme de A et B sur 1 bit avec résultat S et retenue C

Schémas de la somme de A et B sur 1 bit avec résultat S et retenue C

Pour simuler le fonctionnement des circuits de la figure ci-dessus, il suffit de faire alterner les valeurs en A et B pour constater l’évolution de l’addition. Ainsi dans cet exemple A et B = 12, d’où 1 + 1 = 102 soit C = 1 et S = 0.

[Note]

Nom de l’algorithme : Additionneur 1 bit

Donnée d’entrée : 3 entrées binaires

Donnée produite : 2 sorties binaires

But : Additionner les 3 entrées pour en donner un résultat selon l’addition des binaires.

Pour compléter le demi-additionneur et produire un additionneur 1 bit, il faut maintenant tenir compte d’une éventuelle retenue initiale. Nous considérons maintenant 3 entrées A, B et C-1 et nous conservons C et S.

Table 1.9. Table de vérité pour la somme de A et B et C sur 1 bit avec résultat S et retenue C

A B C-1 Somme (A B C-1) C S
0 0 0 00 0 0
0 1 0 01 0 1
1 0 0 01 0 1
1 1 0 10 1 0
0 0 1 01 0 1
0 1 1 10 1 0
1 0 1 10 1 0
1 1 1 11 1 1


Nous constatons que S = 0 quand il y a un nombre pair de « 1 ». S s’apparente à la sortie d’un contrôleur de parité 3 bits. Nous avons S = (A OuExclusif B) OuExclusif C-1

D’après l’équation précédente, nous constatons que :

  • nous utiliserons deux portes « OU EXCLUSIF » à deux entrées.

C = (ABC-1) + (/ABC-1) + (A/BC-1) + (AB/C-1)

Si nous construisons la table de Karnaugh :

Table 1.10. Table de Karnaugh pour C

/A/B /AB AB A/B
C 0 1 1 1
C-1 0 0 1 0


Avec la table de Karnaugh ci-dessus, nous pouvons donc simplifier l’écriture de C :

C = AB + BC-1 + AC-1 = AB + (A + B) C-1

Comme : A + B = A(B + /B) + B(A + /A)

Nous avons : A + B = AB + A/B + BA + B/A

Nous pouvons donc modifier l’écriture de C :

C = AB + (AB + A/B + BA + B/A)C-1

C = AB + (AB + A/B + B/A)C-1

C = (AB) (1 + C-1) + (A/B + B/A)C-1

C = (AB) + (A OuExclusif B)C-1

Nous obtenons C = (AB) + (A OuExclusif B) C-1

D’après l’équation précédente, nous constatons que nous avons :

  • 2 « ET » avec à chaque fois deux éléments, donc nous utiliserons deux portes « ET » à deux entrées.

  • un « OU EXCLUSIF » entre deux éléments, nous utiliserons donc une porte « OU EXCLUSIF » à deux entrées.

  • un « OU » entre deux éléments, nous utiliserons donc une porte « OU » à deux entrées.

Figure 1.10. Schémas de l’additionneur 1 bit avec retenue

Schémas de l’additionneur 1 bit avec retenue

Pour simuler le fonctionnement des circuits de la figure ci-dessus, il suffit de faire alterner les valeurs des entrées A, B et C-1 pour constater l’évolution de l’addition avec retenue. Ainsi dans cet exemple A = 02, C-1 et B = 12, d’où 0 + 1 + 1 = 102 soit C = 12 et S = 02.

L’additionneur avec propagation des retenues

[Note]

Nom de l’algorithme : Additionneur avec propagation des retenues

Donnée d’entrée : 3 entrées binaires

Donnée produite : 3 sorties binaires

But : Additionner les 3 entrées pour en donner un résultat selon l’addition des binaires. Une sortie en plus des résultats indique une demande propagation de la donnée selon le principe des additions.

L’additionneur avec propagation des retenues présenté dans cette partie correspond à l’algorithme d’addition binaire (version identique étudiée lors des chapitres précédents). Nous rappelons le principe :

  • l’addition se présente avec des nombres binaires lus de droite à gauche.

  • les décalages entre les colonnes se font de droite à gauche.

  • les bits sont additionnés colonne par colonne.

  • si le résultat provoque une retenue, à savoir un dépassement de la capacité à la case du résultat, alors les bits de plus sont injectés à la colonne de gauche suivante.

Pour faire un circuit de l’additionneur n bits, il suffit d’utiliser n (numérotés de 0 à n-1, respectant ainsi la structure par indice d’un nombre binaire) circuits d’additionneur 1 bit complets et de lier entre eux.

Figure 1.11. Schéma bloc d’un additionneur de 2 mots A et B de 4 bits avec propagation des retenues

Schéma bloc d’un additionneur de 2 mots A et B de 4 bits avec propagation des retenues

La figure ci-dessus indique le fonctionnement d’un additionneur de deux mots binaires de 4 bits, A composé de A3 A2 A1 A0 et B composé de B3 B2 B1 B0. Si nous prenons par exemple, l’additionneur 1, il est composé en entrée des bits A1 et B1, de la retenue C1 (provenant de l’additionneur d’avant) et il produit en sortie S1 (correspondant à la somme de A1 + B1 + C1) et une retenue C2 qui sera propagée au prochain additionneur lié avec lui.

L’additionneur 0 reçoit une retenue C0 de valeur 0 (dans un circuit cette retenu peut être branchée à la masse).

Le nombre de portes logiques pour un additionneur avec propagation des retenues pour des mots de n bits est proportionnel au nombre n.

Le temps de propagation de la retenue est également proportionnel au nombre n.

Dans ces conditions cet additionneur n’est pas avantageux, cependant, même si il « coute chère en temps » ce circuit peut servir de composant de base pour des additionneurs plus grands. Par exemple, les additionneurs 4 bits peuvent être regroupés. Cela pose alors le problème de la retenue, pour répondre à cette question, il est possible d’utiliser un algorithme comme le calcul anticipé de la retenue. Cet algorithme consiste à calculer les retenues avec un circuit complémentaire. Pour faire cet algorithme, il faut 2 espaces de stockage, ils sont nommés G (Generate) et P (Propagate). Maintenant pour deux mots binaires A, composé de An-1 … A1 A0 et B composé de Bn-1 … B1 B0, G et P sont définis par :

  • G = AB.

  • P = A + B.

Donc nous avons Gi = AiBi et Pi = Ai + Bi, avec:

  • Gi est la retenue par l’addition des deux bits de Ai et Bi.

  • Pi détermine si la retenue de Ci se propage.

Ensuite avec Ci+1 = Gi + PiCi, Ci+1 est :

  • soit le résultat direct de l’addition des bits Ai et Bi.

  • Soit le résultat de la propagation de la retenue Ci.

La répétition de ces propagations permet d’établir le circuit suivant :

Figure 1.12. Schémas de G P et S

Schémas de G P et S

Pour comprendre les schémas de la figure ci-dessus, il est utile de comprendre le principe de l’additionneur 1 bit vu précédemment dont les retenues sont calculées avec un OuExclusif. A, B et C sont les entrées et retenue, S est le résultat calculé, G et P sont les résultats des hypothèses précédentes pour indiquer si la retenue doit être ou non propagée. A + B ne provoque pas de retenue indiquée par G, la retenue précédente doit être propagée, indiquée par P. Un additionneur actuel 16 bits devient donc une combinaison de 4 additionneurs 4 bits avec propagation des retenues. Ces 4 additionneurs 4 bits sont assemblés autour d’un circuit d’anticipation de retenue GP qui calcule leurs retenues d’entrée et propagation.

Les circuits séquentiels

Pour un circuit combinatoire, il a une notion de temps. Non seulement il s’agit d’une fonction qui utilise des valeurs d’entrées pour transmettre une valeur en sortie, mais les valeurs de sorties deviennent aussi des valeurs d’entrées avant de délivrer la valeur finale. A l'instant donné, les circuits séquentiels prennent en compte les conditions antérieures. La conception des circuits combinatoires permettent l’utilisation de mémoires.

Figure 1.13. Schéma d’un circuit séquentiel

Schéma d’un circuit séquentiel

Il est possible d’avoir une injonction d’une horloge pour étalonner les étapes et par conséquent, il est utile d’avoir des mémorisations de valeurs pour les réutiliser pendant le cycle du calcul.

Figure 1.14. Schéma d’un circuit séquentiel avec horloge

Schéma d’un circuit séquentiel avec horloge

L’horloge

Nous notons par un chronogramme l’évolution des valeurs prises par des entrées ou des sorties au cours du temps.

Figure 1.15. Schéma de chronogramme

Schéma de chronogramme

En prenant la figure ci-dessus, nous avons toutes les informations concernant les changements de valeur prise par les données dans une machine binaire. Notons que l’horloge au cours du temps alterne entre 1 (état haut) et 0 (état bas). Chaque passage entre 0 et 1 s’appelle un front montant et chaque passage entre 1 et 0 s’appelle un front descendant. Si nous ne voulons pas tenir compte d'une valeur, nous le plaçons dans un état indéterminé.

La bascule RS (Reset Set)

Les bascules sont des circuits séquentiels qui possèdent plusieurs entrées et qui délivre une 1 sortie principale et potentiellement 1 sortie complémentaire. Elles ont pour fonction de mémoriser (dont les valeurs sont changeables entre 1 ou 0) des informations. Par utilisation courante, la mise à 1 d’une bascule revient à mettre 1 sur sa sortie principale, et inversement la mise à 0 de la bascule consiste à mettre 0 sur la sortie principale.

[Note]

Nom de l’algorithme : Bascule RS

Donnée d’entrée : 2 entrées binaires

Donnée produite : 2 sorties binaires

But : Enregistrer les valeurs d’entrées sur les sorties.

Dans le cas de la bascule RS, nous avons 2 entrées nommées R (Reset) et S (Set) et deux sorties nommées Q et /Q. La bascule RS (comme d’autres bascules) est donc bistable. Elles permettent d'obtenir des niveaux logiques stables sur leur sorties Q et /Q (1 ou 0).

Le temps intervient dans le fonctionnement d’une bascule RS, pour cela, nous distinguons :

  • l’état Q à l’instant tn que nous noterons Qn.

  • l’état Q à l’instant tn-1 que nous noterons Qn-1 (état avant le basculement).

La bascule RS est une bascule asynchrone (sans utilisation d’horloge). Cette bascule est élémentaire et constitue la base de tous les autres types de bascules.

L’état de Q et de /Q sont indéfinis lorsque R et S sont à 1. Pour symboliser l’instabilité de résultat, nous noterons par ? ces cas dans nos tables de vérité. L’état de Q et de /Q ne sont pas fixés quand R et S sont à 0. Dans ce cas les valeurs mémorisées sont celles enregistrées antérieurement, Qn-1, /Qn-1.

Pour étudier le fonctionnement d’un bascule RS, nous allons nous intéresser à l’évolution de l’état de R, S, Q et /Q. D’abord donnons la table de vérité :

Table 1.11. Table de vérité d’une bascule RS

R S Qn /Qn
0 0 Qn-1 /Qn-1
0 1 1 0
1 0 0 1
1 1 ? ?


Table 1.12. Table de vérité d’une bascule RS avec Qn-1

R S Qn-1 Qn
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 ?
1 1 1 ?


Nous pouvons établir une équation pour Qn = /R/SQn-1 + /RSQn-1 + /RS/Qn-1 + RSQn-1 + RS/Qn-1

Si nous construisons la table de Karnaugh correspondante à Qn, nous obtenons :

Table 1.13. Table de Karnaugh de Qn

RS /RS /R/S R/S
/Qn-1 ? 1 0 0
Qn-1 ? 1 1 0


Et donc d’après le principe de la table de Karnaugh appliqué au tableau ci-dessus, nous avons :

Qn = /R.S + /R.Qn-1 = /R.(S + Qn-1).

Figure 1.16. Chronogramme d’un fonctionnement d’une bascule RS

Chronogramme d’un fonctionnement d’une bascule RS

Le chronogramme de la figure ci-dessus, montre une scénarisation pour enregistrer un 1 sur la sortie Q d’une bascule RS.

  • l’axe des abscisses correspond au temps.

  • l’axe des ordonnées est divisé en autant de partie que de signaux à étudier.

  • pour chaque signal, il ne peut y avoir que 2 états :

    • 0 correspondant à l’état bas (signal à la masse).

    • 1 correspondant à l’état haut (signal à +Vcc).

Figure 1.17. Bascule RS en portes NON

Bascule RS en portes NON

Pour la simulation de la bascule RS de la figure ci-dessus, si nous partons d’un montage qui contient déjà une information (0 ou 1) et que nous mettons simultanément R et S à 0 volt, nous obtenons le même résultat que si R et S sont débranchés et l’information est conservée (le +Vcc masque le 0 volt). A l’inverse si nous plaçons simultanément R et S à 1, la bascule se trouve dans un état instable (Q et /Q alternent très rapidement entre les états 0 et 1) : nous parlons alors de configuration interdite.

La bascule RS peut être se construire avec des portes Non OU ou avec des portes Non ET. Pour des raisons d’états instables et pour éviter les courts circuits, il est préférable d’isoler le circuit de la bascule RS avec des doubles commutateurs.

Figure 1.18. Bascule RS en portes Non Et et Non Ou

Bascule RS en portes Non Et et Non Ou

Pour simuler le fonctionnement des circuits de la figure ci-dessus, il suffit de faire alterner les valeurs des entrées R et S et selon la scénarisation une valeur 1 ou 0 sera enregistrée sur Q ou /Q.

La bascule D (Delay)

[Note]

Nom de l’algorithme : Bascule D

Donnée d’entrée : 2 entrées binaires

Donnée produite : 2 sorties binaires

But : Enregistrer les valeurs d’entrées sur les sorties.

Comme pour une bascule RS, une bascule D est un circuit logique possédant 2 sorties avec 2 entrées. Les valeurs des entrées, comme celles des sorties peuvent être 0 ou 1. Les changements d'état des sorties sont déterminés par les signaux appliqués aux entrées.

La bascule D est faite pour pallier à l’inconvénient de la bascule RS. C’est-à-dire pour minimiser (supprimer) les états intermédiaires indésirables, par exemple, pour la bascule RS si les R et S sont à 1 en même temps, l’état d’enregistrement n’est pas spécifié.

Pour résoudre ce problème, la bascule D réunit les entrées avec un inverseur sur l’une d’elle. Dans ce cas S = R = 1 n’est plus possible et permet uniquement des étapes d’enregistrements. Par contre, pour déclencher l’enregistrement, il nous faut de nouveau une entrée.

Dans le principe de la bascule D, nous avons 2 entrées et 2 sorties :

  • une nommée D (Data) qui propose la valeur à écrire dans le bit mémoire (constituée de la réunification des entrées R et S).

  • une entrée pour valider la valeur de la donnée à enregistrer. Cette entrée peut-être une horloge, nommée Clk (Clock) :

    • Si elle est à 0, rien n’est écrit (inchangé) dans la mémoire.

    • Si elle est à 1, la valeur de D est écrite dans la mémoire.

  • deux sorties nommées Q et /Q.

Posons S = D et R = /D, Q et /Q, les valeurs d’enregistrement, Qn-1 et /Qn-1 les valeurs enregistrées à l’instant n-1 et T indiquant les états bas et hauts au cours du temps. La table de vérité devient :

Table 1.14. Table de vérité d’une bascule D avec R, S, T, Qn et /Qn

D R S T Qn /Qn
0 1 0 0 Qn-1 /Qn-1
1 0 1 0 Qn-1 /Qn-1
0 1 0 1 0 1
1 0 1 1 1 0


A partir de la table de vérité plusieurs interprétations de circuits sont possibles :

Figure 1.19. Schémas de bascules D

Schémas de bascules D

Pour simuler le fonctionnement des bascules ci-dessus, il suffit de faire alterner les valeurs des entrées D et T et selon la scénarisation une valeur 1 ou 0 sera enregistrée sur Q ou /Q.

La bascule JK

[Note]

Nom de l’algorithme : Bascule JK

Donnée d’entrée : 2 entrées binaires

Donnée produite : 2 sorties binaires

But : Enregistrer les valeurs d’entrées sur les sorties.

Une seconde possibilité de résoudre le problème de la bascule RS est d'attribuer une fonction d’inversion à la combinaison qui pose problème. Cette fonction est obtenue en ajoutant des portes ET produisant les signaux R et S pour la bascule RS. La première porte reçoit un nouveau signal K et la seconde un signal J (il s'agit des anciens signaux R et S).

Nous reprenons la table de vérité de la bascule RS et nous ajoutons les signaux J et K, nous obtenons la table de vérité :

Table 1.15. Table de vérité bascule JK

J K R S Qn /Qn
0 0 0 0 Qn-1 /Qn-1
0 1 1 0 0 1
1 0 0 1 1 1
1 1 ? ? /Qn-1 Qn-1


En lecture de la table de vérité de JK du tableau ci-dessus, nous savons simplement que :

  • J = 0 et K = 0 entraînent R = 0 et S = 0.

  • J = 1 et K = 0 entraînent R = 0 et S = 1 (stocke d’un 1).

  • J = 0 et K = 1 entraînent R = 1 et S = 0 (stocke d’un 0).

  • J = 1 et K = 1 provoquent l’inversion de Q et /Q.

Pour obtenir l’inversion, nous devons utiliser les signaux Q et /Q pour modifier l’état de R et S et obtenir l’effet désiré, nous en déduisons une deuxième table de vérité pour deviner la troisième :

Figure 1.20. Tables de vérité bascule JK

Tables de vérité bascule JK

Nous combinons la première table de vérité et la dernière table de vérité pour obtenir la nouvelle table de vérité où X signifie 0 ou 1 :

Table 1.16. Table de vérité bascule JK

J K Qn-1 /Qn-1 R S Qn /Qn
0 0 X X 0 0 Qn-1 /Qn-1
0 1 X X 1 0 0 1
1 0 X X 0 1 1 0
1 1 1 0 1 0 0 1
1 1 0 1 0 1 1 0


Avec la table de vérité ci-dessus, nous construisons la table de Karnaugh de R :

Table 1.17. Table de Karnaugh pour R de la bascule JK

JK /JK /J/K J/K
Qn-1 1 1 0 0
/Qn-1 0 1 0 0


A partir de la table de Karnaugh de R ci-dessus, nous pouvons former deux groupes de 1, et obtenir l’équation de R = /JK + KQn-1.

Nous construisons la table de Karnaugh de S :

Table 1.18. Table de Karnaugh pour S de la bascule JK

JK /JK /J/K J/K
Qn-1 1 0 0 1
/Qn-1 0 0 0 1


A partir de la table de Karnaugh de S ci-dessus, nous pouvons former deux groupes de 1, et obtenir l’équation de S = J/K + J/Qn-1.

Figure 1.21. Schéma d’une bascule JK

Schéma d’une bascule JK

Pour simuler le fonctionnement de la bascule ci-dessus, il suffit de faire alterner les valeurs des entrées J et K et selon la scénarisation une valeur 1 ou 0 sera enregistrée sur Q ou /Q.

Figure 1.22. Chronogramme d’un fonctionnement d’une bascule JK

Chronogramme d’un fonctionnement d’une bascule JK

Le chronogramme de la figure ci-dessus, montre une scénarisation pour enregistrer un 1 sur la sortie Q d’une bascule JK.

En déroulant le scénario aboutissant à ce chronogramme, nous constatons que si la bascule contient déjà la bonne information, il n’est pas nécessaire de la modifier et nous pouvons établir :

  • Si Qn+1 = 0 alors le cas /Qn+1./J.K = 1 ne doit pas entraîner d’action.

  • Si Qn+1= 1 alors le cas Qn+1.J./K = 1 ne doit pas entraîner d’action.

En conséquence, les tables de Karnaugh comptent un 1 de moins et les expressions de R et de S sont simplifiées (et par voie de conséquence le schéma électrique de la bascule JK).

Pour le signal R, nous avons : R = K.Qn-1

Table 1.19. Table de Karnaugh pour R de la bascule JK

JK /JK /J/K J/K
Qn-1 1 1 0 0
/Qn-1 0 1 --> 0 0 0


Pour le signal S, nous avons : S = J./Qn-1

Table 1.20. Table de Karnaugh pour S de la bascule JK

JK /JK /J/K J/K
Qn-1 1 0 0 1 --> 0
/Qn-1 0 0 0 1


Une bascule JK permet au comptage. Elle est nommée RS maître-esclave en utilisant une rétroaction croisée entre les entrées et les sorties.

Figure 1.23. Schéma d’une bascule JK

Schéma d’une bascule JK

Un buffer

[Note]

Nom de l’algorithme : Buffer

Donnée d’entrée : 2 entrées : 1 binaire, 1 horloge

Donnée produite : 2 sorties binaires

But : Enregistrer des valeurs d’entrées et délivrer les plus anciennes valeurs enregistrées.

Les bascules D sont utilisées dans les circuits séquentiels et reçoivent un signal d’horloge sur une entrée Clk. Il est possible de créer un « buffer » avec des bascules D. Pour réaliser un tel circuit, le principe d’un « buffer » est de stocker une valeur sur une impulsion (tic) d’horloge et de délivrer une valeur. Ce circuit peut être vu comme une file d’attente qui se remplie ou se vide à chaque impulsion d’horloge. Il nous faut donc deux bascules D qui récupèrent de la valeur en entrée (la première bascule) et stocke cette valeur en sortie (la deuxième bascule).

Figure 1.24. Schéma d’un buffer en bascules D

Schéma d’un buffer en bascules D

Suivant la figure ci-dessus, cette sorte de « buffer» lit et écrit en simultané une valeur de 1 bit, dont le principe est :

  • lorsque l’entrée Clk est initialement à 1, l’entrée D est enregistrée dans la première bascule RS pendant que l’autre est inchangée. Pendant cette étape la valeur de la seconde bascule peut être lue.

  • lorsque l’entrée Clk est initialement à 0, la première bascule RS reste inchangée, mais la valeur de cette première bascule est propagée dans la deuxième bascule.

Dans de nombreux systèmes logiques, il est souvent nécessaire de mémoriser une variable binaire à un instant déterminé. En pratique, nous pouvons réaliser cette action en utilisant une bascule D munie d’une entrée d’horloge. Pour garantir la mémorisation, l’impulsion doit être d’une durée aussi faible que possible ce qui est difficile à obtenir. C’est pourquoi nous avons aussi recours à des bascules particulières appelées flip-flop qui changent d’état non pas lorsque le signal d’horloge est à 1 ou à 0 mais lors d’une transition (d’un front) montante (0 vers 1) ou descendante (1 vers 0).

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels