可编程式逻辑器件设计试验报告实验四交通灯控制器.doc_第1页
可编程式逻辑器件设计试验报告实验四交通灯控制器.doc_第2页
可编程式逻辑器件设计试验报告实验四交通灯控制器.doc_第3页
可编程式逻辑器件设计试验报告实验四交通灯控制器.doc_第4页
可编程式逻辑器件设计试验报告实验四交通灯控制器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

昆明理工大学信息工程与自动化学院学生实验报告( 20122013 学年 第 2 学期 )课程名称:可编程逻辑器件 开课实验室:信自楼504 2013年5 月3日 年级、专业、班计科102班学号201010405姓名成绩实验项目名称四、交通灯控制器指导教师江虹 教师评语该同学是否了解实验原理:A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、实验目的1. 初步掌握Verilog HDL语言的设计方法2利用Verilog HDL完成一个交通灯控制器的设计及仿真二、实验内容利用可编程逻辑器件设计一个简易的交通灯控制器,实现一个具有两个方向,共8个灯并具有时间倒计时功能的交通灯功能。三、实验原理一个十字路口的交通一般分为两个方向,每个方向具有红、绿和黄3种灯,另外每个方向还应具有左转灯,故每个方向具有4个灯。交通灯控制器为每个灯的状态设计倒计时数码管显示功能。可以为每个灯的状态设置一个初始值,灯状态改变后,开始按照这个初始值倒计时。倒计时归零后,灯的状态将会改变至下一个状态。两个方向灯的状态是相关的。即每个方向灯的状态影响着另外一个方向的灯的状态,这样才能协调两个方向的车流。下表所示为两个方向(A、B)灯的状态对应情况。交通灯两个方向灯状态对应表方向A方向B红灯亮黄灯亮或绿灯亮直行绿灯亮红灯亮黄灯亮红灯亮左转灯红灯亮实际交通系统中,直行绿灯、左转绿灯和红灯的变化之间都应该有黄灯作为缓冲,以保证交通安全。假设A方向 黄灯亮的持续时间为5s 直行绿灯亮的持续时间为40s 左转绿灯亮的持续时间为15s 则有B方向红灯亮的持续时间为(直行绿灯+黄灯+左转绿灯+黄灯)=65s 假设B方向 黄灯亮的持续时间为5s直行绿灯亮的持续时间为30s左转绿灯亮的持续时间为15s则有A方向红灯亮的持续时间为(直行绿灯+黄灯+左转绿灯+黄灯)=55s具体时间参数可根据需要进行修改,但一定要保证两个方向的灯的状态符号上表的要求。四、实验方法采用文本编辑法,利用Verilog HDL语言描述交通灯控制器。由下面的代码实现:module traffic(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT);/端口说明output7:0 ACOUNT,BCOUNT;output3:0 LAMPA,LAMPB;input CLK,EN;/内部信号说明reg7:0 numa,numb;/ACOUNT和BCOUNT的内部信号reg tempa,tempb;reg2:0 counta,countb;/方向A和方向B的灯的状态reg7:0 ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;reg3:0 LAMPA,LAMPB;/设置各交通灯的持续时间初始化值,红灯的值由另一个方向的黄灯和绿灯计算得出。always (EN)if(!EN) begin /使能信号EN无效时,对交通灯的计数值进行初始化ared =8d55; /55 秒 = 30 + 5 + 15 + 5ayellow =8d5; /5 秒agreen =8d40; /40 秒aleft =8d15; /15 秒bred =8d65; /65 秒 = 40 + 5 + 15 + 5byellow =8d5; /5 秒bleft =8d15; /15 秒bgreen =8d30; /30 秒endassign ACOUNT=numa;/8位数码管输出assign BCOUNT=numb;/8位数码管输出/控制A方向四种灯的模块always (posedge CLK) beginif(EN) begin/使能有效时,交通灯开始工作if(!tempa) begintempa=1;case(counta) /控制灯状态的顺序0: begin/状态0numa=agreen;/直行绿灯亮LAMPA=2;/输出0010counta=1;/进入下一个状态end1: begin/状态1numa=ayellow;/黄灯亮LAMPA=4;/输出0100counta=2;/进入下一个状态end2: begin/状态2numa=aleft;/左转绿灯亮LAMPA=1;/输出0001counta=3;/进入下一个状态end3: begin/状态3numa=ayellow;/黄灯亮LAMPA=4;/输出0100counta=4;/进入下一个状态end4: begin/状态4numa=ared;/红灯亮LAMPA=8;/输出1000counta=0;/进入下一个状态(状态0)enddefault:/默认状态LAMPA1)/判断倒计时未归零时分别对高地位进行递减if(numa3:0=0) beginnuma3:0=4b1001;numa7:4=numa7:4-1;endelsenuma3:0=numa3:0-1;if (numa=2)tempa=0;/倒计时结束,返回灯状态变化判断,将进入下一个状态endendelse beginLAMPA=4b1000;/使能无效时,红灯亮counta=0;/返回方向A的状态0(绿灯状态)tempa=0;/进入状态变化判断endend/控制B方向四种灯的模块,模块的语言描述与方向A的描述基本一致,不再重复注释,always (posedge CLK) begin if (EN) beginif(!tempb) begintempb=1;case (countb) 0: beginnumb=bred;LAMPB=8;countb=1;end1: beginnumb=bgreen;LAMPB=2;countb=2;end2: beginnumb=byellow;LAMPB=4;countb=3;end3: beginnumb=bleft;LAMPB=1;countb=4;end4: beginnumb=byellow;LAMPB=4;countb=0;enddefault:LAMPB1)if(!numb3:0) beginnumb3:0=9;numb7:4=numb7:4-1;endelsenumb3:0=numb3:0-1;if(numb=2)tempb=0;endendelse beginLAMPB=4b1000;tempb=0;countb=0;endendendmodule端口信号的定义及说明:l CLK:同步时钟l EN:使能信号,高电平时控制器开始工作l LAMPA:控制A方向4盏灯的状态;其中LAMPA0LAMPA3分别控制A方向的左转灯、绿灯、黄灯和红灯l LAMPB:控制B方向4盏灯的状态;其中LAMPB0LAMPB3分别控制B方向的左转灯、绿灯、黄灯和红灯l ACOUNT:用于A方向灯的时间显示,8位,可驱动两个数码管l BCOUNT:用于B方向灯的时间显示,8位,可驱动两个数码管五、仿真结果功能仿真 时序仿真六、实验总结:这次试验要求初步掌握Verilog HDL语言的设计方法,并利用Verilog HDL完成一个交通灯控制器的设计及仿真。在这个试验中我需要了解的常识是:一个十字路口的交通一般分为两个方向,每个方向具有红、绿和黄3种灯,另外每个方向还应具有左转灯,故每个方向具有4个灯。交通灯控制器为每个灯的状态设计倒计时数码管显示功能。可以为每个灯的状态设置一个初始值,灯状态改变后,开始按照这个初始值倒计时。倒计时归零

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论