《通信系统FPGA开发》课程设计-数字钟课程设计.docx_第1页
《通信系统FPGA开发》课程设计-数字钟课程设计.docx_第2页
《通信系统FPGA开发》课程设计-数字钟课程设计.docx_第3页
《通信系统FPGA开发》课程设计-数字钟课程设计.docx_第4页
《通信系统FPGA开发》课程设计-数字钟课程设计.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信系统FPGA开发课程设计任务书 (适用于通信工程专业)1. 设计一数字钟系统,要求如下:(1) 有基础的实时数字钟功能,即时,分,秒的正常显示模式。(24小时制)(2) 可对系统用手动方式校准,设计两个按键,按动校时键,时计数器加一,按动校分键,则电路处于校分状态。(3) 整点报时,要求在59分50秒,52秒,54秒,56秒和58秒发出一个低音信号,00分00秒发出一个高音信号。完整代码加测试代码:module kongzhi_count(clk,S1,S2,reset,hour_s,hour_g,minute_s,minute_g,second_s,second_g,cout_1,cout_2,alarm_clock_low,alarm_clock_high); input clk,S1,S2,reset;output reg3:0 hour_s,hour_g,minute_s,minute_g,second_s,second_g ;output wire cout_1,cout_2;output reg alarm_clock_low,alarm_clock_high;reg R1,R2;always (posedge clk) beginif(S1=1)beginR1=1;endelse if(S2=1)beginR2=1;endendalways (posedge clk) /秒个位显示 begin if(reset) second_g = 0; else if(second_g=9) second_g = 0; else second_g = second_g + 1; end always (posedge clk) /秒十位显示 begin if(reset) second_s= 0; else if(second_g=9) begin if(second_s=5) second_s= 0; else second_s = second_s + 1; end end assign cout_1=(second_g=9)&(second_s=5)?1:0;always (posedge clk) /分个位显示 begin if(reset) begin minute_g = 0; end else if(R2=1) begin if(minute_g=9) minute_g = 0; else begin minute_g= minute_g+ 1; end R2=0; end else if(cout_1) begin second_g=0; second_s=0; if(minute_g=9) minute_g = 0; else minute_g= minute_g+ 1; end end always (posedge clk) /分十位显示 begin if(reset) begin minute_s = 0; end else if(R2=1) begin if(minute_g=9) begin if(minute_s=5) minute_g = 0; else minute_s = minute_s + 1; end R2=0; end else if(cout_1) begin second_g=0; second_s=0; if(minute_g=9) begin if(minute_s=5) minute_g = 0; else minute_s = minute_s + 1; end end endassign cout_2=(minute_g=9)&(minute_s=5)&(cout_1=1)|(minute_g=9)&(minute_s=5)&(S2=1)?1:0;always (posedge clk) /时个位显示 begin if(reset) begin hour_g = 0; end else if(R1=1)beginif(hour_g=9) hour_g = 0; else if(hour_s=2)&(hour_g=3) hour_g = 0; else begin hour_g = hour_g+ 1; end R1=0; end else if(cout_2) begin second_g=0; second_s=0; minute_g=0; minute_s=0; if(hour_g=9) hour_g = 0; else if(hour_s=2)&(hour_g=3) hour_g = 0; else hour_g = hour_g+ 1; end endalways (posedge clk) /时十位显示 begin if(reset) begin hour_s= 0; end else if(R1=1)beginif(hour_g=3)&(hour_s=2) hour_s = 0; else if(hour_g=9) begin hour_s = hour_s + 1; end R1=0; end else if(cout_2) begin second_g=0; second_s=0; minute_g=0; minute_s=0; if(hour_g=3)&(hour_s=2) hour_s = 0; else if(hour_g=9) hour_s = hour_s + 1; end endalways (posedge clk) /低音警报begin if(!reset) begin alarm_clock_low=0; end else if(minute_g=9)&(minute_s=5) if(second_s=4)&(second_g=9)|(second_s=5)&(second_g=1)|(second_s=5)&(second_g=3)|(second_s=5)&(second_g=5)|(second_s=5)&(second_g=7) alarm_clock_low=1; else alarm_clock_low=0; end always (posedge clk) /高音警报begin if(!reset) begin alarm_clock_high=0; end else if(cout_2) alarm_clock_high=1; else alarm_clock_high=0; endendmodulemodule clock_test(); reg clk,reset,S1,S2;wire3:0 hour_s,hour_g,minute_s,minute_g,second_s,second_g;wire cout_1,cout_2,alarm_clock_low,alarm_clock_high;parameter cycle = 100;kongzhi_count u1(.clk(clk),.S1(S1),.S2(S2),.reset(reset),.hour_s(hour_s),.hour_g(hour_g),.minute_s(minute_s),.minute_g(minute_g),.second_s(second_s),.second_g(second_g),.cout_1(cout_1),.cout_2(cout_2),.alarm_clock_low(alarm_clock_low),.alarm_clock_high(alarm_clock_high); always #(cycle/2) clk = clk;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论