diff --git a/README.md b/README.md index 8bb0575..db14e83 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Library of virtual components ![](wiki/love-fpga-logo.png) + ## Install * Download the collection: [stable](https://github.com/FPGAwars/LOVE-FPGA-Collection/archive/v0.1.0.zip) or [development](https://github.com/FPGAwars/LOVE-FPGA-Collection/archive/master.zip) @@ -26,6 +27,14 @@ Library of virtual components * PushButtonx1-bus * PushButtonx1-rx * PushButtonx1 + * *Pushbuttonx2* + * Pushbuttonx2-bus + * Pushbuttonx2-rx + * Pushbuttonx2 + * *Pushbuttonx4* + * Pushbuttonx4-bus + * Pushbuttonx4-rx + * Pushbuttonx4 * *Switchx1* * Switchx1-bus * Switchx1-rx @@ -64,6 +73,44 @@ Library of virtual components * 06-Virtual-LED-blink * 07-Virtual-LEDx2-counter * 08-switchx4-pushbtnx4-LEDx8 +* *CT8-Examples* + * *01-LEDs* + * 01-LED-real-virt + * 02-LED-real-virt-b + * 03-LED-parpadeante + * 04-LED-virtual-pulsador-real + * 05-LED-virtualx2-alternantes + * 06-LED-virtualx2-pulsadores-realesx2 + * 07-Contador-4bits-LEDs-virtuales + * 08-LEDsx3-conf1 + * 08-LEDsx3-conf2 + * 08-LEDsx3-conf3 + * 09-LEDsx8-conf1 + * 09-LEDsx8-conf2 + * *02-Switch* + * 10-Switch-LED + * 11-Switch-LED-2 + * 12-Switch-NOT-LED + * 13-Switch-shift-LEDsx8 + * 14-Switchx2-LEDsx2 + * 15-Switchx2-Puerta-AND + * 16-Switchx4-LEDs + * 17-Switchx4-suma-numeros-2bits + * 18-Switchx3-bus-LEDs + * *03-Button* + * 19-Button-LED + * 20-Button-memory-LED + * 21-Button-Counter-4-bits-LEDs + * 22-Button-sequence-LEDs + * 23-Buttonx2-counter-reset-LED + * 24-Buttonx2-left-right-LED + * 25-Buttonx4-LEDs + * 26-Buttonx3-LEDs-bus + * *04-Mix* + * 27-Captura-dato-4bits + * 28-Captura-dato-8bits + * 29-Calc-suma-4-bits + * 30-inputsx8-LEDs * *Test* * 01-pushbutton-test diff --git a/locale/translation.js b/locale/translation.js index 5741421..be280c2 100644 --- a/locale/translation.js +++ b/locale/translation.js @@ -108,6 +108,8 @@ gettext('**STDOUT Bus** \n* Data to transmit (8 bits) \n* tic (1 bit)\n* data gettext('VOB-Split'); gettext('VOB-join'); gettext('Pushbuttonx1'); +gettext('Pushbuttonx2'); +gettext('Pushbuttonx4'); gettext('Switchx1'); gettext('Switchx2'); gettext('Switchx4'); @@ -157,27 +159,45 @@ gettext('One virtual pushbutton'); gettext('One Virtual Switch'); gettext('The block is exactly the same than the \nswitchx1, but with a different icon'); gettext('# Virtual Switchx1\n\nJust one vitual switch connected directly \nto the RX serial pin'); -gettext('Switchx1-bus'); -gettext('Virtual switch (1-bit). Bus block'); -gettext('Switchx1-rx'); -gettext('Switchx1'); -gettext('Switchx2-bus'); +gettext('Pushbuttonx2-bus'); +gettext('Two Virtual pushbuttons. Bus unit'); gettext('Two Virtual Switches. Bus unit'); +gettext('Virtual switch (1-bit). Bus block'); gettext('Agregador de 2 cables en un bus de 2-bits'); +gettext('# Pushbuttonx2-Bus\n\nReceives the state of two virtual Inputs'); gettext('# Switchx2-Bus\n\nReceives the state of two virtual Inputs'); -gettext('Switchx2-rx'); +gettext('Pushbuttonx2-rx'); +gettext('Two Virtual Pushbuttons. Receiving unit'); gettext('Two Virtual Switches. Receiving unit'); +gettext('# Pushbutonx2-RX\n\nReceives the state of two virtual Inputs'); gettext('# Switchx2-RX\n\nReceives the state of two virtual Inputs'); -gettext('Switchx2'); +gettext('Pushbuttonx2'); +gettext('Two Virtual Pushbuttons'); gettext('Two Virtual Switches'); +gettext('# Pushbuttonsx2\n\nReceives the state of two virtual Inputs \nIt is exactly the same than the switchx2 block, \nbut with a different icon'); gettext('# Switchx2\n\nReceives the state of two virtual Inputs'); -gettext('Switchx4-Bus'); +gettext('Pushbuttonx4-bus'); +gettext('Four Virtual Pushbuttons. Bus unit'); gettext('Four Virtual Switches. Bus unit'); gettext('Agregador de buses de 2-bits a bus de 4-bits'); +gettext('# Pushbuttonx4-Bus\n\nReceives the state of four virtual Inputs'); gettext('# Switchx4-Bus\n\nReceives the state of four virtual Inputs'); -gettext('Switchx4-rx'); +gettext('Pushbuttonx4-rx'); +gettext('Four Virtual Pushbuttons. Receiving unit'); gettext('Four Virtual Switches. Receiving unit'); +gettext('# PUshbuttonx4-RX\n\nReceives the state of four virtual Inputs'); gettext('# Switchx4-RX\n\nReceives the state of four virtual Inputs'); +gettext('Pushbuttonx4'); +gettext('Four Virtual buttons'); +gettext('# Pushbuttonx4\n\nReceives the state of four virtual Inputs'); +gettext('Switchx1-bus'); +gettext('Switchx1-rx'); +gettext('Switchx1'); +gettext('Switchx2-bus'); +gettext('Switchx2-rx'); +gettext('Switchx2'); +gettext('Switchx4-Bus'); +gettext('Switchx4-rx'); gettext('Switchx4'); gettext('Four Virtual Switches'); gettext('# Switchx4\n\nReceives the state of four virtual Inputs'); @@ -231,10 +251,10 @@ gettext('Eight virtual LEDs. Transmision block'); gettext('Separador de bus de 8-bits en buses de 4 bits'); gettext('LEDx8'); gettext('Eight virtual LEDs'); +gettext('CT8-Examples'); gettext('Test'); gettext('01-switch-LED'); -gettext('Virtual Switch. Place the first in the Bus chain'); -gettext('# Example 1: Switch-First\n\nExample of one virtual switch \nThe virtual switch is connected to the LED7 '); +gettext('# Example 1: Switchx1\n\nExample of one virtual switch \nThe virtual switch is connected to the LED7 '); gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [ONE switch WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/One-Switch/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-Switch/wiki/panel-03.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-Switch/wiki/panel-03.png)'); gettext('## Youtube Video\n\n[Link](https://www.youtube.com/watch?v=S3cI9lfasgU)\n\n[![Click to see the youtube video](http://img.youtube.com/vi/S3cI9lfasgU/0.jpg)](https://www.youtube.com/watch?v=S3cI9lfasgU)'); gettext('02-switchx2-LEDx2'); @@ -242,23 +262,19 @@ gettext('# Example 2: Switch\n\nExample of two virtual switches \nVirtual switc gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [TWO switches WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/Two-Switches/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/Two-Switches/wiki/panel-01.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/Two-Switches/wiki/panel-01.png)'); gettext('## Youtube Video\n\n[Link](https://www.youtube.com/watch?v=n8WTWNlL8CA)\n\n[![Click to see the youtube video](http://img.youtube.com/vi/n8WTWNlL8CA/0.jpg)](https://www.youtube.com/watch?v=n8WTWNlL8CA)'); gettext('03-switchx2-pushbtn-LEDx3'); -gettext('Virtual-pushbutton'); gettext('# Example 3: Push button\n\nExample of two virtual switches and one PushButton \nVirtual switch \"a\" connected to LED7 \nVirtual switch \"b\" connected to LED4 \nVirtual pulshbutton \"c\" connected to LED0'); gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [2 switches - 1 Pushbutton WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/Two-Switches-One-Pushbutton/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/Two-Switches/wiki/panel-01.png)\n\n![](https://raw.githubusercontent.com/FPGAwars/LOVE-FPGA/master/Web-panels/Two-Switches-One-Pushbutton/wiki/panel-01.png)'); gettext('## Youtube Video\n\n[Link](https://www.youtube.com/watch?v=n8WTWNlL8CA)\n\n[![Click to see the youtube video](http://img.youtube.com/vi/uycGad61imk/0.jpg)](https://www.youtube.com/watch?v=uycGad61imk)'); -gettext('The block is exactly the same than the \nVirtual-switch, but with another icon'); gettext('04-switchx2-pushbtnx2-LEDx4'); gettext('# Example 4: Two switches and two Pushbuttons\n\nVirtual switch \"a\" connected to LED7 \nVirtual switch \"b\" connected to LED5 \nVirtual pulshbutton \"c\" connected to LED2\nVirtual pushbutton \"d\" connected to LED0'); gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [2 switches - 2 Pushbuttons WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/Two-Switches-Two-PushButtons/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/Two-Switches-Two-PushButtons/wiki/panel-01.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/Two-Switches-Two-PushButtons/wiki/panel-01.png)'); gettext('05-Virtual-LED'); gettext('Detección de pulsación. Emite un tic cada vez que se aprieta el pulsador'); -gettext('Virtual LED. Last output position'); -gettext('Componente genérico'); gettext('### Virtual LED'); gettext('### Real LED'); gettext('## Example 5: One Virtual LED \n\nWhen the real pushbutton is pressed, both \nthe Virtual LED and the real LED are turned on'); gettext('## Youtube Video\n\n[Link](https://www.youtube.com/watch?v=n8WTWNlL8CA)\n\n[![Click to see the youtube video](http://img.youtube.com/vi/ycp8d5fJK6Q/0.jpg)](https://www.youtube.com/watch?v=ycp8d5fJK6Q)'); -gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [One LED WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/Two-Switches-One-Pushbutton/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-LED/wiki/panel-01.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-LED/wiki/panel-01.png)'); +gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [One LED WEB panel](https://fpgawars.github.io/LOVE-FPGA/Web-panels/One-LED/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-LED/wiki/panel-01.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/One-LED/wiki/panel-01.png)'); gettext('**Pulsador-tic**'); gettext('06-Virtual-LED-blink'); gettext('Corazon genérico para bombear bits a la frecuencia fijada en Hz (por defecto 1Hz)'); @@ -276,7 +292,6 @@ gettext('Reset the counter'); gettext('### COUNTER'); gettext('**Parámetro**: Módulo del contador'); gettext('08-switchx4-pushbtnx4-LEDx8'); -gettext('Agregador de 4 cables en un bus de 4-bits'); gettext('## INPUTS: Switches'); gettext('## Example 8: 4-Switches, 4 Pushbuttons and 8 LEDs \n\nThe switches and Pushbottons are connected to both 8 real LEDs and to 8 virtual LEDs'); gettext('From PC'); @@ -288,7 +303,244 @@ gettext('Show the PUshbuttons'); gettext('to PC'); gettext('## Web panel for testing\n\nFor testing this example upload it to the \nFPGA and connect to the [4 Switches, 4 pushbuttons and 8 LEDs](https://fpgawars.github.io/LOVE-FPGA/Web-panels/04-Switches-04-Buttons-08-LEDs/panel.html) \n(You should use a Browser that support **Webserial**, like **Chromium** or **Chrome**) \nYou do not need to install anything. Just the browser\n\n[Panel Image](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/04-Switches-04-Buttons-08-LEDs/wiki/panel-01.png)\n\n![](https://github.com/FPGAwars/LOVE-FPGA/raw/master/Web-panels/04-Switches-04-Buttons-08-LEDs/wiki/panel-01.png)'); gettext('## Youtube Video\n\n[Link](https://www.youtube.com/watch?v=gS7hlhaEK2s)\n\n[![Click to see the youtube video](http://img.youtube.com/vi/gS7hlhaEK2s/0.jpg)](https://www.youtube.com/watch?v=gS7hlhaEK2s)'); +gettext('01-LEDs'); +gettext('02-Switch'); +gettext('03-Button'); +gettext('04-Mix'); +gettext('01-LED-real-virt'); +gettext('Un bit constante a 1'); +gettext('One Virtual LED'); +gettext('### Ejemplo 1: LED Virtual y LED real\n\nEjemplo hola mundo. Se enciende un LED real y uno Virtual\n'); +gettext('**LED Real**'); +gettext('Nombre de la variable booleana \nde salida (sólo una letra)'); +gettext('02-LED-real-virt-b'); +gettext('### Ejemplo 2: LED Virtual y LED real\n\nEjemplo hola mundo. Se enciende un LED real y uno Virtual \nEl LED está asocido a la variable \"b\" en vez de a la \"a\"\n'); +gettext('03-LED-parpadeante'); +gettext('### Ejemplo 3: LED Virtual y LED real parpadeantes\n\nUn LED real y uno virtual se hacen parpadear a la frecuencia \nde 1 Hz. El LED virtual está asociado a la variable booleana a\n'); +gettext('04-LED-virtual-pulsador-real'); +gettext('### Ejemplo 4: LED Virtual y LED real conectados a un pulsador real\n\nLos LEDs Virtual y real se encienden y apagan apretando \nun pulsador real\n'); +gettext('**Pulsador Real**'); +gettext('Antirrebotes'); +gettext('05-LED-virtualx2-alternantes'); +gettext('### Ejemplo 5: Dos LEDs alternantes\n\nEste circuito hace parpadear alternativamente los LEDs 7 y 0 y los LEDs \nvirtuales a y b\n\n'); +gettext('**LEDs Reales**'); +gettext('**LEDs Virtuales**'); +gettext('Un bit y su negado'); +gettext('i[1]: Variable a \ni[0]: Variable b '); +gettext('06-LED-virtualx2-pulsadores-realesx2'); +gettext('### Ejemplo 6: Dos LEDs controlados por pulsadores reales\n\nEl pulsador externo SW1 controla el LED virtual a y el LED real 7, y el \npulsador SW2 controla el b y el LED6\n\n'); +gettext('Bus de 2 bits con los pulsadores: \ni[1]: SW1 \ni[0]: SW2'); +gettext('07-Contador-4bits-LEDs-virtuales'); +gettext('Contador módulo M, ascendente, de 4 bits, con reset '); +gettext('Corazón de bombeo de tics a un frecuencia parametrica en Hz'); +gettext('### Ejemplo 7: Contador de 4 bits en LEDs\n\nEl contador se incrementa cada segundo y muestra el resultado en 4 \nLEDs reales y en 4 LEDs virtuales. Con el pulsador sW1 se hace un reset\n\n'); +gettext('08-LEDsx3-conf1'); +gettext('Contador módulo M, ascendente, de 3 bits'); +gettext('Separador de bus de 3-bits'); +gettext('### Ejemplo 8: Conexión de 3 LEDs virtuales (CONFIGURACIÓN 1)\n\nConexión de 3 LEDs mediante el encadenado de dos bloques LEDx1-bus y \nuno LEDx1-tx\n\n'); +gettext('Contador de 3 bits'); +gettext('Señales de realimentación: \nSe inyectan en el bus'); +gettext('El primer elemento debe estar \nconectado al que hace la \ntransmisión (sufijo tx)'); +gettext('**LEDx1-BUS**'); +gettext('**LEDx1-TX**'); +gettext('08-LEDsx3-conf2'); +gettext('Separador de bus de 3-bits, en dos de2 y 1 bits'); +gettext('### Ejemplo 8: Conexión de 3 LEDs virtuales (CONFIGURACIÓN 2)\n\nConexión de 3 LEDs mediante el encadenado de un bloque LEDx2-bus y \nuno LEDx1-tx\n\n'); +gettext('**LEDx2-BUS**'); +gettext('08-LEDsx3-conf3'); +gettext('Separador de bus de 3-bits, en dos de 1 y 2 bits'); +gettext('### Ejemplo 8: Conexión de 3 LEDs virtuales (CONFIGURACIÓN 3)\n\nConexión de 3 LEDs mediante el encadenado de un bloque LEDx1-bus y \nuno LEDx2-tx\n\n'); +gettext('**LEDx2-TX**'); +gettext('09-LEDsx8-conf1'); +gettext('Registro de desplazamiento (izquierda) de 8 bits'); +gettext('### Ejemplo 9: Conexión de 8 LEDs virtuales (Configuración 1)\n\nEjemplo de uso de 8 LEDs virtuales (y reales) \nSe realiza una rotación de un bit hacia la izquierda a la frecuencia de 4Hz\n\n'); +gettext('Registro de desplazamiento \nhacia la izquierda'); +gettext('Valocidad del \ndesplazamiento'); +gettext('El bit de mayor peso se \nintroduce por el de menor \n(rotación)'); +gettext('**8 LEDs virtuales**'); +gettext('**8 LEDs reales**'); +gettext('09-LEDsx8-conf2'); +gettext('### Ejemplo 9: Conexión de 8 LEDs virtuales (Configuración 2)\n\nEjemplo de uno de 8 LEDs virtuales (y reales) usando dos bloques de 4 LEDs \nSe realiza una rotación de un bit hacia la izquierda a la frecuencia de 4Hz\n\n'); +gettext('**LEDx4-bus**'); +gettext('**LEDx4-tx**'); +gettext('10-Switch-LED'); +gettext('### Ejemplo 10: Un Interruptor virtual\n\nUn interruptor virtual conectado a un LED real y \na otro virtual'); +gettext('Nombre de la variable \nbooleana de entrada'); +gettext('Variable booleana de salida'); +gettext('**Interruptor virtual**'); +gettext('**LED virtual**'); +gettext('**LED real**'); +gettext('11-Switch-LED-2'); +gettext('### Ejemplo 11: Un Interruptor virtual\n\nUn interruptor virtual conectado a un LED real y \na otro virtual. El interruptor de entrada está asociado a la \nvariable boolena \"b\" y el LED a la \"c\"'); +gettext('12-Switch-NOT-LED'); +gettext('### Ejemplo 12: Probando una puerta NOT\n\nComprobando una puerta NOT. La entrada se establece desde el \ninterruptor virtual a, y su salida se visualiza en el LED7 y en \nel LED virtual \"b\"'); +gettext('**Puerta NOT**'); +gettext('13-Switch-shift-LEDsx8'); +gettext('Multiplexor de 2 a 1'); +gettext('### Ejemplo 13: Desplazamiento de bits a dos velocidades\n\nUtilizamos un interruptor virtual para establecer la velocidad del \ndesplazamiento de 8 bits: lenta o rápida\n\n'); +gettext('Velocidad rápida'); +gettext('Si no se indican los nombres de las 8 \nvariables booleanas, se utilizan por \ndefecto los nombres a - h (los que hay \nen el panel)'); +gettext('Velocidad lenta'); +gettext('Multiplexor de \nselección de velocidad: \n0: Lenta \n1: Rápida'); +gettext('14-Switchx2-LEDsx2'); +gettext('### Ejemplo 14: Dos interruptores conectados a dos LEDs\n\nSe usan dos interruptores de entrada, asociados a la variables a y b, que \ncontrolan directamente los LEDs virtuales g y h respectivamente, así como los \nLEDs reales 1 y 0\n'); +gettext('**2 LEDs reales**'); +gettext('**Dos Interruptores virtuales**'); +gettext('**2 LEDs virtuales**'); +gettext('15-Switchx2-Puerta-AND'); +gettext('### Ejemplo 15: Probando la puerta AND\n\nSe usan dos interruptores de entrada, asociados a la variables a y b, para \nprobar el funcionamiento de una puerta AND de dos entradas cuya salida se \nconecta al LED virtual h y LED real 0. Sólo cuando ambos interruptores estén \nactivados, el LED se encenderá\n'); +gettext('**Puerta AND**'); +gettext('Interruptor a'); +gettext('Interruptor b'); +gettext('16-Switchx4-LEDs'); +gettext('### Ejemplo 16: Cuatro Interruptores conectados a LEDs\n\nLos cuatro interruptores de entrada: a,b,c y d se conectan directamente \na los 4 LEDs virtuales: e, f, g y h, así como a cuatro LEDs reales: 0 - 3'); +gettext('**LED reales**'); +gettext('**Cuatro Interruptores virtuales**'); +gettext('**LED virtuales**'); +gettext('17-Switchx4-suma-numeros-2bits'); +gettext('2-bits 2-ops adder with carry'); +gettext('Separador de bus de 4-bits en buses de 2 bits'); +gettext('### Ejemplo 17: Suma de dos números de dos bits\n\nPor los interruptores a y b se introduce un número de dos bits. Por los \ninterruptores c y d otro número de 2 bits. Ambos números se suman y \nel resultado se muestra por los LEDs virtuales f, g y h, así como por los LEDs \nreales 2, 1 y 0'); +gettext('**LEDs virtuales**'); +gettext('**Operando 1**'); +gettext('**Operando 2**'); +gettext('**Sumador**'); +gettext('18-Switchx3-bus-LEDs'); +gettext('Agregador de 3 cables en un bus de 3-bits'); +gettext('### Ejemplo 18: Encadenamiento de 3 interruptores\n\nLos interruptores están asociados a las variables booleanas a, b y c \nEstán conectados a tres LEDs virtuales: f, g y h, y a 3 LEDs reales: 2,1 y 0'); +gettext('### Interruptores virtuales'); +gettext('### LEDs virtuales'); +gettext('### LEDs reales'); +gettext('19-Button-LED'); +gettext('### Ejemplo 19: Un pulsador conectado a un LED\n\nEjemplo de uso de un pulsador. El pulsador virtual e se conecta con el LED virtual a \ny con el LED real 0. Al apretar el pulsador se encience el LED, y se apaga al soltarlo'); +gettext('20-Button-memory-LED'); +gettext('Biestable de cambio (Tipo T). Cuando se recibe un tic cambia de estado'); +gettext('### Ejemplo 20: Un pulsador con memoria conectado a un LED\n\nEjemplo de pulsador con memoria. Al pulsarlo se mantiene el LED encendido. Al volver a \npulsarlo se apaga'); +gettext('Biestable T'); +gettext('21-Button-Counter-4-bits-LEDs'); +gettext('### Ejemplo 21: Contador de pulsaciones del botón virtual e\n\nCada vez que se pulsa el botón virtual e, se incrementa un contador de 4 bits, que se \nmuestra en los LEDs virtuales y los LEDs reales'); +gettext('Contador'); +gettext('**Pulsador Virtual**'); +gettext('**LEDs reales**'); +gettext('22-Button-sequence-LEDs'); +gettext('Circuito combinacional de 4 entradas y 8 salidas'); +gettext('Máquina de contar, de 4 bits'); +gettext('Registro de 4 bits con entrada de reset'); +gettext('Sumador de un operando de 4 bits con una constante pasada como parámetro (No hay accarreo)'); +gettext('Comparador de dos operandos de 4 bits'); +gettext('Valor genérico constante (menos 1), de 4 bits. Su valor se introduce como parámetro. Por defecto vale 0'); +gettext('Temporizador en milisegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar'); +gettext('### Ejemplo 22: Arranque de una secuencia en los LEDs\n\nCada vez que se aprieta el pulsador virtual e arranca una secuencia en los LEDs'); +gettext('Máquina de \ncontar'); +gettext('Arranque de \nla máquina'); +gettext('Siguiente valor \nde la secuencia'); +gettext('**Reloj del sistema**'); +gettext('**Estado de** \n**la máquina**'); +gettext('Máquina encendida'); +gettext('Máquina apagada \n(rst = 1)'); +gettext('Tic de arranque'); +gettext('Tic de fin'); +gettext('**Contador de ciclos**'); +gettext('Número de ciclos \ncontados'); +gettext('Valor \nincrementado'); +gettext('### Salidas'); +gettext('Estado de la máquina'); +gettext('Ciclo actual'); +gettext('Cuenta finalizada'); +gettext('Ejecutar el ciclo'); +gettext('Número de ciclos \na contar'); +gettext('¿Estamos en el \nciclo k-1?'); +gettext('Solo se hace caso a la \nentrada next si la \nmáquina está encendida'); +gettext('Nuevo ciclo'); +gettext('Si es el ciclo k-1 y \nse pide un ciclo \nnuevo: Terminar'); +gettext('Apagar la \nmáquina'); +gettext('Ciclo nuevo: \nincrementar la cuenta'); +gettext('El tic de start se saca \npor exec para que se ejecute \nel primer ciclo'); +gettext('Si la máquina está \napagada, las señales \nde ejecución no pueden \nsalir!'); +gettext('Retrasar la señal un ciclo \nmientras que se detecta si \nla máquina ha finalizado o no'); +gettext('**Arranque del** \n**temporizador**'); +gettext('**Salida de pulso**'); +gettext('**Salida de tic**'); +gettext('**Parametro del timer** \nmilisegundos a esperar'); +gettext('23-Buttonx2-counter-reset-LED'); +gettext('### Ejemplo 23: Dos pulsadores: Contador con reset e incremento manual\n\nEjemplo de uso de dos pulsadores. Un se usa para incrementar el contador de 4 bits. \nEl otro para hacer un reset'); +gettext('**Pulsadores Virtuales**'); +gettext('24-Buttonx2-left-right-LED'); +gettext('Contador ascendente/descendente de 3 bits'); +gettext('Decodificador de 3 a 8, con salida en bus'); +gettext('### Ejemplo 24: Dos pulsadores: Movimiento hacia la izquierda y derecha\n\nEjemplo de uso de dos pulsadores. Se mueve un LED hacia la izquierda y la derecha \ncon los pulsadores virtuales e y f'); +gettext('Decodificador de 3 a 8'); +gettext('25-Buttonx4-LEDs'); +gettext('### Ejemplo 25: Cuatro pulsadores virtuales en 4 LEDs\n\nEjemplo de uso de cuatro pulsadores virtuales. Sus valores se muestra en los LEDs \nvirtuales e,f,g y h, y en los LEDs reales 3,2,1 y 0'); +gettext('**Cuatro Pulsadores virtuales**'); +gettext('26-Buttonx3-LEDs-bus'); +gettext('### Ejemplo 26: Encadenamiento de tres Pulsadores\n\nEncadenamiento de 3 pulsadores virtuales: un bloque pushbuttonx1-rx y \ndos bloques pushbuttonx1-bus, conectados a 3 LEDs virtuales y reales'); +gettext('### Pulsadores virtuales'); +gettext('27-Captura-dato-4bits'); +gettext('### Ejemplo 27: Captura de un dato de 4 bits\n\nCaptura del dato de 4 bits introducido por los interrutpores virtuales a,b,c y d. \nPrimero se accionan los interruptores para especificar el número y luego se aprieta \nel pulsador virtual e para realizar la carga. Con el pulsador virtual f se hace un reset \nLa salida del registro se muestra por los 4 LEDs virtuales e,f,g y h, y por los 4 LEDs \nreales 3,2,1 y 0'); +gettext('**4 Interruptores Virtuales** '); +gettext('Dato a almacenar \nen el registro'); +gettext('**Pulsador** '); +gettext('Tic de carga \nen el registro'); +gettext('Señal de \nreset'); +gettext('**Registro de 4 bits**'); +gettext('## ENTRADAS'); +gettext('## SALIDAS'); +gettext('**4 LEDs virtuales** '); +gettext('**LEDs reales** '); +gettext('28-Captura-dato-8bits'); +gettext('Agregador de 2 buses de 4-bits a bus de 8-bits'); +gettext('Registro de desplazamiento (izquierda) de 4 bits con carga y reset'); +gettext('### Ejemplo 28: Captura y manipulación de un dato de 8 bits\n\nPor los interruptores se introducen un dato de 4 bits, que luego \nse carga en la parte alta del registro o la baja según que se \napriete el pulsador virtual e ó f. Con el pulsador g se hace un \ndesplazamiento hacia la izquierda del registro de 8 bits \nCon el pulsador h se hace un reset'); +gettext('**4 Pulsadores Virtuales** '); +gettext('**8 LEDs virtuales** '); +gettext('Tic de carga en los 4 bits \nde mayor peso del registro'); +gettext('Tic de carga en los 4 bits \nde menor peso del registro'); +gettext('Tic de desplazamiento \na la izquierda del reg. de \n8 bits'); +gettext('Registro de 4 bits \n4-bits de menor peso'); +gettext('Registro de 4 bits \n4-bits de MAYOR peso'); +gettext('Registro de desplazamiento de 8-bits con entrada paralelo y reset \nEstá creado a partir de dos registros de desplazamienot de \n4 bits'); +gettext('El bit de mayor peso que sale \npor el reg al desplazarse se \nintroduce en el otro registro \npor el bit de menor peso'); +gettext('29-Calc-suma-4-bits'); +gettext('Sumador de 4 bits (con acarreo)'); +gettext('Emitir un tic inicial al arrancar, y nunca más. Se esperan 32 tics antes de emitir el tic de inicialización'); +gettext('Separador de bus de 6-bits en 1 bit y bus de 5 bits'); +gettext('Contador del sistema, ascendente, de 6 bits, con enable '); +gettext('Máquina de contar, de 2 bits (cuenta hasta 4 ciclos)'); +gettext('Registro de 2 bits con reset'); +gettext('Sumador de un operando de 2 bits con una constante pasada como parámetro (No hay accarreo)'); +gettext('Comparador de dos operandos de 2 bits'); +gettext('Valor genérico constante (menos 1), de 2 bits. Su valor se introduce como parámetro. Por defecto vale 0'); +gettext('Demultiplexor de 1 bit, de 2 a 4'); +gettext('Decodificador de 1 a 2'); +gettext('### Ejemplo 29: Calculadora de suma de dos números de 4-bits\n\nIntroducir el primer número en los switches y apretar el botón virtual \nde ENTER (e). Introducir el segundo número en los switches y apretar \nvez el pulsador de ENTER. En los LEDs virtuales y en los reales \nse mostrará el resultado de la suma y se vuelve al estado inicial \nLos LEDs virtuales a y b indican el operando que se está esperando a \nintroducir. El LED a indica que es el primer operando y el b el segundo \nCon el pulsador de reset se descarta la entrada actual y se vuelve al \ninicio'); +gettext('Operando'); +gettext('Cargar un \noperando'); +gettext('Volver al \ncomienzo'); +gettext('Descartar entrada actual y \nvolver al estado inicial'); +gettext('Se ha introducido un \noperando'); +gettext('**5 LEDs virtuales: RESULTADO** '); +gettext('**2 LEDs virtuales: Operando** \na: Esperando primer operando \nb: Esperando segundo operando'); +gettext('Sumador de números \nde 4 bits. Salida de \n4 bits màs el acarreo'); +gettext('LEDs de operando \n01: Primer operando \n10: Segundo operando '); +gettext('Estados: \n0: Esperando operando 1 \n1: Esperando operando 2 \n2: Haciendo operación \n (El estado 2 dura 1 ciclo)'); +gettext('Generar el tic de ejecución \nsegún el estado'); +gettext('Estado 0: No se \ngenera ninguna acción'); +gettext('Estado 1: \nCargar operando 1'); +gettext('Estado 2: \nCargar operando 2'); +gettext('Máquina de contar \ncon 3 estados'); +gettext('Addition finished! \nor aborted'); +gettext('Generar la salida en los LEDs \npara indicar el operando\nEstado 00: Salida 01 \nEstado 01: Salida 10'); +gettext('Decodificador \n1 - 2'); +gettext('La señal de reset \naborta la operación \nactual '); +gettext('La máquina arranca al principio o \ncuando ha terminado la ejecución \nanterior (bien con suma o abortando \ncon reset)'); +gettext('Cambiar al siguiente estado cuando el pulsandor\nde ENTER se presiona o cuando la señal load2 \nse haya emitido (el estado 2 sólo dura 1 ciclo)'); +gettext('Cargar el operando 1 con \nel valor actual de los \ninterruptores'); +gettext('Cargar el operando 2 con \nel valor actual de los \ninterruptores'); +gettext('Durante la carga del primer \noperando este registro \nse pone a 0'); +gettext('Para automático de la \nmáquina cuando ha terminado '); +gettext('Paro externo'); +gettext('30-inputsx8-LEDs'); +gettext('### Ejemplo 30: Cuatro interruptores + Cuatro Pulsadores en los LEDs \n\nPruebas de TODOS los elementos virtuales del panel web \nLos 4 interruptores y los 4 pulsadores se muestran en los 8 LEDs virtuales \nasí como en los reales\n\n'); gettext('01-pushbutton-test'); -gettext('Virtual pushbutton. It should be placed the First in the Bus'); -gettext('# Test 1: Pushbutton test\n\nTesting the pushbutton and pushbutton-first blocks \n'); -gettext('The block is exactly the same than the \nswitch-first, but with a different icon'); +gettext('# Test 1: Pushbutton test\n\nTesting the pushbutton-rx and pushbutton-bus blocks \n');