1、基于FPGA的多功能数字钟课程设计F P G A课程设计报告(实现多功能数字钟) 一、 标题:设计多功能数字钟控制电路二、 任务书:用MAX+PLUS软件及Verilog HDL语言设计 一个多功能的数字钟,包括有时、分、秒的计 时,以及校时(对小时、分钟和秒能手动调整以校准时间)、正点报时(每逢整点,产生“嘀嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。三、 关键词:24进制、60进制、正点报时、校时、数字钟四、总体方案:多功能数字钟控制电路框图是由三部分组成的,即秒分时控制电路、整点报时控制电路、时段控制电路。用Verilog HDL硬件描述语言完成编译和仿真。五、原理框图如下: 建立设计工
2、程项目名和顶层图形文件。 六、Verilog HDL硬件描述语言编写的功能模块:/*秒计数器 m60*/module m60(M,CP60M,CPM,RD);output 7:0M;output CP60M;input CPM;input RD;reg 7:0M;wire CP60M;always(negedge RD or posedge CPM) begin if(!RD) begin M7:0=0; end else begin if(M7:4=5)&(M3:0=9) begin M7:0=0; end else begin if(M3:0=9) begin M3:0=0; if(M7:
3、4=5) begin M7:4=0;end else M7:4=M7:4+1; end else M3:0=M3:0+1; end end endassign CP60M=(M6&M4&M3&M0);endmodule/*分计数器 m60*/ module m60(M,CP60M,CPM,RD);output 7:0M;output CP60M;input CPM;input RD;reg 7:0M;wire CP60M;always(negedge RD or posedge CPM) begin if(!RD) begin M7:0=0; end else begin if(M7:4=5)
4、&(M3:0=9) begin M7:0=0; end else begin if(M3:0=9) begin M3:0=0; if(M7:4=5) begin M7:4=0;end else M7:4=M7:4+1; end else M3:0=M3:0+1; end end endassign CP60M=(M6&M4&M3&M0);endmodule /*小时计数器 m24*/module m24(H,CPH,RD);output 7:0H;input CPH,RD;reg 7:0H;always(negedge RD or posedge CPH) begin if(!RD) H7:0
5、=0; else begin if(H7:4=2)&(H3:0=3) begin H7:0=0; end else begin if(H3:0=9) begin H3:0=0; H7:4=H7:4+1; end else H3:0=H3:0+1; end end endendmodule/*秒分时控制计数器 xiaoshi2*/module xiaoshi2(CPM,CPH,CPS,CP60M,CP60S,SWM,SWH);output CPM,CPH;input SWM,SWH;input CPS,CP60S,CP60M;reg CPM,CPH;always(SWM or SWH or CP
6、S or CP60S or CP60M) begin case(SWM,SWH) 2b01: begin CPM=CPS;CPH=CP60M;end 2b10: begin CPM=CP60S;CPH=CPS;end default: begin CPM=CP60S;CPH=CP60M;end endcase endendmodule/*时段控制器 sdkz*/module sdkz(h,sk);input 7:0h;output sk;reg sk;always(h) begin if(h=19) sk=1; else sk=0; endendmodule/*报时计数器 baoshi*/mo
7、dule baoshi(m6,m4,m3,m0,s6,s4,s3,s0,dy,gy,bshi);input m6,m4,m3,m0,s6,s4,s3,s0,dy,gy;output bshi;wire bm;reg bshi;assign bm=m6&m4&m3&m3&m0&s6&s4&s0;always(bm or s3 or dy or gy) begin if(bm&s3) bshi=gy; else if(bm) bshi=dy; else bshi=0; endendmodule七:各模块原理图及仿真波形:24进制原理图:60进制原理图:电路原理图:时段控制:报时:1、秒计数器仿真波
8、形2、分计数器的仿真波形3、小时计数器的仿真波形4、秒分时控制电路的仿真波形5、时段控制的仿真波形6、报时器的仿真波形八、顶层文件及仿真波形顶层文件的仿真波形:九:选用ACEX1K芯片中的EP1K30TC144-3型号,对芯片管脚号的分配如下: 十:课程设计结论: 此次课程设计通过最终下载及编译可实现以上功能,在七段显示器上可实现秒、分计数器60进制,时计数器24进制显示,以及调节CLK1、CLK2的频率可使计数器上数字延时显示。在正点报时中,当秒计数器进入56秒时,就会听到“嘀嘀嘀嘀-嘟”的声音。十一:心得体会: 两天的课程设计已经结束了,虽然开始的时候为此感到焦头烂额,但总算在同学和老师的
9、帮助下坚持了下来,圆满的完成了此次FPGA课程设计。通过这两天的学习,让我们更加熟练地掌握了MAXPLUS软件的使用以及Verilog HDL语言的逻辑编写。特别锻炼了我们的团队合作,如在最后编译的时候,实现正点报时时怎么也出现不了声音,当时我仔细研究重新分析了一遍仍然找不到问题出在哪,最后在同学的帮助下才发现78号管脚忘了分配,修正后如愿听到了正点报时“嘀嘀嘀嘀-嘟”的声音。总之,此次课程设计让我感受颇丰,学到了很多东西。为我以后从事这方面的工作做了一个好的开始。十二:参考文献:数字系统设计与Verilog HDL(第2版) 王金明 电子工业出版社FPGA原理及应用 赵雅兴 天津大学出版社VHDL硬件描述语言与数字逻辑设计 侯伯亨 西安电子科技大学出版社FPGA设计网论坛
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1