硬件课程设计基于FPGA的数字时钟设计.doc
《硬件课程设计基于FPGA的数字时钟设计.doc》由会员分享,可在线阅读,更多相关《硬件课程设计基于FPGA的数字时钟设计.doc(25页珍藏版)》请在三一办公上搜索。
1、信息与控制工程学院硬件课程设计说明书基于FPGA的数字时钟设计学生学号: 学生姓名: 专业班级: 测控0801班 指导教师: 职 称: 教授 起止日期: 2011.9.262011.10.15 吉林化工学院Jilin Institute of Chemical Technology硬件课程设计任务书一、设计题目:基于FPGA的数字时钟设计二、设计目的1掌握利用EDA开发工具Max+plusII进行可编程逻辑器件设计的方法; 2掌握用FPGA进行计数器、译码器及LED动态扫描显示驱动电路设计的方法;3熟练掌握可编程逻辑器件的文本输入(VHDL)层次化设计方法;4掌握利用Max+plusII进行软
2、件仿真及对可编程逻辑器件进行硬件下载的方法。三、设计任务及要求设计并实现数字钟。下载芯片:EPF10K10LC84(Altera的FLEX10K系列芯片)。时钟基本功能:1具有时、分、秒显示,24小时循环计时功能;2具有时间校准(调时/对时)功能。可扩展其它功能。四、设计时间及进度安排设计时间共三周(11.3.2811.4.15),具体安排如下表:周安排设 计 内 容设计时间第一周学习可编程逻辑器件开发工具Max+plusII的使用及原理图输入设计方法,熟悉硬件电路(显示及驱动电路),学习VHDL,设计时、分、秒模块,并进行软件仿真。11.3.28-11.4.01第二周学习可编程逻辑器件的文本
3、输入层次化设计方法,设计数字钟的译码、动态扫描及整点报时模块,设计数字钟顶层电路,下载实现数字时钟的基本功能。11.4.04-11.4.08第三周实现基本要求之外的其它扩展功能;用PROTEL软件绘制整体硬件原理图;撰写并完成硬件课程设计说明书,测试硬件设计作品的功能,进行课程设计答辩。11.4.11-11.4.15五、指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):目 录硬件课程设计任务书I第1章 设计的硬件平台及开发工具11.1 硬件平台11.2 开发工具1第2章 数字时钟的设计方案及FPGA的顶层设计22.1 数字钟整体设计方案22.1.1 数字钟的功能22.1.2
4、硬件要求22.1.3 引脚说明以及设计方案22.2 可编程逻辑器件FPGA的顶层设计2第3章 数字时钟的底层模块设计43.1 秒模块设计43.1.1 秒模块VHDL程序43.1.2 秒模块的仿真实现53.2 分模块设计63.2.1 分模块VHDL程序63.2.2 分模块的仿真实现73.3 时模块设计73.3.1 时模块VHDL程序83.3.2 时模块的仿真实现93.4 动态显示扫描模块设计93.4.1 动态显示扫描模块VHDL程序93.4.2 动态显示扫描模块的仿真实现103.5 段码译码模块设计113.5.1 段码译码模块VHDL程序113.5.2 段码译码模块的仿真实现123.6 整点报时
5、模块设计(发挥部分)123.6.1 整点报时模块VHDL程序123.6.2 整点报时模块的仿真实现13第4章 数字时钟的设计实现144.1数字时钟的硬件设计过程144.2硬件下载过程144.2.1 接口设置144.2.2 器件编程的下载144.3 硬件电路连接154.3.1 硬件电路连接说明16结 论17参考文献18附录19第1章 设计的硬件平台及开发工具1.1 硬件平台本设计基于复杂可编程逻辑器件(CPLD/FPGA)设计并实现数字时钟。采用Altera公司的器件进行设计,开发调试时采用Altera的FPGA芯片FLEX10K10LC84,设计完成后下载生成数字钟硬件于Altera的CPLD
6、芯片EPM7128SLC84中,实现数字钟功能。利用Altera可编程逻辑器件开发实验系统进行设计。系统提供FPGA/CPLD下载板及相应的其它硬件资源。时钟的时间显示采用6位LED数码管(动态扫描驱动方式),采用系统提供的1Hz脉冲输出作为时钟的秒输入。按键作为调准时、分及秒清零的功能键。蜂鸣器和发光二极管用于产生整点时的声光报时信号。1.2 开发工具利用Altera的可编程逻辑器件开发工具MAX+PLUS,采用原理图输入的设计方法进行数字钟的设计与调试。MAX+PLUS是一个集成的软件开发平台,提供了从设计输入、编译、器件适配、软件仿真到器件下载的全部功能。图1-1为工具环境。图1-1 M
7、AX+PlusII工具环境第2章 数字时钟的设计方案及FPGA的顶层设计2.1 数字钟整体设计方案2.1.1 数字钟的功能1)以24小时制显示时、分、秒计数; 2)时间清零,时设置,分设置功能;3)整点报时功能。2.1.2 硬件要求1)可编程逻辑器件主芯片:EPF10K10LC84-4;2)显示器件:采用六个八段LED共阴极数码管,以动态扫描方式显示时间;3)时间设定与调准:三个按键用于调时、调分及启动计时;4)采用蜂鸣器与发光二极管进行整点声光报时;5)由晶振(CD4060)组成的脉冲发生电路提供数字钟计时的秒脉冲输入(1Hz)和动态扫描驱动模块输入脉冲(频率约为1kHz)。2.1.3 引脚
8、说明以及设计方案clk为秒脉冲输入端,由晶振与分频计数器(CD4060)组成的脉冲发生电路提供频率为1Hz的秒脉冲输入信号;smclk为动态扫描控制模块的输入端,由脉冲发生电路输入频率约1kHz的脉冲信号;hourset、minset和reset分别为时设置、分设置和时间清零输入端,连接按钮开关;a、b、c、d、e、f、g、dp为显示段码输出,接数码管的段码输入(led7s6-len7s0);sel0、sel1、sel2接SN74LS138N译码器的输入端;speaker为数字钟的整点声音报时输出,接蜂鸣器进行整点声音报时,lamp0、 lamp1和lamp2为数字钟的报时灯光输出,分别接三只
9、LED发光二极管,进行整点报时发光。数字钟电路原理图见附录。2.2 可编程逻辑器件FPGA的顶层设计用顶层设计采用原理图输入设计、底层设计采用VHDL设计的原理图与VHDL混合设计方法设计带整点报时功能的数字钟,所以此设计可分为顶层与底层设计,共分为六个模块,即时模块、分模块、秒模块、动态扫描控制模块、段码译码模块和整点报时模块。顶层电路设计原理图如2-1所示。秒模块主体为60进制的计数器,daout为向动态扫描控制模块提供秒的个位和十位数据的信号。reset 为秒清零;enmin为分钟进位,每60秒产生一个高电平的信号,作为分模块的时钟输入;clk为秒模块的时钟输入,接1Hz脉冲信号;min
10、_set为分钟设置,低电平是不影响秒模块工作,当它为高电平时,enmin信号会随之产生一个和clk频率相同的信号,达到调整分钟的目的。分模块主体为60进制的计数器,daout为向动态扫描控制模块提供分的个位和十位数据的信号。Enhour为分钟进位,每60分产生一个高电平的信号,作为时模块的时钟输入;秒计数到60时的进位输出信号enhour1和分钟调整输入信号minset,经或关系后接分的脉冲输入端clk; clk1为时调整脉冲,接1Hz脉冲; hour_set为时钟设置,低电平是不影响分模块工作,当它为高电平时,enmin信号会随之产生一个和clk频率相同的信号,达到调整时的目的。时模块为一个
11、24进制的计数器,daout为向动态扫描控制模块提供秒的个位和十位数据的信号。分计数到60时的进位输出信号enhour1和时调整输入信号hourset,经或关系后接时脉冲输入端clk。daout为向动态扫描控制模块提供时的个位和十位数据的信号。动态扫描模块中smclk为动态扫描控制模块的脉冲输入,由外部脉冲发生电路提供,频率约为1kHz;sel0、sel1、sel2接外部38译码器74LS138的输入端A、B、C(译码器输出经75451驱动LED数码管的位选端);sec6.0、min6.0、hour5.0分别为秒模块、分模块、时模块计数段码输出控制信号。该模块实现时间的动态扫描显示控制。段码译
12、码模块是将动态扫描模块输出的BCD码转换成驱动数码管所需要的信号。整点报时模块用于产生整点时的LED发光二极管彩灯和报时输出。分模块输出的信号接入dain。整点声音报时输出信号speak接蜂鸣器输入,信号lamp2.0控制整点时产生60秒的LED发光二极管彩灯闪烁报时输出信号。 图2-1 顶层电路设计原理图第3章 数字时钟的底层模块设计3.1 秒模块设计图3-1 秒模块顶层设计原理图3.1.1 秒模块VHDL程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity sec isport(
13、clk,reset,min_set:in std_logic;-clk为1Hz的秒脉冲输入信号,reset为秒清零(复位)信号 -min_set为分钟调整 enmin:out std_logic; -enmin为秒模块进位输出daout:out std_logic_vector(6 downto 0); -2n-160,n=7,27=64,分钟用7位二进制数表示 -daout(6.4)为十位,daout(3.0)为个位,60循环计数end entity sec;architecture behave of sec is signal count:std_logic_vector(6 downt
14、o 0); -定义内部计数节点,60循环计数 signal enmin1,enmin2:std_logic; -enmin为60秒产生的进位,enmin2为调分键产生的向分模块的进位begindaout=count; enmin2=(min_set and clk); enmin=(enmin1 or enmin2); -60秒钟到和调分键均向分模块产生进位脉冲process(clk,reset,min_set)beginif(reset=0)then count=0000000; -检测秒模块的1Hz脉冲上升沿elsif(clkevent and clk=1)then if(count(3
15、downto 0)=1001)then -秒的个位是否到“9”if count(6 downto 4)=101then -秒各位到“9”后,十位计数到“5”enmin1=1; -秒模块的60秒进位输出enmin置“1”,向分模块产生进位count=0000000; -秒计数值“0000000”(零秒)elsecount=count+7; -秒各位到“9”后,十位计数没到“5”,则加“7”变为“0”,同时向十位进位end if;elsecount=count+1; -秒个位没计到“9”时,秒计数值加“1”enmin1=0; -秒模块的60秒进位输出enmin1置“0”,不向分模块进位end if
16、;end if;end process;end behave; 3.1.2 秒模块的仿真实现由图3-2可以看出 clk输入脉冲信号时,动态扫描控制模块daout和count开始启动计数,此时分设置min_set为低电平。在570.0ns时将min_set设置为高电平,此刻分进位enmin产生与clk相同频率的信号脉冲,当在593.0.0ns时,min_set为低电平,那么enmin也为低电平(无脉冲)。当723.0ns时,清零reset设置为低电平,此刻daout和count都将清零,当735.0ns时reset恢复为高电平,daout和coutn两者重新开始计数。605.0ns时daout计
17、数到六十,enmin产生脉冲后daout和count清零并重新开始计数。如上所述功能实现。图3-2 秒模块仿真图3.2 分模块设计图3-3 分模块顶层设计原理图3.2.1 分模块VHDL程序LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY min ISPORT(clk,clk1,hour_set:IN STD_LOGIC; -clk为分钟模块的脉冲输入信号,接秒模块的进位输出 -clk1接秒脉冲输入,hour_set为小时调整enhour:OUT STD_LOGIC; -enhour为
18、分钟模块的进位输出daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-2n-160,n=7,27=64,分钟用7位二进制数表示-daout(6.4)为十位,daout(3.0),60循环计数END ENTITY min;ARCHITECTURE behave OF min ISSIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);-定义内部计数节点,60循环计数SIGNAL enhour1,enhour2:STD_LOGIC;-enhour1为60分钟产生的进位。enhour2为调时键的脉冲BEGINdaout= count;enhou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 课程设计 基于 FPGA 数字 时钟 设计

链接地址:https://www.31ppt.com/p-4150328.html