You are on page 1of 32

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/
landaetabiz@gmail.com

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/analisis-
y-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 <= s0;
else
state_reg <= state_next;
end if;
end if;
end process;

El registro de estados tiene una señal de reset síncrona que lleva al sistema al estado S0. Si la
lógica de codificación del estado siguiente genera un nuevo estado, este se almacenará en el
registro, si no, la salida del registro se mantiene.

Veamos cómo es el circuito que genera el estado siguiente.

-- Lógica de estado siguiente (circuito combinacional)


process (state_reg, A, B)
begin
9
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

state_next <= state_reg;


case state_reg is
when S0 =>
if A='1' then
state_next <= S1;
end if;
when S1 =>
if B='1' then
state_next <= S2;
end if;
when S2 =>
if A='1' then
state_next <= S3;
end if;
when S3 =>
state_next <= S3;
end case;
end process;

El estado siguiente se genera a partir del estado actual y de las entradas A y B, por lo que ponemos
estas tres señales en la lista de sensibilidad del proceso. Para evitar que el sintetizador genere algún
latch o elemento de memoria, asignamos por defecto el estado actual a la señal de estado siguiente. El
código VHDL describe los estados y las transiciones asociadas a las entradas según el diagrama de
estados que definimos más arriba, de forma que, de ser necesario, asigna el valor del estado siguiente a
la variable state_next cuando hay un cambio en las entradas o en el estado.

Por último echamos un vistazo al circuito de decodificación para las salidas.

-- salida tipo Moore


process (state_reg)
begin
-- estableciendo la salida por defecto
-- nos aseguramos de crear un circuito
-- combinacional sin latches.
Y0 <= '0';
Y1 <= '0';
Y2 <= '0';
Y3 <= '0';
case state_reg is
when S0 => Y0 <= '1';
when S1 => Y1 <= '1';
when S2 => Y2 <= '1';
when S3 => Y3 <= '1';
end case;
end process;
10
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

Quartus II Web Edition 13.0 sp1.

QUARTUS II es el software que se usará para describir la FSM anteriormente detallada. La que yo
usaré es una versión web, llamada así por la empresa INTEL FPGA.
La Edición Web es una versión gratuita de Quartus II que puede ser descargada o enviada
gratuitamente por correo. Se requiere un registro de licencia para utilizar la Edición Web de Quartus II.
Esta edición permite la compilación y la descripción de un número limitado de dispositivos Altera
(Ahora INTEL FPGA).
La familia de FPGAs de bajo coste Cyclone, está soportada por esta edición, por lo que los pequeños
desarrolladores no tendrán problemas por el coste del desarrollo de software.
Quartus II necesita una herramienta aparte que no viene incluida dentro del programa principal, que
sirve como interfaz entre el software y el equipo programador, su nombre es Quartus programmer y
debe estar acorde con la versión del software, esta herramienta permite la configuración del
programador y es la encargada de la descarga de datos hacia el dispositivo físico.

Dando clic en esta dirección se llega a la zona de descarga del software quartus ii 13.0 web edition
http://fpgasoftware.intel.com/13.0sp1/?edition=web
Una vez finalizada la instalación el programa estará listo para ser utilizado; a continuación la figura 11
muestra la pantalla de inicio cuando arranca el software.

Figura 11.- Pantalla inicial Quartus II.

11
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 se presenta el ejemplo anterior hecho en VHDL usando QUARTUS II

12
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 12.- RTL dado por el software donde se ven las salidas y las entradas.

Figura 13.- Diagrama de Estados dado por QUARTUS II


13
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 14.- Señales de salida para la FSM estudiada

14
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

EJEMPLO DE INTERNET 2
Generador de secuencia. Ejemplo encontrado en Internet en la siguiente dirección
https://www.youtube.com/watch?v=KRRY0rsO-4s&t=685s

Figura 15.- Diagrama de Estados de la FSM propuesta

Breve descripción: Lo que está dentro de los círculos son los estados. Es como un juego de palabras,
no se pretende confundir a nadie pero es necesario este comentario: el Diagrama de Estados entrega los
Estados de la Máquina de Estados Finito. Y como se quedó en la explicación dada al inicio de ésta guía
que si la FSM es un modelo MOORE dentro del círculo se coloca los Estados y la salida entonces para
el caso particular de éste ejemplo se debe considerar que 00 01 11 10 son las Salidas. Entonces falta
definir los Estados. Usando la línea de código

type tipo_estado is (cero, uno, dos, tres);

Tipos de datos Escalares  Enumerados


Conjuntos ordenados de identificadores o caracteres definidos por el usuario, útiles para definir los
estados de una máquina de estados finitos

Tomado de: https://www.researchgate.net/publication/39436653_VHDL_Tipos_de_datos

Con la línea de código escrita arriba se logra colocar los estados de la Máquina dentro de la
descripción. Entonces, los estados son: cero, uno, dos y tres

15
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 se presenta el ejemplo 2 hecho en VHDL usando QUARTUS II

16
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

17
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 16.- RTL dado por el software donde se ven las salidas y las entradas.

Figura 17.- Diagrama de Estados dado por QUARTUS II

18
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 18.- Señales de salida para la FSM estudiada

Figura 19.- Asignación de pines de la FPGA usada

19
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 20.- RTL dado por el software donde se ven las salidas y las entradas.

Figura 21.- Asignación de pines de la FPGA usada

20
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 22.- Señales de salida para la FSM estudiada

21
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

SIMULACIÓN DE FPGA - VHDL USANDO PROTEUS

En PROTEUS se dispone solo de PLD (Programmable Logic Device)


A programmable logic device (PLD) is an electronic component
used to build reconfigurable digital circuits. Unlike a logic gate, which
has a fixed function, a PLD has an undefined function at the time of
manufacture. Before the PLD can be used in a circuit it must be
programmed, that is, reconfigured.
https://en.wikipedia.org/wiki/Programmable_logic_device

Figura 23.- PLDs disponibles en la versión de PROTEUS Demostration

¿Por qué trabajar con PLD?


Parece un retroceso, ya que se viene haciendo la
investigación usando FPGA……¿a qué se debe entonces
ir a los PLDs?
Como el título al comienzo de la página dice se va a
trabajar con PROTEUS y este software acepta, por lo
menos la versión DEMO que yo poseo, solamente PLD.
Aparte de esto, el software LATTICE posee las PLDs que
PROTEUS contiene y, con esta dos herramientas se puede
chequear cada descripción en VHDL hecha en todos los
trabajos que he presentado.
La figura 24 muestra unos IC GAL (Generic Array
Logic)
En español Arreglo Lógico Genérico, es un tipo de circuito integrado, de marca registrada
por Lattice Semiconductor, que ha sido diseñado con el propósito de sustituir a la mayoría
de las PAL, manteniendo la compatibilidad de sus terminales.
http://electronicaintegradaunexpo.blogspot.com/2008/02/gal-y-vhdl.html

22
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

LENGUAJE VHDL USANDO ispLEVER Classic de LATTICE


Lo primero es ir a la página oficial del fabricante
https://www.latticesemi.com/ . Página principal de LATTICE Semiconductors fabricante del software
ispLEVER

dirección web que te lleva directamente al software ispLEVER


http://www.latticesemi.com/Products/DesignSoftwareAndIP/FPGAandLDS/ispLEVERClassic
entrando en esta página llega a la siguiente información,

donde puede verse ispLEVER Classic 2.0 Base Module. Haga clic en la flechita al lado del nombre y
comenzará el proceso de descarga. La misma página te da los pasos para el proceso de instalación del
software

Las siguientes direcciones web corresponden a un video que explica todo el procedimiento de descarga
e instalación de ispLEVER Classic https://www.youtube.com/watch?v=VzBwXi2aFZw y
https://www.youtube.com/watch?v=nsRFvWEDhnU

¿POR QUÉ DESCARGAR ispLEVER CLASSIC?


Este es un software para describir circuitos en VHDL al igual que el QUARTUS II de
INTEL…..¿qué diferencia existe entre ambos?....que el ispLEVER entrega una extensión .jed que
sirve para ser cargada en el PLD que PROTEUS proporciona

Icono que quedará en el Computador luego de ser instalado el


software

23
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

Al dar doble clic sobre el icono anterior se cae en esta ventana de inicio o de trabajo del programa

Para encontrar tutoriales en la propia página del fabricante colocamos lo que queremos saber en el sitio
señalado abajo en la figura.
También en google encontraras toda la información de diversos autores

24
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

Con lo estudiado y revisado según los consejos dados en la página anterior ya se puede comenzar a
trabajar en lo que nos interesa. Lenguaje VHDL aplicado a las GAL 22v10

Figura 25.- Descripción de la compuerta OR usando ispLEVER de LATTICE

La descripción hecha en la figura 25 corresponde a un circuito elemental de una compuerta lógica


OR. Bueno, lo que se pretende probar es que la GAL 22v10 se puede transformar en esta compuerta
simplemente haciendo una codificación tal como se muestra en la figura 25. Las GAL son PLD
reconfigurables o reprogramables teniendo la ventaja entonces que si ya estudié la compuerta OR,
ahora puedo montar el circuito de otra compuerta y probarlo en PROTEUS, que es el fin último que se
quiere explicar en esta guía.

25
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 26.- Asignación de pines usando Chip Report en el software ispLEVER de LATTICE

El isp LEVER te da el reporte de pines de entradas y salidas para el montaje en hardware y virtual

Figura 27.- Simulación en PROTEUS de la PLD Reprogramable GAL 22v10

Montaje en PROTEUS para hacer el circuito en cuestión. Hace falta grabar el archivo .jed generado
por ispLEVER. Dando doble clic en el dispositivo AM22v10….que es el mismo GAL 22v10. Al
hacer esto se cae en la figura 28
26
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

Se da clic en la carpeta que tiene a su izquierda las palabras JEDEC Fuse Map File:

Figura 28.- Ventana para asignar el archivo .jed al dispositivo PLD

Aparece la siguiente ventana donde buscará la carpeta donde guardó su archivo con ispLEVER y ubica
su archivo .jed….dando doble clic lo asigna a su dispositivo GAL 22v10

Figura 29.- Carpeta elegida por el diseñador para guardar el archivo .jed
27
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 30.- Uno de los modelos de grabadora universal para colocar el archivo VHDL en la GAL

La figura 30 muestra un modelo de grabadora universal que podría servir para grabar la descripción
hecha en ispLEVER a la GAL 22v10 en hardware.

28
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

¿POR QUÉ CYCLONE II ? Y OTRAS CONSIDERACIONES

Hoja de Ruta
Este diagrama de la figura 31
es el que define mi hoja de ruta
para saber hacia donde voy. En el
centro el módulo para la
enseñanza, a su lado rodeándola
los bloques de Educación, FPGA,
Electrónica Digital y Máquinas
de Estado Finito. Todas ellas
podrían ramificarse hacia otros
temas pero, si sabemos que
vamos es por la construcción del módulo no hay problema. Por ejemplo en el caso que nos toca la
FPGA se puede dividir en Libres y Propietarios.

Hay todo un mundo en los dos sub bloques, ¿pero nos vamos a quedar ahondando en esos
temas?....NO. Se tomará de ellos lo que nos haga falta y seguimos enfocados en la construcción del
módulo.

Esto se une con el bloque de EDUCACIÓN……..lo que nos lleva a la educación tecnológica, que es el
tipo de investigación con la que estoy trabajando en este proyecto, ahí entran los proyectos
tecnológicos y la investigación del tipo tecnológica. Que por llamarse así no se desmerita.
El bloque de Máquinas de Estado Finito lo que me dice es hasta donde voy a llegar con la
investigación. Y el de Electrónica Digital informa sobre el tema central de trabajo compuesto por
lógica combinatoria y la lógica secuencial que se está tratando ahora.

Y un bloque que no se ve, no se muestra pero está ahí, es el de los softwares que se usan para simular
todas las experiencias que se desean comprobar. Y cada ramal de la figura 31 está unido
armoniosamente con la simulación. De hecho, la nueva educación de avanzada debe ir enfilada al uso
de lo virtual para entender mucho más rápido los sistemas. Todos los softwares mostrados y nombrados
aquí en este trabajo les dan un aviso al docente que se rehúsa a entrar al mundo de la virtualización que
ya es hora de dejar los viejos métodos y que necesariamente debe comenzar a trabajar en sus cursos con
algún tipo de software.

29
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

Espero con esto haber aclarado unas cuantas dudas sobre la tecnología FPGA y lo que toca a la
investigación como es Electrónica Digital y así apoyar a los que quieren iniciarse en ésta línea de
trabajo tal como yo lo estoy haciendo.

Seguimos en contacto landaetabiz@gmail.com Ing Pedro Landaeta


LinkedIn https://www.linkedin.com/in/pedro-landaeta-17a7bb60/ Prof Jubilado con más de 25 años de
servicio en la Universidad Politécnica Territorial del Estado Aragua “FBF”

30

You might also like