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

O arquivo de saída que será gerado desta forma é mostrado abaixo. É claro que é diferente do que vimos na seção anterior, porque a biblioteca comum para os circuitos adder2 foi substituída no circuito de teste pela biblioteca query.circ errônea.

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

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