1、EDA课程设计之手表闹钟设计电子设计自动化课程设计题目: 带闹钟功能的数字石英时钟电路 院(系) 信息科学与工程学院 专 业 通信工程 届 别 2011级 班 级 学 号 1115105048 姓 名 任课老师 摘要: 本课程设计旨在设计一个可用EP2C5T144C8芯片实现的简易手表电路,带有24小时循环功能、时间设定功能、闹钟功能以及星期显示功能。通过EDA课程的深入学习,电子设计自动化技术,先用文字描述出电路功能,通过自顶向下思想,构思出所需小单元模块,再分别写出组成电路所需要的模块的程序,并用QUARTERS软件生成各个模块的系统框图, 新建block diagram文件,添加各个模块
2、,然后用线路连接好。调试成功后进行波形仿真,检验电路的正确性,并加以修改与改进。其次,将程序下载到芯片里,进行硬件测试。 结果硬件功能与设想一致,结论:手表仪器可用EDA实现其软件功能,用EP2C5T144C8芯片及各种简单电子器件实现其硬件功能。 1正文2 1.1系统设计2 1.2单元电路设计2 1.3系统设计7 1.4结论7 2参考文献71.正文1.1.系统设计1.设计要求:带闹钟功能的数字石英时钟电路(难度系数1.1)要求:LED数码管显示小时、分钟及秒;时间可任意设置;外部时钟信号采用石英晶振频率(32768HZ);可设定闹钟时间,闹钟时间到发出警告信号。2.系统设计方案: 设计方案1
3、,在block program文件里直接列出所有需要的小模块,各个小模块为最基础的模块,不可再划分,然后进行连接,实现功能; 设计方案2,将系统划分为定时、计数、闹钟三大块,每块分别独立设计,生成block文件,最后将三大块组合起来。 方案1的方法直接简单,但是线路会比较复杂,排查问题也比较困难;方案2分层设计,框图会简洁明了,但是设计步骤比方案1多了一步把小模块整合。2个方案都可行,笔者选择第一种方案。1.2.单元电路设计3. 该设计电路分为四大块:时钟电路部分、定时部分、闹钟部分、数码管输出选择部分。接下去一一介绍它们的组成,程序,及系统框图。1.时钟电路部分由2个10进制计数器,2个6进
4、制计数器,1个24进制计数器组成,起始输入脉冲频率为32768HZ,经过一个32768计数器。10进制程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;10进制ENTITY COUNT_10 IS PORT ( CLK,RST,EN :IN STD_LOGIC ; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC );END COUNT_10 ; ARCHITECTURE bhv OF COUNT_10 IS SIGNAL Q1 :
5、 STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Q2: STD_LOGIC ;BEGIN PROCESS (CLK, RST, EN ) BEGIN IF RST =1 THEN Q1 0); ELSIF CLKEVENT AND CLK=1 THEN IF EN =0 THEN IF Q1 9 THEN Q1 = Q1 +1;COUT = 0; ELSE Q1 0);COUT =1; END IF; END IF; END IF; END PROCESS;Q 0); ELSIF CLKEVENT AND CLK=1 THEN IF EN =0 THEN IF Q1
6、 5 THEN Q1 := Q1 +1;COUT0);COUT=1; END IF; END IF END IF; Q = Q1; END PROCESS ;END bhv ;24进制程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT_24 IS24进制 PORT ( CLK,RST,EN :IN STD_LOGIC ; Q,COUT :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);DAY:OUT STD_LOGIC);END COUNT_24 ;AR
7、CHITECTURE bhv OF COUNT_24 IS SIGNAL Q1,Q2: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL Q3:STD_LOGIC;BEGIN PROCESS (CLK, RST, EN ) BEGIN IF RST =1 THEN Q1 0);Q2 0); ELSIF CLKEVENT AND CLK=1 THEN IF EN =0 THEN IF Q1 9 THEN Q1 = Q1 +1; ELSE Q1 0); Q2 = Q2+1 ; END IF; IF Q2 = 0010 AND Q1 = 0011 THEN Q1 =0000 ;
8、 Q2 =0000 ;Q3=1; ELSE Q3=0; END IF;END IF; END IF; Q = Q1;COUT = Q2 ;DAY0); ELSIF CLKEVENT AND CLK=1 THEN IF EN =0 THEN IF Q1 32767 THEN Q1 := Q1 +1;COUT0);COUT=1; END IF; END IF; END IF; Q = Q1; END one ;2.定时部分由一个二选一数据选择器和一个输出选择器符合而成ENTITY c2b4 IS PORT (a,b,s1,s2: IN BIT; Y : OUT BIT );END ENTITY c
9、2b4;ARCHITECTURE one OF c2b4 IS 片选模块 BEGINPROCESS (a,b,s1,s2)BEGIN IF s1 = 0and s2 = 1THEN Y = b ; ELSE Y = a ; END IF;END PROCESS;END ARCHITECTURE one ;4.闹钟部分组成与时钟部分选择器件一样5.数码管输出选择部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY xz2to1 IS数码输出选择 PORT (a,b: IN STD_LOG
10、IC_VECTOR(3 DOWNTO 0); s: IN STD_LOGIC; Y : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ALARM:OUT STD_LOGIC);END ENTITY xz2to1;ARCHITECTURE one OF xz2to1 IS BEGINPROCESS (a,b,s)BEGIN IF s = 0 THEN Y = a ; ELSE Y = b ; END IF;IF a=b then ALARM =1;ELSE ALARM =0; END IF;END PROCESS;END ARCHITECTURE one ;系 统 总 图软件设计平台:Quartus2 1.3.系统测试 1、把软件下载到硬件电路,选择模式1,选择时钟输出显示管,观察24小时时钟的正确性。 2、选择定时功能,任意调整时间,检测可行性。 3、选择数码管输出闹钟时间,调整闹钟为10:20:00 返回定时 定在10:19:00 让时钟功能运行,看起闹钟功能是否可行。1.4.结论 可在输入362478HZ的周期脉冲时候,从00:00:00计时到23:59:59,可在设定闹钟时间响铃,可任意设定时间,完全成功。2.参考文献 EDA技术与VHDL(第三版) 潘松 黄继业编著 清华大学出版社资料仅供参考!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1