diff --git a/src/test/resources/docu/images/pt/scr00.png b/src/test/resources/docu/images/pt/scr00.png
new file mode 100644
index 000000000..ac54cdcb4
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr00.png differ
diff --git a/src/test/resources/docu/images/pt/scr01.png b/src/test/resources/docu/images/pt/scr01.png
new file mode 100644
index 000000000..be4863634
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr01.png differ
diff --git a/src/test/resources/docu/images/pt/scr02.png b/src/test/resources/docu/images/pt/scr02.png
new file mode 100644
index 000000000..a73adec0a
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr02.png differ
diff --git a/src/test/resources/docu/images/pt/scr03.png b/src/test/resources/docu/images/pt/scr03.png
new file mode 100644
index 000000000..e9d33a827
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr03.png differ
diff --git a/src/test/resources/docu/images/pt/scr04.png b/src/test/resources/docu/images/pt/scr04.png
new file mode 100644
index 000000000..4bea7a105
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr04.png differ
diff --git a/src/test/resources/docu/images/pt/scr05.png b/src/test/resources/docu/images/pt/scr05.png
new file mode 100644
index 000000000..381d2f2d3
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr05.png differ
diff --git a/src/test/resources/docu/images/pt/scr06.png b/src/test/resources/docu/images/pt/scr06.png
new file mode 100644
index 000000000..5e52c1390
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr06.png differ
diff --git a/src/test/resources/docu/images/pt/scr07.png b/src/test/resources/docu/images/pt/scr07.png
new file mode 100644
index 000000000..22b1fcab8
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr07.png differ
diff --git a/src/test/resources/docu/images/pt/scr08.png b/src/test/resources/docu/images/pt/scr08.png
new file mode 100644
index 000000000..583139482
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr08.png differ
diff --git a/src/test/resources/docu/images/pt/scr09.png b/src/test/resources/docu/images/pt/scr09.png
new file mode 100644
index 000000000..c42ec8435
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr09.png differ
diff --git a/src/test/resources/docu/images/pt/scr10.png b/src/test/resources/docu/images/pt/scr10.png
new file mode 100644
index 000000000..b37e7efd7
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr10.png differ
diff --git a/src/test/resources/docu/images/pt/scr11.png b/src/test/resources/docu/images/pt/scr11.png
new file mode 100644
index 000000000..863ad448c
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr11.png differ
diff --git a/src/test/resources/docu/images/pt/scr12.png b/src/test/resources/docu/images/pt/scr12.png
new file mode 100644
index 000000000..90f11d47d
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr12.png differ
diff --git a/src/test/resources/docu/images/pt/scr13.png b/src/test/resources/docu/images/pt/scr13.png
new file mode 100644
index 000000000..45149afbb
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr13.png differ
diff --git a/src/test/resources/docu/images/pt/scr14.png b/src/test/resources/docu/images/pt/scr14.png
new file mode 100644
index 000000000..e947466a9
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr14.png differ
diff --git a/src/test/resources/docu/images/pt/scr20.png b/src/test/resources/docu/images/pt/scr20.png
new file mode 100644
index 000000000..495792f1f
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr20.png differ
diff --git a/src/test/resources/docu/images/pt/scr21.png b/src/test/resources/docu/images/pt/scr21.png
new file mode 100644
index 000000000..1c56aa4bc
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr21.png differ
diff --git a/src/test/resources/docu/images/pt/scr22.png b/src/test/resources/docu/images/pt/scr22.png
new file mode 100644
index 000000000..830a92ef5
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr22.png differ
diff --git a/src/test/resources/docu/images/pt/scr23.png b/src/test/resources/docu/images/pt/scr23.png
new file mode 100644
index 000000000..411c3c3e9
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr23.png differ
diff --git a/src/test/resources/docu/images/pt/scr24.png b/src/test/resources/docu/images/pt/scr24.png
new file mode 100644
index 000000000..c7446b219
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr24.png differ
diff --git a/src/test/resources/docu/images/pt/scr25.png b/src/test/resources/docu/images/pt/scr25.png
new file mode 100644
index 000000000..a21dbcb69
Binary files /dev/null and b/src/test/resources/docu/images/pt/scr25.png differ
diff --git a/src/test/resources/docu/static_pt.xml b/src/test/resources/docu/static_pt.xml
new file mode 100644
index 000000000..0f5e02987
--- /dev/null
+++ b/src/test/resources/docu/static_pt.xml
@@ -0,0 +1,556 @@
+
+
+
+
+
+ Digital é um simulador simples usado para testar circuitos digitais. As portas lógicas são conectadas
+ umas às outras por fios e o comportamento de todo o circuito pode ser simulado.
+ O usuário pode interagir com a simulação ou pressionando botões, ou definindo
+ valores para as entradas do circuito.
+
+
+ Dessa forma, a maioria dos circuitos básicos usados em eletrônica digital pode ser construída e simulada.
+ Na pasta examples, os usuários encontrarão exemplos que incluem até um processador Harvard de 16-bits
+ de ciclo único completamente funcional.
+
+
+ O simulador tem dois modos de operação: Edição e Simulação.
+ No modo de edição, modificações no circuito poderão ser efetuadas. Os usuários poderão adicionar ou conectar componentes.
+ Nesse modo, a simulação estará desabilitada.
+ O modo de simulação será ativado ao se pressionar o botão Iniciar na barra de tarefas.
+ Ao iniciar-se a simulação, o circuito será testado em relação à sua consistência.
+ Se houver erros no circuito, uma mensagem apropriada será exibida e
+ os componentes ou fios afetados ficarão em destaque. Se não houver erro, a simulação estará habilitada a prosseguir.
+ Será possível, então, interagir com a simulação em curso.
+ No modo de simulação não será possível modificar o circuito. Para fazer isso, para voltar ao modo de edição
+ será necessário parar a simulação.
+
+
+
+
+
+ Como um primeiro exemplo, sugere-se construir um circuito com uma porta OU_Exclusivo (XOR).
+ Na janela principal, o menu Componentes permitirá a seleção de vários tipos de componentes.
+ Eles serão posicionados na área de trabalho. Esse processo poderá ser cancelado pressionando-se a tecla ESC a qualquer momento.
+ Sugere-se iniciar pela seleção de um componente de entrada.
+ Mais tarde esse componente poderá ser controlado interativamente mediante uso do mouse.
+
+
+ Após seleção, a primeira entrada poderá ser posicionada na área de trabalho.
+ O ponto vermelho no símbolo do componente de entrada será seu ponto de conexão com um fio,
+ ao qual se conectará mais tarde.
+ A cor vermelha indicará uma saída. Isso significa que a porta definirá um sinal cujo valor será transmitido ao fio.
+
+
+
+ Da mesma forma, uma segunda entrada deverá ser adicionada. O melhor lugar para posicioná-la será diretamente abaixo da primeira.
+
+
+ Após adicionar as entradas, a porta OU_Exclusivo (XOR) deverá ser selecionada. Essa porta representará o valor lógico da
+ função.
+
+
+
+ Essa porta poderá então ser adicionada ao circuito. É melhor posicioná-la de maneira que estabelecer as conexões subsequentes
+ sejam tão simples de se fazer quanto o possível. Os pontos azuis indicarão os terminais de entrada da porta.
+
+
+
+ Em seguida, selecionar uma saída que será usada para mostrar o estado do sinal, ou que mais tarde transmitirá
+ ao restante do circuito ao qual estiver incorporada.
+
+
+
+ Ela também deverá ser posicionda de maneira que seja fácil executar conexões.
+ A saída terá um ponto azul, que indicará um terminal de entrada.
+ Por aí se poderá fornecer o valor que será exportado posteriormente.
+
+
+
+ Depois que todos os componentes estiverem selecionados e devidamente posicionados,
+ usar o mouse para criar as conexões entre os pontos azuis e vermelhos.
+ Certificar-se que apenas um ponto vermelho esteja conectado a qualquer número de pontos azuis.
+ Somente o uso de saídas tri-state poderão escapar dessa regra e interconectar
+ outros pontos vermelhos.
+ Quando todos os fios estiverem ligados, o circuito estará completo.
+
+
+
+ A interação com o circuito será possível quando a simulação for iniciada.
+ Isso poderá ser feito clicando no botão Iniciar localizado na barra de ferramentas.
+ Após a simulação iniciar-se, as cores dos fios irão se alterar e
+ as entradas e as saídas tomarão seus respectivos valores. A cor verde clara indicará o nível lógico '1',
+ e a verde escura, o nível lógico '0'.
+ Na figura acima, todos os fios terão o valor '0'.
+
+
+
+ Por meio de clicks do mouse, as entradas poderão ser comutadas. Uma vez que a simulação estiver ativa,
+ as saídas serão alteradas de acordo com os estados das entradas atuais. O circuito se comportará conforme a
+ porta OU_Exclusivo esperada.
+
+
+
+ Para outras manipulações do circuito, primeiro a simulação deverá ser interrompida. A maneira mais fácil de fazer isso é
+ por meio do botão Parar na barra de ferramentas. Ao clicar o botão direito sobre um componente, uma caixa de diálogo se abrirá
+ para exibir suas propriedades. O rótulo 'A' poderá ser definido para a primeira entrada
+ mediante esse atributo.
+
+
+
+ Dessa forma, os rótulos das outras entradas e saídas remanescentes poderão ser configurados. No menu
+ Análise há um item correspondente. Essa função executará a análise do circuito atual.
+ Contudo, isso somente será possível se todas as entradas e saídas estiverem devidamente rotuladas.
+
+
+
+ A tabela-verdade do circuito simulado será apresentada em uma nova janela. Abaixo da tabela poderá ser encontrada
+ a expressão algébrica associada ao circuito. Se houver várias expressões algébricas equivalentes,
+ uma janela em separado se abrirá, e mostrará todas as outras possíveis.
+
+
+
+ A caixa de diálogo da tabela tem uma entrada K-Map no menu principal. Isso permitirá exibir a tabela-verdade
+ na forma de um K-Map.
+
+
+
+ Na parte de cima da caixa de diálogo há uma lista do tipo drop-down que permitirá selecionar a expressão desejada
+ no K-Map. Dessa forma se poderá, por exemplo, ilustrar como várias expressóes algébricas equivalentes poderão
+ daí resultar. Entretanto, para esse exemplo, há apenas uma expressão mínima.
+ A tabela-verdade também poderá ser modificada por meio de clicks no K-Map.
+
+
+
+
+ Todos os componentes deverão estar conectados por fios. Não será possível conectar dois componentes simplesmente
+ colocando-os diretamente justapostos.
+
+
+ Além disso, só haverá conexões entre o ponto final de um fio e um componente.
+ Se um pino de um componente for colocado no meio de um fio, nenhuma conexão se estabelecerá entre o componente
+ e o fio.
+ Portanto, um fio deverá realmente terminar em cada pino ao qual estiver conectado.
+ Mesmo se um componente do tipo túnel for utilizado, deverá haver um fio entre o pino e esse túnel.
+
+
+ É necessário que o componente seja selecionado mediante a ferramenta de seleção retangular para que possa ser movido,
+ incluindo os fios conectados. Para mover um componente sem os fios conectados,
+ selecioná-lo apenas pelo click do mouse.
+
+
+ Com CTRL-click se poderá selecionar um único fio e movê-lo ou apagá-lo.
+ Se a tecla 'D' for pressionada enquanto o fio for traçado, esse traçado poderá ser feito na diagonal.
+ A tecla 'S' permitirá dividir um segmento de linha em dois.
+
+
+
+
+ Ao se construir um circuito complexo, esse poderá se tornar rapidamente muito confuso. Para ajudar,
+ diferentes partes de um circuito poderão ser armazenadas em arquivos distintos. Esse mecanismo também poderá ser
+ usado em um subcircuito que, uma vez criado, venha ocorrer em vários outros circuitos.
+ Essa abordagem é vantajosa porque os arquivos poderão ser armazenados independentemente empregando-se
+ um sistema para o controle de versões, e as eventuais mudanças poderão ser melhor acompanhadas.
+
+
+
+ Por exemplo, considerar um somador de 4-bits: primeiramente, se construirá um somador simples para 2-bits (meia-soma).
+ Esse será constituído por uma porta XOR e uma porta AND. A soma de dois bits 'A' e 'B' produzirá as saídas 'S' (soma) e 'C' (vai-um).
+ Esse circuito será armazenado no arquivo halfAdder.dig.
+
+
+
+ A partir da combinação de dois circuitos de meia-soma, um somador completo (full adder) poderá ser construído. Para isso, basta criar um arquivo vazio e
+ salvá-lo como fullAdder.dig na mesma pasta onde estiver o halfAdder.dig. Em seguida,
+ o somador simples poderá ser adicionado ao novo circuito via menu ComponentesPersonalizado.
+ A ordem dos pinos no pacote do somador simples poderá ser rearranjada pelo
+ menu EditarOrdenar entradas ou EditarOrdenar entradas.
+ O somador completo operará os três bits 'A', 'B' e 'Ci' e produzirá as saídas 'S' (soma) e 'Co' (vai-um).
+
+
+
+ Para se verificar a correção da função do somador completo, um caso de testes poderá ser acrescentado. No caso de testes,
+ a tabela-verdade será armazenada, a qual será submetida ao circuito. Dessa forma se poderá automaticamente
+ verificar seu comportamento.
+
+
+
+ Os testes poderão ser executados via editor de caso de testes ou pelo botão de teste na barra de ferramentas.
+ As células da tabela receberão destaque na cor verde para indicar quando a saída do circuito for equivalente
+ à tabela-verdade nesse caso de testes.
+
+
+
+ Assim, somadores completos poderão ser combinados para formar um somador em cascata (ripple-carry).
+ Nesse caso, o vai-um de uma adição serão repassado à próxima como entrada para operar
+ o bit de ordem mais alta, da mesma maneira como se faz manualmente com papel-e-lápis.
+ O somador de 4-bits deverá ser testado para confirmar sua função. Para isso, um caso de testes deverá ser acrescentado.
+
+
+
+ Um caso de testes executará 100% dos testes, o que somente será possível para circuitos relativamente simples: todas as
+ possíveis combinações de 512 entradas serão aplicadas ao circuito, e se verificará se sua saída estará correta.
+ A primeira linha relacionará a lista de sinais de entradas e saídas. Abaixo dessa, os valores das entradas a serem aplicados e
+ os das saídas a serem verificadas na mesma linha, tal como em uma tabela-verdade.
+ Nesse exemplo, contudo, 512 linhas serão requeridas. Isso poderá ser uma tarefa tediosa e não isenta da possibilidade de erros.
+ Será mais fácil e mais confiável gerar automaticamente essas linhas necessárias.
+ Para isso, as variáveis A e B deverão, cada uma, variar
+ de 0 a 15. Os respectivos valores de A e B serão atribuídos às entradas 'A[n]' e 'B[n]'.
+ Isso será verificado com as saídas do circuito para os valores de A+B. Será verificado novamente para
+ os bits de vai-um definidos, para cada caso em que resultar em A+B+1.
+ Os detalhes da sintaxe de teste serão fornecidos pela caixa de diálogo de ajuda.
+
+
+ Se um circuito estiver incorporado a outro, somente o nome do subcircuito será armazenado nesse, e não o próprio subcircuito.
+ Os arquivos correspondentes aos subcircuitos incorporados deverão portanto serem encontrados na pasta de arquivos
+ do sistema durante a simulação.
+ De modo a prover suporte para os diversos métodos de trabalho dos usuários da melhor forma possível, e ainda evitar
+ uma administração complexa dos caminhos para a importação e similares, uma estratégia pouco usual para fazê-lo foi implementada.
+
+
+ Somente os nomes dos circuitos incorporados serão armazenados no arquivo do circuito, não seus caminhos completos.
+ Se um arquivo necessitar ser aberto, todas as subpastas serão vasculhadas para se encontrar o arquivo com nome correspondente.
+ Se um arquivo aceitável for encontrado, será importado. Esse processo dependerá apenas do nome do arquivo a ser lido,
+ e não do caminho até ele. De forma correspondente, uma mensagem de erro será gerada se houver diversos arquivos com nomes iguais
+ em subpastas diferentes, uma vez que haverá ambiguidades.
+
+
+ Uma estrutura de projeto adequada portanto será a seguinte: o circuito principal (raiz) ficará localizado em uma pasta separada.
+ Todos os circuitos importados deverão estar na mesma pasta ou em subpastas. Todos os circuitos deverão ter nomes diferentes,
+ dessa forma não deverá acontecer que ocorram circuitos com o mesmo nome em pastas diferentes.
+
+
+
+
+
+
+ Durante a simulação, cada porta lógica terá um atraso de propagação. Cada componente encontrado na biblioteca
+ terá o mesmo atraso de propagação independente de sua complexidade.
+ Assim a porta AND terá o mesmo atraso de propagação de um multiplicador.
+ As únicas exceções serão os diodos, as chaves e os distribuidores que serão usados para os barramentos de dados.
+ Esses componentes não terão qualquer atraso.
+
+
+ Se for necessário simular uma porta, por exemplo, um multiplicador, com um atraso de propagação mais longo,
+ um componente próprio para atraso deverá ser inserido no circuito logo antes da saída do multiplicador.
+
+
+ Se um circuito estiver incluído em outro maior, esse incluirá também o seu comportamento ao longo do tempo.
+ Assim, se um circuito complexo for incluído e tiver um atraso de propagação bem grande, porque os sinais das entradas
+ terão que passar por três portas, até que cheguem à saída, esse comportamento será conservado quando for incluído
+ em outro circuito.
+ Não haverá atrasos adicionais pela inclusão em outro circuito. Se nem todas as saídas de um circuito tiverem
+ o mesmo atraso de propagação, isso também poderá ser o caso quando for incluído em um circuito maior.
+ Em geral, ao se incluir um circuito em outro, isso não modificará o comportamento ao longo do tempo de ambos.
+ Um circuito incorporado a outro se comportará exatamente da mesma forma como se todos os componentes também tivessem
+ sido inseridos nesse mesmo nível do circuito.
+
+
+
+
+
+ Um circuito poderá ser analisado via menuAnálise. A tabela-verdade será gerada apenas para
+ circuitos combinacionais. A tabela-verdade poderá ser editada se assim o desejar.
+ Um novo circuito será gerado a partir dessa tabela-verdade após sua edição.
+
+
+ Além de circuitos combinatórios, também será possível analisar ou gerar circuitos sequenciais.
+ Em lugar de uma simples tabela-verdade, se criará uma tabela de transições de estado.
+ Cada flip-flop ocorrerá tanto no lado das entradas e quanto no das saídas da tabela de transições de estado.
+ Nessa tabela, do lado direito, poderão ser encontrados os próximos estados, que tomarão lugar
+ após o próximo sinal do clock. O próximo estado dependerá do estado atual dos flip-flops encontrados
+ do lado esquerdo da tabela.
+ Para que a análise seja possível, todos os flip-flops deverão ter nomes.
+
+
+ A seguinte convenção se aplicará: os próximos estados de um bit do lado direito da tabela
+ serão indicados por letras minúsculas 'n+1'. O estado atual correspondente será indicado pelo sufixo 'n'.
+ Se houver uma variável de estado 'A', 'An' indicará o estado atual e 'An+1' indicará o próximo estado.
+ Se, na tabela-verdade dos lados esquerdo e direito, os sinais estiverem presentes, e corresponderem a esse padrão,
+ irá se supor uma transição de estados nessa tabela, e um circuito sequencial será gerado em lugar de um combinacional.
+
+
+ Deve-se notar que se um circuito ao ser analisado contiver elementos combinacionais,
+ além dos flip-flops D e JK nativos, como por exemplo, portas NOR,
+ isso não será reconhecido com um flip-flop e, portanto, não será possível analisar tal circuito.
+
+
+
+
+
+ No menu de geração de circuito na tabela-verdade também há funções para se gerar arquivos
+ JEDEC. Esse formato especial de arquivo descreve o mapa de fusíveis de um PLD.
+ O arquivo JEDEC poderá ser gravado em um PLD correspondente por meio de um programador especial.
+ No momento, os circuitos do tipo GAL16v8 e GAL22v10 ou mapa de fusíveis para dispositivos compatíveis
+ têm suporte.
+
+
+
+
+ Os chips na família
+
+ ATF150x
+
+ são CPLDs comuns com até 128 macrocélulas. São disponíveis em um encapsulamento PLCC,
+ o que os torna convenientes para exercícios em laboratório: se um circuito integrado se queimar durante os exercícios,
+ esse poderá ser simplesmente substituído. Além disso, como o
+
+ ATDH1150USB
+
+ é bem fácil de usar. Basta ter um programador de baixo custo disponível. Esse programador será capaz de lidar com os chips
+
+ ATF150x
+
+ em um sistema que use a interface JTAG.
+ Uma placa acessível para avaliação
+
+ (ATF15XX-DK3-U)
+
+ também está disponível.
+ O software
+
+ ATMISP
+ ,
+ à disposição no site da ATMEL/Microchip, será necessário para programar esses chips.
+
+
+ Infelizmente, detalhes do mapa de fusíveis não estão publicamente à disposição, de modo que não há filtros adequados para isso
+ que possam ser incorporados à ferramenta, assim como foi possível para os chips GAL16v8 e GAL22v10.
+
+
+ Portanto, os filtros fit150[x].exe fornecidos pela ATMEL deverão ser usados. Esses programas criarão um arquivo
+ JEDEC adequado a partir de um arquivo TT2 que poderá então ser usado para programar o chip.
+ A ferramenta iniciará o filtro automaticamente cada vez que o arquivo TT2 for criado. Para esse propósito, o caminho para
+ os filtros fit150[n].exe deverão estar especificados nas configurações.
+ O arquivo JEDEC criado poderá ser aberto e programado diretamente com
+
+ ATMISP
+ .
+
+
+ Por razões legais o filtro fit1502.exe não pode ser distribuído em conjunto com a ferramenta. Contudo,
+ poderá ser encontrado na pasta WinCupl\Fitters após instalação do
+
+ WinCupl
+ .
+
+ WinCupl
+
+ está à disposição no site da ATMEL/Microchip.
+ Em sistemas Linux, os filtros também poderão ser executados por essa ferramenta, se estiver instalado o wine.
+
+
+
+
+ Um circuito poderá ser exportado para VHDL ou Verilog. Um arquivo será gerado contendo a descrição
+ completa do circuito. Códigos VHDL gerados foram testados com o
+ Xilinx Vivado
+ e o simulador de código aberto para VHDL - ghdl.
+ O código Verilog foi testado com o simulador Icarus Verilog.
+
+
+ Se um circuito contiver casos de testes, seus dados serão usados para gerar o teste comportamental em HDL.
+ Isso poderá ser usado para verificar a correção da função do circuito em uma simulação em HDL.
+
+
+ Arquivos adicionais necessários para placas especiais poderão ser criados. No momento, somente as placas
+ BASYS3,
+ Mimas
+ e Mimas V2
+ têm suporte.
+ Um arquivo de restrições será criado contendo as atribuições aos pinos. As descrições dos pinos poderão ser encontradas
+ nos data sheet das placas, e deverão ser fornecidas, assim como o número do pino para suas entradas e saídas.
+
+
+ Na placa BASYS3, se a frequência de clock de um circuito for baixa, um divisor de frequências será incorporado ao código HDL
+ a fim de dividir o clock da placa para o valor conveniente.
+ Se a frequência de clock selecionada exceder 37kHz, a unidade MMCM do Artix-7 será usada para a geração de clock.
+ Isso garantirá que os recursos disponíveis na FPGA para distribuição do clock serão usados.
+ Isso permitirá que o exemplo de processador possa ser executado a 20MHz, e se quiser, sem o multiplicador,
+ 30HMz também será possível.
+
+
+ Também para as placas Mimas, o Spartan 6 DCM será utilizado para a geração de clock.
+
+
+ Se um circuito for executado em uma placa BASYS3, um novo projeto poderá ser criado no Vivado.
+ O arquivo VHDL gerado e o arquivo de restrições deverão ser acrescentados ao projeto.
+ Uma vez criado o projeto, a sequência de bits (bitstream) poderá ser gerada e o Gerenciador de Hardware poderá ser usado
+ para programar a placa BASYS3.
+
+
+ Para criar o arquivo de restrições requerido, o circuito deverá conter um campo de texto correspondente a
+ "Board: BASYS3", "Board: MimasV1" ou "Board: MimasV2".
+
+
+
+
+
+ Embora a ferramenta tenha algumas opções para determinar a aparência de um circuito quando esse for incorporado a outro,
+ em alguns casos poderá ser mais útil indicá-lo por meio de uma formato bem especial para o subcircuito.
+ Uma demonstração disso poderá ser a forma de se representar uma ALU em um processador incluída em vários exemplos.
+ Esse capítulo explicará como definir um formato especial para um circuito.
+
+
+ A ferramenta não dispõe de um editor para criar um formato especial. Para isso, um pequeno procedimento será necessário
+ para dar outros formatos ao circuito: primeiro, o circuito será aberto, o que será representado por determinado formato.
+ Depois, um gabarito SVG será criado para esse circuito. Nesse gabarito, o circuito será representado por um simples
+ retângulo. Ele também conterá todos os pinos do circuito, representados em azul (entradas) e vermelho (saídas).
+ Para se verificar qual círculo correponderá a qual pino, conferir o ID do círculo nas propriedades do objeto.
+ Esse ID estará na forma pino:[nome] ou pino+:[nome].
+ Na última forma variante, o pino terá um rótulo, caso tenha sido reimportado.
+ Se tal rótulo não for desejado, o sinal + poderá ser removido.
+
+
+ Esse arquivo SVG poderá então ser editado. O mais adequado a se fazer é abrir o programa fonte
+ Inkscape disponível gratuitamente.
+ Os pinos poderão ser movidos livremente, mas aderidos ao ponto mais próximo na grade durante a reimportação.
+
+
+ Se arquivos SVG tiverem que ser usados, será mais fácil abrir e criar um gabarito e colar o gráfico existente
+ nesse via Copiar&Colar.
+
+
+ Se o arquivo for salvo, ele poderá ser importado para a ferramenta. O arquivo será lido e todas as informações necessárias
+ serão extraídas e armazenadas no circuito. Para usos futuros do circuito, o arquivo SVG
+ não será mais necessário.
+
+
+ Uma observação final: SVG é um formato de arquivo muito útil e flexível.
+ Poderá ser usado para descrever gráficos extremamente complexos. A ferramenta poderá não estar apta para importar todos
+ os possíveis arquivos SVG sem erros. Se um arquivo não puder ser importado, ou não tiver o aspecto esperado,
+ alguns experimentos poderão ser necessários antes que o resultado desejado possa ser alcançado.
+
+
+
+
+ Como mover um fio?
+ Selecionar uma das extremidades com a seleção retangular. Assim se poderá mover o fio usando o mouse.
+ Também se poderá selecionar um fio usando CTRL + botão do mouse.
+
+
+
+ Como apagar um fio?
+ Selecionar uma das extremidades e apertar a tecla DEL ou clicar na lixeira.
+ Também se poderá selecionar um fio usando CTRL + botão do mouse.
+
+
+
+ Como mover um componente incluido todos os fios conectados?
+ Selecionar o componente com a seleção retangular. A seleção deverá incluir todo o componente.
+ Depois se poderá mover o componente incluindo seus fios usando o mouse.
+
+
+
+ Há um componente não conectado a um fio, mesmo havendo pinos sobre o fio.
+ Um pino somente estará conectado a um fio se o fio tiver seu ponto final nesse pino.
+
+
+ Se os nomes dos pinos em um circuito forem longos, esse não serão legíveis quando o circuito
+ for incorporado, o que se poderá fazer?
+ A largura do bloco poderá ser aumentada usando o item de menu
+ EditarEditar atribuitos de circuito.
+
+
+ Os pinos de um circuito incorporado não estão uma ordem adequada, isso pode ser modificado?
+ A sequência poderá ser alterada usando-se a entrada de menu EditarOrdenar entradas ou
+ EditarOrdenar saídas.
+
+
+
+ Quando a simulação se iniciar, e um fio ficar cinza, o que isso significa?
+ As cores verde claro e verde esculo são usadas para representar os estados em nível alto e baixo.
+ A cor cinza significa que o fio está em estado de alta impedância (Z).
+
+
+
+ Fornecida a tabela-verdade, como calcular as equações booleanas minimizadas?
+ No menu Análise selecionar o item Sintetizar. Depois, fornecer a tabela-verdade.
+ Na parte de baixo da janela se poderá encontrar a equação booleana correspondente. Se for indicada mais do que uma
+ variável dependente, uma nova janela se abrirá para apresentar todas as equações booleanas geradas.
+
+
+
+ Fornecida a tabela-verdade, mas se houver mais do que uma equação booleana apresentada,
+ qual delas é a correta?
+
+ A minimização de uma equação booleana poderá resultar em várias equivalentes que descreverão a mesma função.
+ Todas as mostradas criarão a mesma tabela-verdade.
+ Poderá haver diferenças dependentes de "don't cares" na tabela-verdade.
+
+
+
+ Se tiver a tabela-verdade, como criar um circuito que a represente?
+ No menu Análise selecionar o item Sintetizar. Depois, fornecer a tabela-verdade.
+ A tabela poderá ser editada mediante uso dos menus Nova ou Adicionar colunas.
+ No menu Criar se poderá construir o circuito pelo uso do item Circuito.
+
+
+
+ Como editar o nome de um sinal na tabela-verdade?
+ Clicar com o botão direito sobre o cabeçalho da tabela para editar o nome.
+
+
+ Se tiver a equação booleana, como criar um circuito?
+ No menu Análise selecionar o item Expressão. Depois, fornecer a expressão.
+
+
+
+ Como criar uma tabela-verdade para uma equação booleana?
+ No menu Análise selecionar o item Expressão. Depois, fornecer a expressão.
+ Em seguida, criar um circuito e de novo no menu Análise no item Análise criar a tabela-verdade.
+
+
+
+ Como criar um arquivo JEDEC para um dado circuito?
+ No menu Análise selecionar o item Análise. Depois, no menu Criar na
+ nova janela escolher o dispositivo correto no submenu Dispositivo.
+
+
+
+ Ao criar um arquivo JEDEC, como atribuir um número de pino a certo sinal?
+ Para as entradas e saídas correspondentes se poderá atribuir um número de pino na caixa de diáologo de configuração do mesmo.
+
+
+
+ Tenho um arquivo JEDEC criado. Como programá-lo para um GAL16v8 ou GAL22v10?
+
+ Para programar tal chip um hardware programador será necessário.
+
+
+
+
+ Iniciar ou parar a simulação.
+ Abrir a caixa de diálogo para a tabela de medidas.
+ Executar até haver interrupção
+ Executar cados de testes
+ Uma mudança de clock (funcionará se, e somente se, houver um componente de clock simples).
+ Análise do circuito
+ Selecionar tudo.
+ Recortar os elementos selecionados para a área de transferência.
+ Copiar os elementos selecionados para a área de transferência.
+ Inserir componentes a partir da área de transferência.
+ Duplicar a seleção atual sem modificar a área de transferência.
+ Quando inserir isso, rotacionar os componentes.
+ Inserir o último componente de novo.
+ Novo circuito.
+ Abrir circuito.
+ Salvar circuito.
+ Desfazer a última modificação.
+ Reaplicar a última modificação desfeita.
+ Programar um diodo ou um FG-FET.
+ Quando traçar um fio alterar para o modo em diagonal.
+ Quando traçar uma linha mudar a sua orientação.
+ Dividir um fio em dois.
+ Abortar a ação corrente.
+ Remover os componentes selecionados.
+ Remover os componentes selecionados.
+ Aumentar o número de entradas no componente apontado pelo mouse.
+ Diminuir o número de entradas no componente apontado pelo mouse.
+ Zoom in
+ Zoom out
+ Ajustar ao tamanho
+ Mostrar ou omitir a exibição hierárquica dos componentes
+
+
+
diff --git a/src/test/resources/docu/static_pt_ref.xml b/src/test/resources/docu/static_pt_ref.xml
new file mode 100644
index 000000000..ae3b5acbb
--- /dev/null
+++ b/src/test/resources/docu/static_pt_ref.xml
@@ -0,0 +1,565 @@
+
+
+
+
+
+ Digital is a simple simulator used to simulate digital circuits. The logic gates are connected
+ to each other by wires and the behavior of the overall circuit can be simulated.
+ The user can interact with the simulation by either pressing buttons or setting
+ values to the inputs of the circuit.
+
+
+ In this way, most of the basic circuits used in digital electronics can be built and simulated.
+ In the folder examples, users can browse for examples that includes a functional
+ 16-bit single-cycle Harvard processor.
+
+
+ The simulator has two modes of operation: Editing and Simulation mode.
+ In the editing mode, modifications to the circuit can be performed. Users can add or connect components.
+ In this mode, simulation is disabled.
+ The simulation mode is activated by pressing the Start button in the tool bar.
+ While starting the simulation the circuit is checked for consistency.
+ If there are errors in the circuit an appropriate message is shown and
+ the affected components or wires are highlighted. If the circuit is error free, the simulation is
+ enabled. Now you can interact with the running simulation.
+ In the simulation mode it is not possible to modify the circuit. To do so you have to activate the
+ editing mode again by stopping the simulation.
+
+
+
+
+
+ As a first example, a circuit is to be constructed with an Exclusive-Or gate.
+ From the main window, the Components menu allows you to select the various components.
+ Then they are placed on the drawing panel. This process can be canceled by pressing the ESC key at any
+ time. Start by selecting an input component.
+ This can later be controlled interactively by using the mouse.
+
+
+ After selection, the first input can be placed on the drawing panel.
+ The red dot on the input component symbol is a connection point between the component and a wire, which will be
+ connected later on.
+ The red color indicates an output. This means that the port defines a signal value or can drive a wire.
+
+
+
+ In the same way, a second input is added. It is best to place it directly below the first input.
+
+
+ After adding the inputs, the Exclusive-Or gate is selected. This gate represents the actual logical
+ function.
+
+
+
+ This gate can now also be added to the circuit. It is best to place it in a way that the subsequent
+ wiring is made as simple as possible. The blue dots indicate the input terminals of the gate.
+
+
+
+ Now, select an output which could be used to display a signal state or to later pass signals to
+ an embedding circuit.
+
+
+
+ This is placed in a way that it can be wired easily.
+ The output has a blue dot, which indicates an input terminal.
+ Here you can feed in the value which is then exported.
+
+
+
+ After all components are selected and in place, use the mouse to wire a connection between the blue and
+ red dots. Make sure that exactly one red dot is connected to any number of blue dots.
+ Only the usage of three-state outputs makes it possible to deviate from this rule and to interconnect
+ several red dots.
+ If all wires have been drawn, the circuit is complete.
+
+
+
+ Interaction with the circuit is possible when simulation is started.
+ This is done by clicking on the play button located in the toolbar.
+ After starting the simulation, the color of the wires changes and the
+ inputs and outputs are now filled. Bright green indicates a logical '1' and dark green a logical '0'.
+ In the figure above, all wires have a '0' value.
+
+
+
+ By clicking with the mouse, the inputs can be switched. Since the simulation is now active, the
+ output changes according to the current input states. The circuit behaves like an
+ Exclusive-Or gate as expected .
+
+
+
+ To further process the circuit, the simulation must first be stopped. The easiest way to do this is
+ with the Stop button in the tool bar. Clicking on a component with the right mouse button opens a
+ dialog which displays the component's properties. The label 'A' can be defined for the first
+ input via this dialog.
+
+
+
+ In this way, the labels for the remaining inputs and outputs can be configured. The menu item
+ Analysis also contains a menu item Analysis. This function performs an analysis of
+ the current circuit. However, this is only possible if all inputs and outputs are labeled properly.
+
+
+
+ The truth table of the simulated circuit appears in a new window. Below the table you can find the
+ algebraic expression associated with the circuit. If there are several possible algebraic
+ expressions, a separate window will open, showing all possible expressions.
+
+
+
+ The table dialog has the menu entry K-Map in its main menu. This allows to display the truth
+ table in the form of a K-map.
+
+
+
+ At the top of this dialog there is a drop-down list which allows the selection of the desired
+ expression in the K-map. In this way you can, for example, illustrate how several equivalent
+ algebraic expressions can result. However, in this example, there is only one minimal expression.
+ The truth table can also be modified by clicking the K-map.
+
+
+
+
+ All components must be connected via wires. It is not possible to connect two components
+ by placing them directly next to each other.
+
+
+ In addition, there are only connections between an endpoint of a wire and a component.
+ If a pin of a component is placed in the middle of a wire, no connection is made between the component
+ and the wire.
+ Therefore, a wire must actually terminate at each pin which is to be connected.
+ Even if the tunnel component is used, there must be a wire between the pin and the tunnel element.
+
+
+ The component needs to be selected using the rectangular selection tool in order to be moved,
+ including the connected wires. For moving a component without the connected wires,
+ select the component using a mouse click.
+
+
+ With CTRL-Click a single wire section can be selected to move or delete it.
+ If the D key is pressed while drawing a wire, a diagonal wire can be drawn.
+ The key S allows the splitting of a line segment into two segments.
+
+
+
+
+ If a complex circuit is built up, this can quickly become very confusing. To keep track here,
+ the different parts of a circuit can be stored in different files. This mechanism also makes it
+ possible to use a subcircuit, which has been created once, several times in a further circuit.
+ This approach also offers the advantage that the files can be stored independently of each other in a
+ version control system and changes can be tracked.
+
+
+
+ As an example, consider a 4-bit adder: First, we built a simple half-adder. This consists of an
+ XOR gate and an AND gate. The sum of the two bits 'A' and 'B' is given to the outputs 'S' and 'C'.
+ This circuit is stored in the file halfAdder.dig.
+
+
+
+ From two half adders a full adder can now be built. To do this, create a new empty file and save the
+ empty file as fullAdder.dig in the same folder as the half adder. Then the
+ half adder can be added to the new circuit via the ComponentsCustom menu.
+ The order of the pins at the package of the half-adder can be rearranged in the half adder in the
+ menu EditOrder inputs or EditOrder outputs.
+ The full adder adds the three bits 'A', 'B' and 'Ci' and gives the sum to the outputs 'S' and 'Co'.
+
+
+
+ In order to check the correct function of the full adder, a test case should be added. In the test case,
+ the truth table is stored, which should fulfill the circuit. In this way it can be automatically
+ checked whether this is the case.
+
+
+
+ The tests can be executed via the test case editor or the test button in the toolbar.
+ The table cells highlighted in green indicate that the output of the circuit matches
+ the truth table given in the test case.
+
+
+
+ Now the full adders can be put together to form a so-called ripple-carry adder.
+ In this case, the carry output of an addition is forwarded as a carry input to the addition of the
+ next higher-order bit, just as is usual in pencil-and-paper addition.
+ This 4-bit adder should be tested for correct function. For this purpose a test case was inserted.
+
+
+
+ This test case performs a 100% test, which is possible only with relatively simple circuits: all
+ possible 512 input combinations are applied to the circuit, and it is checked whether the output
+ of the circuit is correct.
+ The first line lists the input and output signals. Below this, the input values to be applied and
+ the output values to be checked are specified in a row, as in a truth table.
+ In this example, however, 512 lines are required. Entering this would be a tedious and error-prone task.
+ It is easier and more reliable to automatically generate the required lines.
+ For this purpose, the variables A and B are each traversed
+ from 0 to 15. The respective values of A and B are then assigned to inputs 'A[n]' and 'B[n]'.
+ Then it is checked whether the circuit outputs the value A+B. Then it is checked again with
+ the carry bit set, in which case A+B+1 must result.
+ The details of the test syntax are provided by the help dialog.
+
+
+ If a circuit is embedded in an other circuit, only the file name of the subcircuit is stored in a
+ circuit, not the embedded circuit itself.
+ The corresponding files of
+ the embedded subcircuits must therefore be found in the file system at runtime of the simulation.
+ In order to support the various work methods of the users as best as possible and still to avoid a
+ complex administration of import paths, etc., a somewhat unusual import strategy is implemented.
+
+
+ Only the file names of the embedded circuits are stored in a circuits file, not the full path.
+ If a file needs to be opened, all subfolders are searched for a file of the corresponding name.
+ If a suitable file is found, it is imported. This process only depends on the file name of the file to
+ be read, not on its path. Correspondingly, an error message is generated if there are several files of
+ the same name in different subfolders, since ambiguities then arise.
+
+
+ A suitable project structure therefore looks as follows: The root circuit is located in a separate
+ folder.
+ All imported circuits must be in the same folder or subfolders. All circuits must have different names,
+ so it must not happen that there are circuits of the same name in different folders.
+
+
+
+
+
+
+ During the simulation every logic gate has a propagation delay. Every component found in the library
+ has the same propagation delay regardless of its complexity.
+ The AND gate thus has the same propagation delay as the multiplier.
+ The only exceptions are diodes, switches and splitters which are used to create data buses.
+ These components have no propagation delay at all.
+
+
+ If it's necessary to simulate a gate - e.g. the multiplier - with a longer propagation delay, a delay
+ gate must be inserted in the circuit right behind the output of the multiplier.
+
+
+ If a circuit is included in another parent circuit, the included circuit keeps its timing behaviour.
+ So if you include a complex circuit which has a large propagation delay because the input signals
+ has to pass three gates until it reaches the output, this behaviour is conserved while including this
+ circuit.
+ There are no additional delays introduced as a result of including a circuit. If not all outputs of a circuit have
+ the same propagation delay, then this is also the case if it is included in a parent circuit.
+ In general, including a circuit into an other circuit does not modify its timing behaviour at all. An
+ included circuit behaves exactly the same way as if all components had been inserted at the same circuit
+ level.
+
+
+
+
+
+ A circuit can be analyzed via the menu entry Analysis. A truth table is generated for purely
+ combinatorial circuits. This truth table can be edited as desired.
+ A new circuit can be generated from this truth table after editing.
+
+
+ In addition to purely combinatorial circuits, it is also possible to analyze or generate sequential
+ circuits.
+ Instead of a simple truth table a so-called state transition table is created.
+ Each flip-flop thereby appears on the input side and the output side of the state transition table.
+ In this table, on the right-hand side, you can find the next state, which will
+ occur after the next clock signal. This next state depends on the current state of the flip-flops as found
+ at the left-hand side of the table.
+ For an analysis to be possible, the flip-flops must be named.
+
+
+ The following naming convention applies: The following next state of a bit on the right side of the table
+ is indicated by a lowercase 'n+1'. The corresponding current state is indicated by an appended 'n'.
+ If there is a state variable 'A', 'An' indicates the current state and 'An+1' indicates the next state.
+ If, in the truth table on the left and right side, signals are present, which correspond to this pattern
+ it is assumed that the table is a state transition table, and a sequential circuit is generated instead of
+ a combinatorial circuit.
+
+
+ It should be noted that the circuit to be analyzed may contain only purely combinatorial elements in
+ addition to the built-in D and JK flip-flops. If a flip-flop is e.g. made from Nor gates, this
+ circuit is not recognized as a flip-flop and therefore it is not possible to analyse such a circuit.
+
+
+
+
+
+ In the circuit generation menu in the truth table there are also functions to generate so-called
+ JEDEC files. This is a special file format that describes the fuse map of a PLD.
+ This JEDEC file can be written into a corresponding PLD using a special programmer.
+ At the moment, circuits of the type GAL16v8 and GAL22v10 or fuse map compatible
+ devices are supported.
+
+
+
+
+ The chips in the
+
+ ATF150x
+
+ family are simple CPLDs with up to 128 macrocells. They are available in a
+ PLCC package, which makes them suitable for laboratory exercises: If an IC is destroyed during exercises,
+ it can simply be replaced. In addition, with the
+
+ ATDH1150USB
+
+ an easy to use, low-cost programmer is available. This programmer is able to program the
+
+ ATF150x
+
+ chips in system using a JTAG interface.
+ A suitable evaluation board
+
+ (ATF15XX-DK3-U)
+
+ is also available.
+ The software
+
+ ATMISP
+ ,
+ which is available on the ATMEL/Microchip website, is required for programming the chips.
+
+
+ Unfortunately, the fuse map details are not publicly available so that no suitable fitter for this chip
+ can be integrated in Digital, as is possible with the GAL16v8 and GAL22v10 chips.
+
+
+ Therefore, the fitters fit150[x].exe provided by ATMEL must be used. These programs create a
+ JEDEC file from a suitable TT2 file which can then be programmed on the chip. Digital
+ starts the fitter automatically every time a TT2 file is created. For this purpose, the path to the
+ fit150[n].exe fitters must be specified in the settings.
+ The created JEDEC file can then be opened and programmed directly with
+
+ ATMISP
+ .
+
+
+ For legal reasons the fitter fit1502.exe can not be distributed with Digital. However, it can be
+ found in the folder WinCupl\Fitters after installing
+
+ WinCupl
+ .
+
+ WinCupl
+
+ is available on the ATMEL/Microchip website.
+ On Linux systems, the fitters can also be executed by Digital if wine is installed.
+
+
+
+
+ A circuit can be exported to VHDL or Verilog. A file is generated which contains the complete description
+ of the circuit. The generated VHDL code was tested with
+ Xilinx Vivado
+ and the open source VHDL simulator ghdl.
+ The Verilog code is tested with the Verilog simulator Icarus Verilog.
+
+
+ If a circuit contains test cases, the test data is used to generate a HDL test bench. This can be used
+ to check the correct function of the circuit in a HDL simulation.
+
+
+ Additional files which are needed by special boards can be created. At present only the
+ BASYS3
+ board and the Mimas boards Mimas
+ and Mimas V2
+ are supported.
+ A constraints file is created, which contains the assignment of the pins. The description of the pins can
+ be found in the boards data sheet, and must be entered as a pin number for the inputs and outputs.
+
+
+ At a BASYS3 board, if the circuit clock frequency is low, a frequency divider is integrated into the HDL
+ code to divide the board clock accordingly.
+ If the clock frequency selected in the circuit exceeds 37kHz, the MMCM unit of the
+ Artix-7 is used for clock generation.
+ This ensures that the FPGA resources provided for the clock distribution are used.
+ This allows the included example processor to run at 20MHz, and if you can do without the
+ multiplier, 30HMz is also possible.
+
+
+ Also at the Mimas-Boards the Spartan 6 DCM is utilized for the clock generation.
+
+
+ If a circuit is to run on a BASYS3 board, a new project can be created in Vivado.
+ The generated VHDL file and the constraints file must be added to the project.
+ Once the project has been created, the bitstream can be generated and the Hardware-Manager can be used
+ to program a BASYS3 board.
+
+
+ To create the required constraints file, the circuit must contain a text field with the text
+ "Board: BASYS3", "Board: MimasV1" or "Board: MimasV2".
+
+
+
+
+
+ Although Digital has some options that determine the appearance of a circuit when it is embedded in
+ another, in some cases it may be useful to use a very special shape for a subcircuit. An example is
+ the representation of the ALU in the processor included in the examples. This chapter explains how to
+ define such a special shape for a circuit.
+
+
+ Digital does not provide an editor for creating a special shape. Instead, a small detour is required
+ for creating circuit shapes: First, the circuit is opened, which is to be represented by a special shape.
+ Then an SVG template is created for this circuit. In this template, the circuit is represented by a
+ simple rectangle. It also contains all the pins of the circuit, represented by blue (inputs) and
+ red (outputs) circuits. To see which circle belongs to which pin, you can look at the ID of the
+ circle in the object properties. This ID has the form pin:[name] or pin+:[name].
+ In the latter variant, the pin is provided with a label if reimported to digital.
+ If you do not want such a label, the + can be removed.
+
+
+ This SVG file can now be edited. The most suitable is the open source program
+ Inkscape which is available for free.
+ The pins can be moved freely, but are moved to the next grid point during the reimport.
+
+
+ If existing SVG files are to be used, it is easiest to open the created template and paste the
+ existing graphic into the template via Copy&Paste.
+
+
+ If the file was saved, it can be imported with Digital. The file is read in and all necessary
+ information is extracted and stored in the circuit. For further use of the circuit, the SVG
+ file is no longer required.
+
+
+ A final remark: SVG is a very powerful and flexible file format.
+ It can be used to describe extremely complex graphics. The Digital importer is not able to import all
+ possible SVG files without errors. If a file can not be imported, or does not appear as expected,
+ some experimentation may be required before the desired result is achieved.
+
+
+
+
+ How to move a wire?
+ Select one of the end points with the rectangular selection. Then move this point using the mouse.
+ You can also select a wire with CTRL + mouse button.
+
+
+
+ How to delete a wire?
+ Select one of the end points and press DEL or click on the trashcan.
+ You can also select a wire with CTRL + mouse button.
+
+
+
+ How to move a component including all the connected wires?
+ Select the component with the rectangular selection. The selection must include the entire
+ component.
+ Then move the component including the wires using the mouse.
+
+
+
+ There is a component not connected to a wire, even though the pins are on the wire.
+ A pin is only connected to a wire if the wire has an endpoint at the pin.
+
+
+ If the names of the pins in a circuit are long, the names are no longer readable when
+ the circuit is embedded. What can I do?
+ The width of the block can be increased using the menu item
+ EditEdit circuit attributes.
+
+
+ The pins in an embedded circuit have an non-optimal order. How can this be changed?
+ The sequence can be changed using the menu entry EditOrder inputs or
+ EditOrder outputs.
+
+
+
+ When the simulation is started, a wire becomes gray. What does that mean?
+ The colors light green and dark green are used to represent high and low state.
+ Gray means the wire is in high Z state.
+
+
+
+ I have a truth table. How to calculate the minimized boolean equations?
+ In the menu Analysis select the entry Synthesise. Then enter the truth table.
+ At the bottom of the window you can find the matching boolean equation. If you enter more than one
+ dependent variable, a new window opens in which all boolean equations are shown.
+
+
+
+ I have entered a truth table, but there is more then one boolean equation shown.
+ Which of them is the correct one?
+
+ Minimizing a boolean equation can result in many equations, describing the same function.
+ Digital shows all of them and they all create the same truth table.
+ There may be differences depending on the "don't cares" in the truth table.
+
+
+
+ I have a truth table. How to create a circuit representing the truth table?
+ In the menu Analysis select the entry Synthesise. Then enter the truth table.
+ You can edit the table using the New or Add Columns menus.
+ In the menu Create you can create a circuit using the Circuit item.
+
+
+
+ How to edit a signal's name in the truth table?
+ Right click on the name in the table header to edit the name.
+
+
+ I have a boolean equation. How to create a circuit?
+ In the menu Analysis select the entry Expression. Then enter the expression.
+
+
+
+ How to create a truth table from a boolean equation?
+ In the menu Analysis select the entry Expression. Then enter the expression.
+ Then create a circuit and in the menu Analysis use the entry Analysis to create the truth
+ table.
+
+
+
+ How to create a JEDEC file from a given circuit?
+ In the menu Analysis select the entry Analysis. Then in the menu Create in the
+ new
+ window choose the correct device in the sub menu Device.
+
+
+
+ When creating a JEDEC file: How to assign a pin number to a certain signal?
+ At the corresponding inputs and outputs you can enter a pin number in the settings dialog of the pin.
+
+
+
+ I have created a JEDEC file. How to program it to a GAL16v8 or GAL22v10?
+
+ To program such a chip a special programmer hardware is necessary.
+
+
+
+
+ Starts or stops the simulation.
+ Opens the measurement table dialog.
+ Run to Break
+ Execute test cases
+ A single clock step (Works only in a running simulation and only if there is a single
+ clock component).
+
+ Analysis of the circuit
+ Select all.
+ Cuts the selected components to the clipboard.
+ Copys the selected components to the clipboard.
+ Inserts the components from the clipboard.
+ Duplicate the current selection without modifying the clipboard.
+ While inserting this rotates the components.
+ Inserts the last inserted component again.
+ New circuit.
+ Open circuit.
+ Save the circuit.
+ Undo last modification.
+ Redo the last undone modification.
+ Programs a diode or a FG-FET.
+ While drawing a wire switches to the diagonal mode.
+ While drawing a line flips the orientation.
+ Splits a single wire into two wires.
+ Abort the current action.
+ Removes the selected components.
+ Removes the selected components.
+ Increases the number of inputs at the component the mouse points to.
+ Decreases the number of inputs at the component the mouse points to.
+ Zoom In
+ Zoom Out
+ Fit to size
+ Show or hide the components tree view
+
+
+
\ No newline at end of file