数字电路与逻辑设计实验报告,基于FPGA的数字电子钟的设计与实现

合集下载

用fpga简易数字钟电路设计实验报告 概述及解释说明

用fpga简易数字钟电路设计实验报告 概述及解释说明

用fpga简易数字钟电路设计实验报告概述及解释说明1. 引言1.1 概述本实验报告旨在介绍使用FPGA(可编程门阵列)设计的简易数字钟电路。

数字钟是一种可以显示时间的时钟装置,广泛应用于日常生活和工业领域。

本文将详细讲解数字钟的设计原理、硬件要求、设计步骤以及实验的实现过程。

1.2 文章结构本文共分为五个部分,即引言、FPGA简易数字钟电路设计、实验实现过程、实验结果分析和结论与总结。

下面将对每个部分进行具体说明。

1.3 目的该实验旨在通过学习和操作FPGA,深入理解数字电路设计的基本原理和方法,并通过设计一个简易的数字钟电路来巩固所学知识。

通过本实验,我们还将探索数字钟电路的性能评估和可能的改进方向,并对未来发展方向进行展望。

同时,通过参与这个项目,我们也将获得一定的实践经验和技能提升。

2. FPGA简易数字钟电路设计:2.1 设计原理:在本次实验中,我们使用FPGA(现场可编程逻辑门阵列)来设计一个简易的数字钟电路。

FPGA是一种集成电路芯片,可依据用户需要重新配置其内部互连,从而实现不同的逻辑功能。

我们将利用FPGA的可编程性和强大的计算能力来实现数字钟的功能。

该数字钟电路主要由时钟模块、倒计时模块和显示模块组成。

时钟模块负责产生稳定而精确的脉冲信号作为系统的时基;倒计时模块通过对输入时间进行倒计时操作,并发出相应信号提示时间变化;显示模块用于将倒计时结果以数码管显示出来。

2.2 硬件要求:为了完成该设计,我们需要准备以下硬件设备:- FPGA开发板:提供了外部接口和资源,用于连接其他硬件设备并加载程序。

- 数码管:用于显示时间信息。

- 时钟源:提供稳定而精确的脉冲信号作为系统的时基。

2.3 设计步骤:以下是设计步骤的详细说明:1. 确定所需功能:首先明确数字钟需要具备哪些功能,例如12小时制还是24小时制、倒计时功能等。

2. 确定FPGA型号:根据设计需求和资源限制,选择适合的FPGA型号。

基于FPGA的电子钟设计报告

基于FPGA的电子钟设计报告

基于FPGA的电子钟设计报告一、FPGA的基本知识1、可编程逻辑器件的概况可编程逻辑器件主要分为FPGA和CPLD 两种,两者的功能基本相同。

FPGA--现场可编程门阵列的简称CPLD--复杂可编程逻辑器件的简称2、FPGA芯片及其最小系统(1)FPGA芯片它的外形与普通嵌入式处理器芯片相同采用PGA(Organic pin grid Array,有机管脚阵列)的封装形式,但可以通过烧写特殊程序改变其内部结构,实现专门的电路功能。

基于FPGA的数字时钟2019-11-23 21:36·电力源动一、FPGA的基本知识1、可编程逻辑器件的概况可编程逻辑器件主要分为FPGA和CPLD 两种,两者的功能基本相同。

FPGA--现场可编程门阵列的简称CPLD--复杂可编程逻辑器件的简称它的外形与普通嵌入式处理器芯片相同采用PGA(Organic pin grid Array,有机管脚阵列)的封装形式,但可以通过烧写特殊程序改变其内部结构,实现专门的电路功能。

二、FPGA的设计方法1、编程语言FPGA的主流程序设计语言主要有VHDL语言与Verilog语言两种。

本课题采用VHDL语言进行编写。

VHDL--用简洁明确的源代码来描述复杂的逻辑控制。

它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

Verilog--一种基本语法与C语言相近,相比较于C语言更容易理解,2、图形化程序设计(设计效率低)三、软件开发环境QuartusII是Altera提供的FPGA开发集成环境,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

它完全支持VHDL设计流程,其内部嵌有VHDL逻辑综合器。

四、数字钟功能模块认识数字时钟的设计采用了自顶向下分模块的设计。

底层是实现各功能的模块,各模块由VHDL语言编程实现顶层采用原理图形式调用。

具体的设计框图:各模块原理剖析:(1)在七段数码管上具有时--分--秒的依次显示;(2)时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数;(3)整点报时,当计数到整点时扬声器发出响声;(4)时间设置:可以通过按键手动调节秒和分的数值。

数电实训报告电子时钟

数电实训报告电子时钟

一、实训目的本次数电实训旨在通过实际操作,加深对数字电子技术理论知识的理解,掌握数字电路的设计与制作方法,提高动手能力和故障排除能力。

通过设计并制作一个具有时、分、秒显示功能的电子时钟,熟悉数字电路中的计数器、译码器、显示器等基本模块,并学会运用这些模块完成一个完整的电子系统设计。

二、实训内容1. 电子时钟设计(1)设计要求设计一个具有时、分、秒显示功能的电子时钟,要求:1)采用CMOS集成电路设计,保证电路的稳定性;2)时钟显示采用7段数码管,可同时显示时、分、秒;3)时钟源采用石英晶体振荡器,确保时钟的准确性;4)具有时钟校准功能,可调整时、分、秒的显示值;5)具有时钟复位功能,可恢复时钟到初始状态。

(2)设计原理电子时钟主要由以下模块组成:1)时钟源:采用石英晶体振荡器产生标准时钟信号;2)分频器:将标准时钟信号分频,得到1Hz的秒脉冲信号;3)计数器:对秒脉冲信号进行计数,得到秒、分、时的计数值;4)译码器:将计数值转换为对应的7段数码管显示编码;5)显示器:采用7段数码管显示时、分、秒的计数值;6)校时电路:实现时钟校准功能;7)复位电路:实现时钟复位功能。

(3)电路设计1)时钟源:选用NE555定时器构成石英晶体振荡器,产生标准时钟信号;2)分频器:选用CD4060计数器进行分频,得到1Hz的秒脉冲信号;3)计数器:选用CD4518BCD计数器,分别实现秒、分、时的计数;4)译码器:选用CD4511BCD至7段数码管译码器,将计数值转换为7段数码管显示编码;5)显示器:采用7段数码管,分别显示时、分、秒的计数值;6)校时电路:采用按钮开关实现时钟校准功能;7)复位电路:采用按钮开关实现时钟复位功能。

2. 电子时钟制作(1)元器件准备根据电路设计,准备以下元器件:1)NE555定时器1个;2)CD4060计数器1个;3)CD4518BCD计数器3个;4)CD4511BCD至7段数码管译码器3个;5)7段数码管3个;6)石英晶体振荡器1个;7)电阻、电容、二极管、导线等。

基于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的数字钟设计Your Name一、实验目的1.了解数字钟的功能要求及设计方法;2.了解CPLD/FPGA的一般结构及开发步骤;3.熟悉用FPGA器件取代传统的中规模集成器件实现数字电路与系统的方法。

二、实验要求1.以数字形式显示时、分、秒的时间;2.小时计数器为同步24进制;3.要求手动校时、校分;4.任意闹钟;5.小时为12/24进制可切换;6.报正点数(几点响几声)。

三、实验内容1.系统模块框图2.时间校准模块时间校准模块可由两位控制信号控制当前校准状态。

3.时分秒计数模块时分秒计数模块由60进制秒计数器、60进制分计数器和24进制时计数器组成。

时分秒的计数器具有复位和计数功能。

其中CR为复位信号,当CR为0时,时分秒的计数器清0,EN为使能信号,EN为1时开始计时,EN为0则暂停计时。

分秒时的进位通过外部组合逻辑实现。

4.显示模块计时模块产生的BCD码通过编写的CD4511功能模块转换为数码管的显示信号。

5.分频模块开发板的系统时钟为50MHz,产生1Hz的CP信号需要一个模为25M的计数器分频得到1Hz的CP信号。

四、具体代码1.顶层模块(clock.v)module SHOW_CTRL(MODE,SHOW_MODE,CP,Hour,Minute,Second,SHOW1,SHOW2);input CP,MODE,SHOW_MODE;input[7:0]Hour,Minute,Second;output[7:0]SHOW1,SHOW2;reg[7:0]SHOW1,SHOW2;always@(MODE,SHOW_MODE) beginif((MODE==0)&&(SHOW_MODE==0))begin SHOW2<=Minute[7:0];SHOW1<=Hour[7:0]; endelse if((MODE==0)&&(SHOW_MODE==1))begin SHOW2<=Second[7:0];SHOW1<=Minute[7:0]; endelse if((MODE==1)&&(SHOW_MODE==0))begin SHOW2<=Minute[7:0];SHOW1<=Hour[7:0]; endelse if((MODE==1)&&(SHOW_MODE==1))begin SHOW2<=Second[7:0];SHOW1<=Minute[7:0]; endendendmodule2.分频模块(clk_div.v)module clk_div(clk_50M,clk_1);input clk_50M;output reg clk_1;reg [8:0]count;always @(posedge clk_50M)beginif(count>8'd25)beginclk_1=~clk_1;count=0;endelsecount<=count+1;endendmodule3.模60计数器模块(counter60.v)module counter60(EN,CP,nCR,QoH,QoL);input EN,CP,nCR;output [3:0]QoH,QoL;reg [3:0]QoH,QoL;always@(posedge CP) beginif(~nCR) beginQoH<=4'b0000;QoL<=4'b0000; endelse if(~EN) beginQoH<=QoH;QoL<=QoL; endelseif(QoH==4'b0101&&QoL==4'b1001)beginQoH<=4'b0000;QoL<=4'b0000;endendelse if(QoH<4'b0110&&QoL<4'b1001){QoH,QoL}<={QoH,QoL+4'b0001};else if(QoH<4'b0110&&QoL==4'b1001){QoH,QoL}<={QoH+4'b0001,4'b0000};endendmodule4.模24计数器模块(counter24.v)module counter24(nCR,EN,CP,CntH,CntL);input CP,nCR,EN;output[3:0] CntH,CntL;reg [3:0]CntH,CntL;reg CO;always@(posedge CP or negedge nCR) beginif(~nCR) {CntH,CntL}<=8'h00;else if(~EN) {CntH,CntL}<={CntH,CntL};else if((CntH>2)||(CntL>9)||((CntH==2)&&(CntL>=3))){CntH,CntL}<=8'h00;else if((CntH==2)&&(CntL<3))begin CntH<=CntH; CntL<=CntL+1'b1; end else if(CntL==9) begin CntH<=CntH+1'b1; CntL<=4'b0000; endelse begin CntH<=CntH; CntL<=CntL+1'b1; endendendmodule5.显示模块(HEX2LED.v)module HEX2LED(HEX,SEG);input[3:0] HEX;output[7:0] SEG;wire[3:0] HEX;reg[6:0] SEG;always@(HEX)begincase(HEX)4'h0: SEG = 7'b0000001;4'h1: SEG = 7'b1001111;4'h2: SEG = 7'b0010010;4'h3: SEG = 7'b0000110;4'h4: SEG = 7'b1001100;4'h5: SEG = 7'b0100100;4'h6: SEG = 7'b0100000;4'h7: SEG = 7'b0001111;4'h8: SEG = 7'b0000000;4'h9: SEG = 7'b0000100;default: SEG = 7'b0000001;endcaseendendmodule五、仿真截图(仿真秒时分计时及其数码管显示,仿真环境为vivado 2018.3)秒计时仿真分计时仿真时计时仿真如下图所示为分校准仿真,当Amin分校准位为1时分开始随着CP信号的频率以1秒加1的步进变动。

数字电路与逻辑设计实验报告

数字电路与逻辑设计实验报告

数字电路与逻辑设计实验报告数字电路与逻辑设计实验报告摘要:本实验旨在通过设计和实现数字电路和逻辑门电路,加深对数字电路和逻辑设计的理解。

实验过程中,我们使用了逻辑门电路、多路选择器、触发器等基本数字电路元件,并通过实际搭建电路和仿真验证,验证了电路的正确性和可靠性。

引言:数字电路和逻辑设计是计算机科学与工程领域的重要基础知识。

在现代科技发展中,数字电路的应用范围非常广泛,涉及到计算机、通信、控制等各个领域。

因此,深入理解数字电路和逻辑设计原理,掌握其设计和实现方法,对于我们的专业学习和未来的工作都具有重要意义。

实验一:逻辑门电路的设计与实现逻辑门电路是数字电路中最基本的元件之一,通过逻辑门电路可以实现各种逻辑运算。

在本实验中,我们通过使用与门、或门、非门等逻辑门电路,设计并实现了一个简单的加法器电路。

通过搭建电路和进行仿真验证,我们验证了加法器电路的正确性。

实验二:多路选择器的设计与实现多路选择器是一种常用的数字电路元件,可以根据控制信号的不同,选择不同的输入信号输出。

在本实验中,我们通过使用多路选择器,设计并实现了一个简单的数据选择电路。

通过搭建电路和进行仿真验证,我们验证了数据选择电路的正确性。

实验三:触发器的设计与实现触发器是一种常用的数字电路元件,可以存储和传输信息。

在本实验中,我们通过使用触发器,设计并实现了一个简单的二进制计数器电路。

通过搭建电路和进行仿真验证,我们验证了二进制计数器电路的正确性。

实验四:时序逻辑电路的设计与实现时序逻辑电路是一种特殊的数字电路,其输出不仅与输入信号有关,还与电路的状态有关。

在本实验中,我们通过使用时序逻辑电路,设计并实现了一个简单的时钟电路。

通过搭建电路和进行仿真验证,我们验证了时钟电路的正确性。

实验五:数字电路的优化与综合数字电路的优化与综合是数字电路设计中非常重要的环节。

在本实验中,我们通过使用逻辑代数和Karnaugh图等方法,对已有的数字电路进行了优化和综合。

数字电路时钟实训报告(一)

数字电路时钟实训报告(一)

数字电路时钟实训报告(一)数字电路时钟实训报告1. 概述•本报告旨在介绍数字电路时钟实训的相关内容,包括实训目的、实训过程和实训结果。

2. 实训目的•熟悉数字电路时钟的基本原理和设计思路•掌握数字电路时钟的硬件组成和功能模块•实践运用数字电路知识,完成时钟的设计和制作3. 实训过程1.准备材料–数字电路实验箱–电源线、信号线等连接器–电路元件:集成电路、电容器、电阻等–示波器、万用表等测试仪器2.设计方案–根据时钟的要求和功能需求,设计数字电路时钟的电路图–确定所需的集成电路和其他电路元件3.电路搭建–使用实验箱和连接器搭建数字电路时钟的电路–按照电路图连接电路元件和集成电路4.测试和调试–使用示波器、万用表等测试仪器对电路进行测试–检查电路是否按照设计要求工作5.验证功能–测试时钟的各项功能是否正常工作–验证时钟在不同时间段的准确性和稳定性4. 实训结果•完成数字电路时钟的设计和制作•时钟的各项功能正常工作•时钟在不同时间段具有准确性和稳定性5. 总结•通过本次数字电路时钟的实训,我深入了解了数字电路时钟的工作原理和设计流程。

通过实践操作,我掌握了数字电路时钟的搭建和调试方法,提高了数字电路设计能力。

这次实训对我的专业技能和实践能力的提升具有重要意义。

以上是本次数字电路时钟实训的报告内容。

实训过程中,我认真完成了任务,获得了实践经验,并与同学们共同交流和学习,提高了团队合作能力。

希望今后能继续深入学习和应用数字电路知识,为未来的科研和工作打下坚实的基础。

6. 遇到的问题和解决方法•在实训过程中,我遇到了几个问题:1.电路搭建困难:由于电路图复杂,部分连接容易混淆和出错。

解决方法是多次仔细核对电路图,注意连接的正确性,并请教老师和同学的帮助。

2.电路测试困难:有时测试仪器的操作和数据读取不够准确,导致测试结果不确定。

解决方法是认真阅读仪器的使用说明书,熟悉操作步骤,并与同学们共同研究和解决问题。

《FPGA设计与应用》数字时钟实验

《FPGA设计与应用》数字时钟实验

《FPGA设计与应用》数字时钟实验一、实验目的和要求
1.学习动态数码管的工作原理;
2.实现 FPGA 对四位动态数码管的控制;
3.熟悉模块化编程的操作流程。

二、实验内容
1.实现 FPGA 对四位动态数码管的控制,使其能够正常工作;2.基于eGo-1的数字钟设计与实现
三、实验要求
1、能够在实验板上实现数字时钟
四、操作方法与实验步骤
本实验的设计思路如下:
各模块实现方式:
分频
计数器
Hex2BCD
数码管动态显示
五、实验数据记录和处理实验代码如下:
设计文件:(部分)
仿真文件(部分):
约束文件(部分):
六、实验结果与分析
综合后生成的网表结构如下图所示:
仿真图像:
实物操作:
经过如上图代码的运行,实验要求的功能已基本实现,得出的实验结果与预期基本一致。

七、讨论和心得
这次实验用到了之前学习的动态数码管工作原理,将动态数码管与时钟相结合,对于每一位数码管来说,每隔一段时间点亮一次。

显示器的亮度通过导通电流,点亮时间和间隔时间的控制。

通过调整电流和时间参数,可以既保证亮度,又保证显示。

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

学生实验实习报告册
学年学期:
课程名称:
实验项目:基于FPGA的数字电子钟的设计与实现
姓名:
学院和专业:
班级:
指导教师:
重庆邮电大学教务处制
1.系统顶层模块设计(如:图一 0)
图一0
2.主要功能模块电路设计
2.1分频模块
这是分频模块的顶层设计图主要完成了把50MHz的时钟信号降频为1KHz、500Hz、1Hz 图一 1
图一 1
这是其中100分频计数器的计数器图一 2
图一 2
2.2计时模块
分、秒计时模块(实现模60计数)图二 1 这是两个模60计数器,
图二 1
其中是连在一起的,把秒钟的进位信号接到分钟计数模块的接收端
2.2.1小时计时模块(实现模24计数图二 2)
这是模24计数器(如图:图二 2),是用74390来实现,47390 是下降沿有效
图二 2
2.3数码管动态显示模块
这是动态显示模块的顶层设计图,如图:图二 3
图二 3
2.3.1扫描模块couner6(实现6位数码管的扫描图二 4)
该模块需使用74390设计一个模6的计数器。

实现了模值为6的计数功能其中应该接好 global 用作延时
图二 4
位选模块dig_select(3-8译码器用作控制哪一个数码显示器亮) 图二 5 该模块用于选择 6位数码管中的某一位显示相应字形。

74138为
图二 5
2.3.2段选模块seg_select 图二 6
该模块功能是从6组4bit信号中选择一组作输出。

图二 6
2.3.3译码模块decoder(实现了把8421码,译码成数码管的显示)图二 7
图二 7
2.4整点报时
设计思路:首先要做到在整点的时候报时(也就是说再整点的时候蜂鸣器响),那么我们就观察在整点的时候电路有什么特征。

我们观察到的特征就是:在整点的时候秒钟,分钟都是为零的,也就是说在正点的时候分钟秒钟的二进制数每位都是为零的,那么这就是我们控制蜂鸣器响的条件了。

那就是把秒钟分钟的每个线或非一下就好了。

但是我们要实现蜂鸣器响几秒,那么就再秒钟的低两位上就不接,就实现了响四秒。

图三 1
2.5调时功能
在设计调时间功能的时候,首先就想到我们直接在计数器的cp信号上接上一个开关然后手动给cp然后计数器增加,但是我们在不用调时的时候就是正常的时钟,那么我们就用一个二选一数选器来实现选择计数器的cp信号的来自我们手动给还是来自上一个计数器的进位信号。

同时在我们挑时间的时候时钟是暂停了,实现暂停就是我们用一个与门加上一个选着
端,选择端是1时1Hz 的时钟信号就通,否则就断开。

2.6秒表
秒钟的思路就来自于我们的普通时钟只是我们用的是100Hz 时钟信号。

然后我们是用100模60模60模的计数器。

秒表是要清零的那么我们就用74390的复位端,其中我们要用一个或门在选着我们的手动清零端和计数器的自动清零端。

秒表的暂停和
开始功能就是用一个与门接通和断开最开始的100Hz 时钟信号。

图四 1 图四 1
2.7消抖电路
图五 2 3.各模块的测试方案及测试结果
3.1计时模块
3.1.1分、秒计时模块(实现模60计数)
测试方案:用quartus II软件仿真模60计数结果。

测试结果:图六 1为模60仿真结果。

图六 1 3.1.2小时计时模块(实现模24计数)
测试方案:用quartus II软件仿真模24计数结果。

测试结果:图六 2 为模24仿真结果。

图六 2
3.1.3秒表最低位(实现模100计数)
测试方案:用quartus II软件仿真模100计数结果。

测试结果:图六 3 为模24仿真结果。

图六 3 3.2数码管动态显示模块
3.2.1扫描模块counter6
测试方案:用quartus II软件仿真模6计数结果。

测试结果:图六 4 为模6仿真结果。

图六 4
,没有加缓冲器导致波形有错3.2.2位选模块dig_select(实现数码管的选择)
测试方案:用quartus II软件仿真模6计数结果。

测试结果:图六 5 为模6仿真结果。

图六 5
图六 6 3.3系统总体测试
4.系统设计实现过程中遇到的主要问题、解决思路和解决方案
4.1在消抖动电路中,最开始做的电路没有达到消去抖动的目的,后来用仿真波形测试,发现只
要增加D触发器的个数就好了。

4.2校时电路的时候我是用的与门来选择是接通开关还是上一个计数器的进位信号的时候发现
要是我们我们的进位信号是维持在低电平,会阻断我们按键线路连接到计数器的clk端,后来选用二选一数选器来选择这两个cp时钟信号就行了。

5.心得体会
5.1在这个学期的数字电路学习中收获颇多,特别是在数字电路的实验课中真的是学到了有用的
知识,使得同学们更加的了解了电路的特性,使得我们在以后的学习和工作中都学到了有用的理论和动手的能力。

老师对我们是真的好,不仅教授我们有用的电路知识,更是提高了,同学们的实际动手能力。

这在我们以后的工作中打下了坚实的基础。

6.“数字电路与逻辑设计实验A”实验报告评阅表。

相关文档
最新文档