diff --git a/src/main/resources/lang/lang_pt.xml b/src/main/resources/lang/lang_pt.xml index 38aa91545..97339b574 100644 --- a/src/main/resources/lang/lang_pt.xml +++ b/src/main/resources/lang/lang_pt.xml @@ -139,7 +139,10 @@ In the file howTo.md you can find more details about translations. O canal da cor azul. LED com duas conexões. LED com conexões para o cátodo e o ânodo. O LED acenderá, - se o ânodo estiver ligado ao positivo e o cátodo estiver ligado ao negativo. + se o ânodo estiver ligado em nível alto e o cátodo estiver ligado em nível baixo. + Esse LED não poderá ser usado como resistor pull-down. Só servirá como elemento para exibição. + O resistor representado servirá apenas para simbolizar o equivalente aos necessários resistores em série + usados para limitar a corrente. A conexão do ânodo do LED. A conexão do cátodo do LED. Entrada @@ -148,7 +151,7 @@ In the file howTo.md you can find more details about translations. Nesse caso a conexão é bidirecional. Também é usado para atribuir um número PIN, se código para CPLD ou FPGA for gerado. Fornece o valor ao qual está ligada a essa entrada. - DIP Switch + Chave DIP que pode ter a saída alta ou baixa. O valor da chave de saída. Entrada do Clock @@ -727,7 +730,7 @@ In the file howTo.md you can find more details about translations. Caso de teste Descrever um caso de teste. Em um teste de caso será possível descrever o comportamento de um circuito. Isso poderá ser automaticamente verificado, ou seja, - se o comportamento realmente corresponde à descrição, ou não, e assim sendo uma mensagem de erro será mostrada. + se o comportamento realmente corresponde à descrição, ou não, e assim sendo, uma mensagem de erro será mostrada. Temporização assíncrona Será permitido a temporização de um circuito sequencial assíncrono, tal como um pipeline de Muller. O circuito deverá ser iniciado em modo de passo único e deverá alcançar um estado estável logo ao iniciar-se. @@ -1422,13 +1425,13 @@ In the file howTo.md you can find more details about translations. Apagar Apagar o conteúdo do terminal. Visualizar - Zoom In - Zoom Out + + Expressão Criar circuito dada a expressão. Executar testes Executar todos os casos de testes - Definir entradas + Definir entradas padrões Usar os valores atuais das entradas como padrão. Reiniciar diodos e FGFETs Reiniciar todos os diodos (fusíveis) e FGFETs como "não programados". A configuração vigente dos fusíveis será descartada! @@ -1515,7 +1518,7 @@ In the file howTo.md you can find more details about translations. Resultado de teste {0} com êxito {0} com falha - E: {0} / F: {1} + Erro ao criar a ajuda! A área de transferência não contém dados para importar! Selecionado arquivo vazio! @@ -1661,6 +1664,7 @@ In the file howTo.md you can find more details about translations. <html> <head><style>pre { background-color: #E0E0E0;}</style></head> <body> + <h3>Geral</h3> <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. @@ -1678,7 +1682,7 @@ In the file howTo.md you can find more details about translations. C 1 1 C 0 0 </pre> - + <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])': @@ -1691,35 +1695,56 @@ In the file howTo.md you can find more details about translations. <p>A seguir há um exemplo para testar um somador de 4-bits:</p> <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) + 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> - <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. + <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> + repetição poderá ser usado. O exemplo acima poderia ser implementado como mostrado a seguir: + </p> <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 + 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 + 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> - <p>Poderia ser útil para gerar valores aleatórios para casos de testes. + <p> + Sob certas circunstâncias poderá necessitar se capaz de reagir ao estado inicial do circuito. + Portanto, os sinais fornecidos pelo circuito poderão ser usados como caso de teste. + Por exemplo, se um contador que for iniciado em um estado indefinido for testado, + poderá ser levado a um estado definido na variação do clock: + </p> + + <pre>C Q_3 Q_2 Q_1 Q_0 + + # clock counter to 1111 + while(!(Q_3 & Q_2 & Q_1 & Q_0)) + C x x x x + end while + + # start the test execution + repeat(16) C bits(4,n) + </pre> + + <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> + Um teste de regressão para multiplicar 100000 valores aleatórios poderia se parecer como isso: + </p> <pre> A B Y @@ -1730,9 +1755,10 @@ In the file howTo.md you can find more details about translations. end loop </pre> - <p>Uma entrada que permita um valor em alta impedância também poderá ser usada como valor de saída de + <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. + 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> <pre>OE CLK D D_out @@ -1743,12 +1769,72 @@ In the file howTo.md you can find more details about translations. 1 0 z 0 </pre> - <p>O circuito para esse teste deverá ter apenas uma entrada 'D', a qual poderá estar em estado de alta + <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> - + <p> + Em casos especiais, pode ser desejável usar sinais providos pelo circuito, + derivar um novo sinal, e então testá-lo. Um exemplo poderá ser o de um barramento + de sinal com vários bits, onde apenas um único bit deverá ser testado, enquanto os + outros não terão qualquer influência sobre o teste. Nesse caso, um novo sinal poderá + ser gerado, no próprio teste, apenas para conter esse bit, de modo que outros testes + possam ser definidos para o mesmo. + </p> + + <p>Isso poderá ser feito pelo comando 'declare':</p> + + <pre>A B Bit + + declare Bit = (Bus>>3)&1; + + 0 0 0 + 0 1 0 + 1 0 1 + 1 1 0 + </pre> + + <p> + Nesse exemplo, o terceiro bit será isolado do sinal do barramento ('Bus') e + tornado disponível como o sinal 'Bit' para teste. O circuito em si não terá 'Bit' como saída. + </p> + +<h3>Processadores</h3> + + <p> + Se processadores forem testados, normalmente a inicialização de processador será requerida. + É possível executar essa inicialização no próprio caso de teste. + Dessa forma, vários testes poderão ser acomodados em um circuito e cada teste poderá ter sua prória inicialização. + Há três instruções para executar essa inicialização: + </p> + + <ul> + <li> + O comando 'program' poderá ser usado para sobrescrever a memória de programa do processador. + A instrução <pre>program(0x8000,0x2d11,0x8000,0x2f21)</pre> colocará quatro palavras no início da + memória de programa. Todas as outras palavras serão iguais a zero. + </li> + <li> + A instrução 'memory' podrá ser usada para guardar valor em componente do tipo RAM: + <pre>memory mem(3)=7;</pre> + Esse exemplo guardará o valor 7 na memória identificada por 'mem' no endereço 2. + </li> + <li> + Um registrador identificado poderá ser sobrescrito com o comando 'init'. + <pre>init R0=22;</pre> + Essa instrução sobrescreverá o registrador identificado por 'R0' com o valor 22. + </li> + </ul> + + <p> + Deve-se notar que todas as inicializações somente serão aplicadas uma única vez + antes da execução do teste, independente da linha no caso de teste onde esses comandos + possam estar. Contudo, não devem ser usados antes da linha de cabeçalho + que relaciona os nomes dos sinais. + </p> + + </body></html> Máquina de Estados Finitos (FSM) Nenhuma transição Transições @@ -2131,4 +2217,81 @@ In the file howTo.md you can find more details about translations. Bobina B, positivo Bobina B, negativo Escuro + Gráficos com dados amostrados + Osciloscópio + Mostrará o gráfico de valores amostrados, os quais serão armazenados apenas se houver alteração no sinal de entrada. + O armazenamento se dará quando o circuito estiver estabilizado. + O gatilho não iniciará a medida como em um osciloscópio real, mas cada evento gatilhado armazenará + um valor de medida apenas, para cada um dos sinais amostrados. + Como entrada direta haverá apenas um gatilho. As entradas e saídas do circuito, flip-flops e registradores e + o componente amostrador poderão ser usados como sinais. Isso poderá ser ativado nos respectivos componentes. + Uma alteração nessa entrada provocará o armazenamento de valores amostrados. + Desconectado + Esse componente poderá ser usado para colocar uma conexão em alta impedância (Z). + Se um entrada de uma porta lógica estiver em alta impedância, o valor lido será indefinido. + Observa-se que, na realidade, em muitos casos, o consumo excessivo de corrente e até mesmo danos + poderão ocorrer se uma entrada digital não estiver definida como alta ou baixa, + mas permanecer desconectada. + Esta saída estará sempre em alta impedância. + O símbolo de Desconectado não é permitido aqui! + ROM + Componente de memória não volátil. + Os dados armazenados poderão ser editados na caixa de diálogo para atributos. + Esse pino definirá o endereço da palavra de dados à saída D1. + Palavra de dados selecionada se a entrada s1 estiver em nível alto. + Se a entrada estiver em nível alto, a saída D1 estará ativada. Se estiver em nível baixo, a saída estará em alta impedância (Z). + Esse pino definirá o endereço da palavrra de dados à saída D2. + Palavra de dados selecionada se a entrada s2 estiver em nível alto. + Se a entrada estiver em nível alto, a saída D2 estará ativada. Se estiver em nível baixo, a saída estará em alta impedância (Z). + Gerador de número aleatório + Poderá ser usado para gerar números aleatórios. + Quando a simulação for iniciada, o gerador será reiniciado de modo que uma nova sequência de números + pseudo-aleatórios seja gerada a cada vez. + O gerador poderár ser iniciado durante simulação com um valor definido para semente para que se + possa gerar uma sequência definida de valores pseudo-aleatórios. + PRNG + Novo valor para a semente do gerador. + Se definido, o gerador de número aleatório será reiniciado com uma nova semente na subida do clock. + Se definido, um novo número aleatório estará disponível na próxima borda de subida do clock. + Entrada do clock. + Saída do número pseudo-aleatório. + Inicialização genérica + Código a ser executado ao iniciar-se um circuito genérico diretamente. + Se um circuito genérico tiver que ser iniciado diretamente, tal componente deverá estar presente. + Código + Código a ser executado quando um circuito genérico for incorporado. + Poderá ser usado, por exemplo, para adicionar componentes ou conexões a um circuito. + Casos de testes com parametrização genérica sem suporte na exportação em HDL! + Múltiplas memórias de programa encontradas! Somente uma memória de programa é permitida. + Nenhuma memória "{0}" encontrada no modelo! + Múltiplas memórias "{0}" encontradas no modelo! + Nenhum código de inicialização para componentes genéricos. + Um componente correspondente deverá ser acrescido ao circuito a fim de poder ser iniciado. + Múltiplos códigos de inicialização para elementos genéricos. + Erro na análise do código de inicialização genérico. + Sinal virtual {0} duplicado na linha {1}! + Resto de divisão sempre positivo + Se definido, o resto de uma divisão com sinal será sempre positivo. + Gatilho + Condição de gatilho para o registro de dados. + borda de subida + borda de descida + ambas as bordas + Alterações feitas ao se executar a simulação. + Definir escala + Exportável para VHDL/Verilog. + Erro ao definir a linha do caso de teste. + Nome a ser usado nos circuitos genéricos: {0} + Realizar circuito + Realizar + Realizar cirucito a partir de descrição genérica usando os + parâmetros especificados nesse elemento. + Erro durante a realização de circuito! + Otimizador de Máquina de Estados Finitos (FSM) + Otimizador de Números de Estados + Otimizará os números de estados de modo que uma implementação realize o menor esforço possível. + O tempo de execução aumentará muito rapidamente com a complexidade da máquina. (O(n!)) + Erro durante a otimização! + Complexidade inicial: + Melhor até agora: diff --git a/src/main/resources/lang/lang_pt_ref.xml b/src/main/resources/lang/lang_pt_ref.xml index 9c17246d4..e1468ac26 100644 --- a/src/main/resources/lang/lang_pt_ref.xml +++ b/src/main/resources/lang/lang_pt_ref.xml @@ -143,7 +143,9 @@ In the file howTo.md you can find more details about translations. The blue color channel. LED with two connections. LED with connections for the cathode and the anode. The LED lights up, - if the anode is connected to high and the cathode is connected to low. + if the anode is connected to high and the cathode is connected to low. + This LED cannot be used as a pull-down resistor. It acts solely as a display element. + The shown resistor is only meant to symbolize the required series resistor to limit the current. The anode connection of the LED. The cathode connection of the LED. Input @@ -152,7 +154,7 @@ In the file howTo.md you can find more details about translations. In this case the connection is bidirectional. Is also used to assign an pin number, if code for a CPLD or FPGA is generated. Gives the value which is connected to this input. - DIP Switch + Simple DIP switch that can output either high or low. The output value of the switch. Clock Input @@ -760,7 +762,8 @@ In the file howTo.md you can find more details about translations. Describes a test case. In a test case you can describe how a circuit should behave. It can then be automatically checked whether the behavior of the circuit actually corresponds to this description. If this is not the case, an - error message is shown. + error message is shown. + The help text of the test case editor describes in detail how such a test case can be created. Asynchronous Timing Allows configuration of the timing of an asynchronous sequential circuit such as a Muller-pipeline. The circuit must be started in single gate step mode and must be able to reach a stable state @@ -1498,13 +1501,13 @@ In the file howTo.md you can find more details about translations. Delete Delete the terminals content. View - Zoom In - Zoom Out + + Expression Create a circuit from an expression. Run Tests Runs all test cases in the circuit - Set Inputs + Set Input Defaults Use current input values as new default values. Reset all diodes and FGFETs Resets all diodes (fuses) and FGFETs to the "not programed" state. The @@ -1594,7 +1597,7 @@ In the file howTo.md you can find more details about translations. Test result {0} passed {0} failed - E: {0} / F: {1} + Error creating the help! The clipboard contains no importable data! Select an empty folder! @@ -1746,109 +1749,145 @@ In the file howTo.md you can find more details about translations. 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 then the - values are compared. So it's easier to test sequential logic. - A line which starts with a number sign ('#') is a comment.</p> + <head><style>pre { background-color: #E0E0E0;}</style></head> + <body> +<h3>General</h3> +<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 then the +values are compared. So it's easier to test sequential logic. +A line which starts with a number sign ('#') is a comment.</p> - <p>So a test for a 2-bit counter could look like this:</p> +<p>So a test for a 2-bit counter could look like this:</p> - <pre> - C Q1 Q0 - 0 0 0 - C 0 1 - C 1 0 - C 1 1 - C 0 0 - </pre> +<pre> +C Q1 Q0 +0 0 0 +C 0 1 +C 1 0 +C 1 1 +C 0 0 +</pre> - <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> +<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> - <p>The following is an example that tests a 4-bit adder:</p> +<p>The following is an example that tests a 4-bit adder:</p> - <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> +<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> - <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> +<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> - <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> +<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> - <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> +<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> - <pre>C Q_3 Q_2 Q_1 Q_0 +<pre>C Q_3 Q_2 Q_1 Q_0 - # clock counter to 1111 - while(!(Q_3 & Q_2 & Q_1 & Q_0)) - C x x x x - end while +# clock counter to 1111 +while(!(Q_3 & Q_2 & Q_1 & Q_0)) +C x x x x +end while - # start the test execution - repeat(16) C bits(4,n) - </pre> +# start the test execution +repeat(16) C bits(4,n) +</pre> - <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> +<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> +<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> +<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> +<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> +<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> - +<p>In special cases, it may be desirable to use the signals, which are provided by +the circuit, to derive a new signal, which is then tested. An example could be a bus +signal with several bits, where only a single bit should be tested, whereby the remaining +bits have no influence on the test. In this case, a new signal can be generated in the +test itself, which contains this one bit so that tests can be defined for this bit.</p> +<p>This is done with the 'declare' statement:</p> +<pre>A B Bit + +declare Bit = (Bus>>3)&1; + +0 0 0 +0 1 0 +1 0 1 +1 1 0 +</pre> +<p>In this example, the 3rd bit is isolated from the 'Bus' signal and made available as +the 'Bit' signal for the test. The circuit itself contains no output 'Bit'.</p> +<h3>Processors</h3> +<p>If processors are to be tested, an initialization of the processor is usually required. +It is possible to perform this initialization within the test case. +In this way, several tests can be located in one circuit and each test can use its own initialization. +There are three instructions to perform this initialization:</p> +<ul> +<li>The 'program' statement can be used to overwrite the program memory of the processor. +The instruction <pre>program(0x8000,0x2d11,0x8000,0x2f21)</pre> writes four words to the beginning +of the program memory. All other words are set to zero.</li>. +<li>The 'memory' instruction can be used to write to a RAM component: +<pre>memory mem(3)=7;</pre> +This example writes 7 to the memory with the label 'mem' at address 3.</li> +<li> A labeled register can be overwritten with the 'init' statement. +<pre>init R0=22;</pre> +This instruction overwrites the register with the label 'R0' with the value 22.</li> +</ul> +<p>It should be noted that all used initializations are only applied once before the +test execution. It does not matter in which line in the test case these statements are located. +However, they must not be used above the header line listing the signal names.</p>. +</body></html> Finite State Machine No movement Transitions @@ -2222,4 +2261,81 @@ In the file howTo.md you can find more details about translations. Coil B, positive Coil B, negative Dark + Triggered Data Graph + Scope + Shows a graph of measured values, whereby measured values are only stored if + the input signal changes. Storing takes place when the circuit has stabilized. + The trigger does not start the measurement like in a real scope, but each trigger event stores a single + measurement value for each of the shown signals. + As direct input there is only the trigger. The inputs and outputs of the circuit, flip-flops and registers and the + probe component can be used as signals. This can be activated in the respective components. + A change at this input causes measured values to be stored. + Not Connected + This component can be used to set a wire to High-Z. + If an input of a logical gate is set to high-Z, the read value is undefined. + Note that in reality in many cases excessive current consumption and even damage can + occur if a digital input is not set to high or low but remains unconnected. + This output always outputs High-Z. + The NotConnected symbol is not allowed here! + ROM + A non-volatile memory component. + The stored data can be edited in the attributes dialog. + This pin defines the address of data word to be output on D1. + The selected data word if the s1 input is high. + If the input is high, the output D1 is activated. If it is low, the data output is in high Z state. + This pin defines the address of data word to be output on D2. + The selected data word if the s2 input is high. + If the input is high, the output D2 is activated. If it is low, the data output is in high Z state. + Random Number Generator + Can be used to generate random numbers. + When the simulation is started, the generator is reinitialized so that a new pseudo-random number + sequence is generated at each start. + The generator can be initialized in the running simulation with a defined seed value to generate + a defined pseudo-random number sequence. + PRNG + New seed value of the generator. + If set, the random number generator is reinitialized with the new seed value at the next rising clock edge. + If set, a new random number is output at the next rising clock edge. + The clock input. + Output of the pseudorandom number. + Generic Initialization + Code that is executed to start a generic circuit directly. + If a generic circuit is to be started directly, such a component must be present. + Code + Code that is executed when a generic circuit is made concrete. + Can be used, for example, to add components or wires to a circuit. + Test cases with generic parameterization are not supported in HDL + export! + Multiple program memories found! Only one program memory is allowed. + No memory "{0}" found in the model! + Multiple memories "{0}" found in the model! + No initialization code for the generic components. + A respective component must be added to the circuit in order to start it. + Multiple initialization codes for the generic elements. + Error in the analysis of the generic initialization code. + Virtual signal {0} declared twice in line {1}! + Remainder always positive + If set, the remainder of a signed division is always positive. + Trigger + Trigger condition for data recording. + rising edge + falling edge + both edges + Changes made by the running simulation. + Set Scaling + Exportable to VHDL/Verilog. + Error while setting the test case row. + Name to use in generic circuits: {0} + Create Concrete Circuit + Create + Creates a concrete circuit from this generic circuit using the + parameters specified in this element. + Error while creating the concrete circuit! + FSM-Optimizer + Optimize the State Numbers + Optimizes the state numbers so that an implementation has the + least possible effort. The runtime increases very quickly with the complexity of the machine. (O(n!)) + Error during optimization! + Initial complexity: + Better so far: