Подстановка библиотек

Теперь предположим, что у нас есть две схемы Logisim-evolution, которые должны выполнять одну и ту же функцию. Как преподавателю, вам необходимо проверить работы, выполненные учащимися: у вас есть один файл с вашим эталонным решением и несколько файлов учащихся, содержащих их проекты. Например, заданием было построить двухразрядный сумматор.

Предположим, что у нас есть два файла с именами adder-master.circ и adder-query.circ. Каждый файл содержит схему с названием 2-bit adder (важно, чтобы тестируемая схема имела точно такое же название), эти схемы выглядят следующим образом.

adder-master.circ adder-query.circ
######### #########

Как вы видите, эталонная схема использует встроенный в Logisim-evolution сумматор, а проверяемая схема использует две подсхемы, представляющие собой полусумматор и полный сумматор (которые, в свою очередь, построены из простых логических элементов). В нашем примере в проверяемой схеме допущена грубая ошибка: выход переноса (carry) из полусумматора не соединён со входом переноса полного сумматора.

Мы сохраняем нашу тестовую схему в отдельный файл adder-test.circ. В нём мы загружаем adder-master.circ в качестве внешней библиотеки (| Проект | → | Загрузить библиотеку | → | Библиотека Logisim… |) и добавляем двухразрядный сумматор оттуда как подсхему. Мы можем запустить эту тестовую схему напрямую, чтобы получить эталонную таблицу истинности для идеального решения:

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

Но мы хотим запустить проверку, временно заменив загруженную библиотеку adder-master.circ файлом adder-query.circ. Самый простой подход — открыть проект в интерактивном режиме и заменить библиотеку вручную, либо временно переименовать файл adder-query.circ в adder-master.circ. Однако Logisim-evolution поддерживает удобный параметр командной строки -sub, который временно заменяет один файл библиотеки другим на время сессии тестирования — без внесения изменений на диске.

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

Сгенерированная таблица представлена ниже. Конечно, она отличается от таблицы из предыдущего раздела, потому что общая библиотека для подсхемы 2-bit adder была заменена в тестовой схеме на ошибочную из файла adder-query.circ (ошибки обозначены как E):

00      00      0E0
01      00      0E1
10      00      EE0
11      00      EE1
00      01      0E1
01      01      0E0
10      01      EE1
11      01      EE0
00      10      EE0
01      10      EE1
10      10      1E0
11      10      1E1
00      11      EE1
01      11      EE0
10      11      1E1
11      11      1E0

Далее: Другие параметры проверки.