Skip to content

Consola de entrada

Juan Gonzalez-Gomez edited this page Jan 9, 2023 · 14 revisions

Introducción

La consola se divide en la parte de entrada y salida. Típicamente la consola de entrada es el teclado, y la consola de salida la pantalla
Sin embargo se pueden crear consolas de entradas más pequeñas para usos específicos. Por ejemplo, para probar circuitos digitales aritméticos necesitamos introducir números. Sería muy interesante tener un consola de entrada para números

Otro problema a estudiar es el de lograr tener la consola mínima. Esto depende mucho de la aplicación

Consola de entrada de números

Para introducir números necesitaríamos, en principio, 10 teclas o pulsadores: una para cada dígito: 0, 1, 2 ... 9. Además necesitamos una tecla ENTER para indicar que se ha finalizado de introducir el número. Por tanto, el número mínimo sería de 11 teclas

Si además precisamos de una entrada con edición, para corregir datos, necesitaríamos otra tecla más: DEL para borrar el último dígito introducido. En este caso necesitaríamos 12 teclas

Así vamos a distinguir entre dos tipos de consola: consolas básicas y consolas con edición. De momento nos centraremos en consolas básicas, que no permiten editar el número

¿Cómo podríamos reducir la consola? Una posibilidad es cmbiar la base. En vez de utilizar un sistema decimal, con 10 dígitos, podríamos usar el sistema binario, en base 2. En este caso, en la consola necesitaríamos sólo 3 teclas: 0, 1 y ENTER

Pero todavía se podría reducir más la consola, si usamos el sistema UNARIO. En este caso sólo usamos el dígito 1. Por tanto, sólo con dos teclas 1 y ENTER podemos introducir números. Claro que en unario los números a introducir son pequeños, pero para hacer pruebas de circuitos básicos nos vale

Consola mínima de entrada de números

La consola mínima, para introducir números no muy garndes estaría formada por 2 teclas: 1 y ENTER. Habría que añadir una más para tener una consola con edición: DEL

El siguiente parámetro es determinar la cantidad de dígitos que se permiten. En el caso de la consola mínima utilizamos sólo un dígito. Por tanto, esta consola mínima sólo puede representar los números 0 y 1. Cuando sólo hay 1 dígito, la consola Unaria y binaria son muy parecidas. Ambas producen un bit como salida

Es especto de esta consola sería la siguiente:

A nivel de circuito, la consola debe tener como entradas las dos señales provenientes de los dos botones: dig y ret, correspondiente al dígito y a la recla enter (return). Como salida debe tener el dato (de 1 bit) y la señal de validación done

Sin embargo, necesitamos señales extra para generalizar su uso. La consola NO está funcionando todo el rato, sino que sólo se hará caso a las teclas cuando tenga "el foco". Es decir, cuando esté "encendida". Por ella la consola se comporta como una máquina. Y deberá tener una señal de start, y su correspondiente señal de busy

Cuando la consola NO está encendida, permanece inerte... aunque se aprieten plsadores no hará nada. Una vez que esté activa, la consola se queda esperando a que se apriete enter. En ese caso se emite el número introducido por el usuario por su salida de dat y se envía un tic por done

Ejemplo 1: Implementación de la consola mínima

Ejemplo de implementación de la consola. Como es una consola de un dígito, podemos utilizar el propio botón del dígito para activarlo/desactivarlo. Sería una especie de edición, pero sin añadir el botón de del

El dato temporal se muestra en el LED0. El resultado final, al apretar el ENTER, se muestra en el LED1

La consola arranca en el ciclo 0, y se pone a 1 el biestable de encendido, por lo que busy es 1. Mientras busy es 1, los tics de los botones pasan al interior. Cuando la consola está apaga (busy=0), las entradas de los botones siempre estarán a 0

Al apretar el botón de enter se muestra el dato leido en el LED1 y se termina. Para volver a probarlo hay que hacer un reset

Ejemplo 2: Bloque consola

Ahora que ya tenemos la consola mínima funcionando, la encapsulamos en su bloque correspondiente y repetimos el ejemplo anterior

Ahora se entiende mejor. Una vez que arranca, la consola se queda esperando a que el usuario introduzca el dígito. Cuando se aprienta la tecla enter, este número se guarda en un biestable y se muestra en el LED1

Ejemplo 3: Calculadora unaria de dos operandos de 1-bit

En este ejemplo se implementa la calculadora más sencilla posible: Una que sólo tiene la operación de suma de dos números unarios de 1-bit. Se utiliza la consola mínima para introducir cada número

El circuito está en 3 estados diferentes:

  • S_OP1: Introducción del operando 1
  • S_OP2: Introducción del operando 2
  • S_RES: Visualización del resultado

Secuencialmete se pasa del uno al siguiente. Así, primero la calcula se queda esperando a que se introduzca el operando 1. Al apretar enter se espera el operando 2. Al apretar de nuevo enter se visualiza el resultado de la suma del operando 1 más el operando 2 (El resultado es de sólo 1 bit). Por último, si apretamos enter de nuevo se vuelve al estado inicial

El controlador se ha llevado a un bloque aparte para que sea más claro el circuito. En este contolador hay 3 biestables conectados en anillo. A partir de las dos entradas: dat_ok y key_ret se generan las transiciones y se saca los valores de los nuevos estados

Consola Unaria

TODO

Clone this wiki locally