资源描述:
《数电课程设计--交通灯控制逻辑电路设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、江苏科技大学电子信息学院数字电子技术实验课程设计报告指导老师:李绍鹏学院:电子信息学院班级:学生(学号):孙磊()16目录课题一数字电子钟课题二交通灯控制逻辑电路设计(注:由于Quartusii9.0不支持中文输入,但支持中文复制,所以以下代码文字说明均为后期制作)16课题一数字电子钟任务:用文本法设计一个能显示时、分、秒的数字电子钟要求:1.设计由20mhz有源晶振电路产生标准信号的单元电路;2.时为00~23六十进制计数器,分、秒为00~59六十进制计数器;3.能够显示出时、分、秒;4.具有清零,调节分钟的功能;5
2、.模拟钟摆功能;6.具有整点报时功能,整点报时的同时声响电路发出叫声;7.对时、分、秒单元电路进行仿真并记录。本文利用VerilogHDL语言自顶向下的设计方法设计多功能数字钟,并通过仿真和下载,实现其基本功能。一.顶层文件moduletop(CLK,SET,EN,RE,//CLK==20MHZSET调节分钟LED_5,OUT,QH1,QH0,QM1,QM0,QS1,QS0);inputCLK,SET,RE,EN;outputOUT;//OUT报时output[3:0]QH1,QH0,QM1,QM0,QS1,QS0;o
3、utput[4:0]LED_5;wireclk1khz,clk250hz,clk1hz,m1,b2,b3,b4;wire[5:0]s1,m2,h3;//---------------分频-----------------------------------------Divu1(CLK,EN,RE,14'd6384,clk1khz);Divu2(clk1khz,EN,RE,14'd16382,clk250hz);Divu3(clk1khz,EN,RE,14'd15884,clk1hz);//--------------
4、---秒s1计数,产生分进位m1------------counteru4(clk1hz,EN,RE,6'd59,m1,s1);BCDturnu5(s1,QS1,QS0);//-----------------分m2计数,产生时进位b3-----------counteru6(b2,EN,RE,6'd59,b3,m2);BCDturnu7(m2,QM1,QM0);//-----------------时h3计数,产生进位b4--------------counteru8(b3,EN,RE,6'd23,b4,h3);BC
5、Dturnu9(h3,QH1,QH0);//--------------------模拟钟摆-------------------------------led_u10(CLK,LED_5);//--------------------整点报时-------------------------------baoshiu11(QM1,QM0,QS1,QS0,OUT);16//------------------b2调节分钟---------------------------------assignb2=SET?SET:
6、m1;endmodule二.分频模块moduleDiv(CLK,EN,RE,d,Q);//给d赋初始值inputCLK,EN,RE;input[13:0]d;outputQ;regFULL,Q;reg[13:0]c;always@(posedgeCLK)beginif(RE)beginc<=d;FULL<=0;endelseif(EN)beginif(c=={14{1'b1}})beginc<=d;FULL<=1;endelsebeginc<=c+1;FULL<=0;endendendalways@(posedgeFU
7、LL)//得到占空比50%的分频信号beginQ<=~Q;endendmodule三.计数模块modulecounter(CLK,EN,RE,C,FULL,Q);//EN=1时进行计数,RE=1时清零inputCLK,EN,RE;//C表示N进制,Q为计数结果input[5:0]C;output[5:0]Q;outputFULL;reg[5:0]Q;16regFULL;always@(posedgeCLK)beginif(RE)beginQ<=0;FULL<=0;endelseif(EN)beginif(Q==C)be
8、ginQ<=0;FULL<=1;endelsebeginQ<=Q+1;FULL<=0;endendendendmodule四.BCD译码模块//由于计数使用的二进制,在输出时便需要进行译码,转换成大众所熟悉的十进制表示moduleBCDturn(indec,qh,ql);input[5:0]indec;output[3:0]qh,