Skip to content

1hot‐ii

Juan Gonzalez-Gomez edited this page Jun 20, 2026 · 51 revisions

Circuito 072-1hot-ii

⬅️ Prev Navegar por los circuitos Next ➡️

Contenido

Ficha: Contador one-hot de 2 marcas

Descargas

Descripción

Este circuito es un contador que empieza en 0 y alcanza su valor máximo con 1. Es decir, que es un contador que cuenta 0 y 1. PERO a partir del ciclo 2, al superarse su valor máximo, genera un valor incorrecto, que se mantiene hasta que se quite la alimentación al circuito

Sigue siendo un contador unario, pero que utiliza una codificación diferente, que llamamos condificación one-hot, y que se describe con más detalle en los apartados siguientes

La codificación 1-hot es la que nos permite pensar en los bits como si fuese fichas en un tablero, que se desplazan. Por eso este circuito 1hot-ii es equivalente a shift. En el circuito shift es donde se introduce esta idea de "desplazamiento" de un bit. En el circuito 1hot-ii ahora nos centramos en usar este desplazamiento para realizar una cuenta desde 0 hasta 1

La codificación 1-hot, además, es la base para la construcción de autómatas, con las que se implementan las unidades de control que gestionan las rutas de datos. Por esa razón este circuito, el 1hot-ii es muy importante

Limitaciones del sistema unario natural

Con el sistema unario natural, el que hemos estado usando hasta ahora, los contadores se comportan como barras de progreso: van crecinedo la cantidad de marcas a media que aumenta el contador. Esta forma de representación es muy simple para los humanos, pero complica los circuitos. Presentan estos problemas:

  • El principal problema es que para conocer el valor exacto del contador, necesitamos conocer el valor de sus N biestables. Si miramos un biestable aislado y vemos que está a 1, podemos concluir que el número es mayor o igual a su posición, pero no sabemos el valor exacto
  • La *señal max, generada cuando se activa el bit de más a la derecha, tiene una duración infinita. Es decir, que se queda activa hasta que la reiniciemos usando un circuito de puesta a 0. Aunque puede ser útil en algunas aplicaciones, en general complica los circuitos
  • Para convertir un contador unario en uno que sea módulo N hay que añadir una lógica de reinicio, que aumenta la complejidad

Los contadores 1-hot se comportan como un cursor, puntero o ficha que se mueve por el tablero, señalando el número exacto que representa. Los problemas anteriores se solucionan:

  • Mirando un único biestable, podemos saber si el contador ha alcanzado ese valor o no. Si está a 1 es que tiene el valor de su posición. Un valor exacto, sin incertidubre
  • La señal max ahora sólo dura 1 ciclo de reloj (un tic). Es decir, que se genera un tic para indicar que ha ocurrido el evento de llegada al valor máximo. Describir los eventos mediante tics simplifica los circuitos, poque no hay que reiniciar las señales
  • La conversión de un contador de N biestables en un contador módulo N es inmediata

En los próximos circuitos iremos viendo todas estas ventajas, y comprobamso cómo en general, los contadores 1-hot son más simples que los unarios

Codificación one-hot (1-hot)

Todos los detalles de la codificación 1-hot están descritos en este cuaderno técnico: CT18: Fundamentos. Sistema Unario. Se recomienda leer el apartado Codificación one-hot para entender los fundamentos en profundidad. En esta sección sólo nos centraremos en las ideas principales

La codificación one-hot es un sitema unario, donde sólo hay 1 marca. Si bien en el sistema unario normal cada marca representa una cuenta, en la codificación 1-hot es la posición de la marca la que indica de qué número se trata. La forma de contar NO es añadir una nueva marca, sino desplazar la marca actual una posición a la derecha

Así, tenemos un tablero donde cada casilla representa la cuenta. En el caso de un contador de 2 marcas, con codificación one-hot, la casilla izquierda es el 0 y la casilla derecha el 1. Recordemos esta idea: la cantidad NO la da el número de marcas, sino la posición en la que se encuentra la única marca que hay en esta codificación

Para contar hasta '1' basta con mover la ficha una posición hacia la derecha

La regla fundamental de la codificación 1-hot es que siempre hay una unica marca. En el símil del tablero, significa que siempre tiene que haber una ficha (y sólo una!!). Dicho de otra manera: un tablero vacío es un Número NO válido en esta codificación

Esto dota a la codificación 1-hot de una propiedad: tenemos la manera de indicar que un valor es inválido. Por ejemplo poniendo todos los biestables a 0

Para el caso del contador de 2 marcas (2 casillas), los valores correctos son 10 y 01, que se corresponden respectivamente con las cuentas 0 y 1. Sin embargo el valor 00 es incorrecto

Contando hasta el ciclo 1

En este circuito tenemos 2 biestables, que representan las 2 casillas del tablero. La casilla izquierda es la cuenta 0 y la derecha la cuenta 1

Ciclo Cuenta 1-hot Cuenta Descripción
0 🟢️▪️ 0 Valor incial
1 ▪️🟢️ 1 Valor máximo
2 ▪️▪️ Inválida Overflow. Se ha superado la cuenta máxima. Número inválido

El circuito comienza en el ciclo 0, con el valor de la cuenta 0. En ciclo 1 la marca se desplaza hacia la derecha, por lo que la cuenta es 1. Se llega a su valor máximo (el tablero se termina, NO hay más casillas)

En el ciclo 2 la marca sale del tablero, por lo que el tablero queda vacío. Es decir, con un valor inválido. Lo que significa es que se ha superado el valor máximo de este contador. Este valor lo podríamos considerar como una condición de overflow

La salida de los biestables está conectada a los LEDs 1 y 0 respectivamente. Si pudiésemos ver el funcionamiento del circuito a cámara lenta, veríamos cómo en estos LEDs aparece la cuenta 1-hot, que se corresponde con el desplazamiento de la marca hacia la derecha hasta que sale del tablero:

Estado del circuito

El estado del circuito está definido por sus 2 biestables. En total este circuito puede tener 2²=4 estados, pero de ellos sólo 2 son válidos. Los que se corresponden a los valores 10 y 01. El estado 00 es el que indica overflow, y el 11 nunca puede ocurrir en este circuito

Diagrama de estado

El estado final es el de overflow, donde permanece indefinidamente hasta que se quite la alimentación

Cronograma

Es mismo que para el circuito shift

Medición con el analizador lógico

Es similar al del circuito shift

Recursos

Recurso Cantidad Máximo Descripcioin
LC 5 7680 Celdas lógicas
IO 3 256 Bloques de E/S

Conceptos nuevos

  • Codificación 1-hot: Representación de números unarios en los que sólo hay una marca. Esta marca es un puntero o ficha cuya posición indica el número
  • Contador 1-hot: Un circuito que cuenta ciclos utilizando la codificación 1-hot
  • Este circuito es la base del pensamiento espacial y de los autómatas

Enlaces

Autor

Licencia

Clone this wiki locally