DebanjonDas/Intelligent-Traffic-Light-Controller

GitHub: DebanjonDas/Intelligent-Traffic-Light-Controller

基于 Verilog HDL 的自适应交通灯控制器,通过密度感知计时、紧急优先和行人安全等机制替代传统固定配时方案。

Stars: 0 | Forks: 0

# 🚦 智能交通灯控制器 一个使用 **Verilog HDL** 设计和验证的自适应、模块化数字硬件系统。该控制器用动态的实时传感能力取代了原始的固定定时器系统——整合了自适应交通密度计时、紧急车辆路由、行人处理以及节能夜间模式。 ## 📌 项目概述 该项目的目标是使用分层结构架构,建模一个优化的、可用于生产环境的交通管理枢纽。系统主动处理道路状况(传感器数据),以最大化交通吞吐量并最小化路口等待时间。 ### 主要功能 * 📊 **基于密度的计时:** 根据实际车辆排队情况,动态计算绿灯间隔(10秒至60秒)。 * 🚑 **紧急车辆优先:** 自动覆盖标准周期,为紧急车辆开辟通道,并通过检查排队密度来解决同时发起的请求。 * 🚶 **行人过街系统:** 通过专用的锁存控制器锁存行人请求,在完整周期结束时插入安全的步行阶段(`PED_WALK`)。 * 🌙 **夜间模式运行:** 暂停正常的状态序列,通过结构化硬件时钟分频器在所有路线上闪烁警告黄灯。 * ⚡ **严格的功能验证:** 通过涵盖重叠的异步事件触发的广泛 testbench 进行了验证。 ## 🏗️ 模块分解 该设计采用了**分层和模块化的方法**,将任务分配给专门的计算块和独立的有限状态机(FSM)控制引擎。 * **`intelligent_traffic_controller`**:顶层封装模块,负责管理内部网络路由和结构化模块实例化。 * **`Traffic_fsm`**:中央控制器,根据计时器状态、紧急标志和模式输入管理状态转换。 * **`timer`**:硬件倒计时块,根据动态注入的持续时间处理精确的延迟生成。 * **`density_processor`**:组合查找矩阵,将计算出的车辆数映射到最佳相位延迟。 * **`emergency`**:优先级排序和路由矩阵,处理活动的紧急覆盖和密度仲裁。 * **`pedestrian_controller`**:时序事件捕获器,确保行人请求被锁存并安全保留,直到被服务。 * **`light_output_decoder`**:将当前状态向量直接映射到标准驱动信号,同时结合用于低功耗操作的活动脉冲宽度切换闪烁例程。 ## 🚦 有限状态机(FSM)规范 该引擎依赖于一个包含 9 个结构化操作状态的稳健的 Moore 型 FSM。 | 状态指标 | 十六进制值 | 激活输出映射 | 退出触发条件 | | :--- | :---: | :--- | :--- | | **`NS_G`** | `4'b0000` | 南北绿灯,东西红灯 | `done`(动态密度时间) | | **`NS_Y`** | `4'b0001` | 南北黄灯,东西红灯 | `done`(固定 5 秒时间) | | **`ALL_R1`** | `4'b0010` | 南北红灯,东西红灯 | `done`(固定 2 秒清空时间) | | **`EW_G`** | `4'b0011` | 南北红灯,东西绿灯 | `done`(动态密度时间) | | **`EW_Y`** | `4'b0100` | 南北红灯,东西黄灯 | `done`(固定 5 秒时间) | | **`ALL_R2`** | `4'b0101` | 南北红灯,东西红灯 | `done` $\rightarrow$ 分支至 `PED_WALK` 或 `NS_G` | | **`PED_WALK`**| `4'b0110` | 全部路线红灯,行人通行高电平 | `done`(固定 15 秒通行时间) | | **`EMERGENCY`**| `4'b0111`| 优先路线绿灯,受阻路线红灯 | `!emergency_present`(异步释放) | | **`NIGHT`** | `4'b1000` | 同步闪烁黄灯信号 | `!night_mode` | ### 自适应密度映射逻辑 `density_processor` 使用以下组合边界动态调整计时: * **密度 $\le$ 5:** 绿灯时间 = **10秒** * **密度 $\le$ 15:** 绿灯时间 = **20秒** * **密度 $\le$ 30:** 绿灯时间 = **40秒** * **密度 $>$ 30:** 绿灯时间 = **60秒** ## 💻 仿真与验证策略 该设计已通过高覆盖率的 testbench(`tb`)进行了验证,重点测试了异步系统事件和极端情况下的压力测试。 ### 测试矩阵概况 仿真环境迫使硬件经历几个核心操作场景: 1. **标准序列循环:** 在低车辆密度条件下运行完整的流水线周期。 2. **行人锁存与服务:** 在活动车辆窗口期间插入任意的行人请求按钮按下动作,并测试安全相位转换。 3. **紧急中断与仲裁:** * 触发单独的南北和东西紧急覆盖。 * 模拟双重同时紧急请求,以验证基于竞争车辆队列的状态仲裁行为。 4. **动态密度更改:** 在周期中间修改交通密度寄存器,以证明系统能实时重新计算计时。 5. **夜间模式进入/退出:** 强制立即暂停循环以运行闪烁模式,并在退出时干净利落地返回清空周期。 ### 如何在本地运行仿真 确保您安装了 HDL 编译器(如 **Icarus Verilog**)和波形查看器(**GTKWave**)。 ``` # 克隆 repository git clone [https://github.com/DebanjonDas/intelligent-traffic-controller.git](https://github.com/yourusername/intelligent-traffic-controller.git) cd intelligent-traffic-controller # 编译 source files 和 testbench iverilog -o traffic_sim intelligent_traffic_controller.v # 运行 simulation executable 以生成 VCD dumps vvp traffic_sim # 启动 wave viewer 以检查 signals gtkwave traffic.vcd ``` ## 📊 仿真与架构图库 以下是编译后的状态路由配置,以及通过 GTKWave 生成的功能验证波形。 ### 功能波形验证 ![GTKWave 仿真波形](https://raw.githubusercontent.com/DebanjonDas/Intelligent-Traffic-Light-Controller/main/) ### 架构设计结构 本节捕获了跨您的设计阶段映射的 RTL 架构拓扑和块交互。 | 流水线框图 (1–4) | 流水线框图 (5–7) | | :---: | :---: | | ![设计阶段 1]() | ![设计阶段 5]() | | ![设计阶段 2]() | ![设计阶段 6]() | | ![设计阶段 3]() | ![设计阶段 7]() | | ![设计阶段 4]() | *架构布局结束* | ### 测试套件仿真输出 详细说明状态转换、紧急覆盖和验证成功日志的实时编译终端打印输出。 | 验证日志 | 日志概况配置 | | :---: | :--- | | ![输出日志 1]() | 完整的测试套件初始化和基线循环。 | | ![输出日志 2]() | 行人锁存处理和紧急路由检查。 | | ![输出日志 3]() | 同步密度压力测试和安全退出验证。 |
标签:Verilog, 交通信号控制, 数字电路设计, 智能交通, 有限状态机, 硬件开发