ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:215.99KB ,
资源ID:11405318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11405318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA电子钟设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA电子钟设计.docx

1、基于FPGA电子钟设计重庆邮电大学电子设计自动化技术与应用设计报告 设计题目:基于FPGA语言的数字钟设计学 院: 通信学院 *学 号: S* 一 、需求分析本设计是基于利用FPGA设计具有时、分、秒显示功能的简易时钟电路,数字电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别显示小时,分钟,秒的基本功能。计数器有可以随意调整时间的功能,当显示器显示为23时59分59秒时,秒再进一位则时计数器清零。二 、总体设计1 、设计思路:利用FPGA实现电子时钟的功能,显示电路利用七段数码管进行显示。它的计时周期是24小时,满刻度为23时59分59秒。对于FPGA来说可以使用任何的I/O口

2、来实现数据的传输,其I/O口的数量远多于单片机。整个电路以FPGA芯片作为总体控制核心,对整个电路的正常运行进行控制,对于1秒时间产生可以利用开发板上可调频率来实现每1秒。系统完成时间的实时计算以后,将计算数据通过I/O口传给数码管进行显示,通过段选和位选判断以后,将时间实时显示出来。对于调整时间来可以利用简单的独立按键来实现调整复位及小时/分钟/秒的加一操作,并用数码管实时的显示调整后的时间。当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器信号, 时、分、秒的计时结果通过6个数码管来动态显示,加上分隔符一共需要8个数码管显示。2

3、 、器件选型8位7段数码管、FPGA芯片。三、 硬件设计硬件电路总体的设计:硬件电路设计,要结合开发板上的硬件连接,从而对应连接才可以设计电路。首先确定使用FPGA的哪个I/O口,对于按键使用哪个I/O口资源,按键SW0-SW3作为独立按键使用。系统框图如下: 管脚分配表如下:四 、软件设计1、 总体软件流程图由于在Verilog语言中各个模块电路同时工作采用并行执行的,时序逻辑由时钟驱动,因此在程序中一定要注意时序的设计及时钟的设计,在各个不同的时钟驱动下电路响应的方式。在设计之初应该特别注意Verilog语言的类型。Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网

4、类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。软件设计:时钟处理子模块,数码管的显示子模块,按键的修改时间及复位子模块,时钟显示处理子模块。2、 时钟处理子模块在本模块中需要用到三个驱动时钟分别是CLK0、CLK1、F_OUT,其中CLK0为开发板内部的时钟CLK0其晶振频率为50MHz,对于1秒的产生,可以对50MHz的频率进行分频,但是也可以利用开发板上的信号输出信号输出功能状态下,能够同时最多产生3路不同频率的方波信号(F0、F1、F2),且频率可调,其中信号输出端 F0 F1 F2频率调节范围 0100Hz 01000Hz 01MHz频率掉接步进 1Hz 100Hz只需

5、将插针J2的短路帽将CLK1和F0连接起来即可产生1秒的时间,将CLK1作为时钟显示处理子模块的驱动时钟。在程序中要运用到多个时钟的驱动故在数码管的显示子模块中将CLK0进行分频得到F_OUT作为数码管显示子模块的驱动时钟。always(posedge Clk0) begin CNT_R0 = CNT_R0 + 1b1; if(CNT_R0 4096) begin F_OUT = 1; end else begin F_OUT = 0; endend3、 数码管的显示子模块在数码管的显示子模块中,首先将各个数码管一次点亮,利用人眼的余辉效应让数码管一直处于点亮的状态,其实利用频率较大的时钟进行

6、数码管的依次扫描。对于段扫描来说,首先将要显示的数字对应的段点亮,在数码管上即可显示相应的数字。在位选程序中运用F_OUT作为驱动时钟,SCAN_R作为一个循环加1变量,每到一个时钟周期是就自动加一指向下一个数码管。具体让哪个数码管点亮可以利用一个Case语句来实现选择。always (posedge F_OUT)begin SCAN_R = SCAN_R + 1b1; case(SCAN_R) 3h0 : begin DIG = 8hFE; SEG_DR = SEG_M0; end 3h1 : begin DIG = 8hFD; SEG_DR = SEG_M1; end 3h2 : begi

7、n DIG = 8hFB; SEG_DR = 8h40; end 3h3 : begin DIG = 8hF7; SEG_DR = SEG_M2; end 3h4 : begin DIG = 8hEF; SEG_DR = SEG_M3; end 3h5 : begin DIG = 8hDF; SEG_DR = 8h40; end 3h6 : begin DIG = 8hBF; SEG_DR = SEG_M4; end 3h7 : begin DIG = 8h7F; SEG_DR = SEG_M5; end endcase end4 、 按键调整时间及复位子模块按键复位时,将输出全部置零即可,按

8、键修改时间时,按下修改小时按键时,小时加1并显示在数码管上;按下修改分钟按键时,分钟数加1并显示在数码管上。always(key_out) begin temp=timed;/保存按键时时间数据 if(key_out0=0)/清零 temp=0; else if(key_out1=0)/秒调整 temp23:16=temp23:16+1b1; else if(key_out2=0)/分调整 if(temp11:8=4h9) begin temp11:8=0; temp15:12=temp15:12+1b1; end else begin temp15:8=temp15:8+1b1; end e

9、lse if(key_out3=0)/时调整 if(temp3:0=4h9) begin temp3:0=0; temp7:4=temp7:4+1b1; end else begin temp7:0=temp7:0+1b1; end end 5、 时钟显示处理子模块always(posedge Clk1)/时钟显示处理 begin timed=temp;/ begin timed3:0=timed3:0+1b1;/秒个位 if(timed3:0=4h9) begin timed7:4=timed7:4+1b1;/秒十位 timed3:0=0; if(timed7:4=4h5) begin ti

10、med11:8=timed11:8+1b1;/分个位 timed7:4=0; if(timed11:8=4h9) begin timed15:12=timed15:12+1b1;/分十位 timed11:8=0; if(timed15:12=4h5) begin timed19:16=timed19:16+1b1;/时个位 timed15:12=0; if(timed19:16=4h9) begin timed23:20=timed23:20+1b1;/时十位 timed19:16=0; end if(timed23:16=8h23)/24小时到清零 begin timed23:16=0; e

11、nd end end end end end end 五 、测试报告为了能对所设计的多功能数字进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对日标芯片进行编程下载,完成数字钟的最终开发,其软件仿真图和硬件测试示意图如图所示:六 、问题分析在整个设计中曾经出现了很多的问题,由于对Verilog语言还是有很多不懂得地方,故刚开始的程序总是有一些错误。往往无从下手怎么去解决,一定要注意Verilog语言中一定要注意语句是并行执行的,在与以往的程序语言中这是有很大的差别的,并行的思想就要注意驱动时钟的准确性。另外在此设计中一定选用模式5而且要调节时钟CLK1的频率为1Hz,这是作为1s的时间。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1