NON, ET, OU

publicité
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
AM3
Transistors, portes booléennes
Au comme ncement é tait le transis tor, puis nous cré âmes les por tes boolée nnes, e t à la fin de la journée, les or dinate urs.
1. Fonctions booléennes
a. Type booléen
Un booléen en logique et en programmation informatique est un type de variable à deux états :


VRAI (représenté par 1 en langage machine)
ou FAUX (représenté par 0 en langage machine)
Une fonction booléenne est une fonction qui associe un booléen (0 ou 1) à un ou plusieurs booléens.
Elle peut s’exprimer de façon symbolique, par exemple : "(𝑛𝑜𝑛(𝑥) 𝑜𝑢 𝑦) 𝑒𝑡 (𝑥 𝑜𝑢 𝑦)"
Testez les exemples ci-contre dans le Shell Python
b. Fonctions booléennes de base: NON, ET, OU
(NOT, AND, OR)
En-dehors de leur expression symbolique, les fonctions booléennes se représentent aussi par une
table, parfois appelée « table de vérité ».
Remarque :
Le « ou » est un « ou inclusif » et non exclusif. Il est
vrai également si x et y sont vrais tous les deux.
« Je viendrai si je trouve un bus ou un taxi »
(inclusif)
Et non :
« Choisis entre la mer ou la montagne !» (exclusif)
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
c. Autres fonctions booléennes
Théorème : on peut exprimer de façon symbolique n’importe quelle fonction booléenne avec les
seules fonctions « et », « ou », « non »
Exemple : on définit une fonction booléenne nommé multiplexeur (mux) par :
𝑦 𝑠𝑖 𝑥 = 0
𝑚𝑢𝑥(𝑥, 𝑦, 𝑧) = {
𝑧 𝑠𝑖 𝑥 = 1
Compléter la table de vérité de
cette fonction :
Prouver en comparant les tables de vérité
x
0
0
y
0
0
z
mux(x,y,z)
0
1
(voir ci-dessous)
que l’expression symbolique de la fonction mux est :
𝒎𝒖𝒙(𝒙, 𝒚, 𝒛) = [𝒏𝒐𝒏(𝒙)𝒆𝒕 𝒚] 𝒐𝒖 (𝒙 𝒆𝒕 𝒛)
x
0
0
y
0
0
z
0
1
non(x)
non(x) et y
x et z
[𝑛𝑜𝑛(𝑥)𝑒𝑡 𝑦] 𝑜𝑢 (𝑥 𝑒𝑡 𝑧)
mux(x,y,z)
Exercice :
Déterminer les quatre fonctions booléennes de {𝑂; 1} dans {𝑂; 1}. Les exprimer chacune avec les
fonctions booléennes « de base » NON, ET, OU.
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
Exemple : trouver une expression symbolique pour la fonction « ou exclusif » (OUX / XOR)
On commence par construire la
table de vérité de cette fonction :
x
0
0
1
1
𝑓(𝑥, 𝑦) = 𝑥 𝑜𝑢𝑥 𝑦
y
0
1
0
1
On construit ensuite les fonctions g et g’ :
 𝑔(𝑥) = 𝑓(𝑥, 0) = 𝑥 𝑜𝑢𝑥 0
 𝑔′(𝑥) = 𝑓(𝑥, 1) = 𝑥 𝑜𝑢𝑥 1
On remarque alors (c’est l’étape-clef de l’exercice, la moins évidente, mais ce sera la même à chaque fois…) que
𝒇(𝒙, 𝒚) = 𝒎𝒖𝒙(𝒚, 𝒈(𝒙), 𝒈′ (𝒙))
En effet :
 si 𝑦 = 0, alors 𝑚𝑢𝑥(𝑦, 𝑔(𝑥), 𝑔′ (𝑥)) = 𝑚𝑢𝑥(0, 𝑔(𝑥), 𝑔′ (𝑥)) = 𝑔(𝑥) = 𝑓(𝑥, 0) = 𝑓(𝑥, 𝑦)
Par définition de la fonction « mux »
 si 𝑦 = 1, alors 𝑚𝑢𝑥(𝑦, 𝑔(𝑥), 𝑔′ (𝑥)) = 𝑚𝑢𝑥(1, 𝑔(𝑥), 𝑔′ (𝑥)) = 𝑔′(𝑥) = 𝑓(𝑥, 1) = 𝑓(𝑥, 𝑦)
Dans tous les cas (que 𝑦 = 0 ou que 𝑦 = 1), on a donc bien 𝑚𝑢𝑥(𝑦, 𝑔(𝑥), 𝑔′ (𝑥)) = 𝑓(𝑥, 𝑦)
Or, on a prouvé que la fonction mux s’écrivait : 𝒎𝒖𝒙(𝒙, 𝒚, 𝒛) = [𝒏𝒐𝒏(𝒙)𝒆𝒕 𝒚] 𝒐𝒖 (𝒙 𝒆𝒕 𝒛)
On en déduit donc que 𝑓(𝑥, 𝑦) = [𝑛𝑜𝑛(𝑦)𝑒𝑡 𝑔(𝑥)]𝑜𝑢 [𝑦 𝑒𝑡 𝑔′(𝑥)]
Si l’on regarde d’un peu plus près les fonctions g et g’ (en faisant leur table de vérité), on voit
qu’elles s’expriment elles-mêmes comme des fonctions simples :
Table de vérité de g
x
0
1
g(x)
Table de vérité de
g’
x
0
1
g’(x)
On constate que g est la fonction ……………………….. alors que g’ est la fonction ………………………..
Finalement, on peut donc écrire l’expression de OUX uniquement avec ET, NON, OU :
𝑥 𝑂𝑈𝑋 𝑦 = 𝑓(𝑥, 𝑦) =
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
d. Fonctions booléennes avec NON et OU
On a vu qu’il était possible d’exprimer toutes les fonctions booléennes avec les trois fonctions de
base ET, OU, NON.
En réalité, il est même possible de se passer de la fonction ET : les fonctions de base NON et OU
suffisent !
Pour le démontrer, il suffit d’exprimer la fonction ET comme combinaison des deux autres.
Exercice : prouver en comparant les tables de vérité que 𝑥 𝐸𝑇 𝑦 = 𝑛𝑜𝑛[𝑛𝑜𝑛(𝑥) 𝑂𝑈 𝑛𝑜𝑛(𝑦)]
𝑥
𝑦
𝑛𝑜𝑛(𝑥)
𝑛𝑜𝑛(𝑦)
𝑛𝑜𝑛(𝑥)𝑂𝑈 𝑛𝑜𝑛(𝑦)
𝑛𝑜𝑛[𝑛𝑜𝑛(𝑥)𝑂𝑈 𝑛𝑜𝑛(𝑦)]
𝒙 𝑬𝑻 𝒚
Remarque : on peut également utiliser seulement les fonctions ET et NON , car la fonction OU peut
s’exprimer en fonction de ces deux-là.
Un peu de culture...
George Boole, mathématicien anglais, a utilisé pour la première fois en 1850 une algèbre à 2
éléments pour l’étude de la logique mathématique. Il a défini une algèbre (i.e. un ensemble muni
d’opérations : +, x, ….) permettant de modéliser les raisonnements sur les propositions vraies ou
fausses.
Etudiée après Boole par de nombreux mathématiciens, l’Algèbre de Boole a trouvé par la suite de
nombreux champs d’application : réseaux de commutation, théorie des probabilités, recherche
opérationnelle (étude des alternatives).
Aujourd’hui, les ordinateurs sont composés de transistors électroniques fonctionnant sur 2 modes :
bloqué ou passant. Ils utilisent une arithmétique binaire. L’algèbre de Boole constitue un des
principaux fondements théoriques pour leur conception et leur utilisation. Les circuits sont des
implémentations matérielles de fonctions booléennes.
Nous allons voir à présent de quoi sont faits les ordinateurs à l’échelle microscopique : ce qu’est un
transistor électronique, et comment on construit « physiquement « des circuits ET, NON et OU,
permettant ainsi de construire des circuits pour n’importe quelle fonction booléenne.
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
2. Transistors
A l’échelle la plus petite, un ordinateur est un assemblage de transistors.
Définition : un transistor est un circuit électronique à trois fils (drain, source et grille). La résistance
entre le drain et la source varie en fonction de la tension appliquée entre la grille et la source ;


Quand cette tension est inférieure à un certain seuil, la résistance est très grande : le
transistor est dit bloqué
Quand cette tension est supérieure au seuil, la résistance est très petite : le transistor est dit
passant.
a. Circuit « NON »
SCHEMA 1
SCHEMA 2
SCHEMA 3
Le schéma 1 présente un circuit constitué d’un transistor, d’un générateur délivrant une tension supérieure
au seuil du transistor, et d’une résistance.


Quand le transistor est bloqué, le circuit est équivalent à celui du schéma 2.
Quand le transistor est passant, le circuit est équivalent à celui du schéma 3.
𝑼𝑶𝑨 (entrée)
« faible »
Bit d’entrée
0
(inférieure au seuil)
« forte »
Etat transistor
Bloqué
𝑼𝑶𝑩 (sortie)
Bit de sortie
(schéma 2)
1
(supérieure au seuil)
Passant
(schéma 3)
Ce circuit permet donc de simuler une fonction booléenne : la fonction « non ».
b. Circuit « OU »
Le circuit OU est construit sur le même principe, mais
avec deux entrées A et B :
On va étudier le comportement de ce
circuit en fonctions des valeurs d’entrées
A et B. Le but est de compléter la table :
Entrée A
Entrée B
Sortie
0
0
0
1
1
0
1
1
… pour démontrer qu’en sortie, on a bien
la valeur de « A ou B »
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
Etudier l’état des transistors dans chaque cas, et dessiner les circuits équivalents :
Entrée Entrée Transistor Transistor Transistor
A
B
en A
en B
en C
0
0
0
1
1
0
1
1
bloqué
bloqué
passant
On obtient bel et bien la table de la fonction « OU ».
Circuit équivalent :
Sortie
D
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
On arrive ainsi à une représentation différente du même circuit (à un autre niveau).
Souvent, même, on ne représente pas le générateur. Il est implicite que chaque porte est alimentée.
Exemple : (avec et sans générateur)
Exercice : déterminer la table des circuits suivants
Exercice :
Construire un circuit réalisant la fonction multiplexeur (mux) vue au début de ce chapitre.
Source : Manuel de spécialité ISN par Gilles Dowek et son équipe, éditions Eyrolles
Exercice corrigé :
Téléchargement