Substituer des librairies

Supposons que nous ayons deux circuits Logisim censés faire la même chose. En tant qu'instructeur, vous avez peut-être demandé aux élèves de terminer une tâche : vous avez un fichier contenant votre solution et vous avez plusieurs fichiers d'élèves contenant leur travail. La tâche consistait à créer un additionneur à deux bits.

J'imagine que nous avons deux fichiers, nommés master.circ et query.circ. Chaque fichier contient un circuit nommé Adder2 (il est important que le nom du circuit à tester soit exactement le même), dont l'apparence est la suivante.

Adder2 dans master.circ Adder2 dans query.circ
######### #########

Comme vous pouvez le constater, le circuit maître utilise l'additionneur intégré de Logisim, tandis que le circuit de requête utilise un demi-additionneur et un additionneur complet, eux-mêmes composés de portes logiques. Aux fins de notre exemple, le circuit de requête a une erreur stupide : le report carry du demi-additionneur n'est pas connecté à l'additionneur complet.

Nous construisons notre circuit de test dans un fichier différent test.circ. Ensuite, nous chargeons master.circ en tant que bibliothèque Logisim à l'aide du menu | Projet || Charger une Lirairie || Bibliothèque Logisim | , et nous insérons son additionneur 2 bits en tant que sous-circuit. Nous pourrions exécuter ce circuit directement pour vérifier que le résultat souhaité correspond à solution parfaite.

java -jar logisim-evolution.jar test.circ -tty table

Mais nous voulons exécuter le circuit en utilisant query.circ plutôt que master.circ comme bibliothèque chargée. Une approche naïve serait d'ouvrir Logisim et de charger adder-query.circ à la place de adder-master.circ ou encore vous pouvez simplement supprimer le fichier master.circ et renommer query.circ pour qu'il s'appelle master.circ . Ces deux approches fonctionnent, mais demandent beaucoup de manipulation pour tester les devoirs d'une classe par exemple. Heureusement Logisim inclut une option pratique -sub qui remplace temporairement un fichier par un autre pendant cette session; sans apporter de modifications sur le disque.

java -jar logisim-evolution.jar test.circ -tty table -sub master.circ query.circ

Le fichier de sortie qui sera généré de cette façon est présenté ci-dessous. Il est bien sûr différent de ce que nous avons vu dans la section précédente , car la librairie commune aux circuits adder2 a été remplacée dans le circuit de test par celle de query.circ erronée.

 a  b sum
00 00 000
00 01 001
00 10 010
00 11 011
01 00 001
01 01 000
01 10 011
01 11 010
10 00 010
10 01 011
10 10 100
10 11 101
11 00 011
11 01 010
11 10 101
11 11 100

Suite : Autres options de vérifications.