Diseno de Maquinas de Estado

download Diseno de Maquinas de Estado

of 6

Transcript of Diseno de Maquinas de Estado

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 [email protected] [email protected] 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 A C

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 A 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