Une porte est une frontière entre un intérieur et extérieur
Logisim est un logiciel de simulation écrit en Java,qui nous permettra de simuler et tester certaines portes logiques
Lancer Logisim à partir du répertoire isn
Il s'agit d'implémenter les portes Not,And,Or et Xor uniquement avec des portes Nand
Même si ces portes sont déjà à disposition dans logisim , nous allons utiliser la logique des sous-circuits (identique à celle des fonctions) pour créer un sous-circuit pour chacune de ces portes
Not(x) = Nand(x,x)
Selectionner Add Circuit... dans le menu Project et entrer le nom du circuit Nand2Not
Construire le circuit et tester le avec Poke
Cliquer sur A pour pouvoir insérer du texte sur le circuit
Ensuite cliquer sur le pin d'entrée et étiqueter in
Faire de même avec le pin de sortie et étiqueter out
And(x,y) = Not(Nand(x,y))
Selectionner Add Circuit... dans le menu Project et entrer le nom du circuit Nand2And
Par glisser-déposer prendre 2 pins d'entrée, un sous-circuit Nand2Not et une porte Nand
Pour cabler Nand2Not on fait glisser la souris au-dessus de la porte pour faire apparaître les étiquettes d'entrée in et de sortie out
Etiqueter les deux entrées in1 et in2 et la sortie out
Construire le circuit
Sachant que Not(Or(x,y)) = And(Not(x),Not(y)), exprimer Or(x,y) uniquement à partir des portes Nand et Not
Créer un nouveau sous-circuit Nand2Or
Sachant que Xor(x,y) = Or(And(Not(x),y),And(x,Not(y))), créer un nouveau sous-circuit Nand2Xor
la porte multiplexeur 2:1 permet de faire transiter sur un seul fil deux bits (l'un après l'autre) en fonction de la valeur d'un sélecteur sel
Construire un circuit Dmux (démultiplexeur) à partir des portes Not et And
Un additionneur 1 bit est vu comme deux fonctions booléennes s le chiffre des unités et cout la retenue de sortie dépendant de trois entrées
3 entrées : deux bits a et b et une retenue d'entrée cin
2 sorties : Le bit de résultat s et une retenue de sortie cout
Après avoir fait la table de vérité des fonctions s et cout, on obtient comme circuit
Créer un circuit add1 qui implémente l'additionneur 1 bit à partir du schéma ci-dessous