0% encontró este documento útil (0 votos)
0 vistas12 páginas

Proyecto Micro

Este documento presenta el desarrollo y validación de un regulador de tráfico vehicular multicanal basado en una máquina de estados finitos (FSM) de tipo Moore, implementado en VHDL y diseñado para FPGA Artix-7. El sistema gestiona dos rutas de circulación y un cruce peatonal, alternando entre cinco estados y demostrando un consumo eficiente de recursos. La investigación destaca la robustez de VHDL y la eficacia del diseño en entornos educativos y de investigación, ofreciendo una solución abierta y modular para el control del tráfico.

Cargado por

romariodotero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas12 páginas

Proyecto Micro

Este documento presenta el desarrollo y validación de un regulador de tráfico vehicular multicanal basado en una máquina de estados finitos (FSM) de tipo Moore, implementado en VHDL y diseñado para FPGA Artix-7. El sistema gestiona dos rutas de circulación y un cruce peatonal, alternando entre cinco estados y demostrando un consumo eficiente de recursos. La investigación destaca la robustez de VHDL y la eficacia del diseño en entornos educativos y de investigación, ofreciendo una solución abierta y modular para el control del tráfico.

Cargado por

romariodotero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Basic macros Defin-

ing babelensure Short tags Compatibility with [Link]


Hooks Macros for setting language files up
Shorhands Language
attributes Macros for saving definitions Hyphens
Multiencoding strings Macros related to glyphs
Bidi layout Input engine specific macros Redefinitions for
bidi layout spanish
”Making ” an active characterspanish
.

¡Making ¡ an active characterspanish¿Making ¿ an active


characterspanish
¡not-a-shorthand-b¡
¿spanish
¡not-a-shorthand-b¡
¿ Undefined language ” in aux.
Reported
’spanish’ activates ’spanish’ shorthands.
Reported ¡not-a-shorthand-b¡
¿
Diseño y Simulación de un Controlador de
Semáforo Multicarril Basado en FPGA Mediante
VHDL en Xilinx Vivado
Mamani Mamani Romario Wiliam Raul Ricardo Sulla Torres
Escuela Profesional de Ingenierı́a Electrónica Asesor / Accesor
Universidad Nacional de San Agustı́n de Arequipa Escuela Profesional de Ingenierı́a Electrónica
Arequipa, Perú Universidad Nacional de San Agustı́n de Arequipa
rmamani@[Link] Arequipa, Perú

Resumen—Este manuscrito expone el desarrollo, la puesta demanda concurrencia rigurosa entre diversos procesos [1].
en marcha y la comprobación operativa de un regulador de En particular, los reguladores de tráfico urbano representan un
tráfico vehicular multicanal integrado con paso de personas, caso de estudio modelo: deben armonizar múltiples actores
conceptualizado bajo una máquina de estados finitos (FSM)
de tipo Moore y codificado mediante el lenguaje VHDL. El (automóviles, viandantes, semáforos secundarios), cumplir con
circuito gestiona de manera concurrente dos rutas de circulación cronometrajes normativos y soportar interrupciones tales como
de vehı́culos y un cruce para peatones, alternando entre cinco activaciones manuales de viandantes o peticiones de prioridad
estados claramente delimitados: verde—amarillo para la arteria para vehı́culos de emergencia.
principal, verde—amarillo para la vı́a secundaria y una etapa El regulador de semáforo tratado en este documento se
exclusiva de tránsito peatonal. La materialización del proyecto
se llevó a cabo en el entorno Xilinx Vivado Design Suite 2017.4, enmarca dentro de los sistemas secuenciales modelables como
seleccionando como dispositivo de destino la FPGA Artix-7 máquinas de estados finitas (FSM, por sus siglas en inglés).
AC701 (referencia xc7a200t-fbg676-2). La estrategia metodológi- Una FSM constituye una abstracción matemática que define
ca empleada abarcó todas las fases del flujo de diseño sugerido el comportamiento de un sistema por medio de un número
por Xilinx: especificación de requerimientos, escritura de código limitado de estados, un conjunto de transiciones sujetas a las
RTL, elaboración, sı́ntesis de puertas lógicas, simulación de
comportamiento y evaluación de recursos tras la sı́ntesis. La entradas y una función de salida que vincula cada estado
validación funcional se ejecutó por medio de un banco de pruebas con una configuración determinada de señales [2]. Existen
(testbench) que estimula la arquitectura con una señal de reloj dos enfoques clásicos: la máquina de Moore, cuyas salidas
de 100 MHz, un pulso de reinicio y un pulsador para peatones, están subordinadas exclusivamente al estado vigente, y la de
posibilitando la visualización de la progresión temporal ı́ntegra Mealy, donde las salidas dependen del estado vigente y de
de los estados. Las estadı́sticas de sı́ntesis revelan un consumo
mı́nimo de apenas 33 LUTs y 40 biestables, lo que equivale las entradas. Para sistemas crı́ticos en los que la firmeza de
al 0.025 % de la capacidad lógica disponible, junto con una la salida frente a fluctuaciones transitorias en la entrada es
disipación de potencia total en el chip de 0.134 W. Estas métricas fundamental, el enfoque de Moore resulta más adecuado, dado
evidencian que la topologı́a presentada es compacta, predecible que aı́sla las salidas del ruido momentáneo presente en las
y idónea para sistemas embebidos en tiempo real que exigen entradas [3].
limitaciones rigurosas de área y consumo energético. El estudio
ratifica asimismo a la FSM Moore como un modelo sólido para La selección de VHDL (VHSIC Hardware Description
controladores secuenciales implementados en FPGA. Language) como lenguaje para la descripción de hardware
Index Terms—VHDL, FPGA, Artix-7, Diseño Digital, Máquina se justifica por su robustez, tipado estricto y gran aceptación
de Estados Finita, Moore, Controlador de Tráfico, Vivado, tanto en el sector industrial como en el académico. VHDL
Verificación Funcional, Sı́ntesis Lógica. posibilita la definición de circuitos tanto a nivel de comporta-
miento como estructural, agiliza la parametrización a través de
I. I NTRODUCCI ÓN genéricos y permite el aprovechamiento de módulos mediante
EL desarrollo de sistemas digitales secuenciales sobre pla- la distinción entity–architecture [4]. La suite Xilinx Vivado
taformas reconfigurables ha mostrado un ascenso continuo 2017.4, empleada en esta investigación, proporciona un flujo
en los últimos diez años, motivado por la accesibilidad a de trabajo unificado que abarca desde la redacción del código
dispositivos Field Programmable Gate Arrays (FPGAs) de hasta la generación del archivo de configuración (bitstream),
bajo precio y elevado rendimiento. Las FPGAs facilitan la incluyendo sı́ntesis, implementación, simulación y emisión de
creación de controladores por hardware dedicados que ofre- informes de uso y energı́a [5].
cen tiempos de respuesta predecibles del orden de nano- La problemática especı́fica que resuelve este artı́culo radica
segundos, un atributo que les otorga ventaja frente a las en la exigencia de disponer de un regulador de semáforo
alternativas fundamentadas en microcontroladores cuando se validable, sintetizable y optimizado en cuanto a recursos,
capacitado para administrar dos carriles vehiculares con un Moore de cuatro estados. Su diseño demandó 42 elementos
cruce de viandantes mediante botón. Las alternativas comer- lógicos y operó a 50 MHz. Un inconveniente de su propuesta
ciales existentes tienden a ser propietarias y onerosas, lo que es la carencia de un canal para viandantes: el sistema ignora
restringe su aplicación en entornos educativos y de investi- las peticiones de cruce, limitando su utilidad práctica. Garcı́a
gación. Por consiguiente, la elaboración de un controlador y Méndez [9] ampliaron esta idea incorporando un botón
abierto, modular y verificable con herramientas de libre acceso peatonal en una FPGA Zynq-7020, reportando 51 LUTs y 38
como Vivado WebPACK resulta de gran interés tanto a nivel flip-flops. Su FSM contempló seis estados, añadiendo dos fases
formativo como práctico. extra de parpadeo en ámbar. La complejidad añadida de los
Los aportes puntuales de esta investigación son: (i) la plani- parpadeos incrementa el área lógica sin aportar una mejora
ficación de una FSM Moore de cinco estados con contadores operativa relevante cuando el sistema está pensado para un
ajustables para un regulador de tráfico bidireccional con paso cruce sencillo.
de personas; (ii) una codificación VHDL modular que incluye
Wang et al. [10] sugirieron un regulador de tráfico inte-
la detección de flanco de subida en el pulsador peatonal y un
ligente que amalgama un semáforo tradicional con sensores
generador de pulso (tick) de 1 Hz derivado del reloj base de
infrarrojos para percibir la presencia de automóviles, desple-
100 MHz de la FPGA; (iii) la validación funcional minuciosa
gado sobre Intel Cyclone V. Aunque el artı́culo incluye una
por medio de un testbench con valores genéricos reducidos
FSM, su propósito central es la modificación adaptativa de los
que hace posible presenciar el ciclo entero en apenas unos
tiempos según el volumen de vehı́culos, aspecto que trasciende
microsegundos de simulación; y (iv) la evaluación post-sı́ntesis
el alcance de este escrito. No obstante, se erige como una
del consumo de recursos y energı́a sobre la placa FPGA Artix-
referencia valiosa para el trabajo venidero, donde se podrı́a
7 AC701.
acoplar detección de presencia al controlador planteado.
El resto del documento se estructura de la siguiente for-
ma. La Sección II examina los antecedentes en reguladores En el plano educativo, Patel y Joshi [11] exponen un regula-
de tráfico soportados en FPGA. La Sección III expone la dor de semáforo básico como ejemplo didáctico en asignaturas
arquitectura sugerida, abarcando el diagrama de bloques, la de diseño digital. Su implementación, sobre Basys-3 (Artix-
FSM y las señales de entrada y salida. La Sección IV detalla 7), recurre a VHDL y un contador de tiempo sin distinción
el procedimiento de diseño en VHDL, adjuntando el código entre el generador de pulsos y la lógica de estados. Esta unión
fuente del módulo y del testbench. La Sección V describe el complica la parametrización y la verificación por bloques, dos
escenario de simulación. La Sección VI expone y analiza los facetas que el presente estudio perfecciona al separar de forma
resultados de sı́ntesis y simulación. Por último, la Sección VII explı́cita el generador de tick del registro de estados y de la
expone las conclusiones y la Sección VIII las lı́neas de trabajo lógica de transición. Adicionalmente, Rodrı́guez [12] evaluó
venideras. de manera comparativa máquinas Moore frente a Mealy para
controladores secuenciales, determinando que Moore exhibe
II. T RABAJOS R ELACIONADOS menor fluctuación temporal en las salidas, hecho que respalda
La concepción de reguladores de tráfico sobre FPGAs ha la decisión tomada en este proyecto.
sido tema de diversas investigaciones en la última década, La Tabla I condensa la comparativa. Se nota que el presente
ya que representa un caso de estudio idóneo para instruir y estudio es el único que fusiona FSM Moore de cinco estados,
evaluar el flujo de diseño digital. En esta sección se examinan paso de viandantes mediante botón, FPGA Artix-7 AC701 y
estudios representativos que abordan la misma temática desde verificación a través de testbench parametrizable. A ello se
diferentes enfoques, destacando discrepancias en el modelo suma que el consumo de 33 LUTs y 40 flip-flops lo sitúa como
FSM, en la plataforma de destino y en las métricas de sı́ntesis la solución más eficiente en recursos del conjunto contrastado.
obtenidas.
Smith y su equipo [6] plantearon una ALU de 8 bits sobre
una FPGA Artix-7 usando Vivado, logrando una frecuencia
Cuadro I
máxima de 250 MHz con 86 LUTs. A pesar de que el dominio C OMPARACI ÓN DE T RABAJOS R ELACIONADOS EN C ONTROLADORES DE
de aplicación difiere, la táctica de comprobación funcional T R ÁFICO SOBRE FPGA.
basada en testbench exhaustivo es asimilable a la adoptada
en este estudio. Por otro lado, Lee [7] documentó la creación Autor (Año) Plataforma FSM (Estados) Peatón LUTs / FF
de un contador sı́ncrono en Spartan-6 con ISE, alcanzando 4 Smith (2024) Artix-7 — (ALU) No 86 / 32
flip-flops y una frecuencia máxima de 200 MHz. La disparidad Lee (2025) Spartan-6 Contador (4) No 12 / 4
principal con la presente investigación radica en el software Kumar (2023) Cyclone IV Moore (4) No 42 / —
Garcı́a (2022) Zynq-7020 Moore (6) Sı́ 51 / 38
(ISE frente a Vivado) y en la familia de FPGA empleada
Wang (2021) Cyclone V Moore adaptativo Sı́ 110 / 64
(Spartan-6 frente a Artix-7), factores que inciden directamente Patel (2020) Artix-7 Moore (4) No 38 / 12
en las métricas de aprovechamiento. Rodrı́guez (2019) Cyclone IV Moore/Mealy — —
En el campo especı́fico de los reguladores de tráfico, Ku- Este trabajo Artix-7 AC701 Moore (5) Sı́ 33 / 40
mar y Sharma [8] introdujeron un controlador de semáforo
bidireccional sobre Cyclone IV, estructurado como una FSM
III. A RQUITECTURA DEL S ISTEMA P ROPUESTO
III-A. Descripción funcional
La arquitectura sugerida corresponde a un regulador de tráfi-
co de doble vı́a integrado con cruce de viandantes, proyectado
para comandar un cruce simple entre dos arterias vehiculares y
un paso peatonal. El sistema va alternando cı́clicamente entre
la ruta primaria y la secundaria, asegurando que jamás ambas
rutas gocen de luz verde al mismo tiempo. Además, ante la
activación del botón peatonal, el dispositivo salta a una etapa diagrama_bloques.png
exclusiva de cruce en la que ambas calzadas se ponen en rojo y
el indicador peatonal se enciende, salvaguardando la integridad
del viandante.
La extensión de cada etapa es configurable a través de
genéricos de VHDL: verde principal, verde secundario, ámbar
principal, ámbar secundario y cruce peatonal. Esta flexibilidad
posibilita adaptar el regulador a distintas normativas locales
sin alterar el código, limitándose a modificar los valores
en la instanciación. En la configuración estándar del diseño Figura 1. Diagrama de bloques del regulador de tráfico propuesto.
sintetizable se asignan 8 segundos para el verde, 3 segundos
para el ámbar y 6 segundos para el cruce, cifras habituales en
intersecciones de zonas urbanas periféricas. diagrama de transiciones. La secuencia habitual es
III-B. Entradas y salidas S_GREEN_MAIN → S_YELLOW_MAIN → S_GREEN_SIDE
→ S_YELLOW_SIDE → S_GREEN_MAIN. Si el botón
Las señales de entrada del sistema son tres: el reloj maestro peatonal es presionado durante el último segundo de la fase
clk de 100 MHz suministrado por el oscilador de la tarjeta verde principal o verde secundario, la FSM migra a S_WALK
AC701; una señal de reset ası́ncrono activa en nivel alto rst; en lugar de pasar al ámbar correspondiente. Al concluir
y el pulsador peatonal btn, también activo en alto. El botón es el tiempo de cruce, el sistema regresa a S_GREEN_MAIN,
capturado por un doble biestable de sincronización seguido de restableciendo el ciclo habitual.
un detector de flanco de subida, mecanismo que neutraliza los
peligros de metaestabilidad y faculta al sistema para reaccionar
a una pulsación fugaz con una única transición interna.
Las salidas se agrupan en tres buses:
main_lights(2:0) para la arteria principal,
side_lights(2:0) para la vı́a secundaria, y walk
para el indicador de peatones. La codificación escogida para
los semáforos es RYG (bit 2 = rojo, bit 1 = ámbar, bit 0
= verde), de forma que el patrón 100 simboliza rojo, 010
ámbar y 001 verde. Esta codificación unaria simplifica el
fsm_diagram.png
enlace directo con los pines de los LEDs en la FPGA y
depura el esquemático RTL resultante, puesto que cada bit
de salida se enlace a un flip-flop propio sin requerir circuitos
decodificadores extras.
III-C. Diagrama de bloques
La Figura 1 exhibe el diagrama de bloques operacional del
sistema. Se diferencian cuatro módulos: el generador de pulso
(tick) de 1 Hz, el sincronizador del botón con su detector
de flanco, el registro de estados de la FSM y la lógica de Figura 2. Diagrama de transición de la FSM Moore planteada.
salidas Moore. La señal de reloj de 100 MHz alimenta todos
los registros, en tanto que el reset inicializa el contador, el
estado y los biestables de sincronización. III-E. Tabla de salidas Moore
III-D. Máquina de estados finita La Tabla II enumera la configuración de salida vinculada a
La FSM Moore planteada se compone de cinco estados: cada estado. Se constata el rasgo distintivo de las máquinas
S_GREEN_MAIN, S_YELLOW_MAIN, S_GREEN_SIDE, Moore: las salidas son dependencia única del estado, sin
S_YELLOW_SIDE y S_WALK. La Figura 2 ilustra el injerencia directa de las entradas.
Cuadro II 8 T_GREEN : integer := 8; --
PATRONES DE S ALIDA POR E STADO (C ODIFICACI ÓN RYG). seconds for green
9 T_YELLOW : integer := 3; --
seconds for yellow
Estado main lights side lights walk 10 T_WALK : integer := 6 --
S GREEN MAIN 001 (verde) 100 (rojo) 0 seconds for walk
S YELLOW MAIN 010 (ámbar) 100 (rojo) 0 11 );
S GREEN SIDE 100 (rojo) 001 (verde) 0 12 Port (
13 clk : in STD_LOGIC;
S YELLOW SIDE 100 (rojo) 010 (ámbar) 0 14 rst : in STD_LOGIC; --
S WALK 100 (rojo) 100 (rojo) 1 active HIGH
15 btn : in STD_LOGIC; --
pedestrian button
16 main_lights : out STD_LOGIC_VECTOR(2 downto
IV. M ETODOLOG ÍA DE D ISE ÑO EN VHDL 0); -- (R,Y,G)
IV-A. Flujo de diseño 17 side_lights : out STD_LOGIC_VECTOR(2 downto
0); -- (R,Y,G)
El flujo de trabajo seguido en esta investigación se acoge18 walk : out STD_LOGIC
al estándar preconizado por Xilinx para proyectos basados en19 );
20 end traffic_light;
HDL [5]. Las fases ejecutadas fueron: (1) definición funcio-21
nal del regulador; (2) redacción del código RTL en VHDL22 architecture Behavioral of traffic_light is
deslindando entity y architecture; (3) elaboración del diseño23 type state_type is (S_GREEN_MAIN, S_YELLOW_MAIN,
S_GREEN_SIDE,
para certificar la sintaxis y la jerarquı́a; (4) confección del24 S_YELLOW_SIDE, S_WALK);
testbench con constantes genéricas minoradas; (5) simulación25 signal current_state, next_state : state_type :=
conductual con Vivado Simulator (xsim); (6) sı́ntesis lógica S_GREEN_MAIN;
26 constant TICK_COUNT : integer := CLK_FREQ;
sobre el componente xc7a200t-fbg676-2; (7) inspección del27 signal tick_counter : integer range 0 to
esquemático RTL y de los informes de aprovechamiento y TICK_COUNT-1 := 0;
energı́a. Cada fase generó entregables verificables que posibili-28 signal tick : STD_LOGIC := ’0’;
29 signal timer : integer range 0 to 31 := T_GREEN;
taron descubrir prematuramente fallos operativos o de sı́ntesis,30 constant L_RED : STD_LOGIC_VECTOR(2 downto 0)
evitando la propagación de errores hacia fases avanzadas. := "100";
31 constant L_YELLOW : STD_LOGIC_VECTOR(2 downto 0)
IV-B. Descripción de la entidad := "010";
32 constant L_GREEN : STD_LOGIC_VECTOR(2 downto 0)
La entidad traffic_light define cuatro constantes := "001";
genéricas (CLK_FREQ, T_GREEN, T_YELLOW, T_WALK) que33 signal btn_sync1, btn_sync2 : STD_LOGIC := ’0’;
parametrizan el módulo. Esta capacidad de ajuste representa34 signal btn_prev, btn_edge : STD_LOGIC := ’0’;
35 begin
una de las ventajas primordiales de VHDL frente a lenguajes36 -- 1 Hz tick generator
sin tipado: habilita el uso del mismo código para variadas37 process(clk, rst)
frecuencias de reloj o duraciones de fase sin manipular la38 begin
39 if rst = ’1’ then
lógica interna. Los puertos coinciden con los detallados en la40 tick_counter <= 0;
Sección III. La separación explı́cita entre in y out, aunada41 tick <= ’0’;
al tipado estricto de STD_LOGIC y STD_LOGIC_VECTOR,42 elsif rising_edge(clk) then
43 if tick_counter = TICK_COUNT-1 then
asegura que el compilador detecte fallos de cableado durante44 tick_counter <= 0;
la elaboración. 45 tick <= ’1’;
46 else
IV-C. Código VHDL del diseño 47 tick_counter <= tick_counter + 1;
48 tick <= ’0’;
El Listado 1 exhibe la codificación VHDL ı́ntegra del49 end if;
regulador. Se distinguen cinco módulos secuenciales dentro de50 end if;
la arquitectura: el generador de pulso de 1 Hz, el sincronizador51 end process;
52
del pulsador, el registro de estados con temporizador, la lógica53 -- Button synchronizer + rising edge detector
de transición y la lógica de salidas Moore. Esta distribución54 process(clk, rst)
por segmentos favorece la lectura y el mantenimiento, y55 begin
56 if rst = ’1’ then
posibilita que cada fracción sea probada de manera aislada57 btn_sync1 <= ’0’; btn_sync2 <= ’0’;
si fuese preciso. 58 btn_prev <= ’0’; btn_edge <= ’0’;
59 elsif rising_edge(clk) then
Listing 1. Código VHDL del controlador de semáforo (traffic [Link]). 60 btn_sync1 <= btn;
1 library IEEE; 61 btn_sync2 <= btn_sync1;
2 use IEEE.STD_LOGIC_1164.ALL; 62 btn_prev <= btn_sync2;
3 use IEEE.NUMERIC_STD.ALL; 63 btn_edge <= btn_sync2 and (not btn_prev
4
);
5 entity traffic_light is 64 end if;
6 Generic ( 65 end process;
66
7 CLK_FREQ : integer := 100_000_000; -- 100
MHz board clock 67 -- State register + timer
68 process(clk, rst) 135 when S_GREEN_SIDE =>
69 begin 136 main_lights <= L_RED; side_lights <=
70 if rst = ’1’ then L_GREEN; walk <= ’0’;
71 current_state <= S_GREEN_MAIN; 137 when S_YELLOW_SIDE =>
72 timer <= T_GREEN; 138 main_lights <= L_RED; side_lights <=
73 elsif rising_edge(clk) then L_YELLOW; walk <= ’0’;
74 if tick = ’1’ then 139 when S_WALK =>
75 if timer > 0 then 140 main_lights <= L_RED; side_lights <=
76 timer <= timer - 1; L_RED; walk <= ’1’;
77 else 141 end case;
78 current_state <= next_state; 142 end process;
79 case next_state is 143 end Behavioral;
80 when S_GREEN_MAIN => timer
<= T_GREEN;
81 when S_YELLOW_MAIN => timer IV-D. Código del testbench
<= T_YELLOW;
82 when S_GREEN_SIDE => timer El Listado 2 refleja el banco de pruebas empleado para
<= T_GREEN;
83 when S_YELLOW_SIDE => timer
la comprobación funcional. Para agilizar la simulación, las
<= T_YELLOW; constantes genéricas del DUT (Device Under Test) se so-
84 when S_WALK => timer brescriben con cifras reducidas: CLK_FREQ=10 (cada tick
<= T_WALK;
85 end case;
abarca 10 ciclos de reloj), T_GREEN=4, T_YELLOW=2 y
86 end if; T_WALK=3. De este modo, un ciclo entero del semáforo que
87 end if; en la realidad durarı́a 26 segundos, en simulación culmina
88 end if;
89 end process;
en aproximadamente 2.2 µs, haciendo posible monitorear la
90 dinámica completa en apenas segundos de ejecución.
91 -- Next state logic (combinational) El estı́mulo inyectado comprende cuatro etapas: (i) reinicio
92 process(current_state, timer, btn_edge)
93 begin
inicial de 50 ns; (ii) espera de 1.5 µs para que transcurra
94 next_state <= current_state; un ciclo normal ı́ntegro; (iii) activación del botón peatonal
95 case current_state is en el último segundo de la subsiguiente fase verde principal,
96 when S_GREEN_MAIN =>
97 if timer = 0 then
accionando el salto a S_WALK; y (iv) espera final de 2 µs para
98 if btn_edge = ’1’ then comprobar el regreso al ciclo habitual tras la etapa de cruce.
99 next_state <= S_WALK;
100 else Listing 2. Código VHDL del testbench (tb traffic [Link]).
101 next_state <= S_YELLOW_MAIN; 1 library IEEE;
102 end if; 2 use IEEE.STD_LOGIC_1164.ALL;
103 end if; 3 use IEEE.NUMERIC_STD.ALL;
104 when S_YELLOW_MAIN => 4
105 if timer = 0 then 5 entity tb_traffic_light is
106 next_state <= S_GREEN_SIDE; 6 end tb_traffic_light;
107 end if; 7
108 when S_GREEN_SIDE => 8 architecture Behavioral of tb_traffic_light is
109 if timer = 0 then 9 component traffic_light
110 if btn_edge = ’1’ then 10 Generic (
111 next_state <= S_WALK; 11 CLK_FREQ : integer := 100_000_000;
112 else 12 T_GREEN : integer := 8;
113 next_state <= S_YELLOW_SIDE; 13 T_YELLOW : integer := 3;
114 end if; 14 T_WALK : integer := 6
115 end if; 15 );
116 when S_YELLOW_SIDE => 16 Port (
117 if timer = 0 then 17 clk : in STD_LOGIC;
118 next_state <= S_GREEN_MAIN; 18 rst : in STD_LOGIC;
119 end if; 19 btn : in STD_LOGIC;
120 when S_WALK => 20 main_lights : out STD_LOGIC_VECTOR(2
121 if timer = 0 then downto 0);
122 next_state <= S_GREEN_MAIN; 21 side_lights : out STD_LOGIC_VECTOR(2
123 end if; downto 0);
124 end case; 22 walk : out STD_LOGIC
125 end process; 23 );
126
24 end component;
127 -- Output logic (Moore) 25
128 process(current_state) 26 signal clk : STD_LOGIC := ’0’;
129 begin 27 signal rst : STD_LOGIC := ’1’;
130 case current_state is 28 signal btn : STD_LOGIC := ’0’;
131 when S_GREEN_MAIN => 29 signal main_lights : STD_LOGIC_VECTOR(2 downto
132 main_lights <= L_GREEN; side_lights 0);
<= L_RED; walk <= ’0’; 30 signal side_lights : STD_LOGIC_VECTOR(2 downto
133 when S_YELLOW_MAIN => 0);
134 main_lights <= L_YELLOW; side_lights 31 signal walk : STD_LOGIC;
<= L_RED; walk <= ’0’; 32 constant CLK_PERIOD : time := 10 ns;
33 begin
34 DUT: traffic_light
35 generic map (CLK_FREQ => 10, T_GREEN => 4,
36 T_YELLOW => 2, T_WALK => 3)
37 port map (clk => clk, rst => rst, btn => btn
,
38 main_lights => main_lights,
39 side_lights => side_lights, walk
=> walk);
40
41 clk_process : process
42 begin
43 clk <= ’0’; wait for CLK_PERIOD/2; objects_view.png
44 clk <= ’1’; wait for CLK_PERIOD/2;
45 end process;
46
47 stim_process : process
48 begin
49 rst <= ’1’; btn <= ’0’; wait for 50 ns;
50 rst <= ’0’; wait for 50 ns;
51 wait for 1500 ns; -- full normal cycle
52 wait for 900 ns; -- inside next GREEN_MAIN
53 btn <= ’1’; wait for 30 ns;
54 btn <= ’0’;
55 wait for 2000 ns; -- WALK + return to normal
56 report "Simulation done." severity note;
57 wait;
58 end process; Figura 3. Vista de Objects en Vivado Simulator con las señales del DUT
59 end Behavioral; traffic light y del testbench tb traffic light.

V. E NTORNO DE S IMULACI ÓN se definieron en el fichero ac701_semaforo.xdc, donde


se declara el reloj de 200 MHz del AC701 (periodo de 5 ns)
La simulación se ejecutó en Xilinx Vivado Design Suite
y se mapean los pines de los LEDs y botones accesibles en la
2017.4 corriendo sobre el sistema operativo Windows 10. El
placa [13].
motor de simulación escogido fue Vivado Simulator (xsim),
embebido de forma nativa en la suite, que da soporte a VI. R ESULTADOS Y D ISCUSI ÓN
VHDL-2008 y habilita la captura de formas de onda con una
resolución de hasta 1 ps. El dispositivo de destino seleccionado VI-A. Esquemático RTL obtenido
fue el xc7a200t-fbg676-2, correspondiente a la FPGA Artix-7 La Figura 4 despliega el esquemático RTL producido por
integrada en la placa de evaluación AC701 [13]. Vivado tras la sı́ntesis. Se aprecian los componentes primor-
Los parámetros de simulación relevantes consisten en: pe- diales: tres biestables tipo FDCE para el registro de estados
riodo de reloj de 10 ns (equivalente a 100 MHz, frecuencia codificado (uno por cada bit de current_state, ya que
estándar del oscilador de la tarjeta AC701); tiempo total de cinco estados exigen tres bits); un bloque CARRY4 para el
simulación de 5 µs; y resolución temporal de 1 ps. Estas contador del generador de tick; y diversas LUTs de entre 4 y 6
condiciones facultan la captura precisa de todos los flancos entradas para la lógica combinacional de transición y de salida.
de reloj y las transiciones ası́ncronas del reset. El testbench La codificación automática de estados ejecutada por Vivado
corrió en modalidad conductual, es decir, sin haber ejecutado otorgó un código binario secuencial a los cinco estados, táctica
la sı́ntesis todavı́a, lo que posibilita una depuración funcional que resulta óptima en términos de área para FSM reducidas.
veloz. La Figura 5 exhibe una perspectiva ampliada del esquemáti-
La Figura 3 evidencia la vista de Objects del simulador co, donde se reconocen con mayor nitidez los biestables FDCE
xsim, donde se contempla la jerarquı́a de señales del DUT asignados a cada salida main_lights, side_lights y
y del testbench. Esta perspectiva autoriza arrastrar señales walk. Esta asignación directa de flip-flops a las salidas es
particulares al panel de formas de onda y definir los formatos una propiedad beneficiosa de la FSM Moore: al depender las
de visualización (binario, hexadecimal, decimal, sin signo). salidas del estado y no de las entradas, el sintetizador tiene la
Para esta investigación se optó por formato binario para capacidad de mapearlas directamente a registros sin precisar
main_lights y side_lights, y binario simple para lógica combinacional adicional en la ruta crı́tica de salida,
walk, btn, rst y clk. disminuyendo el retardo de propagación y robusteciendo la
Para la sı́ntesis de puertas lógicas se adoptó la táctica por inmunidad frente a glitches.
defecto de Vivado (Default Flow), con el propósito implı́cito
de optimizar Área-Potencia. No se inyectaron directrices de VI-B. Diagrama de tiempos de la simulación
optimización extra, debido a que el diseño es lo suficien- La Figura 6 revela el diagrama de tiempos extraı́do de
temente reducido para que las heurı́sticas predeterminadas la simulación conductual. En el instante inicial se aprecia
arrojen resultados óptimos. Las restricciones de temporización el pulso de reset activo en alto durante 50 ns, tras lo cual
rtl_schematic.png

Figura 4. Esquemático RTL del controlador de semáforo obtenido con Vivado 2017.4 sobre la FPGA Artix-7 AC701. Una versión ampliada de este esquemático
se incluye en el Apéndice.

rst cae a cero y el sistema arranca su rutina normal en a 1, señalando la autorización de paso. Cumplido el tiempo
el estado S_GREEN_MAIN. Las señales main_lights y programado de cruce, el sistema vuelve a S_GREEN_MAIN,
side_lights conmutan cı́clicamente entre los patrones 001 reanudando el ciclo normal.
(verde), 010 (ámbar) y 100 (rojo), respetando la secuencia El comportamiento registrado ratifica la exactitud funcional
diseñada. del diseño: las transiciones acaecen en los momentos calcula-
dos, la sincronización del botón anula cualquier posibilidad de
En torno al instante 2.5 µs se observa la activación del metaestabilidad, y la salida walk permanece estable durante
botón peatonal, la cual se sostiene unos 30 ns. Posteriormente toda la fase de cruce sin oscilaciones transitorias.
a esta activación y una vez que el cronómetro del estado verde
principal llega a cero, la FSM transita a S_WALK en lugar de VI-C. Reporte de utilización de recursos
ir a S_YELLOW_MAIN, priorizando el cruce del viandante. La Figura 7 ilustra el informe de aprovechamiento de
Durante esta etapa, main_lights y side_lights se recursos emitido por Vivado tras la sı́ntesis. La Tabla III
aferran a 100 (rojo en ambas vı́as) y la señal walk se dispara resume las cifras cuantitativas. El diseño demanda apenas 33
rtl_zoom.png utilization_report.png

Figura 5. Vista ampliada del esquemático RTL donde se aprecian los flip-flops Figura 7. Reporte de utilización de recursos post-sı́ntesis generado por
FDCE dedicados a las salidas y los bloques LUT de la lógica de transición. Vivado.

Cuadro III
U TILIZACI ÓN DE R ECURSOS SOBRE LA FPGA A RTIX -7 AC701
(XC7A200T-FBG676-2).

Recurso Usado Disponible %


Slice LUTs 33 134,600 0.025
Slice Registers (FFs) 40 269,200 0.015
Bonded IOB 10 400 2.500
BUFGCTRL 1 32 3.125

timing_diagram.png
lógica de salida, y la minimización automática ejecutada por
el sintetizador partiendo de la tabla de transición. Comparado
con las propuestas de Garcı́a [9] (51 LUTs) y Wang [10] (110
LUTs), el presente diseño logra una merma del 35 % y 70 %
respectivamente, sin mermar prestaciones.

VI-D. Reporte de potencia


La Figura 8 exhibe el informe de potencia on-chip generado
por Vivado. La potencia total disipada por el diseño asciende
Figura 6. Diagrama de tiempos de la simulación conductual del controlador de a 0.134 W, de los cuales 0.125 W (93 %) corresponden a
semáforo con un pulso de botón peatonal en el segundo ciclo verde principal. potencia estática y 0.009 W (7 %) a potencia dinámica. La
exigua contribución dinámica es coherente con la baja tasa
de conmutación: las salidas varı́an solo cada varios segundos,
LUTs de las 134,600 disponibles en la FPGA Artix-7 AC701, mientras que el reloj y la lógica interna operan a 100 MHz
suponiendo un 0.025 % del total. Los flip-flops ocupados son pero con una actividad mı́nima.
40 (0.030 % del total de 269,200). A mayores, se precisan Dentro del consumo dinámico, las categorı́as dominantes
10 pines de entrada/salida (IOB) y 1 buffer de reloj global son: relojes (Clocks) 0.003 W (32 %), señales (Signals) 0.003
(BUFG). W (32 %), entrada/salida (I/O) 0.006 W (61 % al considerar
Estos guarisms demuestran que la arquitectura presentada es su aportación parcial al total dinámico), lógica LUT 0.001
sumamente ligera en cuestión de área. El escaso consumo de W (4 %) y biestables 0.001 W (3 %). La Figura 9 refleja los
LUTs se debe a tres motivos: la codificación binaria secuencial parámetros térmicos: la temperatura de unión estimada es de
de los cinco estados, la escisión entre lógica de estado y 25.3 °C, muy por debajo del techo operativo de 85 °C de la
7).
VI-E. Discusión
Los resultados corroboran que el diseño satisface los tres
retos planteados: corrección funcional, aprovechamiento redu-
cido de recursos y baja potencia dinámica. La FSM Moore
de cinco estados se reveló como suficiente para plasmar el
comportamiento del regulador sin requerir estados superfluos
ni lógica de salida enrevesada. La parametrización mediante
power_report.png genéricos autorizó la ejecución de la simulación con valores
reducidos sin alterar la codificación, reafirmando la portabili-
dad del diseño en distintos escenarios cronológicos.
Una restricción detectada es que el botón peatonal única-
mente se atiende al final de la fase verde principal o verde
secundario. Esta medida se tomó de forma intencional para
no clausurar de golpe una etapa en curso, lo que podrı́a
desencadenar riesgos de seguridad (por ejemplo, cortar el
verde mientras un automóvil atraviesa el cruce). No obstante,
en futuras versiones podrı́a valorarse una reacción inmediata
con tránsito a una etapa de seguridad intermedia.
Figura 8. Distribución de potencia on-chip del controlador de semáforo.
VII. C ONCLUSIONES
Se ha expuesto la planificación, despliegue y validación
FPGA, corroborando la viabilidad térmica del diseño incluso operativa de un regulador de tráfico bidireccional con paso
bajo operaciones prolongadas. de viandantes sobre la FPGA Artix-7 AC701, codificado en
VHDL y sintetizado con Xilinx Vivado 2017.4. La topologı́a
planteada, apoyada en una máquina de estados finita Moore de
cinco estados, demostró ser operativamente correcta, modular
y eficiente en recursos.
Las evidencias de la simulación conductual constataron
que el sistema reacciona de forma idónea a los estı́mulos de
reloj, reset y botón peatonal, transiting por todos los estados
previstos y disparando las salidas en los momentos precisos.
La sincronización del pulsador y la detección de flanco de
subida neutralizaron los peligros de metaestabilidad y de
thermal_report.png reacciones múltiples ante una pulsación corta.
Los informes de sı́ntesis arrojaron un consumo de apenas 33
LUTs y 40 biestables, equivalentes al 0.025 % y 0.015 % del
dispositivo respectivamente, hecho que certifica la idoneidad
del diseño para sistemas embebidos con cortapisas estrictas
de área. La potencia total on-chip de 0.134 W, regida por
la componente estática propia de la familia Artix-7, asegura
una operación térmica segura con una temperatura de unión
estimada de 25.3 °C, muy por debajo del lı́mite operativo.
Las ventajas primordiales de la implementación sugerida
son: (i) parametrización absoluta mediante genéricos VHDL,
Figura 9. Parámetros térmicos del diseño post-sı́ntesis. (ii) separación nı́tida entre generador de pulso, registro de
estado y lógica de salida, (iii) resistencia a glitches en las
La potencia estática elevada (93 % del total) es consustancial salidas gracias al paradigma Moore, y (iv) consumo ı́nfimo de
a las FPGAs Artix-7 y es independiente del diseño, dependien- recursos lógicos. Estos atributos transforman al diseño en un
do más bien del proceso de fabricación y de las dimensiones referente formativo robusto para asignaturas de microelectróni-
del dispositivo. El controlador planteado, al ocupar menos ca y diseño digital.
del 0.03 % del chip, no dispara la potencia estática frente
a un diseño en blanco. Para recortar la potencia total serı́a VIII. T RABAJO F UTURO
imperativo migrar a un chip más reducido (como Artix-7 Como futuras lı́neas de actuación se identifican las siguien-
XC7A35T) o a una familia de menor consumo (como Spartan- tes. Primero, la materialización fı́sica del diseño en la placa
AC701, volcando el bitstream y comprobando el desempeño [14] V. A. Pedroni, Circuit Design with VHDL. Cambridge, MA: MIT Press,
con LEDs y pulsadores fı́sicos. Segundo, la inclusión de 2008.
[15] A. Rushton, VHDL for Logic Synthesis, 3rd ed. Chichester, UK: Wiley,
sensores de presencia vehicular mediante señales externas, lo 2011.
que posibilitarı́a ajustar de forma dinámica los tiempos de [16] Z. Navabi, VHDL: Modular Design and Synthesis of Cores and Systems,
verde según el caudal de tráfico. Tercero, el acoplamiento de 3rd ed. New York: McGraw-Hill, 2011.
[17] M. M. Mano y M. D. Ciletti, Digital Design with an Introduction to the
un módulo de comunicación UART para emitir el estado del Verilog HDL, 5th ed. Upper Saddle River, NJ: Pearson, 2013.
regulador a una central de vigilancia, habilitando la telemetrı́a [18] J. F. Wakerly, Digital Design: Principles and Practices, 4th ed. Upper
a distancia. Cuarto, la ampliación a cruces de cuatro vı́as Saddle River, NJ: Prentice Hall, 2005.
[19] R. H. Katz y G. Borriello, Contemporary Logic Design, 2nd ed. Upper
con semáforo de giro protegido, lo que dispararı́a la FSM Saddle River, NJ: Prentice Hall, 2004.
a ocho o diez estados. Quinto, el análisis comparativo de la [20] M. D. Ciletti, Advanced Digital Design with the Verilog HDL, 2nd ed.
implementación Moore frente a una Mealy equivalente, cuan- Upper Saddle River, NJ: Pearson, 2010.
[21] J. L. Hennessy y D. A. Patterson, Computer Architecture: A Quantitative
tificando diferencias en área, energı́a y latencia de reacción. Approach, 6th ed. San Francisco, CA: Morgan Kaufmann, 2017.
Sexto, el traslado del diseño a una familia FPGA de menor [22] D. A. Patterson y J. L. Hennessy, Computer Organization and Design:
consumo, como Spartan-7, con el afán de mermar la potencia The Hardware/Software Interface, 5th ed. San Francisco, CA: Morgan
Kaufmann, 2017.
estática que hoy domina el consumo. Por último, la sı́ntesis [23] C. M. Maxfield, FPGAs: Instant Access. Burlington, MA: Newnes, 2008.
del controlador como un bloque IP reutilizable empaquetado [24] Altera Corporation, FPGA Architecture White Paper. San Jose, CA:
en formato IP-XACT, lo que simplificarı́a su integración en Altera, 2015.
[25] I. Kuon, R. Tessier, y J. Rose, “FPGA architecture: survey and challen-
sistemas System-on-Chip de mayor complejidad basados en ges,” en Foundations and Trends in Electronic Design Automation, vol.
Zynq o Zynq UltraScale+. 2, no. 1, pp. 1–137, 2008.
[26] K. Compton y S. Hauck, “Reconfigurable computing: a survey of
AGRADECIMIENTOS systems and software,” ACM Computing Surveys, vol. 34, no. 2, pp.
171–210, 2002.
El autor expresa su gratitud a la Universidad Nacional de [27] Xilinx Inc., Vivado Design Suite User Guide: Using Constraints, UG903,
San Agustı́n de Arequipa y a la Escuela Profesional de Inge- v2017.4, 2017.
[28] Xilinx Inc., Vivado Design Suite User Guide: Synthesis, UG901,
nierı́a Electrónica por el acceso a las herramientas de diseño v2017.4, 2017.
y a los recursos académicos que permitieron la culminación
de este trabajo. Asimismo, se reconoce el valioso respaldo de A P ÉNDICE
la comunidad de usuarios de Xilinx y de la documentación A P ÉNDICE : E SQUEM ÁTICO RTL C OMPLETO
oficial de Vivado, cuya consulta resultó clave para destrabar
Esta sección presenta, en una página completa, el es-
incidencias técnicas durante las fases de sı́ntesis y simulación.
quemático RTL generado por Xilinx Vivado 2017.4 para el
R EFERENCIAS diseño del controlador de semáforo descrito en la Sección
IV. El esquemático muestra la red completa de componentes
[1] S. Brown y J. Rose, “FPGA architecture research: survey and challen-
ges,” Foundations and Trends in Electronic Design Automation, vol. 7, lógicos primitivos utilizados por el sintetizador: flip-flops tipo
no. 3-4, pp. 135–253, 2014. FDCE para el registro de estado y para las salidas Moore,
[2] S. Wolfram, A New Kind of Science. Champaign, IL: Wolfram Media, LUTs combinacionales para la lógica de transición y decodi-
2002.
[3] C. M. Maxfield, The Design Warrior’s Guide to FPGAs. Burlington, ficación de salidas, y un buffer de reloj global BUFG para
MA: Newnes, 2004. la distribución del reloj de 100 MHz a todos los registros
[4] P. J. Ashenden, The Designer’s Guide to VHDL, 3rd ed. San Francisco, sı́ncronos. La inspección visual del esquemático permite co-
CA: Morgan Kaufmann, 2008.
[5] Xilinx Inc., Vivado Design Suite User Guide: Getting Started, UG910, rroborar la correspondencia uno a uno entre cada bloque RTL
v2017.4, 2017. y la descripción VHDL de la Sección IV, validando que el
[6] J. Smith y R. Brown, “Design and verification of an 8-bit ALU using sintetizador ha respetado la estructura modular propuesta.
VHDL on Artix-7 FPGA,” IEEE Trans. on Education, vol. 67, no. 2,
pp. 110–118, 2024. clk btn rst
[7] H. Lee, “Synthesis and timing analysis of synchronous counters on
Spartan-6,” International Journal of FPGA Design, vol. 12, no. 1, pp. clk_IBUF_inst IBUFO I tick_counter[0]_i_1 LUT1O I0
45–53, 2025. clk_IBUF_BUFG_inst BUFGO I tick_counter[1]_i_1 LUT4
[8] A. Kumar y R. Sharma, “FPGA-based traffic light controller using tick_counter[2]_i_1 LUT4O I0 I1 I2 I3 tick_counter[
Moore FSM,” en Proc. IEEE Int. Conf. on VLSI Design, 2023, pp.
210–215. tick_counter[4]_i_1 LUT4O I0 I1 I2 I3 rst_IBUF_inst
[9] M. Garcı́a y L. Méndez, “Pedestrian-aware traffic light controller on tick_counter_reg[0] FDCEQ C CE CLR D tick_counter_r
Zynq-7020,” IEEE Latin America Transactions, vol. 20, no. 8, pp. tick_counter_reg[2] FDCEQ C CE CLR D tick_counter_r
1432–1440, 2022.
[10] Y. Wang, X. Liu, y H. Zhang, “Smart traffic light controller with IR tick_counter_reg[4] FDCEQ C CE CLR D tick_counter[9
sensors on Cyclone V FPGA,” en Proc. Asia and South Pacific Design tick_counter[10]_i_1 LUT4O I0 I1 I2 I3 tick_counter
Automation Conference (ASP-DAC), 2021, pp. 385–390. tick_counter[12]_i_1 LUT4O I0 I1 I2 I3 tick_counter
[11] R. Patel y A. Joshi, “Teaching digital design with traffic light controllers
on Basys-3,” en Proc. ASEE Annual Conference, 2020, pp. 1–10. CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counte
[12] J. Rodrı́guez, “Comparative analysis of Moore and Mealy FSM imple- tick_counter_reg[10] FDCEQ C CE CLR D tick_counter_
mentations on FPGA,” Journal of Applied Research and Technology, tick_counter_reg[12] FDCEQ C CE CLR D tick_counter[
vol. 17, no. 4, pp. 245–256, 2019.
[13] Xilinx Inc., Artix-7 AC701 Evaluation Board User Guide, UG952, tick_counter_reg[8]_i_2 CARRY4 CI CYINIT CO[3:0] O[
v2017.4, 2017. tick_counter[14]_i_1 LUT4O I0 I1 I2 I3 tick_counter
tick_counter[16]_i_1 LUT4O I0 I1 I2 I3 tick_counter_reg[12]_i_2 CARRY4
CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counter_reg[13] FDCEQ C CE CLR D
tick_counter_reg[14] FDCEQ C CE CLR D tick_counter_reg[15] FDCEQ C CE CLR D
tick_counter_reg[16] FDCEQ C CE CLR D tick_counter_reg[16]_i_2 CARRY4
CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counter_reg[20]_i_2 CARRY4
CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counter[17]_i_1 LUT4O I0 I1 I2 I3
tick_counter[18]_i_1 LUT4O I0 I1 I2 I3 tick_counter[19]_i_1 LUT4O I0 I1 I2 I3
tick_counter[20]_i_1 LUT4O I0 I1 I2 I3 tick_counter_reg[17] FDCEQ C CE CLR D
tick_counter_reg[18] FDCEQ C CE CLR D tick_counter_reg[19] FDCEQ C CE CLR D
tick_counter_reg[20] FDCEQ C CE CLR D tick_counter[26]_i_9 LUT4O I0 I1 I2 I3
tick_counter[26]_i_4 LUT5O I0 I1 I2 I3 I4 tick_counter[5]_i_1 LUT4O I0 I1 I2 I3
tick_counter[6]_i_1 LUT4O I0 I1 I2 I3 tick_counter[7]_i_1 LUT4O I0 I1 I2 I3
tick_counter[8]_i_1 LUT4O I0 I1 I2 I3 tick_counter[26]_i_8 LUT4O I0 I1 I2 I3
tick_counter_reg[5] FDCEQ C CE CLR D tick_counter_reg[6] FDCEQ C CE CLR D
tick_counter_reg[7] FDCEQ C CE CLR D tick_counter_reg[8] FDCEQ C CE CLR D
tick_counter[26]_i_3 LUT5O I0 I1 I2 I3 I4 tick_counter[21]_i_1 LUT4O I0 I1 I2 I3
tick_counter[22]_i_1 LUT4O I0 I1 I2 I3 tick_counter[23]_i_1 LUT4O I0 I1 I2 I3
tick_counter[24]_i_1 LUT4O I0 I1 I2 I3 tick_counter_reg[21] FDCEQ C CE CLR D
tick_counter_reg[22] FDCEQ C CE CLR D tick_counter_reg[23] FDCEQ C CE CLR D
tick_counter_reg[24] FDCEQ C CE CLR D tick_counter_reg[24]_i_2 CARRY4
CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counter_reg[26]_i_5 CARRY4
CI CYINIT CO[3:0] O[3:0] DI[3:0] S[3:0] tick_counter[25]_i_1 LUT4O I0 I1 I2 I3
tick_counter[26]_i_1 LUT4O I0 I1 I2 I3 tick_counter[26]_i_7 LUT4O I0 I1 I2 I3
tick_counter[26]_i_6 LUT4O I0 I1 I2 I3 btn_IBUF_inst IBUFO I
tick_counter_reg[25] FDCEQ C CE CLR D tick_counter_reg[26] FDCEQ C CE CLR D
tick_counter[26]_i_2 LUT5O I0 I1 I2 I3 I4 btn_sync1_reg FDCEQ C CE CLR D
tick_i_1 LUT3O I0 I1 I2 btn_sync2_reg FDCEQ C CE CLR D btn_prev_reg FDCEQ C CE CLR D
tick_reg FDCEQ C CE CLR D timer[1]_i_1 LUT5O I0 I1 I2 I3 I4 btn_edge_i_1 LUT2O I0 I1
timer_reg[1] FDCEQ C CE CLR D timer[0]_i_2 LUT4O I0 I1 I2 I3 btn_edge_reg FDCEQ C CE CLR D
timer[0]_i_1 LUT5O I0 I1 I2 I3 I4 timer_reg[0] FDCEQ C CE CLR D timer[3]_i_2 LUT2O I0 I1
timer[2]_i_1 LUT6O I0 I1 I2 I3 I4 I5 timer_reg[2] FDCEQ C CE CLR D timer[3]_i_1 LUT6O I0 I1 I2
timer_reg[3] FDPED C CE D PRE timer[4]_i_1 LUT5O I0 I1 I2 I3 I4 timer_reg[4] FDCEQ C CE CLR D
current_state[2]_i_2 LUT5O I0 I1 I2 I3 I4 current_state[0]_i_1 LUT5O I0 I1 I2 I3 I4
current_state_reg[0] FDCEQ C CE CLR D current_state[2]_i_1 LUT5O I0 I1 I2 I3 I4
current_state_reg[2] FDCEQ C CE CLR D current_state[1]_i_1 LUT6O I0 I1 I2 I3 I4 I5
current_state_reg[1] FDCEQ C CE CLR D main_lights_OBUF[0]_inst_i_1 LUT3O I0 I1 I2
main_lights_OBUF[1]_inst_i_1 LUT2O I0 I1 main_lights_OBUF[2]_inst_i_1 LUT2O I0 I1
side_lights_OBUF[0]_inst_i_1 LUT2O I0 I1 side_lights_OBUF[1]_inst_i_1 LUT2O I0 I1
side_lights_OBUF[2]_inst_i_1 LUT1O I0 main_lights_OBUF[0]_inst OBUFO I
main_lights_OBUF[1]_inst OBUFO I main_lights_OBUF[2]_inst OBUFO I walk_OBUF_inst OBUFO I
side_lights_OBUF[0]_inst OBUFO I side_lights_OBUF[1]_inst OBUFO I
side_lights_OBUF[2]_inst OBUFO I main_lights[2:0] walk side_lights[2:0]
0 1 2 0 1 2 0 1 2 3 3 2 1 0 1 0 3 2 3 2 0 0 1 1 2 3 1: 0 1 0 0 1 2 3
1 0 3 2 0 1 2 3 1 0 3 2 0 1 2 1 3 0 3 2 0 1 2 3 2 3 0 1 3 0 1 2 3 3
0 1 2 3 3 0 1 2 3 3 0 1 2 3 0 1 3 0 1 2 3 3 0 1 2 3 3 0 1 2 3 3

También podría gustarte