SOPCEDA综合课程设计报告综合计时系统.docx

上传人:b****1 文档编号:13316308 上传时间:2023-06-13 格式:DOCX 页数:32 大小:406.79KB
下载 相关 举报
SOPCEDA综合课程设计报告综合计时系统.docx_第1页
第1页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第2页
第2页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第3页
第3页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第4页
第4页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第5页
第5页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第6页
第6页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第7页
第7页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第8页
第8页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第9页
第9页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第10页
第10页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第11页
第11页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第12页
第12页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第13页
第13页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第14页
第14页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第15页
第15页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第16页
第16页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第17页
第17页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第18页
第18页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第19页
第19页 / 共32页
SOPCEDA综合课程设计报告综合计时系统.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SOPCEDA综合课程设计报告综合计时系统.docx

《SOPCEDA综合课程设计报告综合计时系统.docx》由会员分享,可在线阅读,更多相关《SOPCEDA综合课程设计报告综合计时系统.docx(32页珍藏版)》请在冰点文库上搜索。

SOPCEDA综合课程设计报告综合计时系统.docx

SOPCEDA综合课程设计报告综合计时系统

 

SOPC/EDA综合课程设计报告

 

设计题目:

综合计时系统

设计者:

学号:

班级:

指导老师:

完成时间:

设计报告

综合测试

 

总评

格式

(10)

内容

(40)

图标

(10)

答辩

(40)

平时

(20)

 

目录

1设计总说明3

1.1系统设计要求3

2综合计时系统设计与分析4

2.1综合计时模块:

4

2.1.1单时钟电路构想4

2.1.2显示控制电路的设计7

2.1.3调整控制电路TZKZQ的设计10

2.2系统单元仿真与分析11

2.2.1综合计时电路的仿真11

2.2.2调整控制电路的仿真12

2.2.3显示控制电路的仿真13

3外围电路设计14

3.1直流稳压电源设计电路图14

3.2显示电路的设计15

4收获与体会16

4.1改进方法16

4.2体会16

5设计参考资料18

6附录————程序段19

6.1CONT60计时电路的VHDL源程序19

6.2CONT30计时电路的VHDL源程序19

6.3显示控制电路XSKZQ的VHDL源程序21

6.4调整控制电路TZKZQ的VHDL源程序23

 

1设计总说明

计时系统对现代人们生活学习工作等各方面有着巨大的作用,从以前的时钟、手表到至今,计时系统已经发展成为普遍性,综合性,简便性。

如何用更简单、可靠的原理,更轻便、廉价的设备,更精确、综合的计时,来设计电子计时器,是此设计的研究目的。

随着现代电子产品正以前所未有的高速度,向着功能多样化、体积最小化、功耗最低化迅速发展,如何提高产品性能,缩小产品体积,降低产品功耗,是对现代电子产品的基本要求,而EDA,即电子设计自动化技术,正是为了适应现代电子产品的设计要求,伴随着计算机、集成电路、电子系统设计的发展,吸收数据库、图形学、图论与拓扑逻辑、计算数学、优化理论等多学科最新成果而逐步形成的一门新技术。

它以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑期间的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑简化、逻辑映射、编程下载等工作等。

采用EDA技术进行综合计时系统的设计,可让计时系统达到精确,简易,可靠,省能。

EDA技术设计电子产品,已成为当今电子研发行业的主流,它可提高电子设计自动化程度,缩短开发周期,提高产品的竞争力。

本设计选用Altera公司的FLEX10K系列芯片,该芯片采用5V的工作模式,由Altera公司的MAXplus2开发系统提供软件支持,以硬件描述语言VHDL为系统逻辑描述的主要表达方式,设计了一个综合计时系统。

1.1系统设计要求

设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时功能,同时将计时结果通过15个七段数码管显示,并且可通过两个设置键,对计时系统的有关参数进行调整。

具体系统功能面板如图1所示。

 

 

图1系统功能面板

2综合计时系统设计与分析

2.1综合计时模块:

计时模块又可分七个小模块,有计秒模块,计分模块,计时模块,计日模块,计月模块,计年模块,计星期模块,用于完成各种计时的功能。

其中,计秒电路的输入时钟周期为1秒,计分电路的输入时钟为计秒电路的输出进位,如此类推下去,构成每个计时模块之间的联系。

而计日模块又略有不同,因为每个月的日数受年份,月份影响,所以要输入当前的年份月份来判断是否闰年,是否大月,才可以实现准确的计时。

调整控制电路则用于调整计时系统的有关参数,通过两个按键来对系统的参数进行修改,在修改过程中,对应的修改计时模块通过相应的灯点亮来表示数据正待输入。

显示控制电路用于完成计时结果的显示控制及显示译码等功能然后通过15个七段数码管显示出来。

同时,设计了相应的外围电路,因为家庭用的都是220V的交流电压,所以可通过整流,滤波,稳压,产生5V和12V电压的直流稳压电路,5V的电压供给FLEX10K芯片,而12V电压供给产生1KHz频率的方波信号源电路,还有显示数码管驱动电路,用于15个数码管的显示驱动,还有8个LED显示灯,表示当前调整模式的选择状况,两个点动式按键用于调整数据时的模式选择和数据修改。

关键词:

EDA;FLEX10K系列芯片;VHDL硬件描述语言;计时模块;显示块;

调整模块;外围电路。

2.1.1单时钟电路构想

数字钟以其显示时间的直观性、走时准确性而受到了人们的欢迎并很快走进了千家万户。

作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。

数字钟的基本原理方框图如下:

 

图2数字钟原理方框图

时基T产生电路

由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz的、非常稳定的计数时钟脉冲。

控制逻辑电路

产生调时、调分信号及位选信号。

调时、调分信号的产生:

由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。

现在我们把电路稍做变动:

把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。

调节小时的时间也一样的实现。

计数显示电路

由计数部分、数据选择器、译码器组成,是时钟的关键部分。

计数部分:

由两个60进制计数器和一个12/24进制计数器组成,其中60进制计数器可用6进制计数器和10进制计数器构成;24进制的小时计数同样可用6进制计数器和10进制计数器得到:

当计数器计数到24或晚上12时,“2”和“4”(或“1”和“2”)同时进行清零,则可实现24/12进制计数。

数据选择器:

因为本实验用到了6个动态扫描数码管,数据的选择输出是由输出相应的选择位完成的,故需要提供扫描输出程序。

 

图3自顶向下设计分割图

 

CNT60计数模块是一个多用计时模块,它既可作为计秒电路调用,又可作为计分电路、计时电路调用。

图4是其输入、输出端口图。

其中,输入信号LD为置数控制信号,低电平有效;输入信号CLK为计数时钟信号;输入信号DATA为待预置数;输出信号NUM为计数结果;输出信号CO为计数溢出信号。

图4CNT60计数模块输入、输出端口图

CNT60的主要VHDL程序段如下:

IF(LD='0')THEN

NUM<=DATA;

ELSIFCLK'EVENTANDCLK='1'THEN

IFNUM="111011"THEN--59

NUM<="000000";CO<='1';

ELSE

NUM<=NUM+1;CO<='0';

ENDIF;

ENDIF;

图5CNT30计数模块的输入、输出端口图

CNT30的主要VHDL程序段如下:

IF(LD='0')THEN

NUM<=DATA;

ELSIFCLK'EVENTANDCLK='1'THEN

MAX_DAYS<=TOTAL_DAYS;

IFNUM=TOTAL_DAYSTHEN--99

NUM<="00001";CO<='1';

ELSE

NUM<=NUM+1;CO<='0';

ENDIF;

ENDIF;

2.1.2显示控制电路的设计

本设计显示需要使用的是15个七段显示数码管。

在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。

为了解决好以上问题,下面就对七段数码管显示电路做简要的分析和介绍

通常点亮一个LED所需的电流是5~50mA,通电的电流愈大,LED的亮度愈高,相对的也会使其寿命缩短。

一般以10mA的导通电流来估算它所必须串联的阻值,其计算方式参考图6所示。

图6单个LED的串接电阻计算方式

七段显示器可分为共阳极、共阴极型两种,它们都可以等效成8个LED的连接电路,其中图7就是共阴极型七段显示器的等效电路和每节LED的定义位置图。

 

图7共阴极型七段显示器

根据以上设计思想,本系统的数据显示电路可分为两个子模块:

(1)显示控制电路XSKZQ:

负责完成数据选择扫描及数码管位选择信号的产生,数据扫描选择输出,对于选择的数据进行BCD码转换等功能;

(2)显示译码电路:

将用于显示的BCD码数据进行译码。

 

XSKZQ的输入、输出端口如图8所示。

其中,输入信号CLK_SCAN为用于产生数据选择扫描等控制信号的时钟信号;输入信号SEC、MIN、HOUR、DAY、MON、YEAR、WEEK分别来自计秒电路、计分电路、计时电路、计日电路、计月电路、计年电路、计星期电路等计时电路的计时结果输出端;输出信号BCD为被选择进行显示的计秒/计分/计时/计日/计月/计年/计星期电路等计时电路的计时结果的8位BCD码,输出端SELOUT经外部的3-8译码电路译码后用于选择对应计时结果显示数码管的公共端COM。

图9为15个共阴极型七段数码管驱动接线图

图915个共阴极型七段数码管驱动接线图

2.1.3调整控制电路TZKZQ的设计

对于系统中的时间调整电路,拟通过模式和调整两个外部按键完成。

模式按键负责切换正常时间计数模式和时间调整模式,调整模式切换顺序如图10所示。

调整键负责在时间调整模式之下,对当前模式的计时结果进行调整。

 

图10调整模式切换顺序

对于系统中的时间调整电路,拟通过模式和调整两个外部按键完成。

模式键负责切换正常时间计数模式和时间调整模式,调整模式切换顺序如图10所示。

调整键负责在时间调整模式之下,对当前模式的计时结果进行调整。

TZKZQ模块是负责各个模块之间的相互切换以及对被选中的模式进行时间调整的。

图11是其输入、输出端口图。

图11TZKZQ的输入、输出端口图

2.2系统单元仿真与分析

各部分模块完成后,用QUARTUSⅡ对程序进行编译仿真,以得到相应的仿真波形。

2.2.1综合计时电路的仿真

CNT60.VHD模块仿真波形如下:

 

图12CNT60.VHD模块仿真图

从图12可以看出,CNT60.VHD实现了从0到59的循环计数,每实现一次59到0的计数动作,计数模块输出一个进位信号。

当LD端有低电平输入时,说明置数信号(LD)有效,模块将预置数(DATA)56送入计数结果(NUM)中去,计数模块从56开始重新计数。

CNT30.VHD的仿真波形如下:

图13CNT30模块仿真图

从图13可以看出,该模块首先要读取当前年月(NIAN和YUE),再对该月的最大天数(MAX_DAYS)进行判断并将结果向外输出。

在正常计数过程中,模块实现了从0到最大天数(MAX_DAYS)的循环计数,每实现一次最大天数(MAX_DAYS)到0的计数动作,计数模块输出一个进位信号。

当LD端有低电平输入时,说明置数信号(LD)有效,模块将预置数(DATA)24送入计数结果(NUM)中去,计数模块从24开始重新计数。

 

2.2.2调整控制电路的仿真

TZKZQ.VHD的仿真波形如下:

图14TZKZQ.VHD仿真图

(一)

图15TZKZQ.VHD仿真图

(二)

从图14可以看出,调整键被按下了8次(键盘产生“01”信号即为调整键按下一次),调整模式依次经过了正常、调秒、调分、调时、调日、调月、调年、调星期再回到正常这8种模式的循环,即MODE依次从0到7,再从7回到0的循环。

在按键过程中,每按下一次按钮,相应地被调整模式的异步并行置位使能置“0”,同时通过一个非门点亮该调整模式所对应的发光二极管,作为该调整模式的指示信号。

从图15可以看出,在按动了两次模式键(01)后,调整模式切换到了调分模式,然后又按动了两次调整键(10),实现了在调分模式下对当前分的值进行调整(从34调到36)。

2.2.3显示控制电路的仿真

XSKZQ.VHD的仿真波形如下:

 

图16TZKZQ.VHD仿真图

从图16可以看出,当SELOUT分别等于0,1,2,3,4,5,6,7时,分别选择对应的输入数据输出,达到了设计要求。

 

3外围电路设计

3.1直流稳压电源设计电路图

图17直流稳压电源电路

设输出电压为U=+5V—15V,输出电流为I=800mA,则集成稳压器可选用CW317,其输出电压范围为:

U0=1.2—37V,最大输出电流Imax为1.5A。

在图中,R1和R3组成输出电压调节,输出电压U0≈1.25(1+R3/R1),取R1=200Ω,可得R3≈2.2KΩ。

所以R3可选2.5KΩ的精密线绕电位器。

由于CW317的输入电压与输出电压差的最小值为3V,,输入电压与输出电压差的最大值为40V,故CW317的输入电压范围为:

12V到43V,所以变压器可选择输入功率为20W的型号。

整流二极管选用IN4001,其反向击穿电压为大于50V,额定工作电流为1A。

滤波电容C取容量为4700uF,耐压为25V电容。

其它的,C1=0.01uF,C2=10uF,C0=1uF。

由于本系统需要用到12V的电压和5V的电压,调节R1,使输出U1为12V,作为信号源的输入电压。

再选用滑动变阻器Rw2=100Ω为分压器,调节出U2为5V作为FLEX10K的输入电压。

 

3.2显示电路的设计

 

图18显示电路图

简洁的板面实现了年,月,日,时,分,秒,星期的综合计时,并通过两个按键实现了数据的修改。

内部有直流电压源,只需接上家庭用220V交流电压,就可实现计时。

而且系统运行只需5V电压,可做到节能。

 

4收获与体会

4.1改进方法

在显示控制电路XSKZQ的设计中,利用动态扫描显示的原理,既简化了显示译码驱动电路的设计,又节约了硬件的I/O口,同时还减小了系统的驱动电流及功耗等,在实际使用中非常有价值。

在调整控制电路TZKZQ的设计中,通过读入系统当前工作的各种时间信息进行自加调整,简化了预置值的设计,利用状态机非常简洁地实现了8种调整的循环变化。

由于本系统采用的是利用秒计时器的进位来作为分计时器的脉冲信号,利用分计时器的进位来作为时计时器的脉冲信号,以此类推,这样的设计虽然减少了器件的使用,却会导致误差呈几何倍数的增加。

可以考虑对于系统的各种控制时钟信号,通过分频电路对一个给定的合适频率信号进行分频来产生,这样就能适当的减少误差的产生,使该产品计时更加精确。

4.2体会

开始做这个课题时,发现不是和想象中那样简单,由于以前尝试的都是小型系统,从没有尝试过制作个单独的系统,而且EDA的编程思想还是与C、汇编的编程方式存在很多的不同,从一开始我就用着错误的思想去做这个事,结果是显当然,毫无结果。

终于真正的开始重视本次课程设计,参考过王老师的课程设计指导书后,我采用自上至下的编程思想,将本个系统大概分了几块,开始尝试查找资料,与组里同学讨论,在了解了别人的编程思想后,我们发现资料不是绝对的、完整的,我们开始在各个资料之间挑出精华,再加上自己的知识来完善该个课程设计。

经过几天的调试,经过仿真终于能达到们所需的设计要求,虽然最终的设计还存在些小瑕疵.但毕竟是第一次做,我还是比较满意的。

本次设计让我们那发现了自己很多的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次设计的综合计时系统还是比较成功的,虽然这次设计的综合计时系统不是很完美,在设计中遇到了很多的难题,最后在老师的辛勤的指导下,终于迎刃而解.还是觉得不错的,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而其锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

最后,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢!

此设计反映出EDA技术在电子产品的设计的优势和实用性。

EDA技术将更广泛应用于高校电类专业的实践教学当中,将更广泛应用于科研工作和新产品的开发中,将更广泛应用于专用集成电路的开发,将更广泛应用于传统机电设备的升级换代和技术改。

 

5设计参考资料

[1]SOPC/EDA综合课程设计指导书,自编

[2]谭会生,张昌凡.EDA技术及应用(第二版).西安:

西安电子科技大学出版社,2001

[3]第二届全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(1994-1995).北京:

北京理工大学出版社,1997

[4]徐光军,徐光辉.CPLD/FPGA的开发与应用.北京:

电子工业出版社,2002

[5]李国丽,朱维勇.EDA与数字系统设计.北京:

机械工业出版社,2004

[6]第三届全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(1997).北京:

北京理工大学出版社,1999

[7]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[8]

[9]

[10]

 

6附录————程序段

综合计时电路的VHDL源程序

6.1CONT60计时电路的VHDL源程序

CNT60.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT60IS

PORT(

CLK:

INSTD_LOGIC;--时钟脉冲

NUM:

BUFFERSTD_LOGIC_VECTOR(5DOWNTO0);--计数结果

CO:

OUTSTD_LOGIC);--进位信号

ENDENTITYCNT60;

ARCHITECTUREARTOFCNT60IS

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFNUM="111011"THEN--59

NUM<="000000";CO<='1';

ELSE

NUM<=NUM+1;CO<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

6.2CONT30计时电路的VHDL源程序

CNT30.VHD

LIBRARYIEEE;--CONT30计时电路的VHDL源程序

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT30IS

PORT(

CLK:

INSTD_LOGIC;--时钟脉冲

NIAN:

INSTD_LOGIC_VECTOR(6DOWNTO0);--当前年

YUE:

INSTD_LOGIC_VECTOR(3DOWNTO0);--当前月

NUM:

BUFFERSTD_LOGIC_VECTOR(4DOWNTO0);--计数结果

MAX_DAYS:

OUTSTD_LOGIC_VECTOR(4DOWNTO0);--本月总天数

CO:

OUTSTD_LOGIC);--进位信号

ENDCNT30;

ARCHITECTUREARTOFCNT30IS

SIGNALTOTAL_DAYS:

STD_LOGIC_VECTOR(4DOWNTO0);

BEGIN

PROCESS(CLK)IS

VARIABLEIS_RUNNIAN:

STD_LOGIC;

BEGIN

CASENIANIS

WHEN"0000000"=>IS_RUNNIAN:

='1';--0如当前年为00,

则输出闰年确认信号

WHEN"0000100"=>IS_RUNNIAN:

='1';--4

WHEN"0001000"=>IS_RUNNIAN:

='1';--8

WHEN"0001100"=>IS_RUNNIAN:

='1';--12

WHEN"0010000"=>IS_RUNNIAN:

='1';--16

WHEN"0010100"=>IS_RUNNIAN:

='1';--20

WHEN"0011000"=>IS_RUNNIAN:

='1';--24

WHEN"0011100"=>IS_RUNNIAN:

='1';--28

WHEN"0100000"=>IS_RUNNIAN:

='1';--32

WHEN"0100100"=>IS_RUNNIAN:

='1';--36

WHEN"0101000"=>IS_RUNNIAN:

='1';--40

WHEN"0101100"=>IS_RUNNIAN:

='1';--44

WHEN"0110000"=>IS_RUNNIAN:

='1';--48

WHEN"0110100"=>IS_RUNNIAN:

='1';--52

WHEN"0111000"=>IS_RUNNIAN:

='1';--56

WHEN"0111100"=>IS_RUNNIAN:

='1';--60

WHEN"1000000"=>IS_RUNNIAN:

='1';--64

WHEN"1000100"=>IS_RUNNIAN:

='1';--68

WHEN"1001000"=>IS_RUNNIAN:

='1';--72

WHEN"1001100"=>IS_RUNNIAN:

='1';--76

WHEN"1010000"=>IS_RUNNIAN:

='1';--80

WHEN"1010100"=>IS_RUNNIAN:

='1';--84

WHEN"1011000"=>IS_RUNNIAN:

='1';--88

WHEN"1011100"=>IS_RUNNIAN:

='1';--92

WHEN"1100000"=>IS_RUNNIAN:

='1';--96

WHENOTHERS=>IS_RUNNIAN:

='0';

ENDCASE;

CASEYUEIS

WHEN"0001"=>TOTAL_DAYS<="11111";--1

WHEN"0011"=>TOTAL_DAYS<="11111";--3

WHEN"0101"=>TOTAL_DAYS<="11111";--5

WHEN"0111"=>TOTAL_DAYS<="11111";--7

WHEN"1000"=>TOTAL_DAYS<="11111";--8

WHEN"1010"=>TOTAL_DAYS<="11111";--10

WHEN"1100"=>TOTAL_DAYS<="11111";--12

W

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2