sub.html 4.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <title>Подстановка библиотек</title>
  5. </head>
  6. <body bgcolor="FFFFFF">
  7. <h1>Подстановка библиотек</h1>
  8. <p>Теперь предположим, что у нас есть две схемы Logisim, которые должны делать одно и то же. Как у преподавателя, у вас могут быть работы, выполненные учащимися: у вас есть один файл с вашим решением и несколько файлов учащихся, содержащих их работы. Например, задание было построить двухбитный сумматор.</p>
  9. <p>Я представлю, что у нас есть два файла с именами <tt>adder-master.circ</tt> и <tt>adder-query.circ</tt>. Каждый файл содержит схему с названием <q>2-bit adder</q> (важно, чтобы схема для проверки имела точно такое же название), эти схемы выглядят следующим образом.</p>
  10. <blockquote><table><tbody>
  11. <tr><td><tt>adder-master.circ</tt></td>
  12. <td><tt>adder-query.circ</tt></td></tr>
  13. <tr><td><img src="../../../../en/img-guide/verify-adder-master.png" width="184" height="63"></td>
  14. <td><img src="../../../../en/img-guide/verify-adder-query.png" width="171" height="112"></td></tr>
  15. </tbody></table></blockquote>
  16. <p>Как вы видите, эталонная схема использует встроенный в Logisim сумматор, а проверяемая схема использует две подсхемы, представляющие собой полусумматор и полный сумматор (которые в свою очередь построены из простых логических элементов). Для целей нашего примера проверяемая схема имеет глупую ошибку: бит переноса из полусумматора не соединён с полным сумматором.</p>
  17. <p>Мы сохраняем нашу проверяющую схему в отдельный файл. Затем мы загружаем <tt>adder-master.circ</tt> как библиотеку Logisim (Проект &gt; Загрузить библиотеку &gt; Библиотека Logisim…), и добавляем двухбитный сумматор оттуда как подсхему. Мы могли бы выполнить эту схему непосредственно, чтобы получить желаемый результат для идеального решения.</p>
  18. <blockquote><tt>java&nbsp;-jar&nbsp;logisim-filename.jar&nbsp;adder-test.circ&nbsp;-tty&nbsp;table</tt></blockquote>
  19. <p>Но мы хотим выполнить схему, используя как загруженную библиотеку <tt>adder-query.circ</tt> вместо <tt>adder-master.circ</tt>. Наивным подходом будет открыть Logisim и загрузить эту библиотеку; или вы можете просто удалить файл <tt>adder-master.circ</tt> и переименовать <tt>adder-query.circ</tt> в <tt>adder-master.circ</tt> вместо него. Но Logisim включает удобный параметр <q><tt>-sub</tt></q>, который временно заменяет один файл другим в ходе этой сессии - без каких-либо изменений на диске.</p>
  20. <blockquote><tt>java&nbsp;-jar&nbsp;logisim-filename.jar&nbsp;adder-test.circ&nbsp;-tty&nbsp;table&nbsp;-sub&nbsp;adder-master.circ&nbsp;adder-query.circ</tt></blockquote>
  21. <p>Вывод, который вы увидите, показан ниже; он конечно отличается от того, что мы видели в <a href="index.html">предыдущем разделе</a>, поскольку сейчас выполняется неправильный <tt>adder-query.circ</tt>.</p>
  22. <blockquote><pre>00 00 0E0
  23. 01 00 0E1
  24. 10 00 EE0
  25. 11 00 EE1
  26. 00 01 0E1
  27. 01 01 0E0
  28. 10 01 EE1
  29. 11 01 EE0
  30. 00 10 EE0
  31. 01 10 EE1
  32. 10 10 1E0
  33. 11 10 1E1
  34. 00 11 EE1
  35. 01 11 EE0
  36. 10 11 1E1
  37. 11 11 1E0</pre></blockquote>
  38. <p><strong>Далее:</strong>&nbsp;<a href="other.html">Другие параметры проверки</a>.</p>
  39. </body>
  40. </html>