资源描述:
《FPGA课程设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、FPGA课程设计设计题目多功能电子钟具体功能:1.将sett开关键置1,用开关键key_00~key_99进行输入设置,分别对应0~9个数字,将ttimee开关键置1,实现时间更新,将alarmm开关键置1,实现闹钟设置,同时有效(补充的)。2.resett开关键置1时,闹钟响铃有效,否则无效,即可以关闭闹铃(补充的)。3.显示功能:—sett有效时输入数显示,sett键置1四分钟回到计时显示界面—sett无效时,将开关alarmm置1,界面显示闹钟的时间开关键说明所有开关键都是置1有效,置0无效,开关键置1后
2、若不需要与其它键共同作用,置1后需要回置0,以保证下次可用。模块剖析时钟模块div_1khz:50mhz分频得到1khzmodulediv_1khz(clk_50mhz,clk_1khz);inputclk_50mhz;outputclk_1khz;regclk_1khz;reg[14:0]cout;always@(posedgeclk_50mhz)beginif(cout==27499)//半周期计数beginclk_1khz<=~clk_1khz;cout<=0;endelsecout<=cout+1;en
3、dendmodule时钟模块div_1hz:1khz分频得到1hzmodulediv_1hz(clk_1khz,clk_1hz);inputclk_1khz;outputclk_1hz;regclk_1hz;reg[8:0]count;always@(posedgeclk_1khz)beginif(count==499)//半周期计数beginclk_1hz<=~clk_1hz;count<=0;endelsecount<=count+1;endendmodule时钟模块timer:计时,包括对时间更新modu
4、letimer(clk_1hz,time3,set,ttime,time2);inputclk_1hz,set,ttime;input[11:0]time3;output[11:0]time2;reg[11:0]time2;reg[5:0]s,m;reg[4:0]h;always@(posedgeclk_1hz)beginif(set&&ttime)//时间更新begins=0;m=time3%100;h=time3/100;endif(s<59)//时间计时从秒到分到时s=s+1;elseif(s==59)b
5、egins=0;if(m<59)m=m+1;elseif(m==59)beginm=0;if(h<23)h=h+1;elseif(h==23)h=0;endendtime2=h*100+m;//将时间转换成十进制数输出,只是为了理解方便endendmodule功能仿真时序仿真时钟模块setting:时间和闹钟设置modulesetting(set,alarm,ttime,set_data,time1,time3);inputset,alarm,ttime;input[11:0]set_data;output[1
6、1:0]time1,time3;reg[11:0]time1,time3;always@(posedgealarm)//时钟设置有效beginif(set)time1<=set_data;endalways@(posedgettime)//时间更新有效beginif(set)time3<=set_data;endendmodule功能仿真时序仿真时钟模块choose:选择显示缺点:设置完成后按了确认键,回到显示界面,若确认键先返回无效状态时显示界面又会显示刚设置的数,再拨回set键后才会又回到计时显示界面,但若
7、先拨回set键则不会出现此现象modulechoose(set,alarm,clk_1khz,clk_1hz,time1,time2,set_data,data);inputalarm,set,clk_1khz,clk_1hz;input[11:0]time1,time2,set_data;output[11:0]data;reg[11:0]data;reg[7:0]counter;always@(posedgeclk_1khz)beginif(set)beginif(alarm)data<=time2;els
8、eif(counter<240)data<=set_data;elsebegindata<=time2;end//2分钟后显示无效endelseif(alarm)data<=time1;elsebegindata<=time2;endend//从设置数开始四分钟后没有按任//何确认键,回到计时显示界面,而实际若//要设置一个时间一般是不会超过4分钟的always@(posedgeclk