硬件课程设计论文)-基于fpga的数字时钟设计内容摘要:

83。 14 硬件电路连接 15 硬件电路连接说明 16 结 论 17 参考文献 18 附录 19 信息与控制工程学院硬件课程设计说明书 1 第 1 章 设计的硬件平台及开发工具 硬件平台 本设计基于复杂可编程逻辑器件 ( CPLD/FPGA)设计并实现数字时钟。 采用 Altera公司的器件进行设计,开发调试时采用 Altera的 FPGA 芯片 FLEX10K10LC84,设计完成后下载生成数字钟硬件于 Altera的 CPLD芯片 EPM7128SLC84中,实现数字钟功能。 利用 Altera 可编程逻辑器件开发实验系统进行设计。 系统提供 FPGA/CPLD下载板及相应的其它硬件资源。 时钟的时间显示采用 6位 LED数码管(动态扫描驱动方式),采用系统提供的 1Hz脉冲输出作为时钟的秒输入。 按键作为调准时、分及秒清零的功能键。 蜂鸣器和发光二极管用 于产生整点时的声光报时信号。 开发工具 利用 Altera 的可编程逻辑器件开发工具 MAX+PLUSⅡ,采用原理图输入的设计方法进行数字钟的设计与调试。 MAX+PLUSⅡ是一个集成的软件开发平台, 提供了从设计输入、编译、器件适配、软件仿真到器件下载的全部功能。 图 11 为工具环境。 图 11 MAX+PlusII工具环境 基于 FPGA 的数字时钟设计 2 第 2 章 数字时钟的设计方案及 FPGA 的顶层设计 数字钟整体设计方案 数字钟的功能 1)以 24 小时制显示时、分、秒计数; 2)时间清零,时设置,分设置功 能; 3)整点报时功能。 硬件要求 1)可编程逻辑器件主芯片 :EPF10K10LC844。 2)显示器件:采用六个八段 LED 共阴极数码管,以动态扫描方式显示时间; 3)时间设定与调准:三个按键用于调时、调分及启动计时; 4)采用蜂鸣器与发光二极管进行整点声光报时; 5)由晶振( CD4060)组成的脉冲发生电路提供数字钟计时的秒脉冲输入( 1Hz)和动态扫描驱动模块输入脉冲(频率约为 1kHz)。 引脚说明以及 设计方案 clk 为秒脉冲输入端,由晶振与分频计数器( CD4060)组成的脉冲发 生电路提供频率为 1Hz的秒脉冲输入信号; smclk 为动态扫描控制模块的输入 端 ,由脉冲发生电路 输入 频率约 1kHz 的脉冲信号; hourset、 minset和 reset分别为 时 设置 、分 设置 和 时间 清零输入 端 , 连 接按钮开关; a、b、 c、 d、 e、 f、 g、 dp 为显示段码输出,接数码管的段码输入 ( led7s6len7s0) ; sel0、 selsel2 接 SN74LS138N 译码器 的输入端 ; speaker 为数字钟的整点声音报时输出,接蜂鸣器进行整点声音报时, lamp0、 lamp1和 lamp2为数字钟的 报时灯光输出 ,分别接 三只 LED发光二极管,进行整点报时发光。 数字钟电路原理图见附录。 可编程逻辑器件 FPGA 的顶层设计 用顶层设计采用原理图输入设计、底层设计采用 VHDL 设计的原理图与 VHDL 混合设计方法设计带整点报时功能的数字钟,所以此设计可 分为顶层与底层设计, 共分为六 个模块,即时模块、分模块、秒模块、动态扫描控制模块 、段码译码模块 和整点报时模块。 顶层电路设计原理图 如 21所示。 秒模块主体为 60 进制的计数器 , daout 为 向 动态 扫描控制模块 提供秒的个位和十位数据的信号。 reset 为秒清零; enmin 为分钟进位,每 60 秒产生一个高电平的信号,作为分模块的时钟输信息与控制工程学院硬件课程设计说明书 3 入; 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、 sel 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发光二极管彩灯闪烁报时 输出信号。 图 21 顶层电路设计原理图 基于 FPGA 的数字时钟设计 4 第 3 章 数字时钟的底层模块设计 秒模块设计 图 31 秒模块顶层设计原理图 秒模块 VHDL 程序 library ieee。 use。 use。 entity sec is port(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))。 2n1≥ 60, 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 downto 0)。 定义内部计数节点, 60 循环计数 signal enmin1,enmin2:std_logic。 enmin 为 60 秒产生的进位, enmin2 为调分键产生的向分模块的进位 begin daout=count。 enmin2=(min_set and clk)。 enmin=(enmin1 or enmin2)。 60 秒钟到和调分键均向分模块产生进位脉冲 process(clk,reset,min_set) begin if(reset=39。 039。 )then count=0000000。 检测秒模块的 1Hz 脉冲上升沿 elsif(clk39。 event and clk=39。 139。 )then if(count(3 downto 0)=1001)then 秒的个位是否到“ 9” if count(6 downto 4)=101then 秒各位到“ 9”后,十位计数到“ 5” 信息与控制工程学院硬件课程设计说明书 5 enmin1=39。 139。 秒模块的 60 秒进位输出 enmin 置“ 1”,向分模块产生进位 count=0000000。 秒计数值“ 0000000”(零秒) else count=count+7。 秒各位到“ 9”后,十位计数没到“ 5”,则加“ 7”变为“ 0”,同时向十位进位 end if。 else count=co。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。