2022年EDA课设数字钟设计_第1页
2022年EDA课设数字钟设计_第2页
2022年EDA课设数字钟设计_第3页
2022年EDA课设数字钟设计_第4页
2022年EDA课设数字钟设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称数字系统与逻辑设计课题名称数字钟设计专业通信工程班级学号姓名指导教师乔汇东胡瑛 谭小兰2013 年7 月 7 日精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 16 页 - - - - - - - - -湖南工程学院课 程 设 计 任 务 书课程名称数字系统与逻辑设计课题数字钟设计专业班级通信工程 1101 班学生姓名学号指导老师审批乔汇东任务书下达日期2013

2、年 6 月 29 日任务完成日期2013 年 7 月 7 日精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 数 字 系 统 与 逻 辑 设 计 课 程 设 计 任 务 书一 、设计目的全面熟悉、掌握vhdl 语言基本知识,掌握利用vhdl 语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来, 熟悉编制和调试程序的技巧,掌握分析结果的

3、若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。二、设计要求1、设计正确,方案合理。2、程序精炼,结构清晰。3、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。4、上机演示。5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。三、进度安排第 十 九 周星期一:课题讲解,查阅资料星期二:总体设计,详细设计星期三:编程,上机调试、修改程序星期四:上机调试、完善程序星期五:答辩星期六 -星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(a4 大小

4、的图纸及程序清单) 。正文的格式 :一级标题用3 号黑体 ,二级标题用四号宋体加粗,正文用小四号宋体;行距为 22。正文的内容 :一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 16 页 - - - - -

5、- - - -目录1、 课题的主要功能 . 1 1.1 问题描述 . 1 1.2 功能要求 . 1 2、 课题的功能模块的划分. 1 3、 主要功能的实现 . 2 3.1 秒定时器 . 2 3.2 分定时器 . 2 3.3 时定时器 . 3 3.4 报时模块 . 3 3.5 分频模块 . 3 3.6 主计数器 . 4 4、 系统调试与仿真 . 5 4.1 计数模块时序图. 5 4.2 整点报时时序图. 6 4.3 置数时序图 . 6 4.4 引脚配置 . 6 5、 总结与体会 . 7 6、 附件 . 8 7、 评分表 . 12 精品学习资料 可选择p d f - - - - - - - - -

6、 - - - - - 第 4 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 16 页 - - - - - - - - -1 1、课题的主要功能1.1 问题描述多功能数字钟应该具有的功能有:显示时分秒、整点报时、小时和分钟可调等基本功能。 首先要知道钟表的工作机理, 整个钟表的工作应该是在1hz 信号的作用下进行,这样每来一个时钟信号,秒增加1 秒,当秒从59 秒跳转到 00 秒时,分钟增加1 分,同时当分钟从59 分跳转到 00 分时,小时增加 1 小时,但是需要注意的是,小时的范围是

7、从023 时。1.2 功能要求在一个 1khz 系统时钟的驱动下完成整个电路的输出,电路要能正确的输出时、分、秒,并且根据用户的设定来改变时钟和分钟的值,这里假定有两个按键输入信号 s1,s0,可以分别用来改变时钟和分钟的值以达到时间设定的目的。 同时在整点时分都应该输出一个整点报时信号,信号规律为 1 秒钟一个脉冲,持续 5 秒。2、课题的功能模块的划分1. 设计一个 60 进制的计数器构成的具有清0、置数和计数功能秒计时器。2. 设计一个 60 进制的计数器构成的具有清0、置数和计数功能分计时器。3. 设计一个 24 进制的计数器构成的具有清0、置数和计数功能时计时器。4. 报时模块是整点

8、的前十秒的响五下停五下。5. 时钟分频模块使得1khz的系统时钟分为 1hz的时钟。6. 置数模块是按下对应的按键分钟个位或小时的个位加一。7. 分别采用 60 进制、 24 进制、计数器构成秒、分、时计时器。8. 计时模块使用 if嵌套语句实现整个计时模块的计时。下面是功能实现的模块图:精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 16 页 - - - - - - - - -2 系统时钟1

9、khz分频进程process com计数进程process reg控制单元复位信号reset分钟调节load1小时调节load2整点报时信号alarm小时显示24进制分钟显示60进制秒钟显示60进制动态扫描数码管进程process sta选择数码管进程process smg0分配数码管进程process smg1数字显示进程process smg23、主要功能的实现3.1 秒定时器秒计时器是由一个60 进制的计数器构成的, 具有清 0、置数和计数功能,在秒的个位从0 计数到 9 时秒的十位开始计数加一,十位计数到5 时清零。秒计数器个位09秒计数器十位05个位每计数到9十位加一,十位计数到5且

10、个位再次加到9时清零3.2 分定时器分定时器和秒定时器相似, 由一个 60进制的计数器构成的, 具有清 0、置数和计数功能, 在分的个位从 0 计数到 9 时分的十位开始计数加一, 十位计数到 5 时清零。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 16 页 - - - - - - - - -3 分计数器个位09分计数器十位05个位每计数到9十位加一,十位计数到5且个位再次加到9 时清零3

11、.3 时定时器时计时器则是由一个24 进制的计数器构成的, 同样具有清 0、置数和计数功能。其中的时钟信号由上级分计时器控制。当计数到23时当分和秒为 59且个位为 3 时清零,重新开始计时。时计数器个位09时计数器十位02个位每计数到9 十位加一十位计数到2 时,分和秒分都为59,而且个位为3 时,在来一个脉冲清零 3.4 报时模块整点报时的功能,其工作的状态受到秒计数器所产生的进位信号控制着。整点的前十秒的响五下停五下, 即最后十秒中 1,3,5,7,9秒信号 alarm 为高电平, 2,4,6,8,0为低电平。下面为vhdl 代码:if(miao1=0101 and fen0=1001

12、and fen1=0101) then if (miao0=0001 or miao0=0011 or miao0=0101 or miao0=0111 or miao0=1001) then speak=1; else speak=0; end if; end if;3.5 分频模块使得频率为 1khz的系统分为 1hz的时钟信号 clk ,根据 clk 进行计时,下面为起分频作用的vhdl 代码。com:process(clk1) begin if clk1event and clk1=1 then if q999 then q=q+1; else q=0; 精品学习资料 可选择p d f

13、 - - - - - - - - - - - - - - 第 7 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 16 页 - - - - - - - - -4 end if; if q500 then clk=1; else clk=0; end if; end if; end process com; 注:采用 1000 分频,且波形为50%的占空比。 3.6 主计数器主计数器采用多重if 语句嵌套的方法进行秒,分,时的计时及之间的进位关系。用 vhdl 语言描述如下:if miao

14、0=1001 then miao0=0000; if miao1=0101 then miao1=0000; if fen0=1001 then fen0=0000; if fen1=0101 then fen1=0000; if shi0=1001 then shi0=0000; shi1=shi1+1; else shi0=shi0+1; end if; if shi1=0010 and shi0=0011then shi1=0000;shi0=0000; end if; else fen1=fen1+1; end if; else fen0=fen0+1; end if; else mi

15、ao1=miao1+1; end if; else miao0=miao0+1;注:miao0 和 miao1表示秒计时器的个位和十位,fen0 和 fen1 表示分计时器的个位和十位, shi0和 shi1 时计数器的个位和十位。在23 时 59 分 59 秒时刻清零。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 16 页 - - - - - - - - -5 4、系统调试与仿真4.1 计

16、数模块时序图图 4-1 注:为了方便测试程序的准确性,计时是否准确所以加入了6 个输出端口, 分别为:hour1,hour0,min1,min0,sec1,sec0f分别表示时的十位和个位,分的十位和个位,秒的十位和个位。从图4-1 的时序图中可以看出时间到达23 时 59 分59 秒时,在下一个时钟到来后各个位都被清零。图 4-2 注: 此时序图中可以看出在计时到1 时 59 分 59 秒后,再来一个时钟沿,时间变为 2 时 0 分 0 秒。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 9 页,共 16 页 - - - - - - - - -精品

17、学习资料 可选择p d f - - - - - - - - - - - - - - 第 9 页,共 16 页 - - - - - - - - -6 4.2 整点报时时序图图 4-3注:此时序图中的alarm 为整点报时信号,在整点前的最后十秒内,1,3,5,7,9秒为高电平 0,2,4,6,8为低电平。 4.3 置数时序图图 4-4 注:load1 为分钟置数, load2 为小时置数。 load1 为高电平时,每来一个时钟沿分的个位加 1,load2 为高电平时每来一个时钟沿时的个位加1. 从图 4-4 中可以看出 load1 维持了 8 个高电平, load1 拉低后 min0 直接从 8

18、 开始计数; load2持续了三个高电平,拉低后hour0 直接从 3 开始计数。4.4 引脚配置精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 10 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 10 页,共 16 页 - - - - - - - - -7 图 4-5 5、总结与体会为期一周的 eda课程设计结束了,通的过这次课程设计,我对eda设计的知识有了更深一步的了解。通过这次的课程设计,我熟悉了quartusii,数码管等,这为我以后的类似设计

19、打了一定的基础。开始拿到这个课题时感觉没有什么难的,实际操作起来才发现并不是想象的那么容易。首先必须搞清楚时钟的运行方式,小时为 24 进制,分钟为 60 进制,秒为 60 进制。通过这次课程设计, 我觉得做任务不能眉毛胡子一把抓,要学会模块化实现,最后把所有模块整合起来,一步一步进行仿真,最后在到实验箱上实现。通过这次实验我又掌握了一门软件操作,最重要的是通过这次实验我将原先学的好多东西整合到一块了, 不过也得了一些经验: 就是在做系统开始的时候先将系统的大体结构规划好, 然后再做每一个小模块, 对模块的中的每一个细节都要全面思考,将问题最好解决在小模块中;遇到问题,要顺藤摸瓜,分析清楚,不

20、可胡乱改动,每做一次改变都要有充分的理由;模块化设计方法的优点在于其简洁性,但是在实验设计中也发现, 在实验最终电路确定之前, 要尽量减少模块重叠嵌套,因为在总的电路敲定之前,电路还不成熟,很多地方需要改进,如果在开始时就进行多层模块化, 里层模块电路的修改将影响其外层的全部电路,这样就是牵一发动全身,很显然,这样将导致电路设计的低效,所以在设计过程中,一定要尽量减少超过两层的模块。编程过程中在加入置数信号时出现了错误,应该把置数功能加在时钟的下面,否则程序机会报错。报警信号编写时,应该注意哪里该写end,哪里该写 or 。时钟部分给的是1khz的系统时钟,所以只有分频后的时钟才能用来计时。数

21、码管部分的程序很好写, 但是这里更重要的是准确的实现,特别要注意引精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 11 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 11 页,共 16 页 - - - - - - - - -8 脚的配置要准确。在这次实验中,我学会了如何使用quartus ii 软件, 如何分层设计电路,如何编写 vhdl 程序,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配

22、置管脚。这次实验为我今后对eda 和 vhdl 语言的进一步学习奠定了更好的理论基础和应用基础。6、附件library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity lujia is port(load2,load1,reset,clk1: in std_logic;-置位,复位,时钟为输入信号 alarm:out std_logic; -报警信号 display:out std_logic_vector(7 downto 0); - 用来选通数码管 dout:out std_logic_v

23、ector(7 downto 0); - 用来显示数字end lujia; architecture behav of lujia is signal q: integer range 0 to 999; signal clk: std_logic; -分频后的时钟,用来计时 signal num: std_logic_vector(2 downto 0); signal c: std_logic_vector(3 downto 0); signal miao0:std_logic_vector(3 downto 0); - 秒的个位 signal miao1:std_logic_vector

24、(3 downto 0); - 秒的十位 signal fen0:std_logic_vector(3 downto 0); - 分的个位 signal fen1:std_logic_vector(3 downto 0); - 分的十位 signal shi0:std_logic_vector(3 downto 0); -时的个位 signal shi1:std_logic_vector(3 downto 0); -时的十位 signal speak:std_logic; -报时信号精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 12 页,共 16

25、页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 12 页,共 16 页 - - - - - - - - -9 begin reg:process (clk,reset,load1,load2) -计时进程begin if reset=0 then -复位信号 miao0=0000;miao1=0000;fen0=0000; shi0=0000;shi1=0000; fen1=0000; elsif clkevent and clk=1 then -时钟上升沿到达 if(load1=0) then fen0=fen

26、0+1; -分置数 elsif(load2=0) then shi0=shi0+1; -时置数 else -计数部分 if miao0=1001 then miao0=0000; if miao1=0101 then miao1=0000; if fen0=1001 then fen0=0000; if fen1=0101 then fen1=0000; if shi0=1001 then shi0=0000; shi1=shi1+1; else shi0=shi0+1; end if; if shi1=0010 and shi0=0011then -到达 23 时 shi1=0000;shi

27、0=0000; -时的个位和十位清零 end if; else fen1=fen1+1; end if; else fen0=fen0+1; end if; else miao1=miao1+1; end if; else miao0=miao0+1; end if; end if; end if; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 13 页,共 16 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 13 页,共 16 页 - - - - - - - - -10 if(miao1=0101 and fen0=1001 and fen1=0101) then -整点报时(秒的十位和分的十位为5,分的个位为 9)if (miao0=0001

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论