数字系统课程设计探究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xx学院 数字系统课程设计报告书 课题名称 基于FPGA的数字钟设计 院 系 信息工程学院 姓名学号 xx 专业班级 信息工程、信工121 指导教师 xx 设计时间 2013-2014学年第2学期15、16周 2014年 06月 18 日 目 录 摘要………………………………………………………………………………1 1设计目的………………………………………………………………………2 2设计内容及要求………………………………………………………………2 3系统整体方案及设计原理……………………………………………………2 4各模块电路设计与实现………………………………………………………2 4.1 分频模块设计与实现……………………………………………………2 4.2 计数器模块设计与实现…………………………………………………4 4.3 1602显示驱动模块设计与实现…………………………………………6 5系统仿真及硬件下载…………………………………………………………15 5.1系统仿真…………………………………………………………………15 5.2硬件下载…………………………………………………………………21 6设计总结………………………………………………………………………24 参考文献…………………………………………………………………………24 摘要:本设计为一个多功能的数字钟具有时、分、秒计数显示功能以小时循环计数采用EDA技术以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件在QUARTUS II工具软件环境下采用自顶向下的设计方法由各个基本模块共同构建了一个基于FPGA的数字钟。 系统主芯片采用EP由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成经编译和仿真所设计的程序在可编程逻辑器件上下载验证本系统能够完成时、分、秒的分别显示由按键输入进行数字钟的清零功能。 本设计采用的VerilogHDL是一种全方位的硬件描述语言具有极强的描述能力能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强因此在实际应用中越来越广泛 而FPGA是特殊的ASIC芯片与其他的ASIC芯片相比它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。 钟表的数字化给人们生产生活带来了极大的方便而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路等都是以钟表数字化为基础的。 因此研究数字钟及扩大其应用有着非常现实的意义。 关键词FPGA  QuartusⅡ VerilogHDL  数字钟 图3-1 数字钟原理框图 分频模块可以将晶振产生的4MHz的时钟信号分成适合时钟模块的1Hz信号。时钟模块由两个六十进制计数器和一个二十四进制计数器组成,分别对应秒分时。当计时到23时59分59秒时,再来一个计数脉冲,则计时器清零,重新开始计数。驱动模块驱动程序运行。通过Verilog语言编程来实现各个模块的功能,再通过Quartus II软件来画图连接,仿真并生成可下载文件,然后在显示器上显示。 4、各模块电路设计与实现 4.1、分频模块设计与实现 点击菜单“File→New”,在Design Files页中选择Verilog HDL File,为工程新添一个Verilog HDL文件(初始文件名为verilog1.v,在此另存文件名为fp20m.v),并在编辑窗口编辑程序。用Verilog编写的分频模块程序如下: 用Verilog编写的分频模块程序如下: // 分频器模块 //输入频率:20MHz //输出频率:1Hz,1000Hz module fp20m(clk, clk1,clk1000); input clk; output clk1,clk1000; reg clk1,clk1000; reg [25:0] cnt,cnt1; always@(posedge clk) //1Hz分频 begin if(cnt= 9999999 ) //从0到9999999总 begin cnt=0; clk1=~clk1;// 翻转,周期,也就是1S end else cnt=cnt+1; end always@(posedge clk) //1000Hz分频 begin if(cnt1=99

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档