




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA设计报告 题 目: 数字钟 姓 名: 学 院: 专 业: 班 级: 学 号: 指导教师: 2010年6月7日目录一 数字钟的设计目的二 数字钟设计的内容三 数字钟程序设计的思路四 数字钟设计的整体框图 五 数字钟的下载和硬件测试六 心得体会第一章 数字钟的设计目的1.学习数字钟的设计方法2.学习较复杂的的数字系统的设计方法第二章 数字钟设计的内容 数字钟是数字电路中的一个典型应用,本设计实现数字钟的一些基本功能,能进行正常的时.分.秒计时功能,能实现整点报时功能,当计时达到59分52秒时开始报时,在59分52秒,59分,54秒,59分56秒,59分58秒时鸣叫,鸣叫的频率为500HZ,在
2、到达59分60秒时最后一声整点报时,频率为1HZ。其外部接口及总体设计框图如图,包含control.sec.main.hour.sst五大模块。其中时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器 第三章 数字中设计的思路1.control模块:实现修改时间功能,其子模块con1功能为采集修改数值。 control控制模块的VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE
3、.STD_LOGIC_UNSIGNED.ALL;ENTITY control IS PORT( s:IN STD_LOGIC_VECTOR(5 DOWNTO 0); rst0,clk:IN STD_LOGIC; min1,min0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sec1,sec0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); hour1,hour0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF control IS SIGNAL min11,min00,sec11,s
4、ec00,hour11,hour00:STD_LOGIC_VECTOR(3 DOWNTO 0); COMPONENT con1 IS PORT(s,rst:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END COMPONENT con1; BEGIN u0:con1 PORT MAP(s=>s(0),rst=>rst0,q=>sec00); u1:con1 PORT MAP(s=>s(1),rst=>rst0,q=>sec11); u2:con1 PORT MAP(s=>s(2),rst=>
5、rst0,q=>min00); u3:con1 PORT MAP(s=>s(3),rst=>rst0,q=>min11); u4:con1 PORT MAP(s=>s(4),rst=>rst0,q=>hour00); u5:con1 PORT MAP(s=>s(5),rst=>rst0,q=>hour11); PROCESS(clk) BEGIN IF clk'EVENT AND clk='1' THEN sec1<=sec11; sec0<=sec00; min1<=min11; min0&
6、lt;=min00; hour1<=hour11; hour0<=hour00; END IF; END PROCESS;END;2.con1 模块:实现对按键数的统计,按键一次,计数器加1,如果大于9时,自动清零。 con1模块的VHDL源代码如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY con1 IS PORT(s,rst:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one
7、OF con1 IS SIGNAL q1:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(s,rst) BEGIN IF rst='1' THEN q1<="0000" ELSIF s'EVENT AND s='1' THEN IF q1<"1001" THEN q1<=q1+1; ELSE q1<="0000" END IF; END IF; END process; q<=q1;END;3.sst模块:为整点报时提供控制信
8、号,当58min,秒为52,54,56,58时,q500输出为“1”,秒为00时,q1k输出“1”,这两个信号经过逻辑门实现报时功能。 sst 模块的VHDL源代码如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sst IS PORT(m1,m0,s1,s0:IN STD_LOGIC_VECTOR(3 DOWNTO 0); clk:IN STD_LOGIC; q500,q1k:OUT STD_LOGIC);END;ARCHITECTURE one OF sst IS BEGIN
9、PROCESS(clk) BEGIN IF clk'EVENT AND clk='1' THEN IF m1="0101" AND m0="1001" AND s1="0101" THEN IF s0="0001" or s0="0011" or s0="0101" or s0="0111" THEN q500<='1' ELSE q500<='0' END IF; END IF; IF
10、m1="0101" AND m0="1001" AND s1="0101" AND s0="1001" THEN q1k<='1' ELSE q1k<='0' END IF; END IF; END PROCESS;END;4. ccc模块:对系统时钟clk输入时4MHz频率进行分频,产生频率分别为1000HZ,500HZ和1HZ的时钟信号。ccc模块的VHDL源代码如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.S
11、TD_LOGIC_UNSIGNED.ALL;ENTITY ccc IS PORT( clk:IN STD_LOGIC; q500,q1k,q1sec:OUT STD_LOGIC);END;ARCHITECTURE one OF ccc IS SIGNAL x,y,z:STD_LOGIC; BEGIN PROCESS(clk) VARIABLE cnt:INTEGER RANGE 0 TO 1999; BEGIN IF clk'EVENT AND clk='1' THEN IF cnt<1999 THEN cnt:=cnt+1; ELSE cnt:=0; x<
12、=NOT x; END IF; END IF; END PROCESS; q1k<=x; PROCESS(x) BEGIN IF x'EVENT AND x='1' THEN y<=not y; END IF; END PROCESS; q500<=y; PROCESS(y) VARIABLE cnt:INTEGER RANGE 0 TO 499; BEGIN IF y'EVENT AND y='1' THEN IF cnt<499 THEN cnt:=cnt+1; ELSE cnt:=0; z<=NOT z; EN
13、D IF; END IF; END PROCESS; q1sec<=z;END;5.hour模块 源代码如下library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity hour is Port ( clk ,clr: in std_logic; rst : in std_logic; hour0,hour1:in std_logic_vector(3 downto 0); hour11 : buffer std_logic_
14、vector(3 downto 0); hour00 : buffer std_logic_vector(3 downto 0); co : out std_logic); end hour; architecture behav of hour is signal cnt1,cnt0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif clr='1'then cnt1<="0000" cnt0<="0000"elsif rst='1' then
15、cnt1<=hour1; cnt0<=hour0;elsif clk'event and clk='1'thenif cnt1="0010" and cnt0="0100"then co<='1' cnt1<="0000" cnt0<="0000"elsif cnt0<"1001"then cnt0<=cnt0+1; co<='0' else cnt0<="0000"
16、 if cnt1<"0010"then cnt1<=cnt1+1; co<='0' end if; end if ;end if ;end process;hour11<=cnt1;hour00<=cnt0;end behav;6.min模块源代码如下library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity min is Port ( clk ,clr: in s
17、td_logic; rst : in std_logic; min0,min1:in std_logic_vector(3 downto 0); min11 : buffer std_logic_vector(3 downto 0); min00 : buffer std_logic_vector(3 downto 0); co : out std_logic); end min; architecture behav of min is signal cnt1,cnt0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif clr
18、='1'then cnt1<="0000" cnt0<="0000"elsif rst='1' then cnt1<=min1; cnt0<=min0;elsif clk'event and clk='1'thenif cnt1="0110" and cnt0="1001"then co<='1' cnt1<="0000" cnt0<="0000"elsif cn
19、t0<"0110"then cnt0<=cnt0+1; co<='0' else cnt0<="0000" if cnt1<"1001"then cnt1<=cnt1+1; co<='0' end if; end if ;end if ;end process;min11<=cnt1;min00<=cnt0;end behav;7.sec模块源代码如下library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEE
20、E.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity sec is Port ( clk ,clr: in std_logic; rst : in std_logic; sec0,sec1:in std_logic_vector(3 downto 0); sec11 : buffer std_logic_vector(3 downto 0); sec00 : buffer std_logic_vector(3 downto 0); co : out std_logic); end sec; architecture beh
21、av of sec is signal cnt1,cnt0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif clr='1'then cnt1<="0000" cnt0<="0000"elsif rst='1' then cnt1<=sec1; cnt0<=sec0;elsif clk'event and clk='1'thenif cnt1="0110" and cnt0="10
22、01"then co<='1' cnt1<="0000" cnt0<="0000"elsif cnt0<"0110"then cnt0<=cnt0+1; co<='0' else cnt0<="0000" if cnt1<"1001"then cnt1<=cnt1+1; co<='0' end if; end if ;end if ;end process;sec11<=c
23、nt1;sec00<=cnt0;end behav;8.10分频的VHDL语言LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fen10 IS PORT(clk:IN STD_LOGIC; q:OUT STD_LOGIC);END fen10;ARCHITECTURE behav OF fen10 ISBEGIN PROCESS(clk) VARIABLE cnt:INTEGER RANGE 0 TO 9; BEGIN IF clk'EVENT AND clk='1' THEN IF cnt<9 THEN cnt:=cnt+1; q<='0' ELSE cnt:=0; q<='1' END IF; END IF; END PROCESS;END b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 口腔保健知识培训总结课件
- 培训调解知识和技巧课件
- 2025年四川省内江市中考地理试题(无答案)
- 高中2021校园防骗指南班会
- 培训装修知识文案课件
- 大队书记面试题目及答案
- 2025年度生物制药产业新员工入职及职业发展规划服务合同
- 2025年定制化车辆租赁与品牌战略联盟协议
- 2025年度养老机构老年慈善援助与生活照料服务合同
- 2025年智能化冷链物流运输车采购与共享租赁合同
- 2025年燃气电厂笔试题库及答案
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年学法减分试题及答案
- 《智能建造概论》高职完整全套教学课件
- 2025年教育综合理论知识试题及答案
- 超声科进修学习汇报
- 2024年甘肃省舟曲县邮政公开招聘工作人员试题带答案详解
- 2025年小学英语(2022版)新课程标准考试测试卷及答案(共四套)
- (高清版)DB34∕T 5193-2025 河流水生态监测技术规范
- 2025年德语DSH考试试卷德语语法练习与解析
- 肥料行业车间管理制度
评论
0/150
提交评论