Up Next

1  Couche physique: circuits logiques

1.1  Portes logiques et algèbre de Boole

La forme la plus élémentaire de circuit est la porte logique. Son comportement est dit binaire car il est caractérisé par deux états: l'état 0, qui représente la valeur logique faux et l'état 1, qui représente la valeur logique vrai.

Les constructeurs utilisent dans certains cas une logique dite positive: l'état 1 correspond à une tension comprise entre 2 et 5 volts (niveau haut) et l'état 0 à une tension comprise entre 0 et 1 volt (niveau bas). Dans d'autres cas, ils utilisent une logique dite négative où l'état 1 correspond au niveau bas, tandis que l'état 0 correspond au niveau haut1.

La transmission n'est pas instantanée: le délai de traversée d'une porte correspond au temps de propagation des signaux de l'entrée vers la sortie (de l'ordre de quelques nanosecondes pour la porte la plus simple2).

1.1.1  Porte NON

La porte logique la plus simple est celle qui réalise une inversion logique. Elle est symbolisée par:
Elle est construite à l'aide d'un transistor, selon deux techniques possibles: le transistor à jonctions (technologie dite bipolaire) ou le transistor à effet de champ (technologie dite unipolaire). Dans la première famille on trouve par exemple les circuits RTL (Resistor Transistor Logic), TTL (Transistor Transistor Logic), DTL (Diode Transistor Logic) ou encore ECL (Emitter Coupled Logic). La deuxième famille est celle des circuits MOS (Metal Oxyde Semiconductor) qui sont en général moins rapides, sauf les plus récents comme HMOS ou XMOS3.

Un transistor fonctionne comme un interrupteur4:

1.1.2  Porte NON-ET

La porte NON-ET est réalisée en reliant deux transistors en série, selon le schéma suivant:
Symbole logique de la porte NON-ET:
On vérifie facilement que la tension de sortie Vs est au niveau bas si et seulement si V1 et V2 sont au niveau haut.

1.1.3  Porte NON-OU

Sur le même principe, le montage de deux transistors en parallèle permet d'obtenir une porte NON-OU:
Sur le schéma précédent, on vérifie que Vs est au niveau bas si et seulement si l'une des deux tensions V1 ou V2 est au niveau haut.

Le symbole logique de cette porte est:
Ainsi, pour réaliser un OU (respectivement un ET), il faut relier un NON-OU avec un inverseur (respectivement un NON-ET avec un inverseur).

Ces portes sont utilisées pour construire des fonctions booléennes à variables booléennes, qui sont décrites soit par une table de vérité, soit en utilisant une notation fonctionnelle où le symbole + remplace OU, le point ou aucun symbole représente ET et une variable comme A surmontée d'une barre représente NON A.

Exemple 1   Construire la fonction f définie par f (A, B, C) = M, où M=1 si et seulement si au moins deux des variables valent 1.


Remarque 2   Avec une porte de type NON-OU (ou NON-ET), on peut réaliser n'importe quelle fonction booléenne.


On cherche souvent à réduire le nombre de portes, en utilisant les propriétés algébriques des opérations logiques, par exemple la distributivité de ET sur OU: A (B+C) = AB+AC.

En fait, on dispose de circuits qui réalisent directement des fonctions logiques complexes.

1.2  Principe des circuits logiques

Un circuit intégré est une plaquette de silicium sur laquelle sont intégrées les portes du circuit. La plaquette est encapsulée dans un boîtier avec sur les côtés des broches permettant les connexions électriques.

Ces circuits sont classés suivant la densité d'intégration, c'est-à-dire le nombre de portes ou transistors par circuits (ou par mm2):
SSI Small Scale Integration 1 à 10 portes par circuit
MSI Medium Scale Integration 10 à 100
LSI Large Scale Integration 100 à 100 000
VLSI Very Large Scale Integration plus de 100 000 et jusqu'à 1 million5


Exemple 3   Un circuit SSI dans un boîtier à 14 broches: circuit TTL 7400 de Texas Instruments.


Bien entendu, plus l'échelle d'intégration augmente, plus il y a de portes par rapport au nombre de broches. On distingue plusieurs catégories de circuits MSI qui vont être décrits dans les paragraphes suivants.

1.3  Les circuits combinatoires

Dans ces circuits, la sortie est une expression logique des valeurs d'entrée.

1.3.1  Multiplexeur

Un multiplexeur comporte 2n entrées, 1 sortie et n lignes de sélection. La configuration des n lignes de sélection fournit une valeur parmi les 2n entrées et connecte cette entrée à la sortie.

Par exemple, une conversion parallèle-série utilise un multiplexeur de la façon suivante: une information de 8 bits arrive sur les 8 lignes d'entrée appelées D0, D1, ..., D7. Sur les trois lignes de sélection A, B, C, on diffuse séquentiellement les valeurs binaires dans l'ordre 000=0 à 111=7, de sorte que les 8 bits du mot d'entrée sont transmis en série sur la ligne de sortie.

1.3.2  Décodeur

Un décodeur comprend n entrées et 2n sorties, la sortie activée correspondant à la configuration binaire du mot formé par les n entrées. Un tel circuit sert à sélectionner des adresses de la mémoire.

Un décodeur 3 vers 8 (n=3) est réalisé par:


Un tel décodeur est utilisé pour une mémoire de 8 mots. Pour une mémoire composée de 8 circuits de 8K chacun6, le circuit 0 contient les octets d'adresses 0 à 8 × 1 024−1 = 8 192−1 = 8 191, le numéro 1 de 8 192 à 16 383, etc. On sélectionne suivant les 3 bits de poids fort pour avoir le numéro de circuit.

1.3.3  Comparateur

Un comparateur à 2n entrées et 1 sortie, les 2n entrées formant deux mots de n bits: A et B. La sortie vaut 1 si le mot A=B, sinon7.

1.3.4  Circuits FPLA

Ce sont des réseaux logiques programmables (Field Programmable Logic Array) qui permettent de réaliser des fonctions lorsqu'elles sont sous la forme d'une somme de produits.

Considérons par exemple 20 broches dont 12 correspondent à des entrées et 6 à des sorties. Les 12 entrées sont inversées, ce qui fournit 24 variables internes. Ces 24 variables sont toutes connectées à 50 portes ET, ce qui donne 1 200 fusibles, au départ intacts.

Programmer le circuit consiste alors à détruire certains fusibles pour obtenir les produits de la fonction à programmer. Les 6 sorties proviennent de 6 portes OU qui reçoivent chacune les sorties des 50 portes ET. On obtient ainsi 300 fusibles dont certains sont détruits pour obtenir la somme des termes de la fonction.



1.4  Les circuits de calcul

1.4.1  Décaleur

Un décaleur est formé de (n+1) entrées D1, ..., Dn, C et de n sorties S1, ..., Sn et opère un décalage de 1 bit sur les entrées D1, ..., Dn. Si C=1, il s'agit d'un décalage à droite et si C=0, d'un décalage à gauche8.

1.4.2  Additionneur

Pour réaliser des additions de 2 mots de 16 bits, on utilise 16 additionneurs à 1 bit, reliés pour gérer la propagation éventuelle de retenues. Ces additionneurs sont eux-mêmes formées à l'aide de demi-additionneurs.

Ce demi-additionneur est donc constitué de deux portes, un OU exclusif pour le résultat et un ET pour la retenue:



Table de vérité:
A B S R
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1


Afin de permettre une liaison de plusieurs additionneurs en série, un additionneur doit avoir une retenue en entrée Re en plus de la retenue en sortie Rs:
A B Re S Rs
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


On peut vérifier que le circuit suivant réalise correctement l'additionneur.



En représentant les deux demi-additionneurs par des carrés contenant le signe +, on obtient une représentation simplifiée de l'additionneur 1 bit:



1.4.3  Unité arithmétique et logique

Exemple d'une UAL (Unité Arithmétique et Logique) à un bit qui réalise ET, OU, NON, SOMME9.



1.5  Circuits logiques à mémoire: les bascules

Appelés également circuits séquentiels ou flip-flops, les bascules mémorisent l'état antérieur des variables de sortie et permettent ainsi de mémoriser un bit.

1.5.1  Bascules RS (avec portes NON OU)

Ces circuits ont deux entrées: S (set) qui correspond à la mise à 1 et R (reset) qui correspond à la remise à 0. Ils ont également deux sorties: Q1 et Q2.

Une bascule doit en principe mémoriser celle des deux entrées R et S qui a été mise à 1 le plus récemment.



S R Q1 Q2  
0 0 0 1 E1
0 0 0 1 E'1
0 0 1 0 E'2
1 0 1 0 E2
1 1 0 0 inutilisé


Si S=0 et R=1, on vérifie qu'on passe dans l'état stable E1Q1=0 et Q2=1. À partir de l'état E1, si R passe à 0, on obtient S=0, R=0, Q1=0, Q2=1, donc pas de changement10.

À partir de ce même état, si S passe à 1, on arrive à un état stable E2: S=1, R=0, Q1=1, Q2=0. Si S repasse à 0, cet état est inchangé.

On remarque que si S=R=0, il est possible d'avoir soit Q1=1, Q2=0, soit l'inverse, ce qui conduit à n'utiliser que les états E1, E2, E'1, E'2, et pas R=S=1.

Le fonctionnement et les états de la bascule sont représentés par un automate:



En général, on représente Q1 et Q2 comme Q et non Q, car dans les états utiles, Q2 est la négation de Q1. Il suffit alors de se donner une sortie Q et la table de vérité d'une bascule décrit la valeur de l'état suivant en fonction de la valeur de l'état courant.

S R Qn+1 (état suivant)
0 1 0  
1 0 1  
0 0 Qn (état suivant=état précédent)
1 1 indéfini


1.5.2  Bascules RS (à horloges)

Quand H=0, R'=S'=0, il n'y a aucun changement d'état possible, quelles que soient les valeurs des entrées R et S. En revanche, quand H=1, R'=R et S'=S.



Le nouvel état Qn+1 est obtenu uniquement à l'issue d'un signal (H=1) d'horloge.

1.5.3  Bascules D

La bascule D est obtenue à partir de ce qui précède en utilisant une seule entrée D, avec S=D, R= non D.



Cette bascule fournit en Q la valeur de D jusqu'à la prochaine impulsion de l'horloge. Ce mécanisme lève l'ambiguïté puisqu'on n'a jamais R=S=1. Bien entendu, il y a encore d'autres bascules.

1.5.4  Bascules JK

Les bascules JK règlent aussi le problème de l'état indéterminé.



On a la table de transitions suivantes. L'état Q ne change que lorsque l'entrée d'horloge H est mise à 1.

J K Qn+1
0 0 Qn
0 1 1
1 0 0
1 1 non Qn


1.6  Structure d'une mémoire

En réunissant plusieurs bascules sur un même signal d'horloge, on peut fabriquer un circuit qui constitue un registre, d'où la possibilité de construire des mémoires11. Le problème est de minimiser le nombre de broches.

Exemple 4   Une mémoire de quatre mots de 3 bits chacun, M0, ..., M3 dans un boîtier à 14 broches, chaque mot de 3 bits étant formé à partir de 3 bascules12.
8 entrées: 3 sorties de données D0, D1, D2.

Les lectures et les écritures sont réalisées de la manière suivante:
Remarquons que AA1 et les entrées des quatre mots forment un décodeur.

Sur les lignes de sortie, on utilise des circuits qui jouent le rôle d'interrupteurs13 et comportent 3 états: 0, 1, et un état de haute impédance qui déconnecte le circuit lorsque la commande vaut 0. Circuit 3 états:
Si les 3 signaux RD, CS, OE sont à 1, les sorties sont activées, sinon elles sont déconnectées par les circuits trois états.
Ce schéma se généralise avec un nombre de mots égal à 2n en utilisant n lignes d'adresses A0, ..., An−1. La taille d'un mot correspond au nombre de bascules, au nombre d'entrées et au nombre de sorties.

La structure décrite ci-dessus concerne les mémoires statiques. Pour les mémoires dynamiques, la structure interne n'utilise pas des bascules mais des condensateurs14. La capacité est plus grande, mais la charge électrique baisse avec le temps, d'où la nécessité de rafraîchir. Il existe différentes variantes intermédiaires entre les mémoires dynamiques15 et les mémoires à lecture seulement (ROM, “read only memory”), programmables une seule fois à la fabrication16.

1.7  Microprocesseur

Il est relié aux mémoires et aux circuits d'entrée-sortie par des bus, c'est-à-dire des lignes groupées: au moins n lignes d'adresses dans le bus d'adresses pour 2n mots mémoire et p lignes de données dans le bus de données si les mots ont chacun p bits.

Exemple 5   Le microprocesseur Z8017: 16 lignes d'adresses A0, ..., A15 permettant d'adresser 64 Koctets18, des mots de 8 bits correspondant à 8 lignes de données D0, ..., D7, 13 lignes de commande.


Les bus de d'adresses et de données sont actifs au niveau haut (1), tandis que les signaux de commande sont actifs au niveau bas (0). Commandes:



Up Next