版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计:多功能数字闹钟的设计专业:电气工程与自动化 姓名:陶静、 孙韬 学号:2009031523、2009031524 引言 人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要因素是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。后者的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅
2、助进行三方面的设计工作:IC设计,电子电路设计,PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。回顾近30年电子设计技术的发展历程,可将EDA技术分为三个阶段。七十年代为CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。CAE的主要功能是:原理图输入,逻辑仿真,
3、电路分析,自动布局布线,PCB后分析。九十年代为ESDA阶段,尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。基于以上不足,人们开始追求:贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。高层次设计给我们提供了一种%26ldquo;自顶向下%26rdquo;(Top%26ndash;Down)的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言
4、对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构设计上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。现代电子产品的复杂度日益加深,一个电子系统可能由数万个中小规模集成电路构成,这就带来了体积大、功耗大、可靠性差的问题,解决这一问题的有效方法就是采用ASIC(Application Specific Integrated Circuits)芯片进行设计。ASIC按照设计方法的不同可分为:全定制A
5、SIC,半定制ASIC,可编程ASIC(也称为可编程逻辑器件)。设计全定制ASIC芯片时,设计师要定义芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由IC厂家掩膜制造完成。优点是:芯片可以获得最优的性能,即面积利用率高、速度快、功耗低。缺点是:开发周期长,费用高,只适合大批量产品开发。半定制ASIC芯片的版图设计方法有所不同,分为门阵列设计法和标准单元设计法,这两种方法都是约束性的设计方法,其主要目的就是简化设计,以牺牲芯片性能为代价来缩短开发时间。可编程逻辑芯片与上述掩膜ASIC的不同之处在于:设计人员完成版图设计后,在实验室内就可以烧制出自己的芯片,无须IC厂家的参与,大大缩短了开
6、发周期。20世纪末,电子技术获得了飞速的发展,在其带动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代电子设计技术的核心是EDA技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。从另一方面
7、看,在现代到新电子产品的设计和生产中,微电子技术和现代电子设计技术时互相促进、互相推动又相互制约的两个技术环节。前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反应了现代先进的电子理论、电子技术、仿真技术、设计。工艺和设计技术与最新的计算机软件技术有机的融合和升华。因此,严格的说,EDA 技术已不是某一学科的分支,或某种新的技能技术,它应该是一门综合性学科。它融合多学科于一体,又渗透于各学科之中,打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。作为当代大学生,特别是信息工程类的学生,EDA技术是知识体系中不可
8、缺少的一部分。所以我们这次课程设计是基于EDA技术来设计一个闹钟系统,通过对EDA的实际应用来更加充分的认识、使用和发展EDA技术。一、 设计任务与要求1、设计要求(1)有“时”、“分”、“秒”十进制显示;(2)计时以24小时为周期;(3)具有校时电路,能对当前时间进行校对,(校对小时和分钟);(4)整点报时;(5)闹钟起闹(整点起闹)。2、系统设计3、主体设计(1)秒信号发生器(2)计时部分框图(3)校时电路当数字钟接通电源或者计时出现误差时,均需要校正时间,校时是数字钟应具备的基本功能方案:快脉冲。将所需要校对的时或分计数电路的脉冲输入端切换到秒信号,使之用快脉冲计数,当到达标准时间后再切
9、换回正确的输入信号,达到校准目的;(4)定时起闹 要求整点起闹,不要求分; 可以用点亮发光二极管来表示。(5)整点报时 每到整点时起闹。二、 设计原理、方案1、系统结构描述(一) 系统的顶层文件:1、 顶层文件图:(见下页)2、 各模块的解释:(1)、7个输入量clk,rst,alinem,alineh,alarm:其中clk为1KHZ,给数码管译码模块提供刷新频率,并且经过三个74163十倍分频变为1HZ给秒模块,闹铃模块,校准模块等提供脉冲。Res为复位输入端:按下的时候时钟时间全部清零;alinem,alineh为分、时的校准开关:按下的时候能够使分、时以秒的速度跳动,达到校时的功能。A
10、larm为闹钟设定开关:按下时设定闹钟时间。(2)4个输出端口:sg7.0、bt7.0、point、ledalarm。其中sg7.0为数码管的段选,bt7.0为数码管的位选。Point为整点报时的闹铃输出端,ledalarm为闹钟时的响铃输出端。(3)、CNT60s模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示秒的状态。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;en
11、tity cnt60 isport(clk,rst:in std_logic; co:out std_logic; qh,ql:buffer std_logic_vector(3 downto 0);end cnt60;architecture behave of cnt60 isbeginprocess(rst,clk)beginif(rst='0')then ql<="0000"qh<="0000"elsif(clk'event and clk='1')then if(ql=9) then ql&l
12、t;="0000" if (qh=5) then qh<="0000"co<='1'elseqh<=qh+1;end if;else ql<=ql+1;co<='0'end if; end if;end process;end behave;(4)、CNT60M模块: 这个模块式将CNT60S或者1HZ的clk的输出信号进行60进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。library ieee;use ie
13、ee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 isport(clk,rst:in std_logic; co:out std_logic; qh,ql:buffer std_logic_vector(3 downto 0);end cnt60;architecture behave of cnt60 isbeginprocess(rst,clk)beginif(rst='0')then ql<="0000"qh<="0000"elsif(c
14、lk'event and clk='1')then if(ql=9) then ql<="0000" if (qh=5) then qh<="0000"co<='1'elseqh<=qh+1;end if;else ql<=ql+1;co<='0'end if; end if;end process;end behave;(5)、CNT24H这个模块式将CNT60M或者1HZ的clk的输出信号进行24进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按B
15、CD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。library ieee ;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24h isport(clk,rst:in std_logic ; ql,qh:buffer std_logic_vector(3 downto 0); end cnt24h;architecture behave of cnt24h is begin process(clk,rst)variable y0,y1:std_logic_vector(3 downto
16、 0); begin if(rst='0')then ql<="0000"qh<="0000" elsif(clk'event and clk='1')then if(ql=9 or (qh=2 and ql=3) then ql<="0000" if (qh=2) then qh<="0000" else qh<=qh+1; end if; else ql<=ql+1; end if; end if; end process ;end b
17、ehave ; (6)、ALINE模块 这个模块是校时模块,有两个时钟输入端,一个是秒信号输入,一个是进位信号输入。通过rst端的高低电平进行控制,当高电平时是将进位信号输出给CO,当低电平时把秒信号输出给CO,从而实现切换后一个模块的跳动速度,达到校时的功能。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity aline is port(clk1,clk2,rst:in std_logic; co:out std_logic);end aline;architecture behave
18、 of aline isbeginprocess(rst,clk1,clk2)beginif(rst='1') then co<=clk1;else co<=clk2;end if;end process;end behave;(7)、POINT模块 这个模块是整点输出模块,ql,qh是和分模块的信号输入端,输入进去后和0,0进行比较,如果为0,0则说明已经整点,进而在point口输出十秒的clk秒脉冲驱动led闪烁。Ah端是秒信号的高位输入端,和模块内部的1进行比较,到了十秒后关闭led。LIBRARY ieee;use ieee.std_logic_1164.a
19、ll;use ieee.std_logic_unsigned.all;ENTITY point ISPORT( clk:IN STD_LOGIC; ph,pl,ah:in std_logic_vector(3 downto 0); speak:OUT STD_LOGIC);END point;ARCHITECTURE fun OF point ISBEGINprocess(clk)begin if(ph="0000" and pl="0000" and ah<"0001")then speak<=clk; else spe
20、ak<='0' end if;end process;END fun;(8)、ALARM模块 这个模块是设定闹钟的模块,alarm端输入低电平时允许clk秒信号输入让他进行摸24的计数,从而实现设定闹钟时间。同时通过ql,qh端采集cnt24h模块的计数信息,当两者一样时,输出十秒1HZ的闪烁信号。LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY alarm ISPORT( clk,alarm:IN STD_LOGIC; al,ah:in std_logic_ve
21、ctor(3 downto 0); ql,qh:buffer std_logic_vector(3 downto 0); speak:OUT STD_LOGIC);END alarm;ARCHITECTURE fun OF alarm ISBEGINprocess(clk,alarm,al,ah)begin if(alarm='0')then NULL; elsif(clk'event and clk='1')then if(ql=9 or (qh=2 and ql=3) then ql<="0000" if (qh=2) th
22、en qh<="0000" else qh<=qh+1; end if; else ql<=ql+1; end if; end if; if(qh=ah and ql=al )then speak<=clk; else speak<='0' end if;end process;END fun;(9)、SCANF模块 这个模块为数码管译码模块,他是将各个计数器以及alarm模块的数字进行译码给数码管显示,刷新频率为1KHZ。library ieee;use ieee.std_logic_1164.all;use ieee.std
23、_logic_unsigned.all;entity scanf isport(clk:in std_logic; a1,a2,a3,a4,a5,a6,a7,a8:in std_logic_vector(3 downto 0); sg:out std_logic_vector(7 downto 0); bt:out std_logic_vector(7 downto 0);end;architecture one of scanf issignal cnt8:std_logic_vector(2 downto 0);signal a:std_logic_vector(3 downto 0);b
24、eginp1:process(cnt8)begincase cnt8 iswhen "000"=>bt<="00000001"a<=a1;when "001"=>bt<="00000010"a<=a2;when "010"=>bt<="00000100"a<=a3;when "011"=>bt<="00001000"a<=a4;when "100"
25、;=>bt<="00010000"a<=a5;when "101"=>bt<="00100000"a<=a6;when "110"=>bt<="01000000"a<=a7;when "111"=>bt<="10000000"a<=a8;when others=>null;end case;end process p1;p2:process(clk)beginif clk'
26、;event and clk='1' then cnt8<=cnt8+1;end if;end process p2;p3:process(a)begincase a iswhen "0000"=>sg<="00111111"when "0001"=>sg<="00000110"when "0010"=>sg<="01011011"when "0011"=>sg<="01001
27、111"when "0100"=>sg<="01100110"when "0101"=>sg<="01101101"when "0110"=>sg<="01111101"when "0111"=>sg<="00000111"when "1000"=>sg<="01111111"when "1001"=>
28、sg<="01101111"when others=>null;end case;end process p3;end;(10)、脉冲分频模块这个模块是由三个74163计数器组成的,每个计数器设定为摸十,三级进位就为模1000的计数器,1KHZ的脉冲经过分频器输出为1HZ的秒脉冲给各个模块提供秒信号。三、实验步骤 1、 首先我们仔细阅读实验要求,选择30Q-208器件进行实验。画原理图,确定各个模块2、 编写各个模块的程序,进行仿真 Cnt24h模块仿真图 Cnt60模块仿真图 Scanf模块仿真图 4、将各个模块连接,编译无错误后开始分配引脚: Ret:7脚;
29、 Alineh:8脚; Alinem:9脚; Alarm:10脚; Point:39脚; Ledalarm:40脚; Sg7.0:75、76、83、84、85、86、87、88 Bt7.0:89、90、92、93、94、95、96、97 Clk:183。 5、我们把最后做好的程序下载进入试验箱运行,检查错误,再分析错误,修改程序。四、本次实验的的问题及解决方法 本次实验遇到了巨大的困难,第一次编译模24模块时,个位总是跳到3就进位了,后来发现控制个位进位的那句程序if(ql=9 or ql=3)修改为if(ql=9 or (qh=2 and ql =3)即可。 本来想尝试使用键盘输入数字来校准闹钟和时钟的时间,但是无论怎么写都有问题,后来不得不放弃键盘输入的想法,使努力功亏一篑。 实验时总是想不起来把文件调整为当前文件,第一天出了不少的问题,下次实验一定要注意。 闹钟的响铃每次触发都一分钟,整点提示也有一分钟,这样的闹钟设计是不合理的。对于闹钟报时的问题,通过阅读程序发现是设计时为了兼顾闹钟报时能够响足一分钟而这样设计的。两者在这里引用了同样的电平的上升沿,即当闹钟时间和当前时间一样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行客户信息保护制度
- 医院医疗质量管理考核制度
- 医疗合理用药规范制度
- 2026年室内装修(商铺装修设计)试题及答案
- 2025年大学大三(康复治疗学)康复工程技术综合测试试题及答案
- 2025年高职(药学服务与管理)用药指导试题及答案
- 2025年大学水土保持与荒漠化防治(流域管理学)试题及答案
- 2025年高职(动物医学)宠物疾病诊疗实务测试题及答案
- 2026年水电安装(电线规格选择)试题及答案
- 2025年中职(品牌管理实训综合)推广提升实操技能测试试题及答案
- 2026年苏州高博软件技术职业学院单招综合素质笔试备考试题带答案解析
- 2026年张家界航空工业职业技术学院单招职业技能考试参考题库附答案详解
- 北师大版(2024)三年级数学上册 期末专项复习一-数与代数(含答案)
- 校长在期末教师大会上精彩发言:2026先善待自己再照亮学生的路
- 2026届1月浙江镇海中学首考模拟英语试卷
- 重庆酒吧市场行业分析报告
- 优衣库的论文
- 《企业会计准则应用指南(2025年版)》
- 请做饭人员合同协议
- 学生体检结果反馈家长通知制度
- 雨课堂学堂在线学堂云《C语言程序设计精髓(哈工 )》单元测试考核答案
评论
0/150
提交评论