来源:实验中心管理员 发布时间:2017-03-08 作者: 阅读数:8869次
实验题目 | 智能交通灯控制器设计 | |||
实验性质 | 综合设计性 | 实验学时 | 2 | |
面向专业 | 电信学院所有专业 | 开课学期 | 第2学期 | |
开课单位 | 电工电子实验教学中心 | 实验地点 | 电子技术EDA实验室(404) | |
实验目的 | 1、学会较复杂数字电路系统的设计,熟悉MAX+plusII并掌握用硬件语言描述有限状态机的方法。 2、学习并掌握基于MAX+plusII的电路系统多层次的设计方法
| |||
实验仪器 | 计算机
| |||
实验原理 | 利用MAX+plusII的原理图输入方法设计时序较复杂的电路。 | |||
预习要求
| EDA实验使学生了解通过软件仿真的方法可以高效的完成硬件电路设计的计算机技术,初步掌握自顶向下的设计方法、EDA设计流程等,会用原理图输入和硬件描述语言VHDL设计逻辑电路。
| |||
实验内容 | 1、 根据交通灯“红灯停,绿灯行,黄灯提醒”,按下图要求,可以采用8个状态机来设计用Verilog或VHDL完成上述交通灯控制器的设计,并进行功能仿真。 2、 设计一个十字路口智能交通灯控制器,AB方向和CD方向各有红灯、黄灯、绿灯和左转灯四种类型灯,四种灯按照合理的顺序依次亮灭,并能够将对应灯亮的时间以倒计时形式显示出来。 3、利用三个计数器,分别对应绿灯、黄灯、左转灯。利用三个信号监测3种灯的计数是否完毕。当检测到信号发生变化时状态就转换到下一个状态,即完成灯亮的变化。在显示方面,AB方向和CD方向各需要四个数码管显示,记数输出采用BCD码,每个方向红灯亮的时间=每个方向绿灯(64s)+2次黄灯(2*4s)+左转灯(15s)的时间。
| |||
实验方法 |
1、设计交通灯的状态转移表 2、状态机和计数器的部分程序 module traffic_ctr(clk,rest,lamp_ab,lamp_cd); input clk;//标准时钟信号 input rest;//系统复位信号 output[3:0]lamp_ab,lamp_cd;//灯的顺序是绿灯、黄灯、左转灯、红灯 reg[5:0]count_green;//绿灯寄存器变量,灯亮时间为64s reg[1:0]count_yellow;//黄灯寄存器变量,灯亮时间为4s reg[3:0]count_turn;//转向灯寄存器变量,灯亮时间为16s reg[2:0]pres_state,next_state;//状态机变量 reg[3:0]lamp_ab,lamp_cd;//对应灯的寄存器变量 wire flag1,flag2,flag3;//作为进行下一个状态标志 assign flag1=(count_green==0)?1:0; assign flag2=(count_yellow==0)?1:0; assign flag3=(count_turn==0)?1:0; always@(flag1 or flag2 or flag3 or rest) begin if(!rest) pres_state<=0; else pres_state<=next_state; end always@(posedge clk) begin case(pres_state) 0://AB方向绿灯亮 begin if(!flag1) begin lamp_ab<=4'b1000; lamp_cd<=4'b0001; count_green<=count_green+1; end else begin next_state<=1; count_green<=count_green+1; end end 1://AB方向黄灯亮 begin if(!flag2) begin lamp_ab<=4'b0100; lamp_cd<=4'b0001; count_yellow<=count_yellow+1; end else begin next_state<=2; count_yellow<=count_yellow+1; end end 2://AB方向转向灯亮 begin if(!flag3) begin lamp_ab<=4'b0010; lamp_cd<=4'b0001; count_turn<=count_turn+1; end else begin next_state<=3; count_turn<=count_turn+1; end end 3://AB方向黄灯亮 begin if(!flag2) begin lamp_ab<=4'b0100; lamp_cd<=4'b0001; count_yellow<=count_yellow+1; end else begin next_state<=4; count_yellow<=count_yellow+1; end end 4://CD方向绿灯亮 begin if(!flag1) begin lamp_ab<=4'b0001; lamp_cd<=4'b1000; count_green<=count_green+1; end else begin next_state<=5; count_green<=count_green+1; end end 5://CD方向黄灯亮 begin if(!flag2) begin lamp_ab<=4'b0001; lamp_cd<=4'b0100; count_yellow<=count_yellow+1; end else begin next_state<=6; count_yellow<=count_yellow+1; end end 6://CD方向转向灯亮 begin if(!flag3) begin lamp_ab<=4'b0001; lamp_cd<=4'b0010; count_turn<=count_turn+1; end else begin next_state<=7; count_turn<=count_turn+1; end end 7://CD方向黄灯亮 begin if(!flag2) begin lamp_ab<=4'b0001; lamp_cd<=4'b0100; count_yellow<=count_yellow+1; end else begin next_state<=0; count_yellow<=count_yellow+1; end end endcase end endmodule 3、 仿真波形
| |||
数据及处理 | 1、详细叙述文本输入法的设计流程。 2、设计的计数器和译码器为底层文件,完成顶层设计,并对顶层文件进行功能仿真详细步骤。 | |||
思考题 | 1、 分析输出的仿真结果。 2、 说明时序逻辑电路的设计步骤。 3、 说明用硬件语言描述时序逻辑电路有限状态机的设计流程。 | |||
实验报告要求 | 实验报告的书写要包括以下几部分内容: 1、实验目的;实验原理;实验内容;实验步骤及方法;实验仿真;实验结论;思考题解答,详细叙述交通控制灯设计步骤和详细设计流程。 2、给出实验参考程序,顶层原理图,仿真波形图,并对仿真结果进行分析。 3、实验的结论和体会。
| |||
教师签字: