Skip to content

Configurable two-way traffic light controller implemented in Verilog HDL using a Moore FSM, parameterized 1-second timebase, and clean synchronous design with independent verification.

Notifications You must be signed in to change notification settings

adaptableCoder/Traffic-Light-Controller-Verilog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Configurable Traffic Light Controller (Verilog)

A synthesizable, configurable traffic light controller implemented in Verilog HDL.

Features

  • Two-way intersection (NS / EW)
  • Moore FSM with synchronous reset
  • Parameterized 1-second timebase
  • Programmable green and yellow durations
  • Clean separation of control, timing, and top-level wiring

Architecture

  • traffic_light_controller.v: FSM, timer, output decode
  • timebase_1s.v: 1-second tick generator (clock-agnostic)
  • top_module.v: system integration

Verification

  • Independent testbenches for:
    • Timebase
    • Traffic controller
    • Full system
  • Waveforms included in sim/waveforms

Tools

  • Vivado (xsim)
  • Verilog HDL

Notes

This design avoids gated clocks and uses a clean enable-based timing model. It is intended for educational purposes and can be adapted for real-world applications with additional features like pedestrian signals or emergency vehicle preemption.

Design Notes

For a detailed explanation of the architecture, design decisions, timing strategy, FSM structure, and verification approach, see docs/design_notes.md.

This document contains the complete technical rationale behind the project and is recommended reading for anyone looking to fully understand the design.

Documentation

About

Configurable two-way traffic light controller implemented in Verilog HDL using a Moore FSM, parameterized 1-second timebase, and clean synchronous design with independent verification.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published