基于FPGA电子钟设计.docx

上传人:b****8 文档编号:11405318 上传时间:2023-02-28 格式:DOCX 页数:11 大小:215.99KB
下载 相关 举报
基于FPGA电子钟设计.docx_第1页
第1页 / 共11页
基于FPGA电子钟设计.docx_第2页
第2页 / 共11页
基于FPGA电子钟设计.docx_第3页
第3页 / 共11页
基于FPGA电子钟设计.docx_第4页
第4页 / 共11页
基于FPGA电子钟设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于FPGA电子钟设计.docx

《基于FPGA电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA电子钟设计.docx(11页珍藏版)》请在冰豆网上搜索。

基于FPGA电子钟设计.docx

基于FPGA电子钟设计

重庆邮电大学

电子设计自动化技术与应用

设计报告

设计题目:

基于FPGA语言的数字钟设计

 

学院:

通信学院

******************

学号:

S*********

 

一、需求分析

本设计是基于利用FPGA设计具有时、分、秒显示功能的简易时钟电路,数字电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别显示小时,分钟,秒的基本功能。

计数器有可以随意调整时间的功能,当显示器显示为23时59分59秒时,秒再进一位则时计数器清零。

二、总体设计

1、设计思路:

利用FPGA实现电子时钟的功能,显示电路利用七段数码管进行显示。

它的计时周期是24小时,满刻度为23时59分59秒。

对于FPGA来说可以使用任何的I/O口来实现数据的传输,其I/O口的数量远多于单片机。

整个电路以FPGA芯片作为总体控制核心,对整个电路的正常运行进行控制,对于1秒时间产生可以利用开发板上可调频率来实现每1秒。

系统完成时间的实时计算以后,将计算数据通过I/O口传给数码管进行显示,通过段选和位选判断以后,将时间实时显示出来。

对于调整时间来可以利用简单的独立按键来实现调整复位及小时/分钟/秒的加一操作,并用数码管实时的显示调整后的时间。

当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器信号,时、分、秒的计时结果通过6个数码管来动态显示,加上分隔符一共需要8个数码管显示。

2、器件选型

8位7段数码管、FPGA芯片。

三、硬件设计

硬件电路总体的设计:

硬件电路设计,要结合开发板上的硬件连接,从而对应连接才可以设计电路。

首先确定使用FPGA的哪个I/O口,对于按键使用哪个I/O口资源,按键SW0-SW3作为独立按键使用。

系统框图如下:

管脚分配表如下:

四、软件设计

1、总体软件流程图

由于在Verilog语言中各个模块电路同时工作采用并行执行的,时序逻辑由时钟驱动,因此在程序中一定要注意时序的设计及时钟的设计,在各个不同的时钟驱动下电路响应的方式。

在设计之初应该特别注意Verilog语言的类型。

VerilogHDL中有两类数据类型:

线网数据类型和寄存器数据类型。

线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。

软件设计:

时钟处理子模块,数码管的显示子模块,按键的修改时间及复位子模块,时钟显示处理子模块。

2、时钟处理子模块

在本模块中需要用到三个驱动时钟分别是CLK0、CLK1、F_OUT,其中CLK0为开发板内部的时钟CLK0其晶振频率为50MHz,对于1秒的产生,可以对50MHz的频率进行分频,但是也可以利用开发板上的信号输出信号输出功能状态下,能够同时最多产生3路不同频率的方波信号(F0、F1、F2),且频率可调,其中

信号输出端F0F1F2

频率调节范围0~100Hz0~1000Hz0~1MHz

频率掉接步进1Hz100Hz

只需将插针J2的短路帽将CLK1和F0连接起来即可产生1秒的时间,将CLK1作为时钟显示处理子模块的驱动时钟。

在程序中要运用到多个时钟的驱动故在数码管的显示子模块中将CLK0进行分频得到F_OUT作为数码管显示子模块的驱动时钟。

always@(posedgeClk0)

begin

CNT_R0=CNT_R0+1'b1;

if(CNT_R0<4096)

begin

F_OUT=1;

end

else

begin

F_OUT=0;

end

end

3、数码管的显示子模块

在数码管的显示子模块中,首先将各个数码管一次点亮,利用人眼的余辉效应让数码管一直处于点亮的状态,其实利用频率较大的时钟进行数码管的依次扫描。

对于段扫描来说,首先将要显示的数字对应的段点亮,在数码管上即可显示相应的数字。

在位选程序中运用F_OUT作为驱动时钟,SCAN_R作为一个循环加1变量,每到一个时钟周期是就自动加一指向下一个数码管。

具体让哪个数码管点亮可以利用一个Case语句来实现选择。

always@(posedgeF_OUT)

begin

SCAN_R=SCAN_R+1'b1;

case(SCAN_R)

3'h0:

beginDIG=8'hFE;SEG_DR=SEG_M[0];end

3'h1:

beginDIG=8'hFD;SEG_DR=SEG_M[1];end

3'h2:

beginDIG=8'hFB;SEG_DR=8'h40;end

3'h3:

beginDIG=8'hF7;SEG_DR=SEG_M[2];end

3'h4:

beginDIG=8'hEF;SEG_DR=SEG_M[3];end

3'h5:

beginDIG=8'hDF;SEG_DR=8'h40;end

3'h6:

beginDIG=8'hBF;SEG_DR=SEG_M[4];end

3'h7:

beginDIG=8'h7F;SEG_DR=SEG_M[5];end

endcase

end

4、按键调整时间及复位子模块

按键复位时,将输出全部置零即可,按键修改时间时,按下修改小时按键时,小时加1并显示在数码管上;按下修改分钟按键时,分钟数加1并显示在数码管上。

always@(key_out)

begin

temp=timed;//保存按键时时间数据

if(key_out[0]==0)//清零

temp=0;

elseif(key_out[1]==0)//秒调整

temp[23:

16]=temp[23:

16]+1'b1;

elseif(key_out[2]==0)//分调整

if(temp[11:

8]==4'h9)

begin

temp[11:

8]<=0;

temp[15:

12]<=temp[15:

12]+1'b1;

end

else

begin

temp[15:

8]=temp[15:

8]+1'b1;

end

elseif(key_out[3]==0)//时调整

if(temp[3:

0]==4'h9)

begin

temp[3:

0]<=0;

temp[7:

4]<=temp[7:

4]+1'b1;

end

else

begin

temp[7:

0]=temp[7:

0]+1'b1;

end

end

5、时钟显示处理子模块

always@(posedgeClk1)//时钟显示处理

begin

timed=temp;//

begin

timed[3:

0]<=timed[3:

0]+1'b1;//秒个位

if(timed[3:

0]==4'h9)

begin

timed[7:

4]<=timed[7:

4]+1'b1;//秒十位

timed[3:

0]<=0;

if(timed[7:

4]==4'h5)

begin

timed[11:

8]<=timed[11:

8]+1'b1;//分个位

timed[7:

4]<=0;

if(timed[11:

8]==4'h9)

begin

timed[15:

12]<=timed[15:

12]+1'b1;//分十位

timed[11:

8]<=0;

if(timed[15:

12]==4'h5)

begin

timed[19:

16]<=timed[19:

16]+1'b1;//时个位

timed[15:

12]<=0;

if(timed[19:

16]==4'h9)

begin

timed[23:

20]<=timed[23:

20]+1'b1;//时十位

timed[19:

16]<=0;

end

if(timed[23:

16]==8'h23)//24小时到清零

begin

timed[23:

16]<=0;

end

end

end

end

end

end

end

五、测试报告

为了能对所设计的多功能数字进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对日标芯片进行编程下载,完成数字钟的最终开发,其软件仿真图和硬件测试示意图如图所示:

六、问题分析

在整个设计中曾经出现了很多的问题,由于对Verilog语言还是有很多不懂得地方,故刚开始的程序总是有一些错误。

往往无从下手怎么去解决,一定要注意Verilog语言中一定要注意语句是并行执行的,在与以往的程序语言中这是有很大的差别的,并行的思想就要注意驱动时钟的准确性。

另外在此设计中一定选用模式5而且要调节时钟CLK1的频率为1Hz,这是作为1s的时间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

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

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