文档详情

EDA实验报告---交通灯.doc

发布:2017-12-16约4.37千字共7页下载文档
文本预览下载声明
Harbin Institute of Technology EDA自主设计实验报告 姓 名: 学 号: 班 级: 学 院: 课程名称: EDA技术与实验 实验名称: 交通灯的设计 实验日期: 2013.11.24 交通灯的设计 一.实验目的 通过用verilog hdl语言实现十字路口交通灯的设计,做到熟练掌握和应用verilog hdl语言; 进一步熟悉QuartusⅡ软件和FPGA的开发过程,练习调试电路,学会处理遇到的问题。 二.实验仪器 QuartusⅡ集成开发软件; Altera FPGA开发板; PC机一台。 三.设计过程 设计目的 本实验旨在模拟十字路口交通信号灯的工作过程,在实验板上选取的两组(每组三个)LED代替交通信号灯,设计一个交通信号灯控制器。两路LED灯的亮灭采用对应方式,即一路红灯亮10秒对应二路绿灯先亮7秒,黄灯再亮3秒;然后二路红灯亮10秒,对应一路绿灯亮7秒,黄灯亮3秒,即采用两路循环亮灯方式,两路亮灯对应时间如下表所示。每次亮灯时,倒计时时间通过数码管显示。 1 2 3 4 一路交通灯 红灯7秒 红灯3秒 绿灯7秒 黄灯3秒 二路交通灯 绿灯7秒 黄灯3秒 红灯7秒 红灯3秒 交通灯设计示意图如图1所示 图1 交通灯设计示意图 设计程序简介 本次交通灯设计的程序分为顶层模块和底层模块两部分,通过顶层模块调用底层模块实现本次设计的全部功能。 顶层模块。顶层模块控制交通信号灯的亮灭以及每种信号灯亮 顺序和时间。对应程序如下: /* 信号定义与说明: CLK: 为同步时钟; EN: 使能信号,为1的话,则控制器开始工作; LAMPA: 控制A方向三盏灯的亮灭;其中,LAMPA0—LAMPA2 ,分别控制A方向的绿灯、黄灯和红灯; LAMPB: 控制B方向三盏灯的亮灭;其中,LAMPB0—LAMPB2 ,分别控制B方向的绿灯、黄灯和红灯; ACOUNT: 用于A方向灯的时间显示,8位,可驱动两个数码管; BCOUNT: 用于B方向灯的时间显示,8位,可驱动两个数码管。 */ module control(CLK50,EN,LAMPA,LAMPB,aten,aone,bten,bone); output[6:0] aten,aone,bten,bone; output[2:0] LAMPA,LAMPB; //LAMP 绿色、黄色和红色 input CLK50,EN; reg[7:0] numa,numb; //分成高低四位 用来表示数码管数字 reg tempa,tempb; //工作状态指示位 reg[2:0] counta,countb; //状态转换 reg[7:0] ared,ayellow,agreen,bred,byellow,bgreen; //存储灯内部的时间 reg[2:0] LAMPA,LAMPB; wire CLK; always@(EN) begin if(!EN) begin //设置各种灯的计数器的预置数 ared =8d10; //10秒 ayellow =8d3; //3秒 agreen =8d7; //7秒 bred =8d10; //10秒 byellow =8d3; //3秒 bgreen =8d7; //7秒 end end always@(posedge CLK) //该进程控制A方向的三种灯 begin if(EN) begin if(!tempa) begin tempa=1; case(counta) //控制亮灯的顺序 0: begin numa = agreen; LAMPA=2; counta=1; end 1: begin numa=ayellow; LAMPA=4; counta=2; end 2: begin numa=ared; LAMPA=1; counta=0; end default: LAMPA=0; endcase end else begin //倒计时 if(numa1) begin if(numa[3:0]=
显示全部
相似文档