基于FPGA的数字钟设计Word文件下载.docx

上传人:b****5 文档编号:18105369 上传时间:2022-12-13 格式:DOCX 页数:24 大小:702.49KB
下载 相关 举报
基于FPGA的数字钟设计Word文件下载.docx_第1页
第1页 / 共24页
基于FPGA的数字钟设计Word文件下载.docx_第2页
第2页 / 共24页
基于FPGA的数字钟设计Word文件下载.docx_第3页
第3页 / 共24页
基于FPGA的数字钟设计Word文件下载.docx_第4页
第4页 / 共24页
基于FPGA的数字钟设计Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于FPGA的数字钟设计Word文件下载.docx

《基于FPGA的数字钟设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字钟设计Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

基于FPGA的数字钟设计Word文件下载.docx

第一周

学习可编程逻辑器件开发工具Max+plusII的使用,熟悉硬件电路(显示及驱动电路),设计计数器、译码器、动态扫描显示电路,软件仿真实现时间(秒)的两位计数及显示。

11.3.28-11.4.01

第二周

学习可编程逻辑器件的原理图及文本输入层次化设计方法,设计数字钟的顶层电路及各底层电路模块,下载实现数字时钟的基本功能。

11.4.04-11.4.08

第三周

实现基本要求之外的其它扩展功能;

用PROTEL软件绘制硬件原理图;

撰写并完成硬件课程设计说明书,测试硬件设计作品的功能,进行课程设计答辩。

11.4.11-11.4.15

五、指导教师评语及学生成绩

指导教师评语:

年月日

成绩

指导教师(签字):

目录

硬件课程设计任务书I

第1章设计的硬件平台及开发工具1

1.1硬件平台1

1.2开发工具1

第2章数字时钟的设计方案及顶层设计2

2.1数字钟整体设计方案2

2.1.1功能要求2

2.1.2硬件要求2

2.1.3整体方案2

2.2可编程逻辑器件FPGA/CDLP的顶层设计3

2.2.1设计原理3

2.2.2硬件连接和目标器件管脚的锁定4

第3章数字时钟的底层模块设计6

3.1秒模块设计6

3.2.1实验电路图6

3.1.2工作原理6

3.1.3VHDL设计6

3.1.4仿真实现7

3.2分模块设计8

3.2.1实验电路图8

3.2.2工作原理8

3.2.3VHDL设计8

3.2.4仿真实现10

3.3时模块设计10

3.3.1实验电路图10

3.3.2工作原理10

3.3.3VHDL设计11

3.3.4仿真实现12

3.4动态扫描模块设计12

3.4.1实验电路图12

3.4.2工作原理13

3.4.3VHDL设计13

3.4.4仿真实现14

3.5断码译码模块设计14

3.5.1实验电路图14

3.5.2工作原理15

3.5.3VHDL设计15

3.5.4仿真实现16

3.6整点报时LED控制模块设计16

3.6.1实验电路图16

3.6.2工作原理16

3.6.3VHDL设计17

3.6.4仿真实现17

第4章数字时钟的设计实现18

4.1硬件的设计18

4.2硬件下载过程19

4.2.1下载硬件接口技术19

4.2.2下载硬件编辑器20

结论21

参考文献22

附页23

第1章设计的硬件平台及开发工具

1.1硬件平台

本设计基于复杂可编程逻辑器件(CPLD/FPGA)设计并实现数字时钟。

采用Altera公司的器件进行设计,开发调试时采用Altera的FPGA芯片FLEX10K10LC84,设计完成后下载生成数字钟硬件于Altera的CPLD芯片EPM7128SLC84中,实现数字钟功能。

利用Altera可编程逻辑器件开发实验系统进行设计。

系统提供FPGA/CPLD下载板及相应的其它硬件资源。

时钟的时间显示采用6位LED数码管(动态扫描驱动方式),采用系统提供的1Hz脉冲输出作为时钟的秒输入。

按键作为调准时、分及秒清零的功能键。

蜂鸣器和发光二极管用于产生整点时的声光报时信号。

1.2开发工具

利用Altera的可编程逻辑器件开发工具MAX+PLUSⅡ,采用原理图输入的设计方法进行数字钟的设计与调试。

MAX+PLUSⅡ是一个集成的软件开发平台,提供了从设计输入、编译、器件适配、软件仿真到器件下载的全部功能。

图1-1MAX+PLUSⅡ软件开发平台

第2章数字时钟的设计方案及FPGA的顶层设计

2.1数字钟整体设计方案

2.1.1功能要求

1)时、分、秒计数显示功能,以24h循环计时;

2)时间设定、调准功能(调时、调分及启动计时);

3)整点报时功能。

2.1.2硬件要求

1)可编程逻辑器件主芯片:

EPF10K10LC84-4;

2)显示器件:

采用六个八段LED共阴极数码管,以动态扫描方式显示时间;

3)时间设定与调准:

三个按键用于调时、调分及启动计时;

4)采用蜂鸣器与发光二极管进行整点声光报时;

5)由晶振(CD4060)组成的脉冲发生电路提供数字钟计时的秒脉冲输入(1Hz)和动态扫描驱动模块输入脉冲(频率约为1kHz)。

2.1.3整体方案

整体电路图见附图,cCLK为秒脉冲输入端,由晶振与分频计数器(CD4060)组成的脉冲发生电路提供频率1Hz的秒脉冲输入信号;

smclk为动态扫描控制模块的输入,由脉冲发生电路提供频率约1kHz的脉冲输入信号;

hourset、minset和reset分别为小时调整、分钟调整和秒清零(启动时钟计时)输入,接按钮开关;

a、b、c、d、e、f、g、dp为显示段码输出,接LED数码管的段码输入;

sel0、sel1、sel2接外部3-8译码器74LS138的输入端(译码器输出经75451驱动LED数码管的位选端――共阴极端);

speaker为数字钟的整点声音报时输出,接蜂鸣器进行整点声音报时,lamp0、lamp1和lamp2为数字钟的整点彩灯报时输出,分别接红、绿和黄三只LED发光二极管,进行整点时彩灯闪烁发光报时。

2.2可编程逻辑器件FPGA/CDLP的顶层设计

2.2.1设计原理

图2-1数字钟顶层设计原理图

采用原理图输入设计方法进行层次化设计,可将数字钟分为顶层与底层设计,顶层设计如图2-1所示,共分为六个模块:

时模块、分模块、秒模块、动态扫描控制模块、段码译码模块和整点报时模块。

秒模块主体为60进制的计数器,daout为向动态扫描控制模块提供秒的个位和十位数据的信号。

reset为秒清零;

enmin为分钟进位,每60秒产生一个高电平的信号,作为分模块的时钟输入;

clk为秒模块的时钟输入,接1Hz脉冲信号;

min_set为分钟设置,低电平是不影响秒模块工作,当它为高电平时,enmin信号会随之产生一个和clk频率相同的信号,达到调整分钟的目的。

分模块主体为60进制的计数器,daout为向动态扫描控制模块提供分的个位和十位数据的信号。

Enhour为分钟进位,每60分产生一个高电平的信号,作为时模块的时钟输入;

秒计数到60时的进位输出信号enhour1和分钟调整输入信号minset,经或关系后接分的脉冲输入端clk;

clk1为时调整脉冲,接1Hz脉冲;

hour_set为时钟设置,低电平是不影响分模块工作,当它为高电平时,enmin信号会随之产生一个和clk频率相同的信号,达到调整时的目的。

时模块为一个24进制的计数器,daout为向动态扫描控制模块提供秒的个位和十位数据的信号。

分计数到60时的进位输出信号enhour1和时调整输入信号hourset,经或关系后接时脉冲输入端clk。

daout为向动态扫描控制模块提供时的个位和十位数据的信号。

动态扫描模块中smclk为动态扫描控制模块的脉冲输入,由外部脉冲发生电路提供,频率约为1kHz;

sel0、sel1、sel2接外部3-8译码器74LS138的输入端A、B、C(译码器输出经75451驱动LED数码管的位选端);

sec[6..0]、min[6..0]、hour[5..0]分别为秒模块、分模块、时模块计数段码输出控制信号。

该模块实现时间的动态扫描显示控制。

段码译码模块是将动态扫描模块输出的BCD码转换成驱动数码管所需要的信号。

整点报时模块用于产生整点时的LED发光二极管彩灯和报时输出。

分模块输出的信号接入dain

整点声音报时输出信号speak接蜂鸣器输入,信号lamp[2..0]控制整点时产生60秒的LED发光二极管彩灯闪烁报时输出信号red、green、yellow。

2.2.2硬件连接和目标器件管脚的锁定

图2-2硬件管脚连接

1Hz-in为秒脉冲输入,由晶振与分频计数器(CD4060)组成的脉冲发生电路提供频率约为1Hz的秒脉冲输入新号;

hour-tiao、min-tiao、和sclr分别为小时调整、分钟调整和秒清零(启动时钟计时)输入,接按钮开关;

a、b、c、d、e、f、g为显示段码输出,接LED数码管的段码输入;

sel0、sel1、sel2接外部3–8译码器74LS138的输入端(译码器输出经75451驱动LED数码管的位选端——共阴极端);

speaker为数字钟的整点声音报时输出,接蜂鸣器进行整点报时,red、green和yellow为数字钟的整点彩灯报时输出,分别接红、绿和黄三只LED发光二极管,进行整点时彩灯闪烁发光报时。

通过fit或rpt文件可以看到MAX+plusⅡ软件编译后自动对输入、输出管脚的配置情况。

图2-3目标管脚锁定

通过Assign下拉菜单选择Pin/Location/Chip项,出现如上图所示的管脚锁定窗口。

ChipName框中为设计文件名称。

在NodName中键入需要改变位置的输入输出端口名称,PinType框内将显示出端口的类型,将更改后该端口锁定的管脚号键入到Pin框中,然后选择Add将管脚的改变填加到ExietingPin/Location/ChipAssignments栏框中。

所有要改变锁定位置的端口都按上面的步骤添加到ExistingPin/Location/ChipAssignments栏框后,选择OK完成管脚的重新分配。

重新编译后,完成管脚的锁定。

第3章数字时钟的底层模块设计

3.1秒模块设计

3.2.1实验电路图

图3-1秒模块原理图

3.1.2工作原理

3.1.3VHDL设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSECIS

PORT(CLK,RESET,MIN_SET:

INSTD_LOGIC;

ENMIN:

OUTSTD_LOGIC;

DAOUT:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITYSEC;

ARCHITECTUREBEHAVEOFSECIS

SIGNALCOUNT:

STD_LOGIC_VECTOR(6DOWNTO0);

SIGNALENMIN1,ENMIN2:

STD_LOGIC;

BEGIN

DAOUT<

=COUNT;

ENMIN2<

=(MIN_SETANDCLK);

ENMIN<

=(ENMIN1ORENMIN2);

PROCESS(CLK,RESET,MIN_SET)

IF(RESET='

0'

)THENCOUNT<

="

0000000"

;

ELSIF(CLK'

EVENTANDCLK='

1'

)THEN

IF(COUNT(3DOWNTO0)="

1001"

IFCOUNT(6DOWNTO4)="

101"

THEN

ENMIN1<

='

COUNT<

ELSE

COUNT<

=COUNT+7;

ENDIF;

ELSE

COUNT<

=COUNT+1;

ENMIN1<

ENDIF;

ENDPROCESS;

ENDBEHAVE;

3.1.4仿真实现

图3-2秒模块仿真文

由图3-2看出,当clk信号输入后,随着clk的脉冲,dout开始计数,此时enmin为低电平,当485ns时,设min_set为高电平,enmin产生和clk信号频率相同的脉冲;

当585ns时,min_set为低电平时,enmin不产生脉冲。

当daout计数到60,enmin产生一个脉冲,同时daout和cout清零,下一个脉冲后继续计数。

3.2分模块设计

图3-3分模块原理图

3.2.2工作原理

3.2.3VHDL设计

lIBRARYIEEE;

ENTITYMINIS

PORT(CLK,CLK1,HOUR_SET:

ENHOUR:

ENDENTITYMIN;

ARCHITECTUREBEHAVEOFMINIS

SIGNALENHOUR1,ENHOUR2:

ENHOUR2<

=(HOUR_SETANDCLK1);

ENHOUR<

=(ENHOUR1ORENHOUR2);

PROCESS(CLK)

IF(CLK'

IF(COUNT(3DOWNTO0)="

ENHOUR1<

ELSE

=COUNT+7;

=COUNT+1;

ENHOUR1<

3.2.4仿真实现

图3-4分模块仿真文件

由图3-4看出,当clk信号输入后,随着clk的脉冲,dout和cout开始计数,此时enhour为低电平,当50ns时,设hour_set为高电平,enhour产生和clk1信号频率相同的脉冲;

当80ns时hour_set为低电平时,enhour不产生脉冲。

当daout计数到60,enhour产生一个脉冲,同时daout和cout清零,下一个脉冲后继续计数。

3.3时模块设计

3.3.1实验电路图

图3-5时模块原理图

3.3.2工作原理

3.3.3VHDL设计

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYhourIS

PORT(CLK:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDENTITYHOUR;

ARCHITECTUREBEHAVEOFHOURIS

STD_LOGIC_VECTOR(5DOWNTO0);

DAOUT<

IF(CLK'

)THEN

IF(COUNT(3DOWNTO0)="

IF(COUNT<

16#23#)THENCOUNT<

ELSECOUNT<

000000"

ENDIF;

ELSIF(COUNT<

3.3.4仿真实现

图3-6时模块仿真文件

由图3-3看出,当clk信号输入后,随着clk的脉冲,dout和cout开始计数,当计数达到24时,清零,下一脉冲继续计数。

3.4动态扫描模块设计

3.4.1实验电路图

图3-7动态扫描控制模块原理图

3.4.2工作原理

3.4.3VHDL设计

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYscanIS

PORT(clk0:

sec,min:

INSTD_LOGIC_VECTOR(6DOWNTO0);

hour:

INSTD_LOGIC_VECTOR(5DOWNTO0);

daout:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

dp:

sel:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDscan;

ARCHITECTUREbehaveOFscanIS

SIGNALcount:

STD_LOGIC_VECTOR(2DOWNTO0);

sel<

=count;

PROCESS(clk0)

BEGIN

IF(clk0'

eventandclk0='

)THEN

IF(count>

)THENcount<

000"

ELSEcount<

=count+1;

CASEcountIS

WHEN"

=>

daout<

=sec(3DOWNTO0);

dp<

001"

daout(3)<

daout(2DOWNTO0)<

=sec(6DOWNTO4);

010"

=min(3DOWNTO0);

011"

=min(6DOWNTO4);

100"

=hour(3DOWNTO0);

WHENothers=>

daout(3DOWNTO2)<

00"

daout(1DOWNTO0)<

=hour(5DOWNTO4);

ENDCASE;

ENDPROCESS;

ENDbehave;

3.4.4仿真实现

图3-8动态扫描控制模块仿真文件

clk1为时钟输入,接1Hz脉冲信号。

随着clk1信号的变化,分别把sec的个位,sec的十位,min的个位,min的十位,hour的个位,hour的十位分别送入dout。

3.5断码译码模块设计

3.5.1实验电路图

图3-9断码译码模块

3.5.2工作原理

3.5.3VHDL设计

ENTITYDECL7SIS

PORT(NUM:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED7S:

ENDENTITYDECL7S;

ARCHITECTUREBEHAVEOFDECL7SIS

PROCESS(NUM)

CASENUMIS

--ABCDEFG

WHEN"

0000"

LED7S<

1111110"

0001"

0110000"

0010"

1101101"

0011"

1111001"

0100"

0110011"

0101"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1111011"

WHENOTH

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

当前位置:首页 > PPT模板 > 其它模板

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

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