资源描述:
《Verilog—交通灯信号控制器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电學院基于Verilog的HDL设计基础实验报告系部名称:通信与信息工程学院学生姓名:专业名称:通信工程班级:学号:时间:2010年12月11日实验题目交通灯信号控制器一、实验内容使用行为级的语法结构设计一个交通的那个控制信器来控制一条主干道与一条直干道的交叉口的交通。二、实验步骤1、在modulesim软件中进行JK主从触发器来设计的同步计数器的设计与验证,直到运行结果全部正确;2、在Quartus软件中对刚刚完成的计数器进行综合,生成网表文件;3、在modulesim软件中对计数器进行进行后仿真。三、源代码1:设计模块:
2、`definetrue1'b1`definefalse1'b0`definey2rdelay3`definer2gdelay2modulesig_control(hwy,cntry,x,clock,clear);output[1:0]hwy,cntry;reg[1:0]hwy,cntry;inputx;inputclock,clear;parameterred=2'd0,yellow=2'd1,green=2'd2;parameters0=3'd0,s1=3'd1,s2=3'd2,s3=3'd3,s4=3'd4;reg[2:0]s
3、tate;reg[2:0]next_state;always@(posedgeclock)if(clear)state<=s0;elsestate<=next_state;always@(state)beginhwy=green;cntry=red;case(state)s0:;s1:hwy=yellow;s2:hwy=red;s3:beginhwy=red;cntry=green;ends4:beginhwy=red;cntry=yellow;endendcaseendalways@(stateorx)begincase(sta
4、te)s0:if(x)next_state=s1;elsenext_state=s0;s1:beginrepeat(`y2rdelay)@(posedgeclock);next_state=s2;ends2:beginrepeat(`r2gdelay)@(posedgeclock);next_state=s3;ends3:if(x)next_state=s3;elsenext_state=s4;s4:beginrepeat(`y2rdelay)@(posedgeclock);next_state=s0;enddefault:nex
5、t_state=s0;endcaseendendmodule2:激励模块`definetrue1'b1`definefalse1'b0modulestimulus;wire[1:0]main_sig,cntry_sig;regcar_on_cntry_rd;regclock,clear;sig_controlsc(main_sig,cntry_sig,car_on_cntry_rd,clear);initialbeginclock=`false;forever#5clock=~clock;endinitialbeginclear=
6、`true;repeat(5)@(negedgeclock);clear=`false;endinitialbegincar_on_cntry_rd=`false;repeat(20)@(negedgeclock);car_on_cntry_rd=`true;repeat(10)@(negedgeclock);car_on_cntry_rd=`false;repeat(20)@(negedgeclock);car_on_cntry_rd=`true;repeat(10)@(negedgeclock);car_on_cntry_rd
7、=`false;repeat(20)@(negedgeclock);car_on_cntry_rd=`true;repeat(10)@(negedgeclock);car_on_cntry_rd=`false;repeat(10)@(negedgeclock);$stop;endendmodule四、仿真结果及分析五、调试情况,设计技巧及体会1、程序调试:程序一开始设计完毕时出现错误,检查到小问题修改后,运行成功。之后进行前仿真和形成网表。最后进行在modulesim软件中对计数器进行进行后仿真2、后仿真:后防真时要注意文件的扩展
8、名及储存路径。尽量保持存储文件名一致。3、综合:在进行综合生成网表前一定要熟悉掌握每一个选项和步骤。不会的查书看后最终完成了。