Maquinas de Estado Finito usando FPGA

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA, CIENCIA Y TECNOLOGÍA U

Views 170 Downloads 22 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA, CIENCIA Y TECNOLOGÍA

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS POSTGRADO EN INSTRUMENTACIÓN

TITULO Máquinas de Estado Finito usando FPGA

Realizado por: Pedro Landaeta https://www.linkedin.com/in/pedro-landaeta-17a7bb60/ [email protected] Abril 2019

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

INDICE TITULO ..................................................................................................................................................... i Máquinas de Estado Finito usando FPGA .............................................................................................................i

INDICE ..................................................................................................................................................... ii Introducción .............................................................................................................................................. 1 Diagrama de Estado .................................................................................................................................. 4 Análisis y diseño de sistemas digitales Usando el Software Boole-Deusto ............................................. 5 CONSTRUCCIÓN DE MÁQUINAS DE ESTADO FINITO ................................................................. 6 EL PROYECTO ........................................................................................................................................ 7 EJEMPLO DE INTERNET .........................................................................................................................................8

Quartus II Web Edition 13.0 sp1. .......................................................................................................... 11 EJEMPLO DE INTERNET 2 ......................................................................................................... 15 SIMULACIÓN DE FPGA - VHDL USANDO PROTEUS ................................................................... 22 LENGUAJE VHDL USANDO ispLEVER Classic de LATTICE ................................................................................... 23 ¿POR QUÉ DESCARGAR ispLEVER CLASSIC? ...................................................................................................... 23

¿POR QUÉ CYCLONE II ? Y OTRAS CONSIDERACIONES .......................................................... 29 Hoja de Ruta ...................................................................................................................................................... 29

ii

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

Introducción Las máquinas de estados finitos (FSM en Inglés….Finite State Machine), frecuentemente denominadas simplemente máquinas de estados o también autómatas finitos; nos permiten diseñar circuitos secuenciales complejos, capaces de “tomar decisiones” en función de un estado actual del circuito y del valor de sus entradas. En la práctica se utilizan normalmente como circuitos de control. En la figura mostrada a la izquierda se ven los estados dentro de los círculos. Y, al lado de las flechas llamadas transiciones se encuentran las letras “a”, “b”, “c” y “d” que serían para este caso las entradas de la máquina. Estas máquinas pueden ser asincrónicas o sincrónicas. Las usadas en ésta guía serán sincrónicas y por lo tanto necesitan un reloj (clk) funcionando a una frecuencia determinada. Otro aspecto importante de éstas FSM, al igual que todo circuito secuencial, es que debe tener un reset. Que se usa para llevar al estado de inicio a la Máquina de Estado Finito, que por cierto es Finito porque sus estados poseen un límite. Para saber este estado final se coloca un doble círculo en el estado seleccionado como el final de la Máquina. Observe la figura a la derecha con estos tres aspectos añadidos Un aspecto que le falta a este diagrama es el valor de la salida para cada uno de los estados Por ejemplo, observe el siguiente Diagrama de Estados para ver las salidas

El valor de cada salida está debajo del estado al que se le asigna esa salida en cuestión. Este tipo de diagrama corresponde a una Máquina de Moore. Existen las Máquinas de Mealy pero, para esta investigación se trabajará con las de Moore ya que es la más recomendada por la mayoría de los autores.

1

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

Figura 1.- Diagrama de estados para máquinas de Moore y Mealy. La figura 1 coloca los aspectos faltantes en los diagramas de estado anteriores. Una son las flechas de transición que se quedan en el mismo Estado. Esto es que para ese valor específico no habrá cambio en el Estado actual. Y la otra que faltaba era la flecha de transición que nos devuelve al estado anterior. Esto es importante en esos casos donde por ejemplo el estado inicial se llama MENÚ, entonces desde cualquier estado diferente interesa regresar a MENÚ para hacer un ajuste y seguir con el proceso. Una Máquina de Moore puede observarse en la figura 2.

Figura 2.- Diagrama de bloque de una Máquina de Moore Este tipo de máquinas reciben el nombre de su inventor: Edward Forrest Moore. En ellas las salidas sólo dependen de las variables de estado. Así las funciones δ y λ se definen como: Qt+1 = δ(X,Qt ) Y = λ(Qt ) En donde la función δ está sincronizada normalmente por un reloj activo por flanco. Otra forma de nombrar los bloques que conforman la Máquina de Moore es como lo hace el Prof Carlos Fajardo de la Universidad Industrial de Santander – Colombia. La siguiente dirección web los llevará al video de Diseño de Máquina de Estados https://www.youtube.com/watch?v=KfFCfUTX4Nk&t=9s Nota: Reconocimiento al prof Carlos Fajardo. Ya que con sus videos he aprendido muchos detalles y técnicas para trabajar con VHDL. . Vea la figura 3 y observará las diferencias con el de la figura 2. Primero a las entradas externas no les colocan un nombre específico. Usted puede llamarlas X, A, B, C o cualquier otra letra. El bloque llamado transición entre estados aquí se le llama Lógica del Estado Siguiente. Al de memoria se le 2

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

llama Registro, Al de función de salida (λ) aquí se le llama Lógica de Salida. A las salidas tampoco se le coloca una letra específica, se le puede llamar “Y”, pero también puede llamarse S, salida, E, P o cualquier otra letra que el diseñador crea conveniente. Y por último D_bus y Q_bus que en la figura 2 se le llama Qt+1 y Estado (Qt ).

Figura 3.- Estructura de un circuito secuencial síncrono Para cerrar con la nomenclatura usada en los diagramas de Moore, toca mencionar el que se encuentra en el libro de Pong Chu RTL hardware Design Using VHDL, en su capítulo 10 de Finite State Machine: Principle and practice. Ver la figura 4

Figura 4.- Block diagram of an FSM Esto no tiene importancia aparente a las primeras de cambio pero, cuando uno entra en la descripción del proyecto se encuentra que las señales auxiliares se pueden nombrar D_bus o state_next y Q_bus o state_reg dependiendo del diseñador. Entonces, para efectos de ésta investigación se va a trabajar solamente con Máquinas de Moore. En mi caso por razones de querer agilizar el cierre del primer grupo de investigaciones que pretendía desarrollar hasta ahora. Es la misma condición que coloco para justificar solamente el uso de lenguaje VHDL, y no trabajar también con VERILOG, por ejemplo. Para el caso de las figuras 1 y 2, fueron tomadas del libro Introducción a los sistemas digitales de José Daniel Muñoz Frías. El libro, cuya portada se muestra a la izquierda, se puede descargar libremente de la siguiente página web https://openlibra.com/es/book/introduccion-a-los-sistemas-digitales 3

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

Contenido: En este texto se realiza una introducción a los conceptos básicos que se utilizan dentro de los sistemas digitales y analógicos, remarcando las ventajas de los primeros frente a los segundos. Su interesante estructura nos brinda un recorrido por las principales áreas de la computación en relación con la ciencia matemática en que se basa. Los sugerentes capítulos que componen este ensayo son:        

Álgebra de Boole Sistemas de numeración Introducción al lenguaje VHDL Circuitos Aritméticos Bloques Combinacionales Circuitos secuenciales. Fundamentos Máquinas de estados finitos Diseño de sistemas complejos: ruta de datos + control

Diagrama de Estado: Este muestra la secuencia de estados por los que pasa bien un caso de uso, un objeto a lo largo de su vida, o bien todo el sistema. Es una forma de representación gráfica más intuitiva de los autómatas finitos basadas en dígrafos con arcos acotados llamados transiciones en los cuales se ponen los símbolos de tránsito entre un vértice (estado) y otro y se identifican los estados de partida y los de aceptación del resto. Los diagramas de estados finitos son también representaciones más cómodas para su elaboración, legibilidad y comprensión de distintos tipos de abstracciones computacionales de reconocimiento como los autómatas de pila y las máquinas de Turing. Páginas web de referencias https://www.ecured.cu/Diagrama_de_e stado https://es.slideshare.net/faurbano/dise o-de-circuitos-secuenciales

La figura 5 se explica por sí sola, y corresponde a un circuito secuencial. No debe confundirse los diagramas de estados que se quieren estudiar en esta guía y en las venideras con los diagramas de estado correspondiente a UML, tienen el mismo nombre pero su aplicación y forma tienen otro rumbo y finalidad.

4

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

A continuación la figura 6 presenta la ventana de inicio del software BOOLE_DEUSTO. Especializado en lógica digital combinatoria y secuencial y, adicionalmente con posibilidad de aplicar Máquinas de Estado Finito

Figura 6.- Software Educativo BOOLE-DEUSTO para lógica digital Sitio para la descarga de BOOLE-DEUSTO https://boole-deusto.soft112.com/modal-download.html

Análisis y diseño de sistemas digitales Usando el Software Boole-Deusto 



 

Escrito por José Carlos Bethencourt Gutiérrez el 12 febrero, 2015. Posteado en 17. Tecnología, 17.10.Electrónica (4º ESO), 30. Tecnología Industrial I y II, 30.7. Sistemas automáticos (Tecnología Industrial II), 30.9. Control y programación de sistemas automáticos (Tecnología Industrial II), III - ESO, IV - Bachillerato Boole-Deusto es una herramienta de software educativo para la electrónica digital, ver figura 6. Se puede trabajar con circuitos combinacionales y circuitos secuenciales, pero siempre a nivel de bit. A diferencia de otras herramientas avanzadas, Boole-Deusto está especialmente orientado para los estudiantes, de forma que les permita realizar el diseño de un circuito digital paso a paso, realizar los correspondientes Mapas de Karnaugh y la posterior simplificación lógica. Proyecto realizado en la Universidad de DEUSTO en España Link que te lleva a la página web del gobierno de Canarias donde informan lo que es el software Boole Deusto y donde y quienes lo usan http://www3.gobiernodecanarias.org/medusa/ecoescuela/recursosdigitales/2015/02/12/analisisy-diseño-de-sistemas-digitales-boole-deusto/ 5

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

CONSTRUCCIÓN DE MÁQUINAS DE ESTADO FINITO La propuesta de esta investigación es la de construir las FSM con FPGA – VHDL FSM: Finite State machine FPGA: Field Programmable Gate Array VHDL: Very High Speed Hardware Descrption Language Aunque las FSM puedan hacerse con Flip Flops, Microcontroladores, ARDUINO, PLC (Programmable Logic Controller) a nivel de hardware, y a nivel de software se puede usar MATLAB,SIMULINK, LABVIEW, PROTEUS, BOOLEDEUSTO, Python, JAVA. Desarrollar la FSM depende entonces de los recursos que se dispongan, del criterio del diseñador y su gusto por trabajar con una u otra tecnología y también con el nivel del curso de ingeniería que se está dictando. Se podría comenzar entonces a estudiar FSM cuando se vea Registros y Contadores digitales con Flip Flops. Luego se puede pasar a Microcontroladores y ARDUINO. Cerrando el ciclo de hardware con PLC. Y coincide bastante bien este cierre ya que PLC debe verse en los estudios de ingeniería después de varios prerrequisitos. No es casual que a las FSM se les conozcan también como Autómatas Finitos. A finales de la carrera de ingeniería se les pueden dar a los estudiantes cursos de FSM aplicadas con MATLAB – SIMULINK y LABVIEW. Y a estas alturas se puede construir una tarjeta de Adquisición de Datos (DAQ en Inglés: Data Acquisition) y enlazar el software con el hardware para tener un sistema completo con HMI (Human Machine Interface) y manejo de datos en tiempo real. Para finalizar se habla ahora de PROTEUS y JAVA. Con la versión llamada PROTEUS Demostration puede desarrollar FSM con las GAL (Generic Array Logic) que PROTEUS trae en su librería. JAVA ayudaría a desarrollar Interfaces HMI que se adapten “a la carta” al gusto del Ing de Diseño. Igualmente ésta HMI iría conectada a una tarjeta DAQ via USB. Todas estas son ideas para estudiantes y manejadores de proyectos interesados en desarrollarlas a distintos niveles con distintas opciones. Las FSM con FPGA – VHDL se verían en un curso de ingeniería al final de la carrera 9no ó 10mo semestre en materias electivas. Lo mismo aplica si el curso es por años. Se vería en el último año, en su último trimestre en unidades curriculares electivas. Todo esto se habla porque no es simplemente hablar del hecho tecnológico como tal sino que es necesario resaltar la importancia que posee la universidad para poder construir aplicaciones y profundizar en aspectos de interés en el tema de las FPGA y las FSM.

Máquinas de Estado Usando MATLAB – SIMULINK Ing de aplicación José David Montoya . MATWORK Colombia https://www.youtube.com/watch?v=TCMMNDDI87A Máquinas de Estado Usando LabView https://www.youtube.com/watch?v=r-vXKbiUR-o

6

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

EL PROYECTO La figura 7 donde se ve una mesa y sus cuatro patas refleja la idea del proyecto que a continuación les explico: 1) Lo que está sobre la mesa es el hardware como tal que se va a entregar, puede verlo en la figura 8 (a) y (b). Este proyecto va a servir para optar al título de Magister Scientiarum MSc en la Universidad Central de Venezuela (UCV) – Facultad de Ciencias – Caracas - Venezuela. Lleva por nombre DESARROLLO DE EQUIPO DIDÁCTICO BASADO EN LA TECNOLOGÍA FPGA PARA LA ENSEÑANZA DE ELECTRÓNICA DIGITAL. Volviendo a la figura 7, las patas son las que sostienen la mesa y por ende son las que soportan el proyecto porque se necesita contenido teórico, buenos basamentos y una sustentación a nivel de educación que le dé solidez al equipo como tal.

Figura 7.- Dibujo que refleja el contenido en que se apoya el proyecto planteado

Figura 8.- Equipo Didáctico a construir 7

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

El de la figura 8 es el proyecto que va sobre la mesa. Pero sin contenido teórico no es mucho lo que se pueda hacer como principiante. Por eso se construyen guías teórico – prácticas como estas. Por cierto, este contenido de Máquina de Estados Finito es el último de un primer grupo de ocho guías. Vendrán dos grupos más de ocho guías cada uno relacionados con electrónica digital y lenguaje VHDL. Cerrando todo el contenido con ocho prácticas de laboratorio donde se pueda usar todo este contenido teórico y el hardware mostrado en la figura 8. Todo esto que acabo de mencionar forman parte de las patas de la mesa. Observe la importancia de tener una mesa con buenas patas. Imagine que usted compra la tarjeta de la figura 8: La BASYS 3 de XILINX con una FPGA Artix 7. Pregunta ¿Cuánta información puede traer esta tarjeta para comenzar a trabajar?, si es principiante ¿qué tan fácil de entender son los ejemplos en caso que los traiga?. En este punto se ve la importancia del material que estoy haciendo ya que el principiante tiene un punto de partida valido para comenzar a trabajar. En el caso de INTEL se tiene la tarjeta DE0 con una CYCLONE III a un precio de 140 $USD, DE1 con una CYCLONE II a un precio de 150 $USD y la DE1 SoC con una CYCLONE V a un precio de 1450 Euros ó cualquier otra tarjeta comercial de INTEL FPGA ya que estas se adaptan por completo al material que se está construyendo ya que INTEL trabaja con el software QUARTUS II y no importa el FPGA que estas tarjetas posean la arquitectura y demás características básicas aplican igualmente como si fuera CYCLONE II o una stratix. Resaltando de nuevo la importancia del material que se está preparando en que al comprar algunas de las tarjetas de las dos principales compañías fabricantes de FPGA a nivel mundial lo más que les entrega es un manual de usuario. Las aplicaciones y toda la teoría necesaria para comenzar a trabajar en VHDL, lógica digital o cualquier otro aspecto de Ingeniería que se quiera tocar deben buscarla en la Internet para poder dar los primeros pasos.

EJEMPLO DE INTERNET A continuación se presenta un material subido a la red por ALBERTO GARCÍA, DE DIGILOGIC en la página web https://www.digilogic.es/maquinas-de-estado-finito-fsm-vhdl/

Figura 9.- Tarjeta entrenadora BASYS 3 El material está muy bien explicado y resuelve un ejemplo de Máquina de Estados Finito de forma clara y precisa. 8

Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la UCV Caracas - Venezuela. Material Introductorio de FPGA, Abril 2019

Tenemos cuatro estados (S0, S1, S2 y S3) y dos señales de entrada (A y B), ver figura 10. No hemos puesto en el diagrama las señales de salida, pero las definimos en la siguiente tabla: S0 -> Y0 S1 -> Y1 S2 -> Y2 S3 -> Y3 Para ver toda la descripción en VHDL se recomienda que visite la página web dada arriba. Quise mostrar las declaraciones tipo estado. Con la palabra type ____ is (palabra, palabra,…..). Con esta opción de variable enumerada se declaran los estados de la FSM . Vea que el autor usa state_reg y state_next que son las que aparecen el libro de Pong Chu. -- declaraciones modelo FSM type STATES is (S0, S1, S2, S3); signal state_reg, state_next: STATES; Veamos como se implementa en VHDL cada uno de estos bloques. Empecemos por el registro de estados. El registro de estados es el Flip Flop D que aparece en la arquitectura de las FPGAs -- registro de estados process(CLK) begin if CLK'event and CLK='1' then if RST='1' then state_reg