Подстановка библиотек
Теперь предположим, что у нас есть две схемы 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
Далее: Другие параметры проверки.