Substituir bibliotecas

Agora suponha que tenhamos dois circuitos do Logisim que deveriam fazer a mesma coisa. Como instrutor, você poderia ter pedido aos seus alunos concluírem uma tarefa. Você tem um arquivo que contém sua solução, mas também vários arquivos de alunos contendo seus trabalhos. Talvez a tarefa tenha sido construir um somador de dois bits.

Imaginarei dois arquivos, chamados adder-master.circ e adder-query.circ. Cada arquivo conterá um circuito chamado 2-bit adder (é importante que o circuito para teste seja chamado exatamente igual), cuja aparência poderá ser a seguinte.

adder-master.circ adder-query.circ

Como você poderá ver, o circuito principal usará o somador predefinido no Logisim, enquanto o circuito para teste usará dois subcircuitos representando uma meia-soma e uma soma-completa (os quais serão constituídos apenas por portas simples). Para os fins do nosso exemplo, o circuito para teste terá um erro estúpido: O carry da meia-soma não estará conectado à soma completa.

Nós construíremos o nosso circuito de teste em um arquivo diferente. Lá, carregaremos adder-master.circ como uma biblioteca do Logisim (Projeto > Carregar Biblioteca > Biblioteca do Logisim ...), e inserir seu somador de 2 bits como um subcircuito. Nós poderíamos executar esse circuito diretamente para obter a saída desejada para uma solução perfeita.

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

Mas queremos executar o circuito usando adder-query.circ ao invés de adder-master.circ como o da biblioteca carregada. A abordagem ingênua seria abrir Logisim e carregar essa biblioteca de uma vez; ou você poderá simplesmente remover o adder-master.circ e renomear adder-query.circ para ser chamado de adder-master.circ em vez disso. Mas Logisim inclui uma prática opção sub que substituirá temporariamente um arquivo por outro durante a sessão - sem fazer quaisquer alterações em disco.

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

A saída que você iria ver a partir disso é mostrada abaixo, naturalmente é diferente daquela vista na seção anterior já que agora será a execução usando o adder-query.circ errado.

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

Próximo: Outras opções para verificações.