方案一
采用VHDL语言直接编写,实现交通灯指挥 功能。但此方案编写复杂且困难,开发时 间较长。编译后,不便读懂,找出错误很 困难。
设计方案的对比
方案二
采用模块层次化设计,将此设计分为四个 模块:计时模块,状态控制模块,信号灯 显示模块,数码扫描显示模块。将四个模 块再分别用VHDL语言编写成,做成原理图 模块,用原理图输入法做整个设计的顶层 文件。此方案设计方便、简单,方法易懂、 易操作,也易于寻找程序中的错误,故我 们采用此方案。
控制模块设计
控ቤተ መጻሕፍቲ ባይዱ模块
通过对时钟的计数控制运行状态的改变,输出相 应的状态变化信息、递减信号和置数信号给输出 模块进行显示同时输出绿灯闪烁控制信号给绿灯 闪烁控制模块;出现紧急情况时停止计数和状态 的变化,解除紧急状态后继续原来的运行状态。
控制模块
通过源程序的编译得到其生成模块
仿真波形
仿真波形如下
功能模块说明
交通灯控制器的信号说明
reset:系统复位; clk:计时和闪烁频率 clk1:扫描频率; urgen:紧急情况既特殊状态信号,高电平代表紧急情况出现; state:状态变化信号,00代表东西绿灯,南北红灯;01代表东西黄灯,南北红
灯;10代表东西红灯,南北绿灯;11代表东西红灯,南北黄灯; sub1,sub2:东西和南北方向的计数器减1信号; set1,set2:东西和南北方向的计数器置数信号; setg1,setg2: 东西和南北方向的绿灯闪烁信号; r1,g1,y1:代表东西方向的红灯、绿灯和黄灯; led1:代表东西方向的倒计时显示; r2,g2,y2:代表南北方向的红灯、绿灯和黄灯; led2: 代表南北方向的倒计时显示;
总体设计框图