Você está na página 1de 6

DISEO DE MAQUINAS DE ESTADO Tec. Edwar Jacinto Gmez 1 Msc.

Daniel Vargas Vela2

Universidad Distrital Francisco Jos de Caldas Facultad Tecnolgica. Ingeniera en Control Electrnico e Instrumentacin edwarjg@hotmail.com1 dvargas00@yahoo.com2 Bogot, Colombia

Abstract: A partir de la compilacin de una serie de trabajos en diseo digital avanzado, se plantea una gua para que el diseador de soluciones en hardware, y en especfico, de maquinas de estado en VHDL utilice de manera ptima los recursos de los dispositivos lgicos programables. Para ello, despus de un estudio de los factores involucrados, se plantean una serie de recomendaciones para facilitar la labor de diseo, que junto con el uso de las herramientas CAD adecuadas mejorarn las implementaciones de sistemas digitales de alta complejidad. Keywords: FPGA, VHDL

1.

INTRODUCCIN

La masificacin de los PLDs hace necesario un conocimiento ms profundo acerca de su utilizacin y especficamente, de la forma de implementar soluciones digitales en ellos utilizando los recursos de manera optima. En los diseos digitales con PLDs, el usuario describe el funcionamiento de su sistema digital, para que la herramienta CAD de cada fabricante realice las interconexiones entre las compuertas o arreglos de compuertas disponibles, pero la aptitud y experiencia del diseador juegan un papel determinante en la reduccin de costos.

La descripcin de una mquina de estados en un lenguaje de alto nivel como VHDL se realiza de una forma sencilla pero es una parte del diseo que utiliza bastantes recursos del dispositivo. De aqu la necesidad de aprender a describirlas de formas diferentes buscando el diseo ms eficiente. 2. GLOSARIO HDL: Lenguaje de Descripcin de hardware. Codificacin de estados: es el cdigo binario asignado a cada uno de los estados. Papa Caliente. (One Hot): Codificacin de estados donde hay solamente un uno por cdigo.

Mnimo cambio de Bit (cdigo Grey): Codificacin de estados donde solamente hay un cambio de bit entre cdigos adyacentes. Aleatorio (Random): Codificacin de estados sin orden aparente. Malabarista (Two Hot): Codificacin de estados donde hay dos unos por cdigo. Conteo Enumerado (binary): Codificacin de estados que utiliza la numeracin binaria como asignacin de cdigos. Igual a las salidas: Codificacin de estados donde el cdigo del estado es igual a la salida de la mquina de estados. 3. METODOLOGA DE DISEO EN VHDL

en algunos casos del valor de las entradas. 5. METODOLOGA DE DISEO DE MAQUINAS DE ESTADO

Cuando se realiza una mquina de estados debemos tener muy claro su funcionamiento dentro del sistema digital a implementar, despus procederemos a realizar un diagrama de estados donde contemplaremos el nmero de estados, las transiciones entre estos, generadas por las entradas y las salidas propias de cada estado.

El VHDL (Very High Speed Hardware Description Language), es el HDL mas utilizado en la actualidad, su sintaxis es anloga al lenguaje pascal y es reconocido como un HDL estndar por el Instituto de Ingenieros Elctricos y Electrnicos (Estndar IEEE 1076, del ao 1987), y por el Departamento de Defensa de los Estados Unidos (MIL-STD-454L). Una descripcin en VHDL consta principalmente de una entidad y una arquitectura, en la primera se definen las entradas y salidas del circuito, y en la segunda se hace una descripcin de este. La limitante ms importante cuando se realizan diseos utilizando PLD es el nmero de compuertas, por esta razn se hace necesario realizar un diseo ptimo, aprovechando al mximo los recursos disponibles, esto se logra dividendo el problema en varios mdulos de baja complejidad, esta metodologa toma el nombre de diseo TOP-DOWN. Lo que se busca con ella es llegar a bloques pequeos de sencilla descripcin, donde cada uno se comporta como un pequeo sistema digital. Despus de realizar la descripcin de cada uno de estos subsistemas se realiza la interconexin de los mismos para llegar a la solucin total deseada. 4. MAQUINAS DE ESTADOS Una mquina de estados es un sistema secuencial que consta de tres partes: entradas, estados y salidas. Los estados indican en que parte de un proceso se encuentra el sistema, el nmero de posibles estados es fijo y las transiciones entre estos dependen del valor de las entradas y del estado en que se encuentra actualmente. Las salidas dependen del estado actual y

Fig. 1 Diagrama de estados del sistema de control de luces en un semforo En todo diseo en VHDL se busca la simplicidad de los bloques en los cuales se divide el problema principal, el diseo de maquinas de estado no es la excepcin, si dentro de la aplicacin a implementar hay una mquina de estados finitos debemos contemplar la posibilidad de dividirla en varias maquinas ms pequeas con funciones mucho mas simples. Adems de esto podemos reducir la lgica de salida eliminando los estados repetidos o reutilizando seales para diferentes funciones tratando de generar a travs de funciones lgicas simples como and y or, estas nuevas salidas.

6.

CARACTERIZACIN DE LAS MQUINAS DE ESTADO

despus del otro, son ideales para procesos por bachada o para comunicaciones, en que el reinicio dependa de una seal externa.

Normalmente se implementan mquinas de estado sin revisar que tipo de mquina estn realizando, pero realizar esta pequea tarea genera mejores resultados en el diseo final de su sistema digital, por eso a continuacin se muestran las diferentes caracterizaciones encontradas. a. Caracterizacin en dependencia de las salidas i. MOORE: Donde las salidas dependen nicamente del estado actual.

Fig. 4 Mquina de estados Lineal, de una produccin por bachada.

Fig. 2 Mquina de Moore. ii. MEALY: Donde las salidas adems de depender del estado actual tambin dependen del valor de las estradas.

ii.MULTICOLUMNA: Son mquinas de estado donde existe un punto que se bifurca dependiendo de las seales de entrada y cada brazo retorna a un estado inicial. Es usado tpicamente para las unidades de control de dispositivos complejos.
FETCH

DECODE <1> A <3> C

<2> B

ALU

MEM

BIFURCAR

POSTWRITE

LOAD

CONDICION

POSTWRITEM

SALTO

Figura No. 5, Mquina de estados Multicolumna, de una unidad de control de un procesador. Fig. 3 Mquina de Mealy. b. Caracterizacin en dependencia a la geometra de la mquina de estados iii.Multicolumna bidireccional: Este tipo de mquinas de estado se diferencia de las anteriores porque estas retornan al estado inicial por el mismo brazo. Son utilizados en secuencias con un punto comn.

i.

LINEAL: En este tipo de mquinas los estados estn geomtricamente alineados uno

iv.Catica: Las mquinas de estado caticas no tienen una forma geomtrica definida, hay que evitarlas al mximo y nunca trabajar esta mquina con muchos estados.

Una mquina de estados se puede desarrollar en una de las siguientes formas: a. Toda la mquina en un proceso.

S_HERRAMIENTA <1> A <2> B

BROCA

CEPILLO

BRUNIDOR

Como se puede observar en la figura, en un solo proceso se asigna el cdigo del siguiente estado y se asigna la salida.

BAJAR PONER_QUITAR LIMPIAR

TALADRAR

SUBIR

Fig. 6 Mquina de estados Multicolumna Bidireccional, de un robot de carpintera.

Semf: PROCESS(CLK,Estado[0 to 3]); BEGIN .... If (Estado = Siga) Then Sig_Estado<= Precaucion; Amarillo<= 1; .... .... Fig. 8 Implementacin en un solo proceso.

INICIO

CARGA_REG1

CARGA_SERIE

b.

CARGA_REG2

El control en un proceso y las salidas en otro.

COMP

En un proceso se encuentra el siguiente estado y en otro proceso se asignan los valores a las salidas.

CORRER

SUMAR

Fig. 7 Mquina de estados Catica, de un multiplicador con carga serie. v.Concntrica: El ejemplo tpico de estas mquinas es el que se muestra en la Figura No.1, en el sistema de control de luces de un semforo, secuenciadores o controles de motores de paso. Se diferencia de las lineales en que estas ltimas son mucho ms largas y no necesariamente son cclicas. Son las mquinas de ms frecuente implementacin. 7. FORMAS DE IMPLEMENTAR MQUINA DE ESTADOS UNA

A0:PROCESS(CLK,Estado[0 to 3], [0 TO 3]); BEGIN .... If (Estado = Llenado) Then Sig_Estado<= Mezcla; .... .... A1: PROCESS(Estado[0 to 3]); BEGIN .... case Estado is When Llenado=> Vlvula<=1; When Mezcla => Motor <=1; .... ....

Cuando se tienen fuertes restricciones en cuanto a nmero de compuertas, el diseador debe ser ms minucioso en el momento de describir su sistema digital, ya que tal tarea puede significar una disminucin en los recursos utilizados y mejorar la relacin costo/beneficio.

Fig.

Implementacin

en

dos

procesos.

c.

Cada uno de los bloques por separado Ya revisadas las diferentes caracterizaciones y formas de implementacin de las mquinas de estado, se genera el valor agregado del artculo, el cual es mostrar el mejor camino para llegar a los resultados ptimos sin necesidad de tener que realizar la implementacin de todas las formas posibles. a. Mejores implementaciones, por codificacin de los estados. A partir de la arquitectura del PLD se tienen diferentes resultados para cada una de las caracterizaciones, el resumen se puede observar en la tabla No.1.

A0:PROCESS(Op_code[0 to 3], Estado[0 to 3]); BEGIN .... CASE Op_code => When add => Estado_sig <= post_write; .... A1: PROCESS(CLK,Estado_sig[0 to 3]); .... If rising_edge (clk) If reset = 0 then Estado_sig <= cero; Else Estado_sig <= Estado_sig; .... A2:PROCESS(Estado[0 to 3], Op_code[0 to 3]); .... CASE Estado=> When fetch => Control_line <= memory_acc; ....

Fig. 10 Implementacin en tres procesos. d. Los estados son iguales a las salidas.

No Caracterizaci CPLD n 1 Lineal Gray, Igual a la salida. 2 Multicolumna Binay, Gray 3 Multicolumna Gray bidireccional 4 Catico Gray Igual a la salida 5 Concntrico Gray

FPGA One Hot, Two Hot One Hot Two Hot Gray, Igual a la salida Binary

Cuando se puede aprovechar esta caracterstica, la mquina de estado se minimiza al mximo, y se toman las salidas como buffer para no tener que declarar los estados.

Tabla No. 1, Mejores Implementaciones experimentadas, por codificacin de los estados Cuando la mquina de estados excede de 32 estados se debe implementar utilizando codificacin Binary Gray. b. Mejores tamao. implementaciones por

Multi: PROCESS(CLK,Salidas[0 to 3], I[0 to 3]); BEGIN .... If (Sumar = 1) Then Comp<= 1; Elsif (Correr =1Then .... ....

Cuando se realiza la minimizacin de los estados de una mquina en dependencia de la geometra y el tamao se debe implementar segn la tabla No. 2.

Fig. 11 Implementacin en dos procesos con la codificacin de los estados igual a las salidas 8. RESULTADOS

No Caracterizac in 1 Lineal 2 Multicolumna 3 Multicolumna bidireccional 4 Catico 5 Concntrico

Peque a A ,D A ,D A ,D A ,D A ,D

Median Grand a e B B B, C B,C C C A, B A, B B B

9.

CONCLUSIONES

Al utilizar esta metodologa de diseo se logran grandes reducciones de tamao en los diseos, por ejemplo una mquina lineal de 32 estados, implementada en principio en Papa Caliente, con respecto a la misma mquina implementada en codificacin binaria logra una reduccin del 50%. Se plante una metodologa con diversas formas de implementar las mquinas de estados, con la cual se mejora notablemente el uso de los PLDs, y se muestran unos resultados experimentales no solo para seguir sino para generar un pensamiento crtico en los diseadores de hardware. 10. REFERENCIAS Hennessy, John L. (1993) Arquitectura e Computadores, Un enfoque Cuantitativo. Mac Graw Hill. Wakerly, John F. (2001) Diseo Digital, Principios y Prcticas. Prentice- Hall. Teres, Lluis. (1997) VHDL, Lenguaje de descripcin de Hardware, Mac Graw - Hill. Teres, Torroja, Locos, Villar. (1998). Lenguaje Estndar de diseo Electrnico. McGraw Hill. VHDL Reference Manual Version (1999). May 1999, FPGA Express Synopsys doc@synopsys.com Chapman, William G., (2002) High Level Desing , Prentice Hall.

Tabla No. 2, Mejores experimentadas, por tamao

implementaciones

No. Forma de Implementar 1 Toda la mquina en un proceso 2 El control en un proceso y las salidas en otro 3 Cada uno de los bloques por separado 4 Los Estados son iguales a las salidas

Sigla A B C D

Tabla No. 3, Siglas Utilizadas.

Você também pode gostar