Está en la página 1de 9

Laboratorio No.

7: Finite State Machine On-Hot

María José Cabra Espitia - mariajcabra@javeriana.edu.co


Nasly Verónica Novoa Lozano - novoa_nv@javeriana.edu.co
José Guillermo González Carrillo - jg-gonzalez@javeriana.edu.co

Pontificia Universidad Javeriana

Diseño de sistemas digitales

Fecha de entrega: 26/04/2023

Bogotá D.C

Profesor:

Eduardo Andrés Gerlein Reyes

Departamento de Electrónica
Código en VHDL.

Para el control del tráfico se definieron 5 señales data que se encargan de realizar la
transición lógica de un estado a otro en función del estado anterior, teniendo en cuenta que se
requiere un almacenamiento de la información del estado anterior para condicionar el
siguiente, a partir de los cronómetros diseñados para cada led se construye un switch case la
cual es una estructura de control empleando la técnica “one hot”. Tanto para el estado de los
leds como para sus respectivos enables y señales de reset sincrónicas.

Figura 1. Código Traffic ligth controller parte 1.


Figura 2. Código Traffic ligth controller parte 2.

Para implementar el código en tarjeta, se consideran determinados tiempos de


funcionamiento como los que tiene un semáforo real, para que el tiempo de espera de cada
estado corresponda tiempo real, entonces se estima el valor de la cantidad de pulsos
necesitados para cada tiempo, por lo es necesario generar mod counters que varían
dependiendo del estado en el que se encuentre el semáforo.
Figura 3. Código Traffic ligth controller cronometro parte 1.

Figura 4. Código Traffic ligth controller cronometro parte 2.


Figura 5. Código Traffic ligth controller cronometro parte 3.

Figura 6. Código TFF.


Figura 7. Código Mod counter.

Simulación
Luego de desarrollar el código del semáforo, se realiza una simulación tipo testbench para
poder verificar su correcto funcionamiento, para ello se tuvo en cuenta la generación de los
diferentes pulsos de reloj cada 10ns, activar y desactivar la señal de reset ya que esta se encarga
de llevar todas las salidas y transiciones a valores definidos para poder comenzar en un punto
conocido, finalmente se inicia con la señal stby en 0 para observar el estado inicial únicamente
en amarillo, el cual se genera por defecto y es un paso previo al funcionamiento continuo del
semáforo. Adicionalmente se cambiaron los tiempos de espera para cada uno de los estados
con el fin de poder visualizar en la simulación el comportamiento de una manera sencilla, para
ello se realizó la siguiente modificación.
• Rojo: 2s equivalente a 4 pulsos de reloj.
• Rojo-amarillo: 500ms equivalente a 2 pulsos de reloj.
• Verde: 3s equivalente a 6 pulsos de reloj.
• Amarillo: 500ms equivalente a 2 pulsos de reloj.
Finalmente, se seleccionaron unas entradas y salidas internas de las entidades que permiten
verificar la transición entre estados tal es el caso de la entidad Traffic_light_controller la cual
contenía todos los valores fundamentales y no únicamente el encendido y apagado de los leds,
por ejemplo, los diferentes estados, los valores de enable, sync_clr y max_tick de los timers.
Figura 8. Código test_bench semáforo_cronometro_tb.
Figura 9. Simulación test_bench semáforo_cronometro_tb.
En la simulación se puede evidenciar las diferentes transiciones de la FSM, los cuales en el
momento que se encuentra en dicho estado la señal se mantiene en 1 y al cambiar esta regresa
a 0, se puede constatar que el tiempo para cada estado en el que se mantiene encendido cambia
según los pulsos que se predefinieron previamente.
Funcionamiento.
En el link indicado en la parte inferior, se muestra un vídeo con el funcionamiento en tarjeta,
en el que se asigna la señal de stby a uno de los interruptores y se utilizan tres puertos de
propósito general para la alimentación de los LEDs con cada uno de los colores que se observan
en un semáforo real.
Configurando en serie resistencias a él cátodo del LED y al ánodo la alimentación de puertos
de propósito general cuando el semáforo inicia el color que se visualiza iluminado es el rojo,
después de un periodo de 2 segundos, el patrón cambia a rojo y amarillo encendidos al mismo
tiempo, luego de 500ms se enciende el LED verde durante 3 segundos y finalmente se enciende
el amarillo por un periodo de 500ms. Cuando el interruptor stby se encuentra accionado, se
muestra únicamente la luz amarilla que representa el estado inicial del semáforo.
Link: https://youtu.be/Kf-s2oGTMp8
Conclusiones.
- El uso de máquinas de estado finito facilita la implementación del control de tráfico, ya
que permite identificar los estados de transición para determinados periodos de tiempo,
sin embargo, al ser “one hot” se encuentra condicionado a la estructura de control a
nivel de compuerta.
- Una aplicación en la vida real en la que se utiliza un estado inicial cuando esta activa
la señal stby ocurre cuando las vías se encuentran congestionadas y por medio de este
estado se permite el paso libre.
- El mod counter es aplicable a realizar distintas cuentas de forma simultánea, ya que
para el control de tráfico indica los distintos instantes de tiempo en los que se cambia
el estado.

También podría gustarte