Licence CC BY-NC-SA

Construire des portes logiques avec des dominos

Les portes logiques sont des constructions qui permettent d’effectuer des calculs booléens. Sur base d’entrées fournies à la porte, celle-ci effectue un calcul et donne le résultat via sa sortie. Les portes logiques les plus répandues sont électroniques, mais est-il possible d’en construire en utilisant d’autres élements ? par exemple avec des dominos ? La réponse est oui et cet article va vous présenter comment réaliser ces portes par des constructions simples composées uniquement de dominos.

Porte OR

La porte OU est une porte dont la sortie sera active si au moins une des deux entrées est active. II s’agit de la porte la plus simple à réaliser. En effet, il nous suffit de combiner nos deux entrées en réunissant les deux flux de dominos en une sortie. Si l’un des flux est actif (par la chute de dominos), cela générera une sortie active.

Porte AND

Une porte ET est une porte dont la sortie sera active uniquement si les deux entrées sont simultanément actives. Pour construire cette porte, on va introduire une sorte de condition d’arrêt si une des deux entrées est inactive. C’est-à-dire que l’entrée A va être divisée en deux: une route qui se rend vers la sortie et une autre route qui va l’intercepter. De son côté, la route B ne va pas être connectée à la sortie, elle va uniquement servir à intercepter la route interceptrice de A. L’animation ci-dessous devrait aider à visualiser ceci.

Pour réaliser ce schéma, il y a une subtilité importante à comprendre: certaines routes doivent être plus longues que d’autres afin que certaines informations se propagent avant d’autres.

  • La route de B menant à l’intersection entre la route issue de A et de B doit être plus courte que celle issue de A menant à la même intersection.
  • La route de A menant à l’intersection avant C et permettant de bloquer le signal doit être plus courte que la route de A à C.

Nous avons donc les possibilités suivantes:

  • A = 0, B = 0: rien ne se passe, la sortie reste inactive.
  • A = 1, B = 0: la route A est divisée en deux. Mais comme l’entrée B est inactive, A va se diviser en deux routes et s’intercepter elle-même, ce qui mènera à une sortie inactive.
  • A = 0, B = 1: B va intercepter la route interceptrice A mais celle-ci n’allait de toute façon rien intercepter et la sortie est inactive.
  • A = 1, B = 1: la route interceptrice venant de A est interceptée par B et la sortie est active.

Porte XOR

Une porte OU EXCLUSIF est une porte dont la sortie sera active lorsqu’une et une seule des deux entrées est active. Pour ce faire, nous allons une fois de plus imaginer une construction qui permet aux deux routes de s’intercepter lorsqu’elles sont toutes les deux actives.

La partie supérieure de la construction est un simple OR mais la partie inférieure est là où la magie opère. Chacune des routes montantes ne peut être activée que par une des deux entrées. Si A est active, la route montante droite sera active tandis que le route montante gauche sera active uniquement si la porte B est active.

Très bien, mais que se passe-t-il lorsque les deux portes sont actives ? Elles vont s’intercepter au milieu de la partie inférieure et la sortie C sera inactive. Ce qui remplit bien le contrat de la porte XOR!


Maintenant que nous savons comment construire ces portes logiques, rien ne nous empêche d’aller plus loin et de construire un calculateur en dominos. En effet, il est possible d’additionner des nombres en utilisant uniquement des portes AND, OR et XOR, et donc de construire un circuit additionnant des nombres avec des dominos. Si vous voulez voir cela en pratique, vous pouvez regarder cette vidéo où un tel circuit est construit (et m’a inspiré l’écriture de cet article).

Les animations présentées dans cet article ont été réalisées en utilisant manim, un moteur permettant de programmer des animations.

Pour finir,je voudrais remercier Holosmos pour sa validation qui a permis de grandement améliorer la qualité de cet article.

9 commentaires

C’est génial ! Cependant, n’y aurait-il pas moyen de simplifier le AND ? C’est théoriquement le plus simple que l’on puisse faire ?

sgble

Je ne sais pas si c’est théoriquement la plus simple mais c’est celle qui semble être utilisée partout et personnellement, je n’arrive pas à trouver de construction plus simple que ça.

Super article,c 'est intéressant de voir ça mécaniquement.

Mais bon, comment on fait pour le NOT ? :D

entwanne

En considérant que NOT(x) = XOR(x, 1), je pense qu’on peut le faire avec cet assemblage de dominos, en "laissant à 1" une des branches. Mais concrètement, je ne sais pas si c’est simplement faisable…

Ah oui, il pourrait y avoir une branche à 1 tout du long qui se divise chaque fois qu’il y a besoin d’alimenter un XOR, mais ça demande à ce qu’elle soit bien calibrée pour arriver au bon moment à chaque porte.

En tout cas ça donne envie d’acheter des dominos pour tester des assemblages.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte