Laboratorio de Electrónica Digital II
Práctica No. 1
Diseño Digital: Controlador Inteligente de Semáforos
Profesor Lab.: Luis Germán Garcı́a M. ([email protected])
Viernes 11 de Septiembre, 2020
Fecha de entrega: Septiembre 29 de 2020
Medio de entrega: Classroom
Sustentación: Septiembre 29, Agosto 1-2 de 2020, Horario de Lab.
Valor Práctica: 6% del curso
1 Introducción
En esta práctica de laboratorio, el grupo de estudiantes implementará un controlador de semáforos
ubicado en un cruce vial con vı́a principal, vı́a secundaria, y sendero para peatones. El core o núcleo
del controlador será una máquina de estados finitos FSM. El grupo de trabajo deberá realizar el
diseño, la descripción en SystemVerilog y la simulación empleando herramientas apropiadas.
2 Objetivo de la Práctica
Diseñar y simular un controlador de semáforos para un cruce vial, empleando máquinas de estados
finitos (FSM), lenguaje de descripción de hardware SystemVerilog y herramientas apropiadas.
1
Fig. 1: Cruce Vial con Semáforo
3 Descripción y Funcionamiento
El controlador de semáforos a diseñar es para un cruce vial con vı́a principal, vı́a secundaria y
sendero para peatones. Tanto la vı́a principal como la secundaria son de un solo sentido, por lo que
debe existir un solo semáforo por vı́a. Los semáforos tienen luces rojas, amarillas y verdes. Adi-
cionalmente, existen cuatro pasos peatonales, dos sobre cada vı́a, por donde los peatones pueden
transitar. Cada uno de estos pasos peatonales tiene asociado un botón que el peatón puede ac-
cionar en cualquier momento para poner en rojo el semáforo de ambas vı́as y poner en verde todos
los semáforos peatonales. Estos semáforos tienen luces rojas y verdes únicamente. Finalmente, la
vı́a principal tiene un sensor ubicado antes del semáforo (en el suelo), que indica la presencia de
carros en un intervalo de tiempo dado. Fig. 1 muestra el cruce vial con semáforo.
Asuma que existe un circuito que le entrega una única señal al controlador cuando cualquiera de
los cuatro botones son activados (OR-wired). Con respecto al sensor ubicado en la vı́a principal,
asuma que existe una señal digital la cual estará activa (’1’) si hubo cierta cantidad de vehı́culos
transitando en un intervalo de tiempo dado. La cantidad de vehı́culos y el intervalo de tiempo no
2
son relevantes para el problema. Finalmente, tenga en cuenta que cuando el semáforo de una vı́a
está en verde o amarillo, los demás semáforos (de la otra vı́a y peatonales) deberán estar en rojo.
Similarmente, cuando los semáforos peatonales están en verde, los demás semáforos (vı́as) deberán
estar en rojo
Los diferentes periodos de tiempo a ser utilizados por el controlador se indican en la Tab. 1.
Tab. 1: Tiempos para el controlador
Parámetro Sı́mbolo Valores (seg)
Tiempo de espera en verde tV ERDE 15
Tiempo de espera en amarillo tAM AR 2
Tiempo de paso peatonal tP ASO 5
Tiempo de extensión tEXT 10
Tiempo después de RESET tRESET 2
El funcionamiento del controlador se describe a continuación. Después de un RESET, el contro-
lador debe mantener todos los semáforos en rojo por tRESET segundos. Pasado este tiempo, el
primer semáforo en cambiar a verde corresponde al de la vı́a principal y debe permanecer en ese
estado por tV ERDE segundos. Al transcurrir los tV ERDE segundos, el semáforo de la misma vı́a
debe cambiar a amarillo y permanecer en ese nuevo estado por tAM AR segundos. Transcurrido
este tiempo, se repetirá la misma funcionalidad, esta vez con el semáforo de la vı́a secundaria
completando tV ERDE y tAM AR segundos. Finalmente, el semáforo de la vı́a principal cambia de
nuevo a verde y la secuencia se repite indefinidamente.
Existen dos formas de romper la secuencia indicada anteriormente. La primera es cuando el
semáforo de la vı́a principal está en verde y la señal del sensor está activada al completarse el
tiempo tV ERDE . En este caso, el semáforo debe permanecer en verde por otros tEXT segundos.
Al transcurrir este tiempo, el sistema vuelve a su secuencia habitual sin importar si la señal del
sensor permanece activa. La segunda posibilidad es mediante el botón de los pasos peatonales.
Si en algún momento, cualquiera de los botones de paso peatonal es presionado, el controlador
deberá poner todos los semáforos peatonales en verde una vez se haya completado la secuencia de
la vı́a principal (tV ERDE + tAM AR ). Los semáforos peatonales permanecerán en este estado durante
tP ASO segundos. Tenga en cuenta que el botón de paso peatonal debe ser ignorado mientras el
semáforo peatonal está en verde. Una vez transcurrido el tiempo tP ASO , el sistema regresa a la
secuencia habitual, poniendo en verde el semáforo de la vı́a secundaria.
4 Diseño
El módulo principal de su diseño en SystemVerilog debe tener la siguiente declaración:
3
module trafficlights xx(input logic clk,
input logic reset,
input logic sensor, button,
output logic main red, main yellow, main green,
output logic second red, second yellow, second green,
output logic pedestrian red, pedestrian green);
xx corresponde a las iniciales de los integrantes del grupo. Guarde su módulo en un archivo de
nombre trafficlights xx.sv
Plantee los correspondientes estados de su FSM junto con las transiciones que satisfacen la de-
scripción del problema, haciendo uso de las entradas y salidas que se facilitan en esta guı́a. Asuma
que el reloj o señal clk que entra al sistema es de 10 hz.
A continuación describa en SystemVerilog su módulo de manera que realice la funcionalidad pedida
y que pueda ser sintetizado y simulado.
5 Simulación
Cree un archivo denominado testbench xx.sv que demuestre, de manera convincente, que la FSM
que usted ha descrito en SystemVerilog desarrolla toda la funcionalidad requerida de manera cor-
recta. Emplee ModelSIM o cualquier otra herramienta de simulación para esta actividad.
Es posible que la primera vez usted obtenga errores en el módulo de su diseño o en el testbench
(banco de pruebas). Interprete de manera apropiada los mensajes que recibe de la herramienta de
simulación y corrija los problemas que se han presentado.
6 Entrega
El grupo de trabajo deberá escribir un reporte que contenga los siguientes elementos:
a. Resumen del diseño del controlador de semáforos.
b. Diagrama de la máquina de estados finitos diseñada con una breve explicación. Se aceptan
imágenes escaneadas o fotografı́as siempre que sean claras.
c. Diagrama de bloques con los módulos creados y una breve explicación de cada uno de ellos.
d. Resultados de la simulación mostrando que su sistema realiza correctamente la funcionalidad
descrita en esta guı́a.
e. Conclusiones.
4
Crear un archivo comprimido que incluya el reporte y los archivos importantes de su proyecto en
Xilinx Vivado o Quartus Prime como se describe a continuación:
a. Reporte: archivo con extensión .pdf
b. Archivos fuente: trafficlights xx.sv, testbench xx.sv, otros archivos .sv que haya creado.
El nombre del archivo comprimido debe tener el siguiente formato:
p1 primerapellidointegrante1 primerapellidointegrante2 horariolaboratorio.zip.
Ejemplo: si el primer apellido de ambos integrantes es Cabarcas y Garcia, respectivamente, y el
laboratorio es el Jueves 9-12, entonces el archivo debe ser nombrado: p1 cabarcas garcia j9-12.zip.
7 Evaluación
La evaluación de la práctica se divide en tres partes, funcionamiento (50%), sustentación (40%) y
reporte (10%). La nota del funcionamiento se asigna por igual a todos los integrantes del grupo
de trabajo, mientras que la nota de sustentación es individual. En caso un estudiante obtenga una
nota inferior a 3.0 en la sustentación, la nota final de la práctica para el estudiante en mención será
la que obtuvo en la sustentación, es decir, no se tendrá en cuenta el funcionamiento en el cálculo.
Cada grupo de trabajo deberá sustentar la práctica en un tiempo de 15 minutos, 5 minutos para
revisar la simulación y 10 minutos para preguntas. Durante la sustentación, el profesor hará entre
dos (2) y tres (3) preguntas a cada uno de los integrantes del grupo de trabajo.
8 Referencias
a. Xilinx Vivado WebPack
https://www.xilinx.com/support/download.html
b. Quartus Prime Lite Edition
https://fpgasoftware.intel.com/?edition=lite