交通灯的实现与仿真验证

交通灯的实现与仿真验证

ID:38587427

大小:250.00 KB

页数:6页

时间:2019-06-15

交通灯的实现与仿真验证_第1页
交通灯的实现与仿真验证_第2页
交通灯的实现与仿真验证_第3页
交通灯的实现与仿真验证_第4页
交通灯的实现与仿真验证_第5页
资源描述:

《交通灯的实现与仿真验证》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、哈尔滨工业大学课程设计说明书(论文)HarbinInstituteofTechnology交通灯课程设计课程名称:集成电路课程设计设计题目:交通灯的实现与仿真验证院系:班级:设计者:学号:指导教师:设计时间:2015年6月13日-2015年6月21日哈尔滨工业大学哈尔滨工业大学课程设计说明书(论文)一、功能描述使用verilogHDL语言设计一个交通灯,能够完成实际生活中十字路口的交通灯的工作。我设计的交通灯一共有四种状态:绿灯,黄灯,左转弯,红灯。在设计中,两条路命名为line1和line2,(同

2、在一条路上的两个路灯的颜色是相同的)。状态转化如图:(g-绿色,t-左转,y-黄色,r-红色,字母后面的数字表示相应的路1或2)g1r2t1r2y1r2r1y2r1t2r1g2每个路口的路灯的颜色转换顺序为绿灯------左转-----黄灯-----红灯,下面是每个路口的灯的颜色的持续时间,line1的车流量比较多,所以绿灯的持续时间比较长。灯的颜色持续时间绿灯左转黄灯红灯Line14015545Line23010560可以看出状态机一共有六种状态,六种状态循环出现,并且只受时间控制,将上面的时间相

3、加得到一个循环的时间是105。则六种状态循环的时间是105。二、设计方案使用三段式状态机,状态更新部分,新的状态产生的逻辑,输出产生逻辑。状态更新部分:当reset=0时,状态复位,回到g1r2的状态,而reset为0时,状态更新。新的状态产生的逻辑:根据计数器的值来进行状态的转换,只有计数器的输出值作为状态变换的条件。输出产生逻辑:切换到每个状态时路灯的颜色都有相应的变化。通过一个计数器来完成计数,从而控制状态机状态变换。有一个en的变量来控制计数器是否计数,并通过if语句来实现计数器的循环计数。

4、三、设计代码moduletrafficlight1(clk,reset,count,line1,line2);inputclk,reset;input[6:0]count;output[1:0]line1,line2;reg[1:0]line1,line2;reg[2:0]state,next_state;//line1状态line2状态parameterg1r2=3'd1,绿灯红灯t1r2=3'd2,左转红灯y1r2=3'd3,黄灯红灯r1g2=3'd4,红灯绿灯r1t2=3'd5,红灯左转r1y

5、2=3'd6;红灯黄灯哈尔滨工业大学课程设计说明书(论文)always@(posedgeclk)//状态更新beginif(!reset)state<=g1r2;elsestate<=next_state;endalways@(posedgeclk)//新的状态产生的逻辑begincasex(state)g1r2:if(count==7'd40)beginnext_state=t1r2;endt1r2:if(count==7'd55)beginnext_state=y1r2;endy1r2:if(c

6、ount==7'd60)beginnext_state=r1g2;endr1g2:if(count==7'd90)beginnext_state<=r1t2;endr1t2:if(count==7'd100)beginnext_state=r1y2;endr1y2:if(count==7'd105)beginnext_state=g1r2;endendcaseendalways@(state)//2'd0红灯2'd1黄灯2'd2绿灯2'd3左转,输出产生逻辑beginline1=2'd0;line2

7、=2'd0;casex(state)g1r2:begin哈尔滨工业大学课程设计说明书(论文)line1=2'd2;line2=2'd0;endt1r2:beginline1=2'd3;line2=2'd0;endy1r2:beginline1=2'd1;line2=2'd0;endr1g2:beginline1=2'd0;line2=2'd2;endr1t2:beginline1=2'd0;line2=2'd3;endr1y2:beginline1=2'd0;line2=2'd1;endendcas

8、eendendmodulemodulecounter(en,clk,reset,pout);//计数器部分output[6:0]pout;inputclk,reset,en;reg[6:0]pout;always@(posedgeclkornegedgereset)beginif(!reset)pout<='d0;elseif(!en&&pout<'d105)pout<=pout+1;elsepout<='d1;end哈尔滨工业大学课程设计说明书(论文)endmodu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。