基于FPGA的多功能数字钟课程设计

合集下载

基于FPGA的数字时钟课程设计

基于FPGA的数字时钟课程设计

西安郵電學院基于FPGA的数字时钟成员:技术规范一、功能定义1、分频:在电子钟的设计中,涉及到的频率有三个:(1):1Hz的秒计时频率,用来进行秒计时;(2):4Hz的按键防抖频率;(3):1000Hz的循环扫描频率;因此在分频模块应实现将芯片中的高频率时钟分频得到上面的三个所需频2、控制:进行正常计时,时间调整,时间复位模式的选择:(1)时间初始复位;(2)选择秒时间调整的模式;(3)选择分时间调整的模式;3、计时:进行调整时间,正常计时;(1)正常计时;(2)调整秒计时;(3)调整分计时;4、选择输出:进行时间高低位的变换及循环扫描输出:(1)进行时间高低位的变换;设计思路:一、总体设计思路图:二、功能引脚定义1、总体引脚(1)K[1]:输入,控制是否进入调整模式,调时模式或调分模式。

(2)K[2]:输入,根据K1的选择进行加1调时。

(3)CLK:输入,1赫兹,控制秒钟的频率。

(4)CLK1K:输入,1K赫兹,控制时间的连续扫描输出。

(5)[7:0]LED:输出,七段显示译码管的输入。

(6)[5:0]SEG:输出,控制六个数码管的是否接通。

(7) SC:输入,时间复位。

2、(1)控制模块:输出控制信号和时分秒计时。

控制信号控制时分秒是否正常计时。

K[1]:输入,控制是否进入调整模式,调时模式或调分模式。

K[2]:输入,根据K1的选择进行加1调时。

SC:输入,时间复位。

[5:0]SEC:复位秒计时。

[5:0]MIN:复位、调时分计时。

[5:0]HOUR:复位、调时时计时。

KEN:控制是否进行正常及时、进入调时复位状态。

(2)计时模块秒计时:输出正常的秒计时或复位计时。

分计时:输出正常的分计时或复位计时或调时计时。

时计时:输出正常的时计时或复位计时或调时计时。

(3)时间扫描模块:利用高频率的时钟不断地循环扫描是分秒计时,以便循环译码;输出控制信号,控制数码管是否有效;此模块同时进行时间的高地位的计算与输出。

基于FPGA多功能数字钟的设计

基于FPGA多功能数字钟的设计

• 181•人类社会步入高速发展的电子时代,电子产品逐渐代替机械产品走入我们的生活。

随着科技的进步人们对电子产品的要求越来越高、传统产品已经不能满足人们的需求。

体积小、多功能、节能、环保开始成为了电子产品发展的新目标。

本文基于VHDL 语言,利用Quartus Ⅱ设计了一款多功能数字钟,内部包含秒表、闹钟、定时器、时钟四个模块。

经过实验仿真表明多功能数字钟能很好地满足生活中的各种需要。

本产品设计主要使用VHDL 语言描述了各个模块的功能来实现主要电路,最后在Quartus II 上完成了调试与仿真。

VHDL 语言实现电子设计,是一个以软件设计为主,器件配置相结合的过程,能从多个层次对数字系统进行设计,设计数字电路更为灵活方便,设计周期也可大大减小,提高了设计效率和可靠性。

我们需要的功能,在通过使用预先设计好的别的开关进一步让数字钟工作。

通过LED 显示屏可以看到数字。

本文通过软件Quartus II 9.0设计出各个模块并往开发板内写入程序实现我们想要的功能。

3 软件部分3.1 时钟部分时钟设计有三个要求第一,具有时、分、秒计数显示的功能,并以24h 循环计时。

第二,走时误差小于等于每天10s 。

第三,具有调节分钟、小时、秒以及清零的功能。

通常情况不需要让时钟停止工作,所以这部分模块就相当于实现了计数功能,对一直不断给入的1HZ 脉冲进行计数。

秒、分、时分了三个模块进行连接。

qw 是个基于FPGA多功能数字钟的设计大连理工大学城市学院 方润生 邓佳宁 于海霞图1 系统整体过渡模块,也是校正时间所用的模块。

校正时有两个开关,一个校正分、一个校正时。

如图2所示,qw 模块主要是为了实现调时功能。

实际工程中做了元件例化。

元件例化的主要作用是在大型项目的设计中许多底层文件需要反复使用,我们写好底层文件之后通过component 语句可以直接对底层文件进行调用方便了项目的设计。

3.2 闹钟闹钟在到达设置的时间时会发出持续一分钟的信号,可提前手动关闭。

fpga数字时钟课程设计

fpga数字时钟课程设计

fpga数字时钟课程设计FPGA数字时钟课程设计随着科技的不断发展,数字时钟已经成为现代人生活中必不可少的物品。

数字时钟的准确性和便捷性吸引了越来越多的人使用。

而现在,我们可以通过FPGA数字时钟课程设计来实现一个高精度的数字时钟。

FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以通过编程实现各种不同的功能。

数字时钟的实现也可以通过FPGA来完成。

在FPGA数字时钟课程设计中,我们需要先确定时钟的基础部分。

时钟的基础部分由时钟信号产生器、时钟分频器、时钟计数器和时钟显示器组成。

时钟信号产生器需要产生一个稳定的时钟信号,以供后续的计数器和分频器使用。

我们可以通过FPGA中的时钟模块来产生一个稳定的时钟信号。

接下来,时钟分频器需要将时钟信号分频,使得计数器可以进行精确的计数。

分频器的分频系数可以通过FPGA中的数码开关进行设置。

然后,时钟计数器需要根据分频器的设定进行精确的计数。

计数器的计数值可以通过FPGA中的计数器模块进行设置。

时钟显示器需要将计数器的计数值进行显示。

我们可以通过FPGA 中的数码管模块来实现时钟的显示功能。

除了基础部分,我们还可以通过添加更多的功能来完善数字时钟。

例如,我们可以添加闹钟功能、日期显示功能等,以增加数字时钟的实用性。

在FPGA数字时钟课程设计中,我们可以使用VHDL(VHSIC Hardware Description Language)语言进行编程。

VHDL是一种硬件描述语言,可以用于FPGA和ASIC的设计。

通过编写VHDL 程序,我们可以实现数字时钟的各种功能。

FPGA数字时钟课程设计是一个非常有趣和实用的课程项目。

通过这个项目,我们可以深入了解数字时钟的工作原理,熟悉FPGA的编程方法,同时也可以锻炼自己的编程能力。

基于FPGA的多功能数字钟设计报告

基于FPGA的多功能数字钟设计报告

***大学电工电子实验报告EDA技术基础设计报告多功能数字钟设计电子信息科学与技术年 月 日多功能数字钟设计一.任务解析用Verilog硬件描述语言设计数字钟,实现:1、具有时、分、秒计数显示功能,以二十四小时循环计时。

2、具有调节小时,分钟的功能。

3、具有整点报时同时LED灯花样显示的功能。

4、【发挥】三键(模式选择,加,减)调整,数码管闪烁指示功能。

5、【发挥】增加闹钟任意设定功能,时间精确到分。

二.方案论证第2页,共19页三.重难点解析1、模式选择键的设计//模式选择键。

有5个模式,m0为正常走钟;m1为调分;m2为调时;m3为闹钟调分;m4为闹钟调时。

module mode_key(key,clr,m);input key,clr;output [2:0]m;reg [2:0]m;always @(posedge key or negedge clr) beginif(!clr) m=0;else if(m==4) m=0;else m=m+1;endendmodule2、数字钟秒钟计数设计module cnt60_sec(clk,clr,q,c);input clk,clr;output [6:0]q;output c;reg [6:0]q;reg c;always @(posedge clk or negedge clr) beginif(!clr) begin q=0;c=0;endelse if(q[3:0]==9) begin q[3:0]=0;if(q[6:4]==5) begin q[6:4]=0; c=1;endelse q[6:4]=q[6:4]+1;end第3页,共19页else begin q[3:0]=q[3:0]+1;q[6:4]=q[6:4];c=0;endendendmodule、秒钟计数模块就是一个60的计数器,计数到59的时候清零,进位加1。

调时不需要控制秒钟,所以没有加模式选择按键。

数字钟课程设计fpga

数字钟课程设计fpga

数字钟课程设计 fpga一、课程目标知识目标:1. 学生能理解数字钟的基本原理和组成,掌握数字钟的计时方法。

2. 学生能了解FPGA的基本概念,掌握FPGA在数字钟设计中的应用。

3. 学生能掌握数字钟设计中涉及的二进制、十进制转换方法。

技能目标:1. 学生能够运用所学知识,设计并实现一个简单的数字钟电路。

2. 学生能够使用FPGA编程,实现数字钟的功能。

3. 学生能够通过实验操作,培养动手能力和团队协作能力。

情感态度价值观目标:1. 学生对数字电路产生兴趣,树立学习信心,形成积极的学习态度。

2. 学生在学习过程中,培养创新精神和实践能力,增强对科技发展的关注。

3. 学生通过合作学习,培养团队意识,学会尊重他人,分享成果。

课程性质:本课程为电子技术实践课程,结合理论教学,注重培养学生的实际操作能力和创新思维。

学生特点:学生为高中生,具备一定的电子技术基础,对新鲜事物充满好奇,喜欢动手实践。

教学要求:教师需引导学生运用所学知识,通过实验操作,掌握数字钟设计方法,提高学生的实践能力和创新精神。

同时,关注学生的情感态度价值观培养,使学生在学习过程中形成良好的学习习惯和团队合作意识。

将课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 数字钟原理及组成- 数字钟工作原理- 数字钟各部分功能及相互关系2. FPGA基础知识- FPGA基本概念- FPGA在数字电路设计中的应用3. 数字钟设计与实现- 数字钟计时方法- 二进制与十进制转换方法- 数字钟电路设计流程4. FPGA编程与实验操作- FPGA编程基础- 数字钟功能模块编程- 实验操作步骤与注意事项5. 数字钟综合设计与调试- 设计要求与评价指标- 设计方案撰写与展示- 团队合作与交流教学内容安排与进度:第一周:数字钟原理及组成、FPGA基础知识学习第二周:数字钟设计与实现、FPGA编程基础学习第三周:数字钟功能模块编程、实验操作第四周:数字钟综合设计与调试、成果展示与评价教材章节:第一章:数字钟原理及组成第二章:FPGA基础知识第三章:数字钟设计与实现第四章:FPGA编程与实验操作第五章:数字钟综合设计与调试教学内容遵循科学性和系统性原则,结合课程目标,确保学生能够掌握数字钟设计与FPGA编程相关知识,培养实践能力和创新精神。

基于XilinxFPGA的数字钟设计

基于XilinxFPGA的数字钟设计

基于FPGA的多功能数字钟一、设计题目基于Xilinx FPGA的多功能数字钟设计二、设计目的1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;2.熟悉一种EDA软件使用;3.掌握Verilog设计方法;4.掌握分模块分层次的设计方法;5.用Verilog完成一个多功能数字钟设计;6.学会FPGA的仿真。

三、设计内容设计实验项目九多功能电子钟✧功能要求:利用实验板设计实现一个能显示时分秒的多功能电子钟,具体要求为:基本功能:1)准确计时,以数字形式显示时、分、秒,可通过按键选择指示当前显示时间范围模式;2)计时时间范围 00:00:00-23:59:593)可实现校正时间功能;4)可通过实现时钟复位功能:00:00:00扩展功能:1)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用实验板LED或外接电路实现。

2)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---利用实验板LED或外接电路实现。

3)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---利用实验板LED或外接电路实现。

4)手动输入校时;5)手动输入定时闹钟;6)万年历;7)其他扩展功能;✧设计步骤与要求:1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。

2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。

3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快得出仿真结果)。

4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit类型文件。

5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

四、总体设计思路主体分为分频模块,正常时间模块(包含两个模60计数器和一个模24计数器子模块),闹钟模块(分为一个模60计数器模块,一个模24计数器模块,四个比较器模块),电台报时模块,数码管显示模块(分为模式选择模块,片选信号及扫描程序模块,和译码模块)。

基于FPGA多功能数字钟的设计

基于FPGA多功能数字钟的设计

3、状态转换功能模块
该模块实现电路各状态之间的转换功能,若仅完成基本功能,系统 应包含4个状态,分别为正常计时、对秒位进行设置、对分位进行设置 和对小时位进行设置。若完成扩展功能,还可增加其他状态。这部分可 以用脉冲键输入进行切换,也可以用拨动开关进行切换。根据所选择的 切换方式,自行编写程序。
4、校时功能模块
此模块主要在状态切换到设置时,可以将时、分、秒位设置成需要的 数值,此功能可以由脉冲键输入完成。
5、译码功能模块
此模块功能将计数器产生的数值,通过编译,形成对应七段数码 管显示格式的编码。七段数码管的a-g对应实验箱上的主要引脚为 O50-O56。
6、LED显示模块
本模块使用实验箱上的8个数码管进行显示,为动态显示法,需采用 扫描的方式进行显示。此方法对于扫描频率有一定的要求,在设计时需 考虑采用那个频率作为扫描信号。8个数码管的扫描信号对应实验箱上的 引脚为SO58-SO65。
四、系统仿真
将每个模块编译成功后,进行仿真测试,若仿真结果符合设计 要求,再配置输入输出引脚,若不符合,请返回修改程序,直至仿 真结果合格。将仿真结果截图,记录至设计报告中。
精品课件!
精品课件!
五、硬件验证
将编译通过、仿真结果正确且引脚信息配置正确的程序下载至 实验箱的FPGA中,硬件验证设计是否符合要求。
2、计时功能模块
计时模块需对时、分、秒进行计数,其中小时位为24进制,分 钟和秒钟位为60进制。可以用一段程序对时、分、秒进行连续计数, 也可以对时、分、秒的高位和低位分别计数。注意,如果采用连续 计数方式,因为每位显示时有高位和低位之分,所以需将十进制数 据用BCD码进行转换后,才能输出到七段数码管上显示。
此电子钟分两种工作状态: 1、正常计时的状态; 2、设置时间的状态。

基于FPGA的数字钟课程设计

基于FPGA的数字钟课程设计

集成电路设计课程设计报告专业班级学号姓名基于FPGA的数字钟课程设计1.任务和设计要求设计具有时、分、秒计数显示,以24小时循环计时的时钟电路,带有清零和校准功能;2.设计原理采用硬件描述语言Verilog 进行编程,实现20MHZ晶振到1HZ的分频;采用verilog 语言实现数字表功能实现的各个模块;通过各个模块的代码生成相应的模块原理图;再将各个模块生成的原理图进行叠加组成一个数字表系统;3.系统设计设计的数字表有6个输入,16个输出;6个输入中,有一个是时钟信号,开发板上的28号引脚输入的50MHZ的时钟信号;一个清零端,当数字表正常显示时,按下清零端可以实现数字钟整体电路图:4.各个模块设计基于EP1C6Q240C8的数字钟设计,有6个模块组成:Fdiv 分频模块Control 模式选择模块Tune 校正模块Zoushi 时间正常运行模块Saomiao 数码管动态扫描模块;Decoder BCD译码模块;Fdiv 模块:功能:实现20MHZ的时钟信号分成10KHZ的信号和1HZ的信号;输入:clk 为20MHZ的时钟信号;输出:f10000HZ 为10KH的时钟信号;F1HZ 为1HZ的时钟信号;Fdiv 模块代码:module fdiv(clk,f10000Hz,f1Hz);output f10000Hz,f1Hz;input clk;reg f10000Hz,f1Hz;integer CNT1=0,CNT2=0;always@(posedge clk)beginif(CNT1<1999)beginCNT1=CNT1+1;f10000Hz<=1'b0;endelsebeginCNT1=0;f10000Hz<=1'b1;endendalways@(posedge f10000Hz)beginif(CNT2<9999)beginCNT2=CNT2+1;f1Hz<=1'b0;endelsebeginCNT2=0;f1Hz<=1'b1;endendendmodulefdiv 模块波形仿真:由于实际的分频波形仿真中,由于要将20MHZ的分成1HZ的,需要将信号缩小20 000 000倍,因此,此处采用将20HZ的先分成10HZ,然后再将10HZ的分成1HZ的时钟信号;在仿真中这样整,在实际演示中再改下代码,实现真正的20MHZ到1HZ的分频;它们只是一个倍数关系而已;Control 模块:功能:实现电子表的正常显示及时间校正模式的转换;输入:key 模式修改键,每来一个高电平,mode加一次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

F P
G A课程设计报告
(实现多功能数字钟)
一、标题:设计多功能数字钟控制电路
二、任务书:用MAX+PLU SⅡ软件及Verilog HDL语言设计
一个多功能的数字钟,包括有时、分、秒的计
时,以及校时(对小时、分钟和秒能手动调整
以校准时间)、正点报时(每逢整点,产生“嘀
嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。

三、关键词:24进制、60进制、正点报时、校时、数字钟
四、总体方案:多功能数字钟控制电路框图是由三部分组成
的,即秒分时控制电路、整点报时控制电路、
时段控制电路。

用Verilog HDL硬件描述语
言完成编译和仿真。

五、原理框图如下:



六、Verilog HDL硬件描述语言编写的功能模块:
/*秒计数器m60*/
module m60(M,CP60M,CPM,RD); output [7:0]M;
output CP60M;
input CPM;
input RD;
reg [7:0]M;
wire CP60M;
always@(negedge RD or posedge CPM) begin
if(!RD)
begin M[7:0]<=0;
end
else
begin
if((M[7:4]==5)&&(M[3:0]==9))
begin
M[7:0]<=0;
end
else
begin
if(M[3:0]==9)
begin
M[3:0]<=0;
if(M[7:4]==5)
begin M[7:4]<=0;end
else M[7:4]<=M[7:4]+1;
end
else M[3:0]<=M[3:0]+1;
end
end
end
assign CP60M=~(M[6]&M[4]&M[3]&M[0]); endmodule
/*分计数器m60*/
module m60(M,CP60M,CPM,RD);
output [7:0]M;
output CP60M;
input CPM;
input RD;
reg [7:0]M;
wire CP60M;
always@(negedge RD or posedge CPM) begin
if(!RD)
begin M[7:0]<=0;
end
else
begin
if((M[7:4]==5)&&(M[3:0]==9))
begin
M[7:0]<=0;
end
else
begin
if(M[3:0]==9)
begin
M[3:0]<=0;
if(M[7:4]==5)
begin M[7:4]<=0;end
else M[7:4]<=M[7:4]+1;
end
else M[3:0]<=M[3:0]+1;
end
end
end
assign CP60M=~(M[6]&M[4]&M[3]&M[0]); endmodule
/*小时计数器m24*/
module m24(H,CPH,RD);
output [7:0]H;
input CPH,RD;
reg [7:0]H;
always@(negedge RD or posedge CPH) begin
if(!RD) H[7:0]<=0;
else
begin
if((H[7:4]==2)&&(H[3:0]==3))
begin
H[7:0]<=0;
end
else
begin
if(H[3:0]==9)
begin H[3:0]<=0;
H[7:4]<=H[7:4]+1;
end
else H[3:0]<=H[3:0]+1;
end
end
end
endmodule
/*秒分时控制计数器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 CPS or CP60S or CP60M)
begin
case({SWM,SWH})
2'b01: begin CPM<=CPS;CPH<=CP60M;end
2'b10: begin CPM<=CP60S;CPH<=CPS;end
default: begin CPM<=CP60S;CPH<=CP60M;end endcase
end
endmodule
/*时段控制器sdkz*/
module sdkz(h,sk);
input [7:0]h;
output sk;
reg sk;
always@(h)
begin
if((h<=5)||(h>=19))
sk<=1;
else
sk<=0;
end
endmodule
/*报时计数器baoshi*/
module 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;
end
endmodule
七:各模块原理图及仿真波形:
24进制原理图:
60进制原理图:
电路原理图:
时段控制:
报时:
1、秒计数器仿真波形
2、分计数器的仿真波形
3、小时计数器的仿真波形
4、秒分时控制电路的仿真波形
5、时段控制的仿真波形
6、报时器的仿真波形
八、顶层文件及仿真波形
顶层文件的仿真波形:
管脚号的分配如下:
十:课程设计结论:
此次课程设计通过最终下载及编译可实现以上功能,在七段显示器上可实现秒、分计数器60进制,时计数器24进制显示,以及调节CLK1、CLK2的频率可使计数器上数字延时显示。

在正点报时中,当秒计数器进入56秒时,就会听到“嘀嘀嘀嘀-嘟”的声音。

十一:心得体会:
两天的课程设计已经结束了,虽然开始的时候为此感到焦头烂额,但总算在同学和老师的帮助下坚持了下来,圆满的完成了此次FPGA课程设计。

通过这两天的学习,让我们更加熟练地掌握了MAXPLUS软件的使用以及Verilog HDL语言的逻辑编写。

特别锻炼了我们的团队合作,如在最后编译的时候,实现正点报时时怎么也出现不了声音,当时我仔细研究重新分析了一遍仍然找不到问题出在哪,最后在同学的帮助下才发现78号管脚忘了分配,修正后如愿听到了正点报时“嘀嘀嘀嘀-嘟”的声音。

总之,此次课程设计让我感受颇丰,学到了很多东西。

为我以后从事这方面的工作做了一个好的开始。

十二:参考文献:
数字系统设计与Verilog HDL(第2版) 王金明电子工业出版社
《FPGA原理及应用》赵雅兴天津大学出版社
《VHDL硬件描述语言与数字逻辑设计》侯伯亨西安电子科技大学出版社
FPGA设计网论坛。

相关文档
最新文档