数字逻辑课程设计多功能数字钟absv.doc

上传人:仙人指路1688 文档编号:4192463 上传时间:2023-04-09 格式:DOC 页数:13 大小:376KB
返回 下载 相关 举报
数字逻辑课程设计多功能数字钟absv.doc_第1页
第1页 / 共13页
数字逻辑课程设计多功能数字钟absv.doc_第2页
第2页 / 共13页
数字逻辑课程设计多功能数字钟absv.doc_第3页
第3页 / 共13页
数字逻辑课程设计多功能数字钟absv.doc_第4页
第4页 / 共13页
数字逻辑课程设计多功能数字钟absv.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数字逻辑课程设计多功能数字钟absv.doc》由会员分享,可在线阅读,更多相关《数字逻辑课程设计多功能数字钟absv.doc(13页珍藏版)》请在三一办公上搜索。

1、数字逻辑电路课程设计 多功能数字钟 目 录实验目的2实验要求2试验任务及要求2顶层图及相应模块3课程设计总结12一 实验目的:1 学会应用数字系统设计方法进行电路设计;2 进一步提高MAX+plus II 10.0 BASELINE软件的开发应用能力;3 培养学生书写综合实验报告的能力。二 实验要求:1 根据实验任务,选择最佳设计方案,综合运用MAX+plus II 10.0 BASELINE软件的各种设计方法设计出层次分明、结构清楚、电路优化、VHDL语言描述简洁的完整设计文件。通过仿真直至下载来验证设计的正确性。三 实验任务及要求1 能进行正常的时、分、秒计时功能(1) 用M6M5做24小

2、时计数器的显示器;(2) 用M4M3做60分钟计数器的显示器;(3) 用M2M1做60秒钟计数器的显示器。2 能利用实验系统上的按键实现“校时”、“校分”功能(1) 按下“SA”键时,计时器迅速递增,并按24小时循环,计满23小时后再回00;(2) 按下“SB”键时,计时器迅速递增,并按60分钟循环,计满59分钟后再回00;但不向高位进位。(3) 按下“SC” 键后,秒清零。要求按下“SA”和“SB”均不会产生数字跳变(“SA”、“SB”按键是有抖动的,必须地“SA”、“SB”进行消抖处理, 消抖电路用D触发器构成。 原理:一个触发器CP(64HZ)内,屏蔽所有的抖动脉冲)。(4) 计时(24

3、进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成(可以参考教材P341,例8.2.1 多功能电子钟的设计)。10进制计数器需自己设计(用VHDL语言,与所做实验74160计数器相同),不能调用系统库。(5) 其他如分频电路、提供报时控制信号、闹时电路等模块用VHDL语言实现。3 能利用实验板上的扬声器作整点报时(1) 当计时到达5950”、 52”、54”、55”、 56”、 58”、鸣叫,鸣叫声频可定为500HZ;(2) 到达00分00秒时为最后一声整点报时。整点报时的频率可定为1KHZ。报时信号从ISP1032的PIN68输

4、出,PIN68与扬声器的输入电路相连,激励扬声器;4 闹时(1) 闹时的最小时间间隔为十分钟。(2) 闹时长度为一分钟。(3) 闹时声响可以是单频。(4) 闹时时声响也可以是双频交替的警笛声。5 使用MAX+plus II 10.0 BASELINE软件设计符合上述功能的多功能数字钟,并用层次化设计方法设计该电路。6 报时功能。闹时功能用功能仿真的方法验证,可通过观察有关波形确认电路设计是否正确。7. 使用设计思路-层次化的思想: 计时(间)模块、时间校对模块、报时模块、分频模块、动态显示模块(1)8. 完成全部电路设计后在EP1KTC144-3 实验系统上下载,验证设计的正确性。四. 顶层图

5、及相关模块说明:1. 顶层图2各模块说明:(1)进制模块:十进制源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ls160 is port( data:in std_logic_vector(3 downto 0); clk,ld,p,t,clr:in std_logic; a,b,c,d,tc: out std_logic); end ls160;architecture behavior of ls160 issignal count : std_logic_vector(

6、3 downto 0);begintc=1 when(count=1001 and p=1 and t=1 and ld=1 and clr=1)else0 ;cale:process(clk,clr,p,t,ld)begin if(rising_edge(clk)then if(clr=1)then if(ld=1)then if(p=1)then if(t=1)then if(count=1001)then count=0000; else count=count+1; end if; else count=count; end if; else count=count; end if;

7、else count=data; end if; else count=0000; end if; end if;a=count(0);b=count(1);c=count(2);d=count(3);end process cale;end behavior;二十四进制仿真图模块说明:此计数器由两个十进制计数器构成,是并行连接六十进制仿真图模块说明:此计数器由两个十进制计数器构成,片一的进位TC独立与片二的P,T连在一起,并行连接成一百进制计数器,片一的P,T接高电平,两片的CLK都接在同一输入上,形成异步置零。片一上的AD,片二上的AC接入同一与非门,再接到两片的LD上。H30构成十位,L

8、30构成个位。(2) DTSM模块:(3) 分频模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity frequencydivider is port(clk:in std_logic; hz512:out std_logic; hz256:out std_logic; hz64:out std_logic; hz4:out std_logic; hz1:out std_logic ); end frequencydivide

9、r;architecture f of frequencydivider is signal q:std_logic_vector(9 downto 0); begin process(clk)待添加的隐藏文字内容2 begin if clkevent and clk=1then q=q+1; end if; end process; hz512=q(0); hz256=q(1); hz64=q(3); hz4=q(7); hz1=q(9);end f;模块说明:由于clk的频率为1024hz,所以可以定义一个std_logic_vector(9 downto 0),使它不停地从0000000

10、000加到1111111111然后又返回0000000000,由于最低位在clk脉冲到来时从0变为1,然后又在下一个脉冲变回0,因此最低位的时钟周期为clk的时钟周期的两倍,它的频率就为clk频率的确1/2即512hz。同理,次高位的频率就为clk频率的1/2 * 1/2 = 1/4,用这种方法就可以得到各种(4)整点报时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity hourring isport(m1,m0,s1,s0

11、 : in std_logic_vector(3 downto 0); sig500,sig1k : out std_logic);end hourring;architecture a of hourring issignal q : std_logic_vector(15 downto 0);signal s500,s1k : std_logic;beginq(15 downto 12)=m1;q(11 downto 8)=m0;q(7 downto 4)=s1;q(3 downto 0)=s0;hring : blockbegin s500=1 when q=01011001010100

12、00 else 1 when q=0101100101010010 else 1 when q=0101100101010100 else 1 when q=0101100101010110 else 1 when q=0101100101011000 else 0; s1k=1 when q=0000000000000000 else 0;end block hring;sig500=s500;sig1k=s1k;end a;模块说明:此模块由十三个二十一位一选择器组成,用以对七位七段码和六位动态显示作用选择输出。Sg60表示计时时间显示的七段码,rsg60表示闹铃时间显示的七段码,sl50

13、表示计时时间的动态显示信号,rsl52表示闹铃时间的动态显示信号。(5)选择器模块21选择器五课程设计总结:通过这一次的课程设计,我对VHDL语言有了进一步的了解。平时上机实验时不认真,总觉得自己什么都会了,等到面临实际的问题才发现自己什么都没有学会,本次课程设计使我更深刻的掌握了VHDL语言。在课程设计的一开始阶段就遇到了很多的困难:对VHDL语言不熟悉,没有对课程设计做好整体的规划,对电路图的画法不熟练,不知道该做些什么,以致影响了课程设计的整体进度,随着设计的进行,在各方面都学到了很多,对软件的使用也熟悉了,在同学的帮助下也理清了思路,在后续的工作中进展就较为顺利了。这一次的课程设计让我们懂得了在学习过程中要理论与实践相结合,因此我觉得这次课程设计是非常有必要的,也是非常有实际意义的。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号