我的毕业设计.docx
- 文档编号:8310760
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:21
- 大小:235.23KB
我的毕业设计.docx
《我的毕业设计.docx》由会员分享,可在线阅读,更多相关《我的毕业设计.docx(21页珍藏版)》请在冰豆网上搜索。
我的毕业设计
摘要
电子设计自动化ElectronicDesignAutomation(以下简称EDA)技术已经代替传统的集成电路设计方法,逐渐成为电子系统设计者的主要设计手段。
MAX+plus
是EDA仿真软件之一。
具有功能强大、界面友好和使用方便等特点,是目前教育与工业界流行的集成电路辅助设计软件。
MAX+plus
软件是一种在电子技术工程与电子技术教学中广泛应用的优秀计算机仿真软件,被誉为“计算机里的电子实验室”。
本文介绍了一种基于MAX+plus
软件设计数字钟的方法。
关键词:
EDAMAX+plus
软件数字电子钟
Abstract
ElectronicDesignAutomationElectronicDesignAutomation(EDAofthefollowingabbreviation)technologyhasreplacedthetraditionalmethodofintegratedcircuitdesign,hasgraduallybecomethemaindesignmethodofelectronicsystemdesign.MAX+plusIIisoneofEDAsimulationsoftware.Withpowerfulfunction,friendlyinterfaceandeasytouseandothercharacteristics,isthecurrenteducationandindustrypopularintegratedcircuitcomputeraideddesignsoftware.MAX+plusIIisatechnologyinelectronicengineeringandelectronictechnologyteachinginextensiveapplicationofexcellentcomputersimulationsoftware,knownasthe"computerelectroniclaboratory".ThispaperintroducedonekindbasedontheMAX+plusIIsoftwaredesignmethodofdigitalclock.
Keywords:
EDAMAX+plusIIsoftwaredigitalelectronicclock
基于EDA的多功能数字钟电路设计
前言
随着计算机在国内的逐渐普及,计算机已经渗入到每一个行业,计算机与每个工作领域紧密地联系在了一起。
使用计算机可以大大提高工作效率。
和科技投入,技术作为信息化社会的重要技术基石,已经成为20世纪下半叶乃至21世纪发展最迅速、最活跃、最具有渗透力的技术。
实现信息化的网络及其关键部件不管是各种计算机还是通讯电子设备,它们的基础都是集成电路。
集成电路技术发展至今,全世界数以万亿美元计的设备和科技投入,已使电子技术形成非常强大的产业能力。
电子技术水平发展如此迅速,在于它具有极大的市场应用需求。
科学技术发展到今天,衡量许多电子产品技术含量高低在很大程度上取决于电子技术的引入水平。
然而,孤立地发展电子技术是没有出路的,它必须同各种生产实践相结合,以社会需求为动力。
随着计算机新技术的发展以及电子系统设计新需求的上升,技术竞争需要的是对新器件应用的需求,集成电路专业设计人员需要的是贯穿电子设计过程始终的最小人工花销、最强的自动化设计手段。
正是在这种强烈的技术要求推动下,产生了电子设计自动化EDA(ElectronicDesignAutomation)技术,EDA是新崛起的现代化电子设计手段。
EDA技术的关键之一是EDA工具,EDA工具是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子设计通用工具软件,本文就是介绍一种EDA工具——MAX+plus
软件设计数字电子钟。
第一章EDA概述
1.1EDA技术概论
电子产品随着技术的进步,更新换代速度可谓日新月异。
不同行业层出不穷的技术需求,使得对配套电子系统或部件的功能、可靠性、集成度、成本、设计周期的要求日益提高。
随着时间的推移,科学研究与技术开发行为日益市场化,而远非纯粹的学术行为,这要求设计工作必须在较短的时间内出色完成,技术人员感到工作压力越来越大。
显然,采用传统的电子设计手段完成复杂电子系统设计显得越来越力不从心了,传统的电子设计与现实手段受到极大的挑战。
如果在激烈的技术产品竞争中仍沿用老办法,很可能在激烈的竞争中处于被动落后的境地,例如,当设计比较复杂的电子系统时,要等到做完全部硬件试验才开始设计印制电路板,这样,设计周期必然会相应拉长,即使设计出印制电路板来,也很难保证它的电气连接全部正确、各个元器件参数合理以及完善的电磁兼容性能,如果需要设计实现的数字电路部分规模较大,仍习惯地利用中、小规模数字集成芯片实现,电路的集成度和可靠性在许多应用场合会受到很大限制,甚至根本无法满足需求。
作为电路主体的器件,特别是集成电路器件功能越来越强大,集成度越来越高,传统设计方式已难以胜任。
EDA即电子设计自动化,英文全称"ElectronicDesignAutomation",EDA技术是以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。
EDA技术满足了提高设计规模、质量和设计的需要。
目前,电子产品开发领域的竞争十分激烈,其产品的市场周期越来越短,这意味着电子产品的设计开发周期必须大大缩短,没有高效率的设计手段是无法参与市场竞争的。
EDA工具的优势体现在复杂电路系统的设计上,其设计效率远远高于人工设计,而且可按照事先规定的设计规则随时进行检查,及时提醒设计者出现的设计失误,设计质量得到保障,这自然会缩短周期、降低成本、提升竞争力,从而最大限度地提高经济效益。
1.2EDA在数字电路课程设计中的必要性
数字电路课程设计是数字电路设计型实验中的重要部分,它要求运用电子技术课程中有关的理论知识和实验方法,完成一些综合性较强的设计课题。
由于目前在数字电路实验教学中,大部分吧院校仍然用中小规模的通用集成电路来实现设计功能,当设计的数字电子钟系统比较复杂,需要多个集成芯片和大量连线时,就增加了设计电路板的难度和故障调试难度,延长了设计周期,降低了学生的学习兴趣;同时,常用中小规模集成芯片的大量重复使用也大大增加了设计成本。
因此,在数字电路课程设计中引入EDA技术,采用当前国际先进的设计方法和理念,改革传统的课程设计方法,已经成为一种趋势。
应用EDA虚拟的电子实验平台,让学生坐在计算机旁进行各种电子线路的仿真实验与在实验室使用真实的仪器、进行电子线路实验,具有同样的感受和更具有真实的实验效果。
学生可以在虚拟的元器件库中拿取元器件;可以在虚拟的仪器库中拿取仪器和仪表;同样可以用导线与电缆连接电路;可以选择器件的参数,可以对电路进行调试、分析;可以在示波器的显示屏上观测到所测电压、电流的波形,可以通过仪表读取被测参数的值,这一切都非常逼真。
做仿真实验一般不会损坏仪器,不会烧毁仪器(除非把计算机损坏)。
只要按照规定的方法进行试验,都能够达到预期的实验目的。
可见,用EDA软件进行仿真电子实验的确可以达到事半功倍的效果。
所以在数字电路课程设计中学习EDA技术是非常必要的。
1.3MAX+plus
概述
EDA技术的关键之一是EDA工具,EDA工具是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子设计通用工具软件,主要能进行三方面的辅助设计工作:
(1)PCB印制电路板设计
(2)ASIC(集成电路)设计
(3)电子系统设计(SOC)
没有EDA技术的支持,想要完成超大规模集成电路的设计是很难想象的,反过来生产制造技术的不断进步又必将对EDA技术提出新的要求。
Altera公司推出的MAX+plus
软件是专门用于电子电路仿真的“虚拟电子工作台”软件,它是目前全球最直观、最高效的EDA软件。
它的功能强大,能够提供电阻、电容、三极管、集成电路等数十大类几千种元件,能够提供示波器、万用表等十几种常用的电子仪器;具有强大的电路图绘制功能,可绘制出符合标准的电子图纸;它还具有强大地波形显示功能,并且结果可轻松放入各类文档。
用该软件进行设计、分析非常方便。
本文在MAX+plus
基础上设计电子时钟,是由数字集成电路构成、用数码管显示的一种现代计时器,与传统机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此广泛使用。
MAX+plus
软件是针对数字电路的一个应用软件。
它的特点是:
无需画电路图,而是用编写代码的形式来描述电路的功能。
把编写的代码经该软件在计算机上仿真,若满足技术需求,即可下载到CPLD的下载板上。
MAX+plus
仿真软件的特点
1.多平台系统:
MAX+plus
的设计输入,处理与校验功能一起提供了全集成化的可编程开发工具,可以加快动态调试,缩短开发周期。
2.开放的界面:
MAX+plus
可与其他工业标准的设计输入,综合和校验工具链接。
具有EDIF、VHDL、Verilog、HDL以及其他的网表接口,便于与许多公司的EDA工具接口。
3.模块组合式工具软件:
MAX+plus
具有一个完整的可编程逻辑设计环境,包括设计输入,设计处理,设计校验和下载编程四个模块。
4.与结构无关:
MAX+plus
支持Altera的Classic,MAX5000,MAX7000,FLEX10K等可编程器件系列,提供工业界中唯一真正与结构无关的可编程逻辑设计环境。
5.硬件描述语言:
MAX+plus
支持各种HDL设计输入语言,包括VHDL、AHDL和Verilog。
1.4设计电子钟的可行性分析
选用MAX+plus
软件,以计算机作为载体。
通过使用MAX+plus
软件,设计实现一个数字电子钟。
并使数字钟具有校时、校分、校秒及整点报时功能。
掌握使用MAX+plus
软件完成基本电路的设计。
设计数字电子钟的条件具备,设计是可行的。
第二章设计依据
2.1设计总体方案
多功能数字钟电路的设计总体方案框图(如图2-1所示),由控制电路、两个60进制计数器、一个12进制计数器、译码器、显示器和扬声器组成。
控制电路控制计数器计时和扬声器报时。
计数器对秒、分、小时进行计时。
当计时到11时59分59秒时,来一个计数脉冲,则计数器清零,重新开始计时。
译码器将计数器输出的BCD码计时结果转换成十进制送到显示器。
显示器显示时、分、秒计时结果。
分显示器
秒显示器
时显示器
译码器
译码器
译码器
CYS
CYM
60进制秒计数器
60进制分计数器
12进制时计数器
控制电路
CLK
扬声器
CLK
CLK
图2-1设计总体方案框图
2.2设计原理
数字电子钟由振荡器、分频器、计数器、译码显示器、报时等电路组成。
其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。
秒信号送入计数器进行计数,把累加的结果以‘时’、‘分’、‘秒’的数字显示出来。
‘时’显示由12进制计数器、译码器、显示器构成。
‘分’、‘秒’显示分别由60进制计数器、译码器显示器构成。
可进行整点报时,计时出现误差时,可以用校时电路校时、校分。
2.3设计目标和方法
MAX+plus
软件作为电子钟设计工作平台,以数字电路为设计电子钟的理论基础,按照“自顶向下”的层次化设计方法设计该电路,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路实现,应用MAX+plus
软件进行数字电路的设计与仿真。
MAX+plus
软件的集成环境界面如下图3-2所示:
图3-2MAX+plus
软件的集成环境界面
第三章数字钟设计
3.1数字钟的设计要求
(1)具有正确的星期、时、分、秒计时功能。
(2)计时结果要用6个数码管分别显示时、分、秒的十位和个位。
(3)有校时功能。
当键MINUTE按下时,分计数器以秒脉冲的速度递增,并按60min循环,即计数到59min后再回00。
当HOUR键按下时,时计数器以秒脉冲的速度递增,并按24h循环,即计数到23h后再回00。
当WEEK键按下时,星期计数器以秒脉冲速度递增,并按7天循环,即计数到日后再回到一。
3.2数字钟顶层结构
根据数字钟的功能要求,就可以对数字钟按照功能进行模块划分。
图2-1是它的顶层电路原理图。
在图2-1中,外界通过CLK端输入1Hz的脉冲信号。
1Hz信号作为秒脉冲信号送入SECOND(60进制)计数器进行秒计时,满60s产生一个进位信号CARRY,经过或门被送入MINUTE(60进制)计数器进行分计数。
当按下SECOND键后,1Hz秒脉冲信号通过或门被送入MINUTE(60进制)计数器进行分计数,从而实现快速校分功能。
HOUR(24进制)计数器也是经过同样的过程实现计数和校时功能。
时、分、秒计数器的输出均是十位和个位分开显示的8421BCD码,将这六组BCD码通过一个六选一数据选择器MUX6_1SCAN选出一组BCD码。
由外界输入的CLKCAN信号作为MUX6_1SCAN的选择控制信号,然后再将选出的一组BCD码送至七段译码显示器进行译码。
译码每输出结果同时送至6个LED数码管的a、b、c、d、e、f7个段,至于哪个数码管能够显示,取决于扫描控制信号SEL的输出结果,即SEL选择哪个数码管,那个数码管就点亮。
用多个(6个)数码管显示数据时有并行显示和动态扫描显示两种方式。
所谓并行显示,是6个数码管同时被驱动,它需要同时对6组BCD码数据进行编译,并输出6组LED7段驱动信号去驱动6个数码管的7个显示段,共需要42个I/O管脚,另外还需要6个BCD/7段译码器。
本设计采用动态扫描显示,每次仅仅点亮1个数码管,各个数码管轮流被扫描点亮,如果扫描的速度足够快,由于人眼存在视觉暂留现象,就看不出闪烁。
开始工作时,先从6组BCD数据中选出一组,通过7段译码器译码后输出,然后选出下一组数据译码输出。
数据选择的时序和顺序由6个进制计数器SEL控制,与此同时,MUX6_1SCAN产生选通信号。
这种显示方式需要的资源少,而且节能。
模块WEEK和WEEKDISP为星期(7进制)计数模块和显示模块,当时间为23:
59:
59时,一个秒脉冲过来,使时间为00:
00:
00并产生一个星期进位信号,星期计数器驱动显示模块显示相应的信息。
图2-1数字钟的顶层原理图
3.3数字钟各模块的VHDL源程序设计
以下是数字钟各模块的VHDL程序及部分主要模块的仿真波形。
3.3.1秒计数器的源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsecondIS
PORT(clk,reset:
INSTD_LOGIC;
sec1,sec2:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
carry:
OUTSTD_LOGIC);
ENDsecond;
ARCHITECTURErt1OFsecondIS
SIGNALsec1_t,sec2_t:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,reset)
BEGIN
IFreset='1'THEN
sec1_t<="0000";
sec2_t<="0000";
ELSIFclk'eventANDclk='1'THEN
IFsec1_t="1001"THEN
sec1_t<="0000";
IFsec2_t="0101"THEN
sec2_t<="0000";
ELSE
sec2_t<=sec2_t+1;
ENDIF;
图3-1秒计数器
ELSE
sec1_t<=sec1_t+1;
ENDIF;
IFsec1_t="1001"AND
sec2_t="0101"THEN
carry<='1';
ELSE
carry<='0';
ENDIF;
ENDIF;
sec1<=sec1_t;
sec2<=sec2_t;
ENDPROCESS;
ENDrt1;
图3-2秒计数器仿真波形
图3-3秒计数器局部放大仿真波形
3.3.2分计数器的源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYminuteIS
PORT(clk,reset:
INSTD_LOGIC;
min1,min2:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
carry:
OUTSTD_LOGIC);
ENDminute;
ARCHITECTURErt1OFminuteIS
SIGNALmin1_t,min2_t:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,reset)
BEGIN
IFreset='1'THEN
min1_t<="0000";
min2_t<="0000";
ELSIFclk'eventANDclk='1'THEN
IFmin1_t="1001"THEN
min2_t<="0000";
IFmin2_t="0101"THEN
min2_t<="0000";
ELSE
min2_t<=min2_t+1;
ENDIF;
ELSE
min1_t<=min1_t+1;
图3-4分计数器
ENDIF;
IFmin1_t="1001"AND
min2_t="0101"THEN
carry<='1';
ELSE
carry<='0';
ENDIF;
ENDIF;
min1<=min1_t;
min2<=min2_t;
ENDPROCESS;
ENDrt1;
图3-5分计数器仿真波形
图3-6分计数器局部放大仿真波形
3.3.3时计数器的源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYhourIS
PORT(clk,reset:
INSTD_LOGIC;
hour1,hour2:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
carry:
OUTSTD_LOGIC);
ENDhour;
ARCHITECTURErt1OFhourIS
SIGNALhour1_t:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALhour2_t:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,reset)
BEGIN
IFreset='1'THEN
hour1_t<="0000";
hour2_t<="0000";
ELSIFclk'eventANDclk='1'THEN
IFhour1_t="0011"AND
hour2_t="0010"THEN
hour1_t<="0000";
hour2_t<="0000";
ELSE
IFhour1_t="1001"THEN
hour1_t<="0000";
IFhour2_t="0010"THEN
hour2_t<="0000";
ELSE
hour2_t<=hour2_t+1;
ENDIF;
ELSE
hour1_t<=hour1_t+1;
ENDIF;
ENDIF;
IFhour1_t="0000"AND
hour2_t="0000"THEN
图3-7时计数器
carry<='1';
ELSE
carry<='0';
ENDIF;
ENDIF;
hour1<=hour1_t;
hour2<=hour2_t;
ENDPROCESS;
ENDrt1;
图3-8时计数器仿真波形
3.3.4星期计数器的源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYweekIS
PORT(clk,reset:
INSTD_LOGIC;
week:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDweek;
ARCHITECTURErt1OFweekIS
SIGNALweek_t:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,reset)
BEGIN
IFreset='1'THEN
week_t<="0000";
ELSIFclk'eventANDclk='1'THEN
IFweek_t="0111"THEN
week_t<="0001";
ELSE
week_t<=week_t+1;
ENDIF;
ENDIF;
week<=week_t;
ENDPROCESS;
ENDrt1;
图3-9星期计数器仿真波形
3.3.5扫描六选一多路选择器的源程序
扫描六选一多路选择器MUX6_1SCAN可根据CLKCAN信号选出不同的显示数据,并驱动相应的LED数码管显示数据。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYmux6_1scanIS
PORT(clkscan,reset:
INSTD_LOGIC;
in1,in2,in3:
INSTD_LOGIC_VECTOR(3DOWNTO0);
in4,in5,in6:
INSTD_LOGIC_VECTOR(3DOWNTO0);
data:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
sel:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDmux6_1scan;
ARCHITECTURErt1OFmux6_1scanIS
SIGNALcount:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
PROCESS(clkscan,reset
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计