1、Rgwork和ywork是减法计数器,产生道路东西和南北通行和禁止的倒计时时间。Counter是控制电路,控制整个系统的工作。控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。6输入或非门和2输入与非门组成了简易密码锁的功能(通过拨码开关实现)。1.2.2总体设计框图 分频器 交通灯控制电路 数码管及LED灯2 各个模块程序的设计2.1分频器模块的设计分频器模块截图:分频器模块程序设计:module fpq(clk,newclk);input clk;output reg newclk;reg24:0 counter;always (pose
2、dge clk )begincounter=counter+1;if(counter=20000000)counter=0;if(counter10000000)newclk=b0;endendmodule2.2红绿灯模块设计红绿灯模块截图:红绿灯模块程序设计:module rgwork(clk,clrn,ydbj,gzfs,LED,t1,t2,q1,q2);input clk,clrn;input 7:0 q1,q2;output reg ydbj;output reg1:0 gzfs;output reg7:0 LED;0 t1,t2;reg7:0 rtime,gtime,ytime,rt
3、ime1=h20,gtime1=h16;reg1:0 z;initial begin rtime=h20;gtime=ytime=h03;ydbj=0;z=0;always (posedge clk or negedge clrn)begin if(clrn) ydbj=1; else begin if(q1=0|q2=0) ydbj=1; else begin ydbj=0; rtime=rtime1;gtime=gtime1; endend always (posedge ydbj or negedge clrn) if(clrn) t1=rtime;t2=gtime;LED=b01100
4、110;gzfs=2; z=z+1; case (z) 0:begin t1=rtime; 1:begin t1=ytime;t2=ytime;b00100010;gzfs=0; 2:begin t1=gtime;t2=rtime;b10011001; 3:b10001000;gzfs=1; default: endcase2.3黄灯模块设计黄灯模块截图:黄灯模块程序设计:module ywork(gzfs,clk,clrn,q1,q2,LED_h);input7:input 1:output reg3:0 LED_h; if(clrn) LED_h=b0000; if(gzfs=0) beg
5、in if(q1=h03&q2=h03) LED_h=b1010; if(q1=h02&h02) LED_h=h01&h01) LED_h=h00&h00) LED_h= end if(gzfs=1)b0101;endmodule 2.4控制模块的设计控制模块截图:控制模块程序设计:module countor(ts,en,clk,ybj,t1,t2,q1,q2);input clk,ybj,en,ts;always (posedge clkts or posedge ybj or posedge en) if(en) begin q1=q1;q2=q2; if(ybj) begin q1=t
6、1;q2=t2; else begin if(q1=0) q1=h99; else begin q1=q1-1; if(q13:0=ha) q13:0=9; if(q2=0) q2= else begin q2=q2-1; if(q23:ha) q23: end3调试过程用Quartus 软件对程序编译成功后下载到EDA试验箱。LED开始亮,四个数码管显示3s倒计时,即黄灯开始进入闪烁状态,然后开始实现东西方绿灯,南北方红灯状态。绿灯倒计时结束以后黄灯再次闪烁,随后进入南北方绿灯,东西方红灯状态。并不断自动进行转换。当S15拨到上方时,实现交通灯暂停(使能端作用)。当K8按键按下时,交通灯自动
7、恢复到初始化状态。当将S3,S2,S1,S0拨为1010并按下K7按键能实现减计数调时。4 功能测试4.1 测试仪器与设备 EDA实训箱、 计算机一台、Quartus 软件4.2 性能指标测试 基本实现要求,初始化南北方向为红灯,东西方向为绿灯,倒计时20s,东西方向开始黄灯闪烁3秒,同时南北方向还为红灯,3秒后东西方向变为红灯,南北方向变为绿灯。倒计时的同时数码管交替显示不同亮灯的倒计时时间。实现4位数码管显示。拨码开关S15实现暂停功能,S3到S0四个拨码开关实现简易密码锁功能(当拨“1010”时,可以实现调时功能,密码错误时则无法实现调时功能)。两个按键K8,K7分别实现复位与调时功能(
8、调时功能在密码正确情况下实现)。5 实训心得体会这次实验使我更进一步地熟悉了VHDL硬件描述语言的设计思想,同时通过对程序的调试也使自己对VHDL语言的语法,结构和基本语句有了更深刻的了解。在设计较复杂数字电路系统时最好采用分层设计的方法,分为各个功能模块,逐个进行仿真,最后通过顶层文件调用各个底层文件完成设计,程序也便于修改如程序要增加一些功能也只需加入相应的模块即可。在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。有的时候,理论上是正确的东西放到现实中去,可能由
9、于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。6 参考文献【1】江国强.新编数字逻辑电路 北京邮电大学出版社 2006年12月【2】江国强. EDA技术与应用 电子工业出版社 2010年4月【3】王金明、冷自强.EDA技术与Verilog设计科学出版社 2008年8月【4】谢自美.电子线路设计实验测试(第二版)武汉华中科技大学出版社2000【5】谭会生、张昌凡 EDA技术与应用-Verilog HDL版西安电子科技大学出版社附 录附录1:仿真波形图(部分模块)分频器模块波形仿真:红绿灯模块波形仿真:黄灯模块波形仿真:控制模块波形仿真:附录2:程序清单
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1