收藏 分销(赏)

EDA课程设计-用Verilog-HDL语言编写-红绿灯控制程序.doc

上传人:仙人****88 文档编号:11721976 上传时间:2025-08-09 格式:DOC 页数:9 大小:84.05KB 下载积分:10 金币
下载 相关 举报
EDA课程设计-用Verilog-HDL语言编写-红绿灯控制程序.doc_第1页
第1页 / 共9页
EDA课程设计-用Verilog-HDL语言编写-红绿灯控制程序.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
成绩: XI’AN UNIVERSITY OF TECHNOLOGY EDA综合实践 所在院系 自动化与信息工程学院 专业名称 电子信息科学与技术 班级 电技111 题目 红绿灯设计 指导教师 XXXX 成员 XXX 完成时间 2014年元月 一、设计任务及要求: 设计任务: 红绿灯控制程序 要 求: 1、有倒计时显示 2、红黄绿灯三个状态,根据现实红绿灯的转换设计逻辑关系设计 3、具有复位控制按钮,动作时,复位到初始状态 1、实物验收评语及成绩(40%): 2、答辩评语及成绩(30%): 3、报告评语及成绩(30%): 二、 红绿灯原理及设计思路 设计思路: 为了实现两个方向红绿灯循环亮灭的过程,假设该过程如下: 起始(st0)东西方向绿灯亮(green1=1),南北方向红灯亮(red2=1),这个过程持续3个clock周期;然后(st3)东西方向黄灯亮,绿灯灭,南北方向红灯仍然亮着,这个过程持续1个clock;然后(st4)东西方向红灯亮,南北方向绿灯亮,这个过程持续3个clock;然后南北(st7)方向黄灯亮,东西方向红灯仍然亮着,这个过程持续一个clock;接下来就回到起始(st0)的状态进行循环。 此程序中无论哪个方向,各个灯亮着的时间之比为, 绿:黄:红=3:1:4,可以设置clock的值确定各灯具体的亮的时间。 1、红绿灯工作状态的真值表: 2、 模型图: (见下页) 3状态机: 三、 源程序 module traffic(clock,reset,red1,yellow1,green1,red2,yellow2,green2); input clock,reset; output red1,yellow1,green1,red2,yellow2,green2; parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7; reg[2:0] state,nxstate; reg red1,yellow1,green1,red2,yellow2,green2; always@(posedge clock or posedge reset) begin if(reset) state=st0; else state=nxstate; end always@(state) begin red1=1'b0; yellow1=1'b0; green1=1'b0; red2=1'b0; yellow2=1'b0; green2=1'b0; case(state) st0:begin green1=1'b1; red2=1'b1; nxstate=st1; end st1:begin green1=1'b1; red2=1'b1; nxstate=st2; end st2:begin green1=1'b1; red2=1'b1; nxstate=st3; end st3:begin green1=1'b0; yellow1=1'b1; red2=1'b1; nxstate=st4; end st4:begin red1=1'b1; red2=1'b0; yellow1=1'b0; green2=1'b1; nxstate=st5; end st5:begin red1=1'b1; green2=1'b1; nxstate=st6; end st6:begin red1=1'b1; green2=1'b1; nxstate=st7; end st7:begin green2=1'b0; red1=1'b1; yellow2=1'b1; nxstate=st0; end endcase end endmodule 四、编译和仿真波形 红绿灯设计仿真图 五、仿真分析及结论 根据仿真波形图可以看出实验结果符合预期设想,基本实现了红绿黄灯按一定规律进行循环闪烁的功能,仿真结果与预想的一致,实现了各个方向绿、黄、红灯闪亮的时间比为3:1:4。 程序中美中不足的是这个比例是固定的,必须通过修改程序来修改时间比,而且只是一个比例,不是固定的以秒为单位的时间。例如要实现绿、黄、红灯闪亮时间为20s,5s,25s,就无法用该程序实现,但可以通过在程序中修改时间比来实现。 另外此程序的缺憾是没有手动校准红绿灯时间的功能,假设红绿灯由于年代久远内部芯片老化而导致时间产生误差,就无法进行校准,而必须更换红绿灯。 程序的亮点是简单易懂,容易理解,适合刚刚学习Verilog语言的人。对于红绿灯的设计思路容易掌握。 通过此次课程设计,我基本了解了用Verilog语言编程的一般方法,掌握了用该语言编程的一些技巧,这对于刚刚接触Verilog语言的我来说是个不小的提高。 同时感谢老师的指导,让我在编程的过程中思路更清晰了一些,克服了一些很难的问题。我会更加努力,如果以后还会用到该语言,定会再接再厉,做的更好。 - 9 -
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服