Подстановка библиотек
Теперь предположим, что у нас есть две схемы Logisim, которые должны делать одно и то же. Как у преподавателя, у вас могут быть работы, выполненные учащимися: у вас есть один файл с вашим решением и несколько файлов учащихся, содержащих их работы. Например, задание было построить двухбитный сумматор.
Я представлю, что у нас есть два файла с именами adder-master.circ и adder-query.circ. Каждый файл содержит схему с названием 2-bit adder (важно, чтобы схема для проверки имела точно такое же название), эти схемы выглядят следующим образом.
adder-master.circ | adder-query.circ |
Как вы видите, эталонная схема использует встроенный в Logisim сумматор, а проверяемая схема использует две подсхемы, представляющие собой полусумматор и полный сумматор (которые в свою очередь построены из простых логических элементов). Для целей нашего примера проверяемая схема имеет глупую ошибку: бит переноса из полусумматора не соединён с полным сумматором.
Мы сохраняем нашу проверяющую схему в отдельный файл test.circ. Затем мы загружаем adder-master.circ как библиотеку Logisim | Проект |→| Загрузить библиотеку |→ | Библиотека Logisim… |, и добавляем двухбитный сумматор оттуда как подсхему. Мы могли бы выполнить эту схему непосредственно, чтобы получить желаемый результат для идеального решения.
java -jar logisim-filename.jar adder-test.circ -tty table
Но мы хотим выполнить схему, используя как загруженную библиотеку adder-query.circ вместо adder-master.circ. Наивным подходом будет открыть Logisim и загрузить эту библиотеку; или вы можете просто удалить файл adder-master.circ и переименовать adder-query.circ в adder-master.circ вместо него. Но Logisim включает удобный параметр -sub, который временно заменяет один файл другим в ходе этой сессии - без каких-либо изменений на диске.
java -jar logisim-filename.jar adder-test.circ -tty table -sub adder-master.circ adder-query.circ
Выходной файл, который будет сгенерирован таким образом, показан ниже. Конечно, он отличается от того, что мы видели в предыдущем разделе , потому что общая библиотека для схем adder2 была заменена в тестовой схеме на ошибочную библиотеку query.circ.
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
Далее: Другие параметры проверки.