From a625d38eea68a56337c2cac310d55804cbe82154 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 8 Aug 2020 07:58:24 +0200 Subject: [PATCH] updates the Portuguese translation --- src/main/resources/lang/lang_pt.xml | 432 +++++++++++++++--------- src/main/resources/lang/lang_pt_ref.xml | 432 ++++++++++++++++-------- 2 files changed, 561 insertions(+), 303 deletions(-) diff --git a/src/main/resources/lang/lang_pt.xml b/src/main/resources/lang/lang_pt.xml index f25f01a06..b9e3d4d89 100644 --- a/src/main/resources/lang/lang_pt.xml +++ b/src/main/resources/lang/lang_pt.xml @@ -1,14 +1,14 @@ - Endereço - Índice - Geral - Revisão - Data - Valor máximo - A seguir descrevem-se as configurações disponíveis no simulador. - Atributos - Abrir circuito + Endereço + Índice + Geral + Revisão + Data + Valor máximo + A seguir descrevem-se as configurações disponíveis no simulador. + Atributos + Abrir circuito Incluir circuito: Abrir circuito em um nova janela. Ajuda @@ -31,16 +31,18 @@ Salvar como arquivo HEX. Criar Criar circuito em janela separada - Editar em separado - Abrir diálogo como não modal - Navegador - Abrir texto de ajuda no navegador. Permite-se a impressão do texto. - Limpar - Atribuir zeros a todos os valores! - Transições - Todas as possíveis transições serão adicionadas como casos de testes. É usada para criar casos de testes para o próprio simulador. - Novo nome - Salvar incondicionalmente + Editar em separado + Abrir diálogo como não modal + Navegador + Abrir texto de ajuda no navegador. Permite-se a impressão do texto. + Limpar + Atribuir zeros a todos os valores! + Transições + Todas as possíveis transições serão adicionadas como casos de testes. É usada + para criar casos de testes para o próprio simulador. + + Novo nome + Salvar incondicionalmente Substituir Aplicar Editar o conteúdo da ROM/EEPROM selecionada @@ -193,17 +195,23 @@ Essa entrada controlará o ponto decimal. Matriz de LEDs A matrixz de LEDs. Os LEDs serão exibidos em uma janela em separado. - Os LEDs de uma coluna do display serão controlados por uma palavra de controle. Em outra entrada, a coluna corrente será - selecionada. Dessa forma um display multiplexado será obtido. - Os LEDs são capazes de se manter acesos indefinidamente durante a simulação para evitar que o display fique piscando. - A fileira de LEDs de uma coluna. - Cada bit nessa palavra de dados representa o estado da coluna corrente. - O número da coluna corrente cujo estado estará visível segundo a outra entrada. - Gráfico de dados - Mostrará um gráfico dentro do painel de circuito. + Os LEDs de uma coluna do display serão controlados por uma palavra de controle. Em outra entrada, a coluna corrente será + selecionada. Dessa forma um display multiplexado será obtido. + Os LEDs são capazes de se manter acesos indefinidamente durante a simulação para evitar que o display fique + piscando. + + A fileira de LEDs de uma coluna. + Cada bit nessa palavra de dados representa o estado da coluna corrente. + + O número da coluna corrente cujo estado estará visível segundo a outra + entrada. + + Gráfico de dados + Mostrará um gráfico dentro do painel de circuito. Será possível exibir ciclos completos de clock ou mudanças de portas individuais. - Não afeta a simulação. - Codificador rotativo + Não afeta a simulação. + + Codificador rotativo Disco giratório com codificador rotativo. Usado para detectar movimentos de rotação. @@ -237,16 +245,18 @@ Um nível alto nessa entrada habilitará o recebimento do clock. MIDI Usar o sistema MIDI para tocar notas. - Nota - Volume - Se definido, isso se traduzirá no pressionar de uma tecla (key down event), - caso contrário, isso se traduzirá no liberar de uma tecla (key up event). - Habilitar o componente - Se em nível alto, o valor em N será usado para alterar o programa (instrumento). - Clock - - Terra - Conexão para terra. A saída será sempre igual a zero. + Nota + Volume + Se definido, isso se traduzirá no pressionar de uma tecla (key down event), + caso contrário, isso se traduzirá no liberar de uma tecla (key up event). + + Habilitar o componente + Se em nível alto, o valor em N será usado para alterar o programa (instrumento). + + Clock + + Terra + Conexão para terra. A saída será sempre igual a zero. Saída sempre retornará 0. Fonte Conexão à fonte. A saída será sempre igual a um. @@ -1080,28 +1090,36 @@ Formato Formato da tela para expressões. Relé normalmente fechado. - - Se o relé estiver fechado, a entrada estará em nível baixo. - Número de polos - - Número de polos disponíveis. - Conexão comum - - Se a entrada for selecionada como ânodo ou cátodo comum, também será simulada. - Prevenir o piscamento (flicker) - - Se não for possível aumentar a frequência o bastante para que o efeito de piscamento possa desaparecer. - Com essa opção se poderá estabilizar o display mantendo os LEDs ligados até que o cátodo comum vá para nível baixo novamente. - Isso simulará uma frequência acima da crítica para a fusão. - Filtro ATF15xx - Caminho para o filtro ATF15xx. - Fornecer a pasta que contenha os arquivos fit15xx.exe fornecidos pela Microchip (antes ATMEL). - Número do pino - Um campo vazio significará que o sinal não está associado ao pino. - Linhas - - Especificação do número de linhas mediante a largura em bits da palavra correspondente. - Bits de endereço das colunas + + Se o relé estiver fechado, a entrada estará em nível baixo. + Número de polos + + Número de polos disponíveis. + Conexão comum + + Se a entrada for selecionada como ânodo ou cátodo comum, também será simulada. + + Prevenir o piscamento (flicker) + + Não é possível aumentar a frequência o bastante para que o efeito de piscamento + possa desaparecer. + Para suprimir o piscamento, um "afterglow" poderá ser acionado para manter os LEDs nessa condição. + Se selecionado, os LEDs se manterão ligados, mesmo que um dos pinos for alterado para nível de alta impedância + (z). + Isso simulará uma frequência acima da crítica para a fusão. + + Filtro ATF15xx + Caminho para o filtro ATF15xx. + Fornecer a pasta que contenha os arquivos fit15xx.exe fornecidos pela Microchip (antes ATMEL). + + Número do pino + Um campo vazio significará que o sinal não está associado ao pino. + Linhas + + Especificação do número de linhas mediante a largura em bits da palavra + correspondente. + + Bits de endereço das colunas Endereços das colunas individuais. Três bits corresponderão a oito colunas. Modificação bloqueada @@ -1623,103 +1641,108 @@ Para definir uma expressão poderão ser usadas todas as notações mais comuns: And: "&", "&&", "*", "∧" - Or: "|", "||", "+", "∨", "#" - XOr: "^", "⊻" - Not: "!", "~", "¬" + Or: "|", "||", "+", "∨", "#" + XOr: "^", "⊻" + Not: "!", "~", "¬" - Como usual AND tem precedência sobre OR e XOR. + Como usual AND tem precedência sobre OR e XOR. - Múltiplas expressões poderão ser separadas por "," ou ";". - Se desejado dar nome às expressões se poderá usar o comando "let" - "let U=A+B, let V=A*B" - Arranjos de teste - - - -

A primeira linha deverá conter os nomes das entradas e das saídas. -As linhas seguintes deverão conter os valores esperados. -Um 'X' representará um "don't care", e um 'Z' representará um valor em alta impedância. -Se um 'C' for usado, inicialmente, todos os outros valores serão definidos, e após um ciclo de clock -seus valores serão comparados. Dessa forma será mais fácil testar lógica sequencial. -Um linha que for iniciada por um sinal ('#') será um comentário.

+ Múltiplas expressões poderão ser separadas por "," ou ";". + Se desejado dar nome às expressões se poderá usar o comando "let" + "let U=A+B, let V=A*B" +
+ Arranjos de teste + <html> + <head><style>pre { background-color: #E0E0E0;}</style></head> + <body> + <p>A primeira linha deverá conter os nomes das entradas e das saídas. + As linhas seguintes deverão conter os valores esperados. + Um 'X' representará um "don't care", e um 'Z' representará um valor em alta impedância. + Se um 'C' for usado, inicialmente, todos os outros valores serão definidos, e após um ciclo de clock + seus valores serão comparados. Dessa forma será mais fácil testar lógica sequencial. + Um linha que for iniciada por um sinal ('#') será um comentário.</p> -

Dessa forma um teste para um contador de 2-bits poderia se parecer com isso:

+ <p>Dessa forma um teste para um contador de 2-bits poderia se parecer com isso:</p> -
-C Q1 Q0
-0 0  0
-C 0  1
-C 1  0
-C 1  1
-C 0  0
-
+ <pre> + C Q1 Q0 + 0 0 0 + C 0 1 + C 1 0 + C 1 1 + C 0 0 + </pre> -

The tests are executed by Run->Testes de execução.

-

-Para tornar mais fácil a criação de muitos arranjos de testes, há o comando 'repeat([n])': -Se um linha começar por 'repeat([n])', [n] linhas de testes serão geradas. -A variável 'n' poderá ser usada para gerar os dados de testes. Por exemplo, 'repeat(16)' -16 linhas serão criadas, onde n variar de 0 até 15. Se houver entradas com múltiplos bits, -e esses forem definidos juntos por um valor binário, isso poderá ser feito usando o comando -'bits([bits], [valor])'. Isso poderá ser usado para criar [bits] com esse [valor].

+ <p>Os testes serão executados por Executar->Testes de execução.</p> + <p> + Para tornar mais fácil a criação de muitos arranjos de testes, há o comando 'repeat([n])': + Se um linha começar por 'repeat([n])', [n] linhas de testes serão geradas. + A variável 'n' poderá ser usada para gerar os dados de testes. Por exemplo, 'repeat(16)' + 16 linhas serão criadas, onde n variar de 0 até 15. Se houver entradas com múltiplos bits, + e esses forem definidos juntos por um valor binário, isso poderá ser feito usando o comando + 'bits([bits], [valor])'. Isso poderá ser usado para criar [bits] com esse [valor].</p> -

A seguir há um exemplo para testar um somador de 4-bits:

+ <p>A seguir há um exemplo para testar um somador de 4-bits:</p> -
-           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
-repeat(256)  0    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15))
-repeat(256)  1    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15)+1)
-
+ <pre> + C_i-1 A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C_i S_3 S_2 S_1 S_0 + repeat(256) 0 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)) + repeat(256) 1 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)+1) + </pre> -

Os sinais de entrada serão o carry-in (C_i-1) e os oito bits de entrada A_3-A_0 e B_3-B_0. -Os 4 bits de entrada serão gerados pela instrução 'bits'. O resultado (C_i, S_3-S_0) também será gerado -pela mesma instrução. -Isso irá ocorrer um vez com C_i-1 = 0 e na próxima linha com C_i-1 = 1. -Dessa forma, 512 linhas de testes serão gerados para cobrir todas as configurações possíveis das entradas.

-

Se múltiplas linhas forem repetidas, ou se repetições aninhadas forem requeridas, o comando de repetição -poderá ser usado. O exemplo acima poderia ser implementado como mostrado a seguir:

+ <p>Os sinais de entrada serão o carry-in (C_i-1) e os oito bits de entrada A_3-A_0 e B_3-B_0. + Os 4 bits de entrada serão gerados pela instrução 'bits'. O resultado (C_i, S_3-S_0) também será gerado + pela mesma instrução. + Isso irá ocorrer um vez com C_i-1 = 0 e na próxima linha com C_i-1 = 1. + Dessa forma, 512 linhas de testes serão gerados para cobrir todas as configurações possíveis das entradas.</p> + <p>Se múltiplas linhas forem repetidas, ou se repetições aninhadas forem requeridas, o comando de + repetição + poderá ser usado. O exemplo acima poderia ser implementado como mostrado a seguir:</p> -
-           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
-loop(a,16)
-  loop(b,16)
-             0    bits(4,a)        bits(4,b)        bits(5,a+b)
-             1    bits(4,a)        bits(4,b)        bits(5,a+b+1)
-  end loop
-end loop
-
+ <pre> + C_i-1 A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C_i S_3 S_2 S_1 S_0 + loop(a,16) + loop(b,16) + 0 bits(4,a) bits(4,b) bits(5,a+b) + 1 bits(4,a) bits(4,b) bits(5,a+b+1) + end loop + end loop + </pre> -

Poderia ser útil para gerar valores aleatórios para casos de testes. -Isso poderá ser criado pela função 'random([n])'. O valor gerado será maior ou igual a -zero e menor que [n]. Considerando um multiplicador de 16-bits como exemplo, -um teste completo não poderá ser executado pois deveria ter 2^32 combinações das entradas. -Um teste de regressão para multiplicar 100000 valores aleatórios poderia se parecer como isso:

+ <p>Poderia ser útil para gerar valores aleatórios para casos de testes. + Isso poderá ser criado pela função 'random([n])'. O valor gerado será maior ou igual a + zero e menor que [n]. Considerando um multiplicador de 16-bits como exemplo, + um teste completo não poderá ser executado pois deveria ter 2^32 combinações das entradas. + Um teste de regressão para multiplicar 100000 valores aleatórios poderia se parecer como isso:</p> -
-   A    B      Y
-loop(i,100000)
-  let a = random(1<<16);
-  let b = random(1<<16);
-  (a)  (b)   (a*b)
-end loop
-
+ <pre> + A B Y + loop(i,100000) + let a = random(1&lt;&lt;16); + let b = random(1&lt;&lt;16); + (a) (b) (a*b) + end loop + </pre> -

Uma entrada que permita um valor em alta impedância também poderá ser usada como valor de saída de teste. -Nesse caso, o nome do sinal poderá ser usado com o sufixo "_out" para ser lido de volta e ter o valor comparado. -Para isso, a entrada correspondente deverá ser definida como de alta impedância ('Z').

+ <p>Uma entrada que permita um valor em alta impedância também poderá ser usada como valor de saída de + teste. + Nesse caso, o nome do sinal poderá ser usado com o sufixo "_out" para ser lido de volta e ter o valor comparado. + Para isso, a entrada correspondente deverá ser definida como de alta impedância ('Z').</p> -
OE CLK D D_out
-0   0  0 0
-0   C  1 1
-1   0  z 1
-0   C  0 0
-1   0  z 0
-
+ <pre>OE CLK D D_out + 0 0 0 0 + 0 C 1 1 + 1 0 z 1 + 0 C 0 0 + 1 0 z 0 + </pre> -

O circuito para esse teste deverá ter apenas uma entrada 'D', a qual poderá estar em estado de alta impedância. -Portanto, o sinal 'D_out' também será avaliado para se verificar o valor desse caso.

+ <p>O circuito para esse teste deverá ter apenas uma entrada 'D', a qual poderá estar em estado de alta + impedância. + Portanto, o sinal 'D_out' também será avaliado para se verificar o valor desse caso.</p> -]]>
+ </body></html> + Máquina de Estados Finitos (FSM) Nenhuma transição Transições @@ -1855,16 +1878,19 @@ Portanto, o sinal 'D_out' também será avaliado para se verificar o valor desse Se o mouse passar sobre a barra de ferramentas, dicas serão mostradas. A simulação estará ativa. Para alterar as entradas, clicar nas mesmas. Para parar a simulação, clicar no botão Stop na barra de ferramentas. - Para completar, as entradas e as saídas deverão ser rotuladas. - - Ao pressionar o botão da direita sobre uma entrada, uma caixa de diálogo se abrirá. No MacOs, usar control-click. - A entrada poderá, então, receber um nome. - Rotular todas as entradas e as saídas. - Entradas e saídas sempre deverão ter nomes únicos. - Pular o tutorial - Transição - Estado - Ânodo comum. Para acender os LEDs, essa entrada deverá estar em nível alto. + Para completar, as entradas e as saídas deverão ser rotuladas. + + Ao pressionar o botão da direita sobre uma entrada, uma caixa de diálogo se abrirá. No MacOs, usar + control-click. + A entrada poderá, então, receber um nome. + + Rotular todas as entradas e as saídas. + Entradas e saídas sempre deverão ter nomes únicos. + Pular o tutorial + Transição + Estado + Ânodo comum. Para acender os LEDs, essa entrada deverá estar em nível alto. + Comum Tipo da conexão comum. Cátodo @@ -1999,4 +2025,104 @@ Portanto, o sinal 'D_out' também será avaliado para se verificar o valor desse após uma borda de subida. </body></html> + Motor de passos, unipolar + Motor de passos unipolar com duas chaves de fim de curso. + Há suporte para controle por passo completo, meio-passo e . + + Chave de fim de curso 0, será 1 quando o ângulo do motor for 0°. + + Chave de fim de curso 1, será 1 quando o ângulo do motor for 180°. + + Fase 0 + Fase 1 + Fase 2 + Fase 3 + Conexão da bobina com derivação central + Motor de passos, bipolar + Motor de passos bipolar com duas chaves de fim de curso. + Há suporte para controle por passo completo, meio passo e . + + Chave de fim de curso 0, será 1 quando o ângulo do motor for 0°. + + Chave de fim de curso 1, será 1 quando o ângulo do motor for 180°. + + Bobina A, positivo + Parar + Uma borda de subida na entrada irá parar a simulação. + Terá o mesmo efeito que pressionar o botão Parar na barra de ferramentas. + + Um borda de subida irá parar a simulação. + Não há nome de arquivo disponível para recarga automática! + Opções + Opções GHDL + Opções que serão usadas para todos os passos de processamento pelo GHDL. + Separador de pinos + Usado pelo tipo de formato do layout. Indicará a distância do pino + anterior. + + Esquema de cores + Normal + vermelho/verde para deficiência de cor + Definido pelo usuário + Valor inicial + Cores definidas pelo usuário + Plano de fundo + Plano frontal + Fio + Fio em nível alto + Fio em nível baixo + Valor medido no fio + Saída + Fio em alta impedância (Z) + Erro + Ok + Pinos + Malha + Caso de teste + Desabilitado + Assíncrono + Destacado + Mostrar + Mecânica + Periféricos- + Interface para a linha de comandos + Falta o argumento não opcional {0} + O valor {0} não é lógico. + O valor {0} não é número. + Indefinido o argumento {0}.- + Não há argumentos suficientes. + Há argumentos demais. + Tipo inválido. + O comando {0} não tem subcomando {1}. + Opções: + O primeiro nome de arquivo especificará o circuito a ser testado. + Se um segundo nome de arquivo for especificado, os casos de testes serão executados a partir desse arquivo. + Se não houver um segundo nome de arquivo especificado, os testes serão executados a partir do primeiro arquivo. + + Nome do arquivo a ser testado. + Nome do arquivo com os casos para testes. + Permite-se que entradas faltantes no circuito sejam definidas no + caso de teste. Isso poderá ser útil se houver + várias soluções que possam depender de diferentes entradas. + + Testes falharam. + Um erro ocorreu durante a execução dos testes. + Poderá ser usado para criar um arquivo SVG a partir de um circuito. + O nome do arquivo do circuito. + O nome do arquivo SVG a ser gravado. + Usar símbolos IEEE. + Erro na criação do arquivo SVG! + Criar arquivo CSV contendo estatísticas do circuito. + Todos os components usados serão listados no arquivo CSV. + + Nome do arquivo contendo circuito. + Nome do arquivo CSV a ser criado. + Se essa opção for omitida, a tabela será escrita na saída padrão. + + Erro ao criar o arquivo com estatísticas! + Exportar para texto puro + Bobina A, negativo + Bobina B, positivo + Bobina B, negativo + Escuro
diff --git a/src/main/resources/lang/lang_pt_ref.xml b/src/main/resources/lang/lang_pt_ref.xml index 608450bb3..002a5fcb5 100644 --- a/src/main/resources/lang/lang_pt_ref.xml +++ b/src/main/resources/lang/lang_pt_ref.xml @@ -1,15 +1,15 @@ - Address - Table of Contents - General - Revision - Date - maximum - The following describes the available settings of the simulator. - Attributes - Open Circuit + Address + Table of Contents + General + Revision + Date + maximum + The following describes the available settings of the simulator. + Attributes + Open Circuit Included circuit: Opens the circuit in a new window. Help @@ -32,16 +32,18 @@ Save as HEX file. Create Create a circuit in a separate window - Edit detached - Opens the dialog as a non modal dialog - Browser - Opens help text in the browser. Allows to print the text. - Clear - All values are set to zero! - Transitions - All possible transitions are added as test cases. Is used to create test cases to test the simulator itself. - New Name - Save anyway + Edit detached + Opens the dialog as a non modal dialog + Browser + Opens help text in the browser. Allows to print the text. + Clear + All values are set to zero! + Transitions + All possible transitions are added as test cases. Is used to create test cases + to test the simulator itself. + + New Name + Save anyway Overwrite Apply Edits the content of the selected ROM/EEPROM @@ -196,16 +198,21 @@ LED-Matrix A matrix of LEDs. The LEDs are shown in a separate window. The LEDs of a column of the display are controlled by a data word. At another input, the current column is - selected. So a multiplexed display is realized. - The LEDs are able to light up indefinitely in the simulation to prevent the display from flickering. - The row state of the LEDs of a column. - Each bit in this data word represents the state of a row of the current column. - The number of the current column whose state is currently visible at the other input. - Data Graph - Shows a data plot inside of the circuit panel. + selected. So a multiplexed display is realized. + The LEDs are able to light up indefinitely in the simulation to prevent the display from flickering. + + The row state of the LEDs of a column. + Each bit in this data word represents the state of a row of the current column. + + The number of the current column whose state is currently visible at the + other input. + + Data Graph + Shows a data plot inside of the circuit panel. You can plot complete clock cycles or single gate changes. - Does not affect the simulation. - Rotary Encoder + Does not affect the simulation. + + Rotary Encoder Rotary knob with rotary encoder. Used to detect rotational movements. encoder signal A encoder signal B @@ -234,16 +241,17 @@ A high at this input enables the clock input. MIDI Uses the MIDI system to play notes. - Note - Volume - If set, this translates to pressing a keyboard key (key down event), - if not set, this translates to releasing the key (key up event). - Enables the component - If high, the value at N is used to change the program (instrument). - Clock - - Ground - A connection to ground. Output is always zero. + Note + Volume + If set, this translates to pressing a keyboard key (key down event), + if not set, this translates to releasing the key (key up event). + + Enables the component + If high, the value at N is used to change the program (instrument). + Clock + + Ground + A connection to ground. Output is always zero. Output always returns 0. Supply voltage A connection to the supply voltage. Output is always one. @@ -1078,28 +1086,34 @@ Format Screen format of expressions. Relay is normally closed. - - If set the relay is closed if the input is low. - Pole count - - Number of poles available. - Common Connection - - If selected, a common cathode or anode input is also simulated. - Avoid Flicker - - It is not possible to increase the frequency so much that the flickering disappears. - With this option you can stabilize the display by keeping the LEDs on until the common cathode goes down again. - This simulates a frequency above the critical flicker fusion frequency. - ATF15xx Fitter - Path to the fitter for the ATF15xx. - Enter the directory which contains the fit15xx.exe files provided by Microchip (former ATMEL). - Pin number - An empty field means this signal is not assigned to a pin. - Rows - - Specifies the number of rows by specifying the number of bits of the row word. - Address bits of columns + + If set the relay is closed if the input is low. + Pole count + + Number of poles available. + Common Connection + + If selected, a common cathode or anode input is also simulated. + Avoid Flicker + + It is not possible to increase the frequency so much that the flickering + disappears. + In order to suppress the flickering nevertheless, a "afterglow" can be switched on for the LEDs with this + option. + If enabled, the LEDs remain on, even if one of the pins changes to high-z. + This simulates a frequency above the critical flicker fusion frequency. + + ATF15xx Fitter + Path to the fitter for the ATF15xx. + Enter the directory which contains the fit15xx.exe files provided by Microchip (former ATMEL). + + Pin number + An empty field means this signal is not assigned to a pin. + Rows + + Specifies the number of rows by specifying the number of bits of the row word. + + Address bits of columns Addresses the individual columns. Three bits means eight columns. Modification locked @@ -1628,103 +1642,121 @@ Make sure the flash process is complete before closing this dialog! To define an expression you can use all most common notations: And: "&", "&&", "*", "∧" - Or: "|", "||", "+", "∨", "#" - XOr: "^", "⊻" - Not: "!", "~", "¬" + Or: "|", "||", "+", "∨", "#" + XOr: "^", "⊻" + Not: "!", "~", "¬" - As usual AND precedes OR and XOr. + As usual AND precedes OR and XOr. - Multiple expressions can be separated by "," or ";". - If you want to name the expressions you can use the - let-command: "let U=A+B, let V=A*B" - Test vectors - - - -

The first line has to contain the names of inputs and outputs. -The following lines contain the expected values. -A 'X' represents a don't care, and a 'Z' represents a high Z value. -If a 'C' is used, at first all other values are set, after that a clock cycle is performed and than the -values are compared. So it's easier to test sequential logic. -A line which starts with a number sign ('#') is a comment.

+ Multiple expressions can be separated by "," or ";". + If you want to name the expressions you can use the + let-command: "let U=A+B, let V=A*B" +
+ Test vectors + <html> + <head><style>pre { background-color: #E0E0E0;}</style></head> + <body> + <p>The first line has to contain the names of inputs and outputs. + The following lines contain the expected values. + A 'X' represents a don't care, and a 'Z' represents a high Z value. + If a 'C' is used, at first all other values are set, after that a clock cycle is performed and than the + values are compared. So it's easier to test sequential logic. + A line which starts with a number sign ('#') is a comment.</p> -

So a test for a 2-bit counter could look like this:

+ <p>So a test for a 2-bit counter could look like this:</p> -
-C Q1 Q0
-0 0  0
-C 0  1
-C 1  0
-C 1  1
-C 0  0
-
+ <pre> + C Q1 Q0 + 0 0 0 + C 0 1 + C 1 0 + C 1 1 + C 0 0 + </pre> -

The tests are executed by Run->Run Tests.

-

-To make it easier to create a lot of test vectors there is the 'repeat([n])' statement: -If a line begins with 'repeat([n])', [n] test lines are generated. The -Variable 'n' can be used to generate the test data. With 'repeat(16)' -16 lines are created, where n goes from 0 to 15. If there are multiple bit inputs, -and these are to be set together to a binary value, this can be done with the -'bits([bits], [value])' statement. This is used to create [bits] bits of the value [value].

+ <p>The tests are executed by Run->Run Tests.</p> + <p> + To make it easier to create a lot of test vectors there is the 'repeat([n])' statement: + If a line begins with 'repeat([n])', [n] test lines are generated. The + Variable 'n' can be used to generate the test data. With 'repeat(16)' + 16 lines are created, where n goes from 0 to 15. If there are multiple bit inputs, + and these are to be set together to a binary value, this can be done with the + 'bits([bits], [value])' statement. This is used to create [bits] bits of the value [value].</p> -

The following is an example that tests a 4-bit adder:

+ <p>The following is an example that tests a 4-bit adder:</p> -
-           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
-repeat(256)  0    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15))
-repeat(256)  1    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15)+1)
-
+ <pre> + C_i-1 A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C_i S_3 S_2 S_1 S_0 + repeat(256) 0 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)) + repeat(256) 1 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)+1) + </pre> -

The input signals are the carry-in (C_i-1) and the eight input bits A_3-A_0 and B_3-B_0. -The 4 input bits are generated with the 'bits' instruction. The result (C_i, S_3-S_0) is also generated -by a 'bits' instruction. -This happens once with C_i-1 = 0 and in the next line with C_i-1 = 1. -In this way, 512 test rows are generated which cover all possible input configurations.

-

If multiple rows are to be repeated, or if nested loops are required, the loop -statement can be used. The above example could also be implemented as follows:

+ <p>The input signals are the carry-in (C_i-1) and the eight input bits A_3-A_0 and B_3-B_0. + The 4 input bits are generated with the 'bits' instruction. The result (C_i, S_3-S_0) is also generated + by a 'bits' instruction. + This happens once with C_i-1 = 0 and in the next line with C_i-1 = 1. + In this way, 512 test rows are generated which cover all possible input configurations.</p> + <p>If multiple rows are to be repeated, or if nested loops are required, the loop + statement can be used. The above example could also be implemented as follows:</p> -
-           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
-loop(a,16)
-  loop(b,16)
-             0    bits(4,a)        bits(4,b)        bits(5,a+b)
-             1    bits(4,a)        bits(4,b)        bits(5,a+b+1)
-  end loop
-end loop
-
+ <pre> + C_i-1 A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C_i S_3 S_2 S_1 S_0 + loop(a,16) + loop(b,16) + 0 bits(4,a) bits(4,b) bits(5,a+b) + 1 bits(4,a) bits(4,b) bits(5,a+b+1) + end loop + end loop + </pre> -

It may be helpful to generate random numbers in test cases. -These can be created with the function 'random([n])'. The generated number is greater -than or equal to zero and less than [n]. Considering a 16-bit multiplier as an example, -a full test can not be performed since it would have 2^32 input combinations. -A regression test that multiplies 100000 random numbers might look like this:

+ <p>Under certain circumstances it may be necessary to be able to react to the initial + state of the circuit. Therefore the signals provided in the circuit can be used within + the test case. For example, if a counter that starts in an undefined state is to be + tested, it can be clocked to a defined state:</p> -
-   A    B      Y
-loop(i,100000)
-  let a = random(1<<16);
-  let b = random(1<<16);
-  (a)  (b)   (a*b)
-end loop
-
+ <pre>C Q_3 Q_2 Q_1 Q_0 -

An input that allows high impedance as a value can also be used as a test output. -In this case, the signal name can be used with a trailing "_out" to read back and check the current value. -For this, the corresponding input must be set to high impedance ('Z').

+ # clock counter to 1111 + while(!(Q_3 & Q_2 & Q_1 & Q_0)) + C x x x x + end while -
OE CLK D D_out
-0   0  0 0
-0   C  1 1
-1   0  z 1
-0   C  0 0
-1   0  z 0
-
+ # start the test execution + repeat(16) C bits(4,n) + </pre> -

The circuit for this test has only one input 'D', but which can be high impedance state. -Therefore, the signal 'D_out' is also available to check the value in this case.

+ <p>It may be helpful to generate random numbers in test cases. + These can be created with the function 'random([n])'. The generated number is greater + than or equal to zero and less than [n]. Considering a 16-bit multiplier as an example, + a full test can not be performed since it would have 2^32 input combinations. + A regression test that multiplies 100000 random numbers might look like this:</p> -]]>
+ <pre> + A B Y + loop(i,100000) + let a = random(1&lt;&lt;16); + let b = random(1&lt;&lt;16); + (a) (b) (a*b) + end loop + </pre> + + <p>An input that allows high impedance as a value can also be used as a test output. + In this case, the signal name can be used with a trailing "_out" to read back and check the current value. + For this, the corresponding input must be set to high impedance ('Z').</p> + + <pre>OE CLK D D_out + 0 0 0 0 + 0 C 1 1 + 1 0 z 1 + 0 C 0 0 + 1 0 z 0 + </pre> + + <p>The circuit for this test has only one input 'D', but which can be high impedance state. + Therefore, the signal 'D_out' is also available to check the value in this case.</p> + + </body></html> + Finite State Machine no movement Transitions @@ -1861,16 +1893,17 @@ Therefore, the signal 'D_out' is also available to check the value in this case. If you move the mouse over the toolbar, tool tips are shown. The simulation is now active. Switch the inputs by clicking on them. To stop the simulation, click on the Stop button in the toolbar. - For completeness, the inputs and outputs should be labeled. + For completeness, the inputs and outputs should be labeled. Right-click on an input to open a dialog. On MacOS control-click is used. - Here the input can be given a name. - Label all inputs and outputs. - Inputs and outputs should always be uniquely named. - Skip Tutorial - Transition - State - Common anode. To turn on the LEDs, this input needs to be high. + Here the input can be given a name. + + Label all inputs and outputs. + Inputs and outputs should always be uniquely named. + Skip Tutorial + Transition + State + Common anode. To turn on the LEDs, this input needs to be high. Common Kind of common connection. Cathode @@ -1994,4 +2027,103 @@ Therefore, the signal 'D_out' is also available to check the value in this case. edge of the clock are not calculated until the circuit has stabilized after the previous rising edge. </body></html> + Stepper Motor, unipolar + Unipolar stepper motor with two limit position switches. + Full step drive, half step drive and wave drive are supported. + + Limit position switch 0, becomes 1 when the motor angle is 0°. + + Limit position switch 1, becomes 1 when the motor angle is 180°. + + Phase 0 + Phase 1 + Phase 2 + Phase 3 + Common center coil connection + Stepper Motor, bipolar + Bipolar stepper motor with two limit position switches. + Full step drive, half step drive and wave drive are supported. + + Limit position switch 0, becomes 1 when the motor angle is 0°. + + Limit position switch 1, becomes 1 when the motor angle is 180°. + + Coil A, positive + Stop + A rising edge at the input stops the simulation. + Has the same effect as pressing the Stop button in the toolbar. + + A rising edge stops the simulation. + There is no file name available for the automatic reload! + Options + GHDL Options + Options that are used for all processing steps by GHDL. + Pin Separator + Used by the layout shape type. Sets the distance to the previous pin. + + Color-Scheme + Normal + red/green colorblind + User Defined + Preset + User Defined Colors + Background + Foreground + Wire + Wire HIGH + Wire LOW + Value at the wire + Output + Wire HIGH-Z + Error + Ok + Pins + Grid + Test case + Disabled + Asynchronous + Highlighted + Displays + Mechanical + Peripherals + Command Line Interface + The non-optional argument {0} is missing. + The value {0} is no bool. + The value {0} is not a number. + The argument {0} is not defined. + There are not enough arguments. + There are too many arguments. + Invalid type. + The command {0} has no sub-command {1}. + Options: + The first file name specifies the circuit to be tested. + If a second file name is specified, the test cases are executed from this file. + If no second file name is specified, the tests are executed from the first file. + + Name of the file to be tested. + Name of a file with test cases. + Allows the missing of inputs in the circuit which are + defined in the test case. This can be useful if there are several possible solutions which may + depend on different inputs. + + Tests have failed. + An error has occurred during the execution of the tests. + Can be used to create an SVG file from a circuit. + The file name of the circuit. + The name of the SVG file to be written. + Use of the IEEE symbols. + Error while creating the SVG file! + Creates a CSV file which contains the circuit statistics. + All components used are listed in the CSV file. + + File name of the circuit. + Name of the csv file to be created. + If this option is missing, the table is written to stdout. + + Error while creating the stats file! + Export Plain Text + Coil A, negative + Coil B, positive + Coil B, negative + Dark