VHDL,FPGA数字闹钟_第1页
VHDL,FPGA数字闹钟_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 SpecificIntegrated Circui

5、ts)芯片进行设计。ASIC按照设计方法的不同可分为:全定制ASIC,半定制ASIC,可编程ASIC(也称为可编程逻辑器件)。设计全定制ASIC芯片时,设计师要定义 芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由IC厂家掩膜制造完成。优点是:芯片可以获得最优的性能,即面积利用率高、速度快、功耗低。缺点是:开发周期长,费用高,只适合大批量产品开发。半定制ASIC芯片的版图设计方法有所不同,分为门阵列设计法和标准单元设计法,这两种方法都是约束性的设计方法,其主要目的就是简化设计, 以牺牲芯片性能为代价来缩短开发时间。可编程逻辑芯片与上述掩膜ASIC的不同之处在于:设计人员完成版图设计后,

6、在实验室内就可以烧制出自己的芯片,无须IC厂家的参与,大大缩短了开发周期。20世纪末,电子技术获得了飞速的发展,在其带动下,现代电子产品几 乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代电子设计技术的核心是EDA技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻 辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功 能。EDA技术使得设计者的工作仅限于利用软件的方

7、式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。从另一方面看,在现代到新电子产品的设计和生产中,微电子技术和现代电子设计技术时互相促进、互相推动又相互制约的两个技术环节。前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反应了现代先进的电子理论、电子技术、 仿真技术、设计。工艺和设计技术与最新的计算机软件技术有机的融合和升华。因此,严格的说,EDA技术已不是某一学科的分支,或某种新的技能技术,它应该是一门综合性学科。它融合多学科于一体,又渗透于各学科之中,打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展

8、方向。作为当代大学生,特别是信息工程类的学生,EDA技术是知识体系中不可缺少的一部分。所以我们这次课程设计是基于EDA技术来设计一个闹钟系统,通过对EDA的实际应用来更加充分的认识、使用和发展EDA技术。设计任务与要求1、设计要求(1)有“时”、“分”、“秒”十进制显示;ll-l H一e匚I INI6M5M4M3M2M1(2)计时以24小时为周期;(3) 具有校时电路,能对当前时间进行校对,(校对小时和分钟);(4)整点报时;(5)闹钟起闹(整点起闹)。2、系统设计3、主体设计(1)秒信号发生器(2)计时部分框图(3)校时电路当数字钟接通电源或者计时出现误差时,均需要校正时间,校时是数字钟应具

9、备的基本功能方案:快脉冲。将所需要校对的时或分计数电路的脉冲输入端切换到秒信号,使之用快脉冲计数,当到达标准时间后再切换回正确的输入信号,达到校准目的;M=24时计数器M=60分计数器快速信号OF级走时电路(4)定时起闹要求整点起闹,不要求分; 可以用点亮发光二极管来(5)整点报时每到整点时起闹。设计原理、1、系统结构描述(一)1、2、0nZLI1 IILAem,aline:。系统的顶层文件:顶层文件图:(见下页)各模块的解释:I(1)、7个输入量elk,rst,稱其中elk为1KHZ,给数码管译码模块提供刷新频率,并且经过三个74163十倍分频变为1HZ给秒模块,闹铃模块, 时钟时间全部清零

10、;alinem, | 秒的速度跳动,达到校时的功能(2)4个输出端口:sg7.O、I戈准模块等ineh为分提提、时的校准氷冲。开关:LLiAlarm为闹钟设 )布.0、point、 * 其中sg 7.O为数码管的段选占;bt 7 .0为数码 出端,ledalarm为闹钟时的响铃输出端。O定开ITt!-sp二11Res为按下的日:按下时设定闹钟时间。位输入端:按下的时候候能够使分、时以I O选。int为整点报时的闹铃输(3) 、CNT60S模块:这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数

11、码后能时时显示秒的状态。library ieee;uSe ieee.Std_logic_1164.all;uSe ieee.Std_logic_unSigned.all;entity cnt60 iS port(clk,rSt:in Std_logic;co:out Std_logic; qh,ql:buffer Std_logic_vector(3 downto 0);end cnt60;architecture behave of cnt60 iSbegin proceSS(rSt,clk) beginif(rst=0)then ql=0000;qh=0000; elsif(clkeven

12、t and clk=1)then if(ql=9) then ql=0000;if (qh=5) then qh=0000;co=1; else qh=qh+1; end if; else ql=ql+1;co=0; end if;end if; end process; end behave;(4)、CNT60M模块:这个模块式将CNT60S或者1HZ的elk的输出信号进行60进制计数,并产生一个时 位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。library ieee;use ieee.std_logie_1164.all;us

13、e ieee.std_logie_unsigned.all;entity ent60 isport(elk,rst:in std_logie;eo:out std_logie; qh,ql:buffer std_logie_veetor(3 downto 0);end ent60;arehiteeture behave of ent60 isbeginproeess(rst,elk)beginif(rst=0)then ql=0000;qh=0000;elsif(elkevent and elk=1)thenif(ql=9) then ql=0000;if (qh=5) thenqh=0000

14、;eo=1;elseqh=qh+1;end if;else ql=ql+1;eo=0;end if;end if;end proeess;end behave;(5)、CNT24H这个模块式将CNT60M或者1HZ的elk的输出信号进行24进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。library ieee ;use ieee.std_logie_1164.all;use ieee.std_logie_unsigned.all;entity ent24h isport(elk,rst:in std_logie

15、 ;ql,qh:buffer std_logie_veetor(3 downto 0);end ent24h;arehiteeture behave of ent24h isbeginproeess(elk,rst)variable y0,y1:std_logie_veetor(3 downto 0);beginif(rst=0)then ql=0000;qh=0000;elsif(elkevent and elk=1)thenif(ql=9 or (qh=2 and ql=3) then ql=0000;if (qh=2) thenqh=0000;elseqh=qh+1;end if;els

16、e ql=ql+1;end if;end if;end proeess ;end behave ;(6) 、ALINE模块这个模块是校时模块, 有两个时钟输入端, 一个是秒信号输入, 一个是进位信号输 入。通过rst端的高低电平进行控制, 当高电平时是将进位信号输出给CO,当低电平时把秒信号输出给CO,从而实现切换后一个模块的跳动速度,达到校时的功能。library ieee;use ieee.std_logie_1164.all;use ieee.std_logie_unsigned.all;entity aline isport(elk1,elk2,rst:in std_logie;eo:

17、out std_logie);end aline;architecture behave of aline is beginprocess(rst,clk1,clk2)begin if(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。LIBRAR

18、Y ieee;use ieee.std_logic_1164.all; 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 IS BEGIN process(clk) beginif(ph=0000 and pl=0000 and ah0001)then speak=clk;elsespeak=0;end if

19、; 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_vector(3 downto 0);ql,qh:b

20、uffer std_logic_vector(3 downto 0);speak:OUT STD_LOGIC);END alarm;ARCHITECTURE fun OF alarm ISBEGIN process(clk,alarm,al,ah) beginif(alarm=0)then NULL; elsif(clkevent and clk=1)thenif(ql=9 or (qh=2 and ql=3) then ql=0000;if (qh=2) then qh=0000;elseqh=qh+1;end if;else ql=ql+1;end if;end if;if(qh=ah a

21、nd ql=al )thenspeak=clk;elsespeakbt=00000001;abt=00000010;abt=00000100;abt=00001000;abt=00010000;abt=00100000;abt=01000000;abt=10000000;anull;end case;end process p1;p2:process(clk)beginif clkevent and clk=1then cnt8sgsgsgsgsgsgsgsgsgsgnull; end case;end process p3;end;10)、脉冲分频模块这个模块是由三个74163计数器组成的,

22、每个计数器设定为摸十, 三级进位就为模1000的计数器,1KHZ的脉冲经过分频器输出为1HZ的秒脉冲给各个模块提供秒信号三、实验步骤1、首先我们仔细阅读实验要求,选择30Q-208器件进行实验。画原理图,确定各个模块2、编写各个模块的程序,进行仿真Rd!|DGM|* Tinwi 1324Ont|3Z4 Uu-EQ4 friEi.ftjs1 Sirs-2 Ous-23 Okie3.6u事4 Out46.iiiOf10HOHOJTTTJLTTJLTTTTTTJTTTTTTTJ-LTTJ-LTTTTTT n rL rL rL rL rLJO 1 Z J ( 3 x x s(K T x t K 9 x

23、 G K 1 K 2 K I d K i 1 i K r j(K 9 K K K 2 K 1 I MKTo!liK卫丫oCnt24h模块仿真图KmI* nm?艸|UqDHI严*1MD Qns1 QusLhJE-2fiuiZ tes3 4m3 5ui44 5uS.*=-dk10-TTTTTTTTTTTTTTTTTTTTJ-LJ-LTTTTTTTT-rLrLrLrLrLrLrLrLr3 4P Q|HQ0iKi3 車P叫HQIS 1!( I !( 3 X5 I ;F;t;S; D i 1 J 2 1( i K * X b J 6 J T K E K 5 I D J 1 I 2 J 3Js44QCnt

24、60模块仿真图Scanf模块仿真图4、将各个模块连接,编译无错误后开始分配引脚:Ret:7脚;Alineh:8脚;Alinem:9脚;Alarm:10脚;Point:39脚;Ledalarm:40脚;Sg7.0:75、76、83、84、85、86、87、88Bt7.0:89、90、92、93、94、95、96、97Clk:183。5、我们把最后做好的程序下载进入试验箱运行,检查错误,再分析错误,修改程序。四、本次实验的的问题及解决方法本次实验遇到了巨大的困难,第一次编译模24模块时,个位总是跳到3就进位了,后来发现控制个位进位的那句程序if(ql=9 or ql=3)修改为if(ql=9 or

25、 (qh=2 and ql =3)即可。本来想尝试使用键盘输入数字来校准闹钟和时钟的时间,但是无论怎么写都有问题, 后来不得不放弃键盘输入的想法,使努力功亏一篑。实验时总是想不起来把文件调整为当前文件,第一天出了不少的问题,下次实验一定VTTT、;要注意。闹钟的响铃每次触发都一分钟,整点提示也有一分钟,这样的闹钟设计是不合理的。对于闹钟报时的问题,通过阅读程序发现是设计时为了兼顾闹钟报时能够响足一分钟 而这样设计的。两者在这里引用了同样的电平的上升沿,即当闹钟时间和当前时间一样时, 有一个报警电平信号,但是这个信号必须在秒钟进位信Rrf|DQIHNa-M声邨40142320*03 10a 叩a4 sg54 5fle q3* sg2a 讪a sgO3bt?43h tt64N.64 btJ4 bt3a N2* ttia 圍号变化的时候才能送到led使闹钟发 出报时。 解决这样的问题的方法时单独设立闹钟响时长度模块, 即闹钟响一分钟不利用秒高 位的进位信号控制而是单独制作这部分的电路, 这样会增加电路的复杂程度。 在要求不是很 高的情况下是没有必要的,误差不超过一分钟时可以接受的。五、实验感想在设计的整个过程中,我们利用V

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论