El controlador Richards es un método para implementar una máquina de estados finitos usando circuitos integrados simples y lógica combinacional . El método lleva el nombre de su inventor, Charles L. Richards. Una de las distintas ventajas de este método sobre los métodos convencionales de diseño de máquinas de estados finitos [ ¿cuál? ] es que permite un diseño más fácil de complejas máquinas de estados finitos que las técnicas tradicionales de diagramas de estados , tablas de transición de estados y álgebra de Boole. Usando la técnica de Richards, resulta más fácil implementar máquinas de estados finitos con cientos o incluso miles de estados.
Historia
El controlador Richards se desarrolló debido a la necesidad de un método más sencillo para diseñar máquinas de estados finitos que el método tradicional de diagramas de estados, tablas de transición de estados y minimización lógica. En ese momento, [ ¿cuándo? ] muchas de las herramientas de minimización lógica basadas en computadora que tenemos hoy [ ¿cuándo? ] no existía. Por lo tanto, la minimización lógica se limitó en su mayor parte al uso de mapas de Karnaugh y la ley de DeMorgan . Debido a esto, Charles L. Richards inventó un método para implementar una máquina de estados finitos que no necesitaba una tabla de transición de estados explícita. Publicó sus hallazgos en la edición de febrero de 1973 de Electronics . [ cita requerida ] Su implementación generalizada se hizo popular y en la década de 1980 se consideró un método de diseño clásico. Si bien es poco probable que los productos comerciales que se encuentran hoy en día contengan un controlador Richards clásico (dado que ahora hay diseños más rápidos que los que usan contadores cargables), existe una buena posibilidad de que se utilice un controlador Richards modificado o un diseño derivado del controlador Richards [ cita requerida ] .
Aplicaciones
Debido a la capacidad del controlador Richards para escalar para usar muchos estados fácilmente, se puede usar en muchas aplicaciones prácticas.
El diagrama de flujo de Richards
El controlador Richards es una máquina Mealy ya que su salida depende tanto del estado actual como de la entrada. Sin embargo, Richards diseñó su propio método de representar estados usando un diagrama de flujo, en lugar del diagrama de estado . Cada estado se representa como una condición de transferencia en el diagrama de flujo. Cada condición tiene dos rutas de control que salen de ella, un SÍ o un NO. La condición es SÍ o NO (VERDADERO o FALSO) según la entrada de un solo bit a la máquina. (Richards p. 108) Dependiendo de cuál sea la entrada para una condición, se ejecutará una de las dos funciones de transferencia asociadas con esa condición. La máquina considera ejecutar una función para configurar la salida de un solo pin en el dispositivo, esto puede usarse para activar la lógica combinacional. Después de que se ejecuta una función de transferencia, la máquina entrará en un nuevo estado, cada función de transferencia definirá implícita o explícitamente un nuevo estado al que pasar. Una definición de estado implícita también podría denominarse predeterminada, ya que se producirá sin ningún circuito adicional del diseñador, si la condición es SÍ, entonces pasará al siguiente estado numéricamente. Por ejemplo, si se encuentra en el estado 0 y se produce un SÍ, pasará al estado 1. Si la condición es NO, la máquina permanecerá en su estado actual. Con este comportamiento es posible crear una máquina con un diagrama de flujo secuencial simple. Por supuesto, una máquina secuencial no suele ser muy útil, afortunadamente hay una manera de hacer la transición a estados fuera de orden, usando un llamado salto. Implementar un salto requiere hardware adicional para seleccionar el estado de destino. El hardware exacto depende de la función que se esté ejecutando.
Kernel del controlador
El núcleo del núcleo del controlador Richards se puede reducir en cuatro partes, un contador, un multiplexor y dos decodificadores. Se puede construir un controlador simple usando la clásica serie 7400 de circuitos integrados lógicos TTL. El contador utilizado es el 74163, el multiplexor es el 74151 y los dos decodificadores son la parte 7442. (Richards, p. 108) La salida del contador selecciona qué bit de la entrada del multiplexor debe enviarse a la salida Y, (el inverso del cual se envía a la salida WN). Si Y es alto, entonces el contador está permitido. para incrementar, de lo contrario no lo es. Asimismo, Y debe ser alto para habilitar las salidas de la función SÍ ya que la entrada D del decodificador está conectada a WN, mientras que debe ser bajo para habilitar las salidas de la función NO, ya que la entrada D de ese decodificador está configurada en Y. Para realizar una salto, debe establecer el bit LDN en el contador y las entradas A, B, C y D. LDN le dice al contador que cargue el valor en las entradas A, B, C y D. Usando alguna lógica combinacional, puede cargar un valor en el contador para ciertas funciones pero no para otras, así como especificar la dirección de estado que se cargará, dada la función que está activa. Hacer esto es una simple cuestión de construir una tabla de funciones y los estados a los que deberían hacer la transición, luego encontrar la expresión de álgebra booleana para cada bit que forma la dirección del estado al que se va a saltar.
Ver también
Referencias
- Richards, Charles L .; Una forma sencilla de diseñar controladores de programas complejos . Electronics, 1 (febrero de 1973): 107-113.
- Wakerly, John F .; Diseño digital - 3ª edición. Upper Saddle River, Nueva Jersey: Prentice-Hall Inc. 2001.