Primero, sí, he leído tu pregunta y en un momento volveré a responder el OT. Hay que decir que la forma más fácil, barata, más pequeña y más flexible de hacer esto es con 5 resistencias de 100 ohmios y un PIC o Arduino enlace . OK, volviendo al tema.
Quieres hacerlo con lógica. ¿Presumiblemente para aprender diseño lógico? Hay muchos conceptos diferentes sobre cómo abordar esto. Si quieres convertirte en un diseñador de chips, la mejor idea es usar las construcciones de nivel más bajo posible, así que puertas y cierres. Esto se mapeará bien en el VHDL que necesitará usar, pero dará como resultado una gran cantidad de área. Podría reducir su recuento de componentes yendo a MSI, por lo que contadores, registros de cambios, decodificadores, pero esto no será una ayuda de aprendizaje tan útil para el diseño de circuitos integrados.
Debe registrar el estado, cambiar el estado y los LED de la unidad. Cómo dividir esos altera el sabor de su diseño. Podría tener un contador central, que determine qué LED está encendido, y luego algún tipo de decodificación para controlar los LED. O puede tener todo el almacenamiento de estado realizado por LED.
Cuando mencione los números de pieza como xxabc, reemplace xx con HC o LS o AC o HCT, lo que sea que pueda tener en sus manos. No todos los tipos de lógica están hechos en todas las familias. Hay algunos chips CMOS de la serie 4000 cuya numeración se alinea con la serie mencionada anteriormente, pero la mayoría no.
Comenzando con uno por LED. El direccionamiento 'One Hot' usa un D-latch por LED. La restricción de que podrían desplazarse hacia la izquierda o hacia la derecha, o dirigirse, significa que cada uno necesita al menos un multiplexor de 3 entradas en la entrada D. Puedes comprar dual, 4 multiplexores de entrada, xx153 o xx253. Junto con un cierre doble, xx74, esto le da un LED por paquete. Esto es flexible en el sentido de que más de un LED puede estar encendido a la vez. Básicamente, usted ha construido un registro de desplazamiento direccionable bidireccional a partir de puertas. Aún necesitaría implementar un decodificador de dirección para la función 'LED encendido programado'.
Una alternativa es comprar un registro de desplazamiento bidireccional, xx194, para comprimir todos los pestillos y multiplexores en trozos más grandes.
Estos dos enfoques de registro de desplazamiento tienen el control suficiente para que pueda controlarlo directamente, sin la necesidad de una máquina de estado.
En el método del contador central alternativo, podría usar un contador arriba / abajo como xx169 (suponiendo que no quiera construir dicho contador a partir de puertas). Existen varias alternativas para una decodificación estática a LEDs. Una es usar varios demultiplexores, como 3off xx138, con cada salida que maneja un LED. O puede configurar los LED en una cuadrícula de 5x4 y usar 1 xx138 y la mitad de xx139 para controlar filas y columnas de la misma. O puede conectar en cascada 3 de xx595 registro de desplazamiento bloqueado. Los diferentes tiempos de inyectar un 1 en la entrada del primer registro, y el bloqueo después de varios turnos, le permitirán controlar cualquier salida. Este último requerirá una máquina de estado más complicada de controlar, pero es más flexible que los decodificadores estáticos.
Ahora que has leído algunas de las opciones, ¿qué es lo que realmente quieres hacer?