Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctica No. 4
Semáforo en VHDL
I. INTRODUCCIÓN ........................................................................................................................3
II. MARCO TEÓRICO ......................................................................................................................3
III. OBJETIVO ................................................................................................................................4
IV. MATERIAL Y EQUIPO ...........................................................................................................4
V. PROCEDIMIENTO Y METODOLOGÍA EXPERIMENTAL ....................................................4
VI. SESIÓN DE REVISIÓN .........................................................................................................11
VII. DISCUSIÓN DE LOS RESULTADOS EXPERIMENTALES .............................................11
VIII. CONCLUSIONES ..................................................................................................................12
IX. BIBLIOGRAFÍA .....................................................................................................................12
X. ANEXO.......................................................................................................................................13
ÍNDICE DE FIGURAS
Figura 1. Diagrama de estados del semáforo .......................................................................................4
Figura 2. Asignación de entradas, salidas y señales. ............................................................................6
Figura 3. Divisor de frecuencia de 1 Hz. ..............................................................................................7
Figura 4. Programación del Segundero con un rango de 1 a 71 segundos. ..........................................7
Figura 5. Estados verde y apagado. ......................................................................................................8
Figura 6. Estados amarillo y rojo. ........................................................................................................8
Figura 7. Actualizador de estados. .......................................................................................................9
Figura 8. Asignación de Pines. .............................................................................................................9
Figura 9. Esquemático del semáforo. .................................................................................................10
ÍNDICE DE TABLAS
● Estado(s) siguiente(s).
Máquina de estados Moore: Las salidas son independientes de las entradas. Las salidas se
producen efectivamente desde dentro del estado de la máquina. Es decir, sus salidas solo dependen
del estado de la máquina [3].
Compuertas lógicas: En VHDL las compuertas lógicas se utilizan como operadores lógicos, estos
nos permiten construir diferentes tipos de expresiones mediante los cuales podemos calcular datos
utilizando diferentes señales [4].
Instituto Tecnológico de Tijuana
III. OBJETIVO
Diseñar en VHDL e implementar en el FPGA un semáforo vehicular utilizando máquinas de
estado finito (FSM).
Tiempo
En la tabla de transiciones podemos observar los estados presentes, y las transiciones hacia el estado
futuro que se darán en el tiempo que corresponden a nuestras condiciones.
En la Figura 4. se muestra el código del segundero que tendrá un rango de 1 a 71 esto a debido a que es el
tiempo que tarda en completar un ciclo el semáforo, se utilizó un proceso que depende del “aux” y del “reset”
y donde se utiliza la señal de “segundero” dentro del proceso ya antes mencionado, lo primero que se definió
al empezar el proceso fue que en el caso que “reset” esté activado el “segundero” valdrá 1, de lo contrario
en cada alto del divisor de frecuencia de un 1 Hz, se irá sumando uno en uno al mismo “segundero” hasta
que llegue a un valor de 71 y cuando este sea el caso el “segundero” volverá a valer 0 , para finalizar el
segundero se cerró el proceso.
Al pasar al “s2” se utilizara un if para limitar el tiempo en el que estará encendido el led amarrillo,
siendo que se tiene que cumplir dos condiciones las cuales son las siguientes, que el tiempo sea
mayor a 46 segundos y menor a 51 segundo dando como resultado 5 segundos en los que se
encontrara en el estado “s2”, de lo contrario cuando sobrepase los 51 segundos pasará al estado
“s3” (luz roja), para el estado “s3” el caso es similar, con la diferencia que el rango es mayor de
51 segundos y menor que 71 segundos cuando esto no se cumpla el estado futuro será “s0”.
Para finalizar con la programación en Vivado se hizo la asignación de los pines, para lo cual
primero se asigno a CLK al pin del reloj interno de la Basys 3, para el encendido de los leds de
los diferentes colores (amarillo, verde, rojo) se le asigno a tres pin headers estos se encuentran
en los Pmod Ports y por último se asignó el reset a un switch, véase en la Figura 8.
¿Cuál es la función del reset en esta práctica? El reset es el que reinicia el proceso y vuelve a
empezar
¿Que afecta al activarlo? La parte del segundero que es el contador de cada segundo que va
transcurriendo para de este modo el semáforo empiece de nuevo
Otra de las dificultades al terminar el código VHDL fue la ejecución en el Protoboard y ya que en el
momento desconocíamos el cómo mostrarlo y por problemas de conexión se nos dificulto aún más el
muestreo en él, pero preguntando e investigando pudimos pasarlo al Protoboard de manera exitosa y
de esta manera tener los resultados esperados de un semáforo en funcionamiento con los cambios de
verde a amarillo con sus respectivos parpadeos y posteriormente de amarillo a rojo repitiéndose en
forma de loop, hasta que el reset sea activado y funcione como un reseteo del programa realizado.
Instituto Tecnológico de Tijuana
VIII. CONCLUSIONES
García: Esta práctica nos sirvió para comprender mejor el funcionamiento de las máquinas
de estado tipo Moore, debido a que pudimos programar esta máquina para realizar un
semáforo, también comprendimos mas acerca de como poner los rangos de tiempo para
encender los leds que corresponden en el tiempo adecuado.
Gómez: En el transcurso del proyecto pudimos aprender más sobre máquinas de estado finito,
completando con éxito lo solicitado y obteniendo experiencia en cuanto a como programar
en VHDL.
Urrea: La práctica realizada, nos ayudó a observar y aprender distintas maneras de llegar a
realizar en código distintas acciones con un proceso determinado, gracias a la investigación
y preguntas realizadas en clase fuimos capaces de conocer un poco más sobre la
programación de VHDL, por dudas que fuimos aclarando en el curso de la investigación nos
dio mayor facilidad realizando el proceso de cada función por el hecho de saber el cómo
trabaja cada línea de código realizada.
IX. BIBLIOGRAFÍA
Available: https://www.profesores.frc.utn.edu.ar/electronica/tecnicasdigitalesi/pub/file
Available: http://delta.cs.cinvestav.mx/~gmorales/ta/node50.html.
[4] S.-É. Marcos, «Introducción a la programación en VHDL,» julio 2014. [En línea].
X. ANEXO