EDA课设——定时器_第1页
EDA课设——定时器_第2页
EDA课设——定时器_第3页
EDA课设——定时器_第4页
EDA课设——定时器_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、成绩评定表学生姓名班级学号专业电子信息工程课程设计题目定时器设计评语组长签字:成绩日期2015年 月 日课程设计任务书学院信息科学与工程学院专业电子信息工程学生姓名班级学号课程设计题目定时器设计、目的:训练学生综合运用学过的基础知识,独立进行查找资料、选择方案、代码设计、撰写报告, 进一步加深对EDA技术的理解。二、要求:能正确划分设计层次;收集资料;独立思考,刻古专研,严禁抄袭;按时元成设计任务,认 真、正确地书写课程设计报告。三、功能要求:通过设计,定时器可以整体清零; 可以定时最咼到 99MIN;以秒速度递增至预定时间,以秒速度递减至零。三、进度安排:课程设计时间为10天(2周)1、调研

2、、查资料1天。2、总体方案设计2天。3、代码设计与调试5天。4、撰写报告1天。5、验收1天。指导教师:2015年 月 日专业负责人:2015年 月 日学院教学副院长:2015年 月 日目录1 概述 11.1 设计背景和意义 11.2 设计任务 11.3 设计要求 12 原理设计及层次划分 12.1 工作原理 12.2 层次划分 23 软件设计 23.1 控制计数模块模块代码设计 23.2 报警器模块代码设计 43.3 译码器模块代码设计 53.4 定时器原件例化模块代码设计 54 仿真及测试 64.1 控制计数模块仿真 64.2 报警器模块仿真 84.3 译码器模块代码仿真 94.4 定时器原

3、件例化模块代码仿真 105 总结 116 参考文献 111概述1.1 设计背景和意义EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及 智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。EDA技术是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻

4、辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。1.2 设计任务通过设计,定时器可以整体清零;可以定时最高到99MIN;以秒速度递增至预定时间,以秒速度递减至零。1.3 设计要求具有整体清零(reset )功能,定时99分钟。以秒速度递增至 99分钟停止,启动报 警(cout)5秒钟。具有置位(cn)控制,即cn高电平时,elk脉冲上升沿到来,计数加一; cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束,并同时报 警(cout)5秒钟。时钟信号提供秒信号(1HZ ;四位数码管静态显示,高位high(3 downto

5、0)显示分,低位low ( 3 downto 0 )显示秒2原理设计及层次划分2.1工作原理1.系统设计方案通过记数器控制中心输入秒信号, 并输出两个四位的 BCD码,可分别来表示各位与十位, 也可整体复位清零。通过该记数器实现以秒速度递增至清零,该记数器以秒的速度递增至 99来实现置位,而以秒的速度递减至零以实现定时功能。当以秒速度递增至99分钟停止,启动报警(cout)5秒钟。cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。通过二选一选择器对个位和十位进行扫描输出, 并将输出送到译码器,通过译码器对输入的四位BCD码进行七段码编译,然后

6、输出到数码管。2.2层次划分2.2.1控制计数模块Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复 位方式;cn用于置位,高电平有效。 cout端将在定时结束时产生高电平。 Low和high为四 位BCD码输出端口,可用于显示。当 cn有效时,clk脉冲上升沿到来,计数加 1;当cn为 低电平时,置位结束,进入计时阶段,每 1个时钟周期发出一个脉冲,使输出记数减 1,直 到记时结束,令 cout位为高电平为止。2.2.2报警器模块主要功能是计数器以秒速度递增至99分钟停止时启动报警(cout)5秒钟。倒计时阶段,计时器以秒速度使输出计数减一至零结束时也同时报警(c

7、out)5秒钟。当始终把脉冲clk上升沿到来时count开始计数,同时speak置高电平开始报警,当计数达到5s后speak 置0,停止报警。它的操作源程序如下:2.2.3译码器模块译码器yima是对四位BCD码进行七段码译码,其输出 p0p6分别接数码管各段进 行显示输出。2.2.4定时器原件例化模块3软件设计3.1控制计数模块代码设计Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复 位方式;cn用于置位,高电平有效。cout端将在定时结束时产生高电平。Low和high为四位 BCD 码输出端口,可用于显示。当 cn 有效时, clk 脉冲上升沿到来,计数加 1

8、;当 cn 为 低电平时,置位结束,进入计时阶段,每 1 个时钟周期发出一个脉冲,使输出记数减1,直到记时结束,令 cout 位为高电平为止。该模块的源程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jsq isport (cn,res,clk:in std_logic;cout :out std_logic; flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0);end jsq;architecture art o

9、f jsq issignal fdisplow,fdisphigh,mdisplow,mdisphigh:std_logic_vector(3 downto 0);- 定义信号分别表示分钟和秒钟的十位和个位beginprocess(clk,cn,res)beginif(res='1')then mdisplow<="0000"mdisphigh<="0000" fdisplow<="0000"fdisphigh<="0000"cout<='0' -res

10、高电平执行复位elsif (clk'event and clk='1')thenif cn='1'thenif mdisplow<9 then mdisplow<=mdisplow+1;-秒钟个位数小于 9 时执行计数加 1cout<='0'elsif mdisplow="1001" and mdisphigh<5 then mdisplow<="0000"mdisphigh<=mdisphigh+1;-秒钟十位进位加 1elsif mdisphigh="

11、;0101" and fdisplow<9 then mdisplow<="0000"mdisphigh<="0000" fdisplow<=fdisplow+1;-满 59 秒后分钟个位加 1elsif fdisplow="1001" and fdisphigh<9 then mdisplow<="0000"mdisphigh<="0000" fdisplow<="0000"fdisphigh<=fdisphi

12、gh+1;-满 9 分 59 秒后分钟十位加 1elsif fdisplow="1000" and fdisphigh="1001" then mdisplow<="0000"mdisphigh<="0000" fdisplow<="1001"-计时至 99 分停止11elsif fdisplow="1001" and fdisphigh="1001" thencout<='1'-计时停止 cout 变为高电平end

13、 if;为 0 进入倒计时秒钟减 1elsif cn='0' then -cnif mdisplow>0 then mdisplow<=mdisplow-1;-cout<='0'elsif mdisplow="0000" and mdisphigh>0 then mdisplow<="1001"mdisphigh<=mdisphigh-1;-个位 0 时十位减 1elsif mdisphigh="0000" and fdisplow>0 then mdisplo

14、w<="1001"mdisphigh<="0101"fdisplow<=fdisplow-1;-分减 1elsif fdisplow="0000" and fdisphigh>0 then mdisplow<="1001"mdisphigh<="0101"fdisplow<="1001"fdisphigh<=fdisphigh-1;-分减 10elsif fdisphigh="0000"and fdisplo

15、w="0000"and mdisphigh="0000"and mdisplow="0000"thencout<='1'-倒计时结束 cout 变为高电平end if;end if;end if;end process; mhigh<=mdisphigh; mlow<=mdisplow; fhigh<=fdisphigh; flow<=fdisplow;end art ;3.2 报警器模块代码设计 主要功能是计数器以秒速度递增至 99 分钟停止时启动报警 (cout)5 秒钟。倒计时阶段,

16、 计时器以秒速度使输出计数减一至零结束时也同时报警( cout )5 秒钟。当始终把脉冲 clk 上升沿到来时 count 开始计数, 同时 speak 置高电平开始报警, 当计数达 到 5s 后 speak 置 0,停止报警。它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cou5 is port(clk,reset,en:in std_logic;speak:out std_logic);end cou5;architecture behavior of co

17、u5 issignal count:std_logic_vector(2 downto 0);-定义计数信号begin process(reset,clk)begin if reset='1' or en='0' then count(2 downto 0)<="000"speak<='0'-有复位信号或始能端低电平时输出 0elseif(clk'event and clk='1')then count<=count+1;speak<='1'-有时钟上升沿计数加1

18、,报警信号 speak 高电平if count>5 thenspeak<='0' -5秒之后停止报警 speak 为 0end if;end if;end if;end process;end behavior;3.3 译码器模块代码设计译码器yima是对四位BCD码进行七段码译码,其输出pOp6分别接数码管各段进行显示输出,它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;entity yima isport(a:in std_logic_vector(3 downto O);p:out std_logic_ve

19、ctor(6 downto O);end yima;architecture arc of yima isbegin process(a)begincase a is when"OOOO"=>p<="O111111" when"OOO1"=>p<="OOOO11O" when"OO1O"=>p<="1O11O11" when"OO11"=>p<="1OO1111" when"O1

20、OO"=>p<="11OO11O" when"O1O1"=>p<="11O11O1" when"O11O"=>p<="11111O1" when"O111"=>p<="OOOO111" when"1OOO"=>p<="1111111"when"1OO1"=>p<="11O1111"- 七段译码器显

21、示 O9when others=>p<="0000000"end case;end process;end arc;3.4 定时器原件例化模块代码设计library ieee;use ieee.std_logic_1164.all;entity yjlh is秒钟个位译码输出 秒钟十位译码输出 分钟个位译码输出 分钟十位译码输出port(sen,resa,clka,resb: in std_logic;myimal:out std_logic_vector(6 downto 0); - myimah:out std_logic_vector(6 downto 0

22、); - fyimal:out std_logic_vector(6 downto 0); - fyimah:out std_logic_vector(6 downto 0); - baoj:out std_logic);end entity yjlh;architecture art of yjlh iscomponent jsq isport (cn,res,clk:in std_logic;cout :out std_logic;flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0); end component jsq; -jsq控

23、制模块component yima isport(a:in std_logic_vector(3 downto 0);p:out std_logic_vector(6 downto 0);end component yima;- 译码模块component cou5 isport(clk,reset,en:in std_logic;speak:out std_logic);end component cou5;- 报警模块signal s1,s2,s3,s4:std_logic_vector(3 downto 0);signal s5:std_logic;beginu1:jsq port ma

24、p(sen,resa,clka,s5,s1,s2,s3,s4);u2:yima port map(s1,fyimal);u3:yima port map(s2,fyimah);u4:yima port map(s3,myimal);u5:yima port map(s4,myimah);各模块通过位置关联u6:cou5 port map(clka,resb,s5,baoj);- end architecture art;4仿真及测试4.1控制计数模块仿真该计数器生成的原件如下图所示:图一计数器原件生成图 计数器波形仿真图如下图所示:图二计数器波形仿真Aaa控制计数模块,是该定时器的核心部分.r

25、es为复位端,用来清零,采用异步复位方式;cn用于置位,高电平有效。cout端将在定时结束时产生高电平。Low和high为四位BCD码输出端口,可用于显示。当cn有效时,clk脉冲上升沿到来,计数加 1;当cn为低电平时,每1个时钟周期发出一个脉冲,使输出记数减1,直到记时结束,置位结束,进入计时阶段, 令cout位为高电平为止。4.2报警器模块仿真该报警器生成的原件图如下:图三报警器原件生成图该报警器波形仿真图如下:图四报警器波形仿真主要功能是计数器以秒速度递增至99分钟停止时启动报警(cout)5秒钟。倒计时阶段,计时器以秒速度使输出计数减一至零结束时也同时报警( cout)5秒钟。当始终

26、把脉冲clk上升沿到来时count开始计数,同时speak置高电平开始报警,当计数达 到5s后speak置0,停止报警。4.3译码器模块仿真该译码器原件生成图如下:图五译码器原件生成图该译码器波形仿真图如下:虞 MAX-i-pilizs-J. - £.>Avijk fcfizhorqiimN - jrn -ucf Vafak-efarni EtMorJ* | *i 'iir-3 |£TJ 阴FlawVfllu* I W?SniBG- Onri844 4iwIJI .aD弋,MAX-us 11. file- Ecit 晴etAssign Llttfties Oplicns VfSndanr Hrlp_ f1 xrag护4©匕心芒童阖|&耳ELp5p4 O p3p2 -rf pl -Mt pD图六译码器波形仿真译码器yima是对四位BCD码进行七

温馨提示

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

评论

0/150

提交评论