EDA》课程设计之手表闹钟设计.docx
《EDA》课程设计之手表闹钟设计.docx》由会员分享,可在线阅读,更多相关《EDA》课程设计之手表闹钟设计.docx(8页珍藏版)》请在冰豆网上搜索。
EDA》课程设计之手表闹钟设计
《电子设计自动化》
课程设计
题目:
带闹钟功能的数字石英时钟电路
院(系)信息科学与工程学院
专业通信工程
届别2011级
班级
学号1115105048
姓名
任课老师
摘要:
本课程设计旨在设计一个可用EP2C5T144C8芯片实现的简易手表电路,带有24小时循环功能、时间设定功能、闹钟功能以及星期显示功能。
通过EDA课程的深入学习,电子设计自动化技术,先用文字描述出电路功能,通过自顶向下思想,构思出所需小单元模块,再分别写出组成电路所需要的模块的程序,并用QUARTERS软件生成各个模块的系统框图,新建blockdiagram文件,添加各个模块,然后用线路连接好。
调试成功后进行波形仿真,检验电路的正确性,并加以修改与改进。
其次,将程序下载到芯片里,进行硬件测试。
结果硬件功能与设想一致,结论:
手表仪器可用EDA实现其软件功能,用EP2C5T144C8芯片及各种简单电子器件实现其硬件功能。
1正文·························································2
1.1系统设计·················································2
1.2单元电路设计·············································2
1.3系统设计·················································7
1.4结论·····················································7
2参考文献·····················································7
1.正文
1.1.系统设计
1.设计要求:
带闹钟功能的数字石英时钟电路(难度系数1.1)
要求:
LED数码管显示小时、分钟及秒;时间可任意设置;外部时钟信号采用石英晶振频率(32768HZ);可设定闹钟时间,闹钟时间到发出警告信号。
2.系统设计方案:
设计方案1,在blockprogram文件里直接列出所有需要的小模块,各个小模块为最基础的模块,不可再划分,然后进行连接,实现功能;
设计方案2,将系统划分为定时、计数、闹钟三大块,每块分别独立设计,生成block文件,最后将三大块组合起来。
方案1的方法直接简单,但是线路会比较复杂,排查问题也比较困难;方案2分层设计,框图会简洁明了,但是设计步骤比方案1多了一步把小模块整合。
2个方案都可行,笔者选择第一种方案。
1.2.单元电路设计
3.该设计电路分为四大块:
时钟电路部分、定时部分、闹钟部分、数码管输出选择部分
。
接下去一一介绍它们的组成,程序,及系统框图。
1.时钟电路部分由2个10进制计数器,2个6进制计数器,1个24进制计数器组成,起始输入脉冲频率为32768HZ,经过一个32768计数器。
10进制程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
10进制
ENTITYCOUNT_10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCOUNT_10;
ARCHITECTUREbhvOFCOUNT_10IS
SIGNALQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALQ2:
STD_LOGIC;
BEGIN
PROCESS(CLK,RST,EN)
BEGIN
IFRST='1'THENQ1<=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='0'THEN
IFQ1<9THENQ1<=Q1+1;COUT<='0';
ELSEQ1<=(OTHERS=>'0');COUT<='1';
ENDIF;
ENDIF;ENDIF;
ENDPROCESS;
Q<=Q1;
ENDbhv;
6进制程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
6进制
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNT_10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCOUNT_10;
ARCHITECTUREbhvOFCOUNT_10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLEQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='1'THENQ1:
=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='0'THEN
IFQ1<5THENQ1:
=Q1+1;COUT<='0';
ELSEQ1:
=(OTHERS=>'0');COUT<='1';ENDIF;
ENDIFENDIF;
Q<=Q1;
ENDPROCESS;
ENDbhv;
24进制程序
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNT_24IS
24进制
PORT(CLK,RST,EN:
INSTD_LOGIC;
Q,COUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
DAY:
OUTSTD_LOGIC);
ENDCOUNT_24;
ARCHITECTUREbhvOFCOUNT_24IS
SIGNALQ1,Q2:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALQ3:
STD_LOGIC;
BEGIN
PROCESS(CLK,RST,EN)
BEGIN
IFRST='1'THENQ1<=(OTHERS=>'0');Q2<=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='0'THEN
IFQ1<9THENQ1<=Q1+1;
ELSEQ1<=(OTHERS=>'0');Q2<=Q2+1;ENDIF;
IFQ2="0010"ANDQ1="0011"THENQ1<="0000";Q2<="0000";Q3<='1';
ELSEQ3<='0';
ENDIF;ENDIF;ENDIF;
Q<=Q1;COUT<=Q2;DAY<=Q3;
ENDPROCESS;
ENDbhv;
32768计数器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
32768计数器计数器
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCT32768IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(14DOWNTO0);COUT:
OUTSTD_LOGIC);
ENDCT32768;
ARCHITECTUREoneOFCT32768IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLEQ1:
STD_LOGIC_VECTOR(14DOWNTO0);
BEGIN
IFRST='1'THENQ1:
=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='0'THEN
IFQ1<32767THENQ1:
=Q1+1;COUT<='0';
ELSEQ1:
=(OTHERS=>'0');COUT<='1';ENDIF;
ENDIF;
ENDIF;
Q<=Q1;
ENDone;
2.定时部分由一个二选一数据选择器和一个输出选择器符合而成
ENTITYc2b4IS
PORT(a,b,s1,s2:
INBIT;
Y:
OUTBIT);
ENDENTITYc2b4;
ARCHITECTUREoneOFc2b4IS
片选模块
BEGIN
PROCESS(a,b,s1,s2)
BEGIN
IFs1='0'ands2='1'THENY<=b;ELSEY<=a;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
4.闹钟部分组成与时钟部分选择器件一样
5.数码管输出选择部分
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYxz2to1IS
数码输出选择
PORT(a,b:
INSTD_LOGIC_VECTOR(3DOWNTO0);
s:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
ALARM:
OUTSTD_LOGIC);
ENDENTITYxz2to1;
ARCHITECTUREoneOFxz2to1IS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs='0'THENY<=a;ELSEY<=b;
ENDIF;
IFa=bthenALARM<='1';ELSEALARM<='0';
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
系统总图
软件设计平台:
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(第三版)潘松黄继业编著清华大学出版社
资料仅供参考!
!
!