From 8990a725d82d6d1d2d6262b20d10d5e5478e06c2 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sun, 24 Jan 2021 19:52:16 +0100 Subject: [PATCH] updates the Spanish translation --- src/main/resources/lang/lang_es.xml | 153 +++++++++++-- src/main/resources/lang/lang_es_ref.xml | 287 +++++++++++++++++------- 2 files changed, 335 insertions(+), 105 deletions(-) diff --git a/src/main/resources/lang/lang_es.xml b/src/main/resources/lang/lang_es.xml index f52380c3d..e4a18f327 100644 --- a/src/main/resources/lang/lang_es.xml +++ b/src/main/resources/lang/lang_es.xml @@ -5,8 +5,7 @@ This makes it very difficult for me to continue to maintain the translation. The only exception are simple typos. Pull requests in which this file is modified beyond simple typos cannot be accepted. In the file howTo.md you can find more details about translations. ---> - +--> Dirección Índice General @@ -168,8 +167,9 @@ In the file howTo.md you can find more details about translations. Conector A Conector B LED con dos conexiones - LED con dos conexiones, una para el ánodo y otra para el cátodo. El LED se enciende - si el ánodo está conectado a 1 y el cátodo a 0. + LED con conexiones para el cátodo y el ánodo. El LED se encienda si el ánodo está conectado a nivel alto y el cátodo a nivel bajo. + Este LED no se puede usar como resistencia pull-down. Funciona únicamente como elemento que indica funcionamiento. + La resistencia que se ve está destinada a representar la resistencia serie que se precisa para limitar la corriente. Ánodo del LED Cátodo del LED Display de 7 segmentos @@ -714,9 +714,10 @@ In the file howTo.md you can find more details about translations. Entrada de control invertida Caso de prueba Describe un caso de prueba. - Aquí puedes indicar el comportamiento de un circuito. Puede ser automáticamente comprobado si el comportamiento - del circuito se corresponde con su descripción. - Si no es así, se muestra un mensaje de error. + En un caso de prueba (test case) de un circuito, se puede describir cómo éste debería comportarse. + Podrá entonces automáticamente comprobarse si el comportamiento del circuito corresponde a su descripción. + Si no es así, se muestra un mensaje de error. + El texto de ayuda del editor de casos de prueba describe detalladamente cómo puede crearse sicho caso de prueba. Temporizador asíncrono Permite la configuración del temporizado de un circuito secuencial asíncrono, como una tubería de Muller. El circuito debe empezar en un modo de paso de puerta única y debe poder alcanzar un estado estable en el inicio. @@ -1305,7 +1306,7 @@ In the file howTo.md you can find more details about translations. Calcula un paso de puerta simple Sintetizar Genera la expresión booleana mínima a partir de una tabla de verdad. - {0} variables + Crear Crea un archivo fuente CUPL que contiene al circuito. Crea un archivo BLIF (Berkeley Logic Interchange Format) que contiene el circuito. @@ -1363,7 +1364,7 @@ In the file howTo.md you can find more details about translations. Crea un circuito a partir de una expresión. Ejecuta las pruebas Ejecuta todos los valores de prueba en el circuito - Fijar entradas + Fijar valores de entrada por defecto. Usar los valores de entrada actuales como nuevos valores por defecto. Reiniciar todos los diodos y FGFETs Reinicia todos los diodos (fusibles) y FGFETs al estado "no programado". @@ -1446,7 +1447,7 @@ In the file howTo.md you can find more details about translations. La frecuencia máxima es {0} kHz No se encuentra la forma {0} Asignación de pines - Pin {0}: {1} + ¡Se necesita reiniciar para que se produzcan los cambios! Introduce una expresión: Error al ejecutar las pruebas: @@ -1456,7 +1457,7 @@ In the file howTo.md you can find more details about translations. (¡Demasiadas entradas!) Todos las combinaciones del test se ejecutaron, pero no se muestran los resultados. ¡La evaluación del resultado de la prueba es, sin embargo, correcta! - E: {0} / F: {1} + ¡Error al crear la ayuda! ¡El portapapeles no contiene datos importables! ¡Selecciona una carpeta vacía! @@ -1477,7 +1478,7 @@ In the file howTo.md you can find more details about translations. La edición del circuito está deshabilitada. Puedes quitar el bloqueo de edición en "{0} -> {1} -> {2}". Sin embargo, la copia de los componentes y la configuración de los diodos y FG-FETS con la tecla [P] es posible en el modo de bloqueo. ¡Error durante el test de velocidad! - Pin {0} + Asistente de numeración Selecciona el pin {0}: Marcos escritos: {0} @@ -1627,7 +1628,7 @@ In the file howTo.md you can find more details about translations. Si una línea comienza con 'repeat([n])', [n] líneas de prueba se generarán. La variable 'n' puede usarse para generar los datos de la prueba. Con 'repeat(16)', se crearán 16 líneas, donde n va de 0 a 15. - Si hay entradas de varios bits y se van a fijar a un valor binario, esto puede hacerse con la instrucción + Si hay entradas con múltiples bits y se van a fijar a un valor binario, esto puede hacerse con la instrucción 'bits([bits], [value])'. Esto se emplea para crear [bits] bits del valor [value].</p> <p>El siguiente es un ejemplo de prueba para un sumador de 4 bits:</p> @@ -1642,7 +1643,7 @@ repeat(256) 1 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n Los 4 bits de entrada se generan con la instrucción 'bits'. El resultado (C_i, S_3-S_0) también se genera con la instrucción 'bits' Esto sucede una vez con C_i-1 = 0 y en la siguiente línea con C_i-1 = 1. De esta forma, se generan 512 filas de prueba que cubren todas las posibles configuraciones de entrada.</p> -<p> Si se van a repetir varias filas, o hay bucles anidados, la instrucción 'loop' puede usarse. +<p> Si se van a repetir varias filas, o hay bucles anidados, puede usarse la instrucción 'loop'. El ejemplo de arriba podría implementarse también así:</p> <pre> @@ -1656,8 +1657,8 @@ El ejemplo de arriba podría implementarse también así:</p> </pre> <p>En algunas circunstancias puede ser necesario poder reaccionar al estadio inicial del circuito. Por - tanto, las señales proporcionadas en el circuito pueden pueden usarse dentro del caso de prueba. Por ejemplo, si - se va a probar un contador que empieza en un estado indefinido, puede ser registrado a un estado definido:</p> + tanto, las señales proporcionadas en el circuito pueden usarse dentro del caso de prueba. Por ejemplo, si + se va a probar un contador que empieza en un estado indefinido, puede ser fijado a un estado definido:</p> <pre>C Q_3 Q_2 Q_1 Q_0 @@ -1670,10 +1671,10 @@ El ejemplo de arriba podría implementarse también así:</p> repeat(16) C bits(4,n) </pre> - <p> Puede ser que tengamos que generar números aleatorios en los tests. + <p> Puede ser útil generar números aleatorios en los casos de prueba. Esto puede hacerse con la función 'random([n])'. El número generado es mayor o igual que 0 y menor que [n]. - Si suponemos un multiplicador de 16 bits como ejemplo, un test completo no podría hacerse, porque hay 2^32 - combinaciones. + Si suponemos, por ejemplo, un multiplicador de 16 bits, un test completo no podría hacerse, porque hay 2^32 + combinaciones de entrada. Una prueba de regresión que multiplicara 100000 números aleatorios podría tener este aspecto:</p> <pre> @@ -1700,6 +1701,46 @@ En tal caso, el nombre de la señal puede usarse con un añadido "_out" para lee <p>El circuito para este test tiene solo una entrada 'D', pero que puede estar en estado de alta impedancia. Por tanto, la señal 'D_out' estará también disponible para chequear el valor en este caso.</p> +<p> En algunos casos, puede que queramos usar las señales proporcionadas por el circuito para producir una nueva señal, +que es la que se va a comprobar. Un ejemplo podría ser una señal de un bus con varios bits, donde solo deberíamos comprobar un bit, +mientras que los demás no tienen influencia en la prueba. En este caso, se puede generar una nueva señal dentro de la prueba +que contenga este solo bit, de modo que las pruebas se puedan definir para este bit.</p> +<p>Esto se hace con el 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>En este ejemplo, el tercer bit está aislado de la señal 'Bus' y se saca como la señal 'Bit' para la prueba. +El circuito en sí mismo no contiene ninguna salida llamada 'Bit'</p> + +<h3>Procesadores</h3> +<p> Si se van a comprobar procesadores, necesitamos una inicialización del procesador. +Es posible hacer esta inicialización dentro del caso de prueba. +Así, se pueden aplicar varios casos de prueba en un circuito y cada comprabación puede usarse con su propia inicialización. +Hay tres instrucciones para llevar a cabo esta inicialización:</p> +<ul> +<li>El comando 'program' puede usarse para sobreescribir la memoria de programa del procesador. +La instrucción <pre>program(0x8000,0x2d11,0x8000,0x2f21)</pre> escribe cuatro palabras al comienzo de la memoria de programa. +El resto de palabras valen cero.</li>. +<li>La instrucción 'memory' puede emplearse para escribir en un componente de RAM: +<pre>memory mem(3)=7;</pre> +Este ejemplo escribe 7 en la memoria con la etiqueta 'mem' en la dirección 3.</li> +<li> Un registro con una determinada etiqueta puede ser sobreescrito con el comando 'init'. +<pre>init R0=22;</pre> +Esta instrucción sobreescribe el registro con la etiqueta 'R0' con el valor 22.</li> +</ul> +<p>Hay que destacar que todas las inicializaciones empleadas se aplican solo una vez antes de la ejecución de la prueba. +No importa en qué línea del caso de prueba esté. +Sin embargo, no se deben usar por encima de la línea del encabezado que contiene la lista de los nombres de las señales.</p> + + + + </body></html> Máquina de Estados Finitos (FSM) sin movimiento @@ -1876,7 +1917,7 @@ En tal caso, el nombre de la señal puede usarse con un añadido "_out" para lee Señal de sincronización horizontal Señal de sincronización vertical Reloj de píxel - Pin Control + Lógica de control para un pin bidireccional. ¡Se precisa este componente sólo en el contexto de generación de VHDL o Verilog, con el fin de crear un puerto HDL bidireccional! @@ -2079,4 +2120,76 @@ En tal caso, el nombre de la señal puede usarse con un añadido "_out" para lee Error al crear el archivo de estadísticas. Exporta texto plano + Gráfica de datos activos + Rango + Muestra una gráfica de los valores medidos, por lo que los valores medidos se guardan solo si la señal de entrada cambia. + El guardado tiene lugar cuando el circuito se ha estabilizado. + La activación no comienza la medida en un rango real, pero cada evento de activación almacena un simple valor de medida para cada una de las señales mostradas. + Como entrada directa solo está el activador. Las entradas y salidas de los circuitos, flip-flops y registros y el componente sonda pueden usarse como señales. + Esto puede activarse en los respectivos componentes. + Un cambio en esta entrada provoca el almacenamiento de los valores medidos + No conectado + Este componente puede emplearse para poner un cable en alta impedancia. + Si una entrada de una puerta lógica está en alta impedancia, el valor leído en ella estará indeterminado. + Observa que en realidad en muchos casos, puede ocurrir un excesivo consumo de corriente e incluso un daño si una entrada no está fijada a alta o baja, sino que permanece desconectada. + Esta salida siempre proporciona alta impedancia. + ¡El símbolo No Conectado no se permmite aquí! + Puerto dual ROM + ROM + Componente de memoria no volátil. + Los datos almacenados pueden ser editados en el diálogo de propiedades. + Este pin define la dirección de la palabra de datos que va a mostrarse en D1. + La palabra de datos seleccionada si la entrada s1 está en valor alto. + Si la entrada está en alto, la salida D1 está activdada. Si está en bajo, la salida de datos estará en estado de alta impedancia. + Este pin define la dirección de la palabra de datos que va a mostrarse en D2. + La palabra de datos seleccionada si la entrada s2 está en valor alto. + Si la entrada está en alto, la salida D2 estará activada. Si está en bajo, la salida de datos estará en estado de alta impedancia. + Generador de números aleatorios + Puede emplearse para generar números aleatorios. + Cuando se inicia la simulación, el generador se reinicia, de forma que una nueva secuencia de números pseudoaleatorios se genera en cada inicio. + El generador puede lanzarse en la simulación en marcha con un valor de inicio para generar una secuencia de números pseudoaleatorios definida. + PRNG + Nuevo valor de inicio del generador + Activo, se reinicia el generador de números aleatorios con el valor de inciio en el siguiente flanco de subida del reloj. + Activo, sale un nuevo número aleatorio en el siguiente flanco de subida del reloj. + Entrada de reloj. + Salida del número pseudoaleatorio + Inicialización genérica + Código que se ejecuta para iniciar un circuito genéico. + Si se va a iniciar un circuito genérico, este componente tiene que estar presente. + Código + Código que se ejecuta cuando se concreta un circuito genérico. + Puede usarse, por ejemplo, para añadir componentes o cables a un circuito. + ¡Casos de prueba con parametrización genérica no están soportados en la exportación a HDL! + ¡Encontradas varias memorias para programas! Solo se permite una memoria para programa. + ¡No se ha encontrado la memoria "{0}" en este modelo! + ¡Múltiples memorias "{0}" encontradas en el modelo! + No hay código de inicialización para los componentes genéricos. + Hay que añadir un componente al circuito para que arranque. + Múltiples códigos de inicilización para los elementos genéricos. + Error en el análisis del código de inicialización genérico. + ¡Señal virtual {0} declarada dos veces en la línea {1}! + Resto siempre positivo + Si está activado, el resto de una división con signo será siempre positivo. + Disparador + Condición de disparo para la grabación de datos. + flanco de subida + flanco de bajada + ambos flancos + Cambios hechos por la simulación que está en marcha. + Fijar escalado + Exportable a VHDL/Verilog. + Error al fijar la fila del caso de prueba. + Nombre que se va a usar en circuitos genéricos: {0} + Crear un circuito particular + Crear + Crea un circuito particular a partir de este circuito genérico, usando los parámetros indicados en este elemento. + ¡Error al crear el circuito particular! + Optimizador de FSM + Optimiza los números de los estados + Optimiza los números de los estados, de modo que la implementación cueste lo menos posible. + El tiempo de ejecución se incremente muy lentamente con la complejidad de la máquina (O(n!)). + ¡Error durante la optimización! + Complejidad inicial: + Lo mejor hasta ahora: diff --git a/src/main/resources/lang/lang_es_ref.xml b/src/main/resources/lang/lang_es_ref.xml index 7c9c489c7..58dd37b7a 100644 --- a/src/main/resources/lang/lang_es_ref.xml +++ b/src/main/resources/lang/lang_es_ref.xml @@ -4,8 +4,7 @@ Do not edit this file directly! This makes it very difficult for me to continue to maintain the translation. Pull requests in which this file is modified cannot be accepted. In the file howTo.md you can find more details about translations. ---> - +--> Address Table of Contents General @@ -179,7 +178,9 @@ In the file howTo.md you can find more details about translations. Connection 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. Seven-Segment Display @@ -758,7 +759,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 @@ -1391,7 +1393,7 @@ In the file howTo.md you can find more details about translations. Calculates a single gate step Synthesis Generates the minimal bool expressions described by a truth table. - {0} variables + Create Creates a CUPL source file containing the define circuit. Creates a file containing the circuit similar to the Berkeley Logic Interchange Format (BLIF). @@ -1449,7 +1451,7 @@ In the file howTo.md you can find more details about translations. 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 @@ -1533,7 +1535,7 @@ In the file howTo.md you can find more details about translations. The maximum frequency is {0} kHz Shape {0} is missing Pin assignment - Pin {0}: {1} + A restart is required for the changes to take effect! Enter an expression: Error running the tests: @@ -1544,7 +1546,7 @@ In the file howTo.md you can find more details about translations. All test cases are executed, but not all results are shown. The evaluation of the test result is nevertheless correct! - E: {0} / F: {1} + Error creating the help! The clipboard contains no importable data! Select an empty folder! @@ -1569,7 +1571,7 @@ In the file howTo.md you can find more details about translations. the locked mode. Error during speed test! - Pin {0} + Numbering Wizard Select pin {0}: Written frames: {0} @@ -1693,95 +1695,96 @@ 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 @@ -1794,6 +1797,42 @@ In the file howTo.md you can find more details about translations. <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>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 @@ -1972,7 +2011,7 @@ Therefore, the signal 'D_out' is also available to check the value in this case. The horizontal synchronization signal The vertical synchronization signal The pixel clock - Pin Control + Control logic for a bidirectional pin. This component is necessary only in the context of VHDL or Verilog generation, in order to create a bidirectional HDL port! @@ -2167,4 +2206,82 @@ Therefore, the signal 'D_out' is also available to check the value in this case. Error while creating the stats file! Export Plain Text + 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 dual port + 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: + Best so far: