您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDA课程设计报告2
郑州科技学院EDA(电子设计自动化)设计报告题目多路彩灯控制器学生姓名张士涛专业班级电科(4)班学号201031091所在系电气工程学院任课教师赵明冬完成时间2013年12月23日1目录目录.........................................................11.前言.......................................................22.设计方案...................................................33.频率控制系统...............................................34.彩灯控制系统...............................................55.总体电路设计..............................................116.结语......................................................127.参考文献..................................................1221.前言在日常生活中,为了增加聚会或是过节氛围,经常要使用到彩灯循环点亮。单一的循环可能无法起到理想的效果,通过不同花样的变换则能够很好的完成任务。多路彩灯循环控制可以有多种实现方法,例如利用单片机可以实现,利用数字电路时序逻辑也可以实现。我们这里利用VHDL语言实现对多路彩灯的控制。随着科学技术的发展以及人民生活水平的提高,在现代生活中,彩灯作为一种装饰既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽。随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展,EDA(ElectronicDesignAutomatic)技术的应用引起电子产品及系统开发的革命性变革。VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。作为一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(ToptoDown)和基于库(LibraryBased)的设计的特点。因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。用VHDL语言进行数字逻辑电路和数字系统的设计,是电子电路设计方法上的一次革命性变革。与传统设计方法相比,VHDL描述电路行为的算法有很多优点:(1)设计层次较高、用于较复杂的计算时,能尽早发现存在的问题,缩短设计周期;(2)独立实现,修改方便,系统硬件描述能力强;3(3)可读性好,有利于交流,适合于文档保存;(4)VHDL语言标准、规范、移植性强;(5)VHDL类型众多而且支持用户自定义类型,支持自顶而下的设计方法和多种电路的设计。2.设计方案彩灯共有三个输入端与八个输出端,每个输出端控制一个彩灯。三个输出端分别为频率控制开关c_k1,彩灯控制开关c_k2,频率输入端c_clk,频率输入端由时钟晶振驱动。彩灯共有两个控制系统:频率控制系统与花型控制系统。频率控制系统可以生成四种不同的频率,花型控制系统能驱动彩灯六种花型,分别为:(1)彩灯全亮和全灭循环变化;(2)彩灯左循环;(3)彩灯右循环;(4)彩灯间隔闪烁;(5)彩灯中间开花;(6)彩灯两边同时亮两个,然后向中间对齐;3.频率控制系统本控制系统由vhdl语言设计,设计两个输入端和一个输出端。输入端为时钟晶振频率输入与频率控制开关,输出端能输出四种不同频率。本系统的vhdl语言设计如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypinl4isport(p_clk_in:instd_logic;p_k1:instd_logic;p_clk_out:outstd_logic);endpinl4;4architecturebehavpofpinl4issignalp_clk:std_logic;signalfn:std_logic_vector(2downto0);signalcnt0:std_logic_vector(2downto0);begina1:process(p_k1)variableq1:std_logic_vector(1downto0);beginif(p_k1'eventandp_k1='0')thenif(q111)thenq1:=q1+1;elseq1:=00;endif;caseq1iswhen00=fn=001;when01=fn=010;when10=fn=011;when11=fn=101;endcase;endif;endprocessa1;a2:process(p_clk_in,fn)beginif(p_clk_in'eventandp_clk_in='0')thenif(cnt0fn)thencnt0=cnt0+1;elsecnt0=000;5p_clk=notp_clk;p_clk_out=p_clk;endif;endif;endprocessa2;endbehavp;功能仿真:图(1):频率生成仿真波形图p_k1接上拉电阻,每按一下产生一个下降沿,每经过一个下降沿输出频率变化一次。通过频率的变化可以改变彩灯循环的速度。4.彩灯控制系统彩灯的亮灭是由输出端输出高低电平决定的,当输出高电平‘1’时,彩灯亮;当输出低电平‘0’时彩灯灭。控制彩灯的亮灭可以产生多种不同的花样。六种花型如下:(1)彩灯全亮和全灭循环变化:‘1111111’,‘00000000’。(2)彩灯左循环:‘00000001’,‘00000010’,‘00000100’,‘00001000’,6‘00010000’,‘00100000’,‘01000000’,‘10000000’。(3)彩灯右循环:‘10000000’,‘01000000’,‘00100000’,‘00010000’,‘00001000’,‘00000100’,‘00000010’,‘00000001’。(4)彩灯间隔闪烁:‘10101010’,‘01010101’.(5)彩灯中间开花‘00000000’,‘00011000’,‘00100100’,‘01000010’,‘10000001’。(6)彩灯两边同时亮两个,然后向中间对齐;‘10000001’,‘01000010’,‘00100100’,‘00011000’。vhdl程序设计如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitylightisport(cllk:instd_logic;k2:instd_logic;li:outstd_logic_vector(7downto0));endlight;architecturebehav2oflightissignalmode:std_logic_vector(2downto0):=000;signalcnt0:std_logic_vector(1downto0):=00;signalcnt1:std_logic_vector(2downto0):=000;signalcnt2:std_logic_vector(2downto0):=000;signalcnt3:std_logic_vector(1downto0):=00;signalcnt4:std_logic_vector(2downto0):=000;signalcnt5:std_logic_vector(2downto0):=000;begin7w1:process(k2)beginif(k2'eventandk2='0')thenif(mode101)thenmode=mode+1;elsemode=000;endif;endif;endprocessw1;w2:process(cllk,mode)beginif(cllk'eventandcllk='0')thenif(mode=000)thenif(cnt001)thencnt0=cnt0+1;elsecnt0=00;endif;casecnt0iswhen00=li=10101010;when01=li=01010101;whenothers=li=null;endcase;elsif(mode=001)thenif(cnt1110)thencnt1=cnt1+1;elsecnt1=000;endif;casecnt1is8when000=li=10000001;when001=li=01000010;when010=li=00100100;when011=li=00011000;when100=li=00100100;when101=li=01000010;when110=li=10000001;whenothers=li=null;endcase;elsif(mode=010)thenif(cnt2111)thencnt2=cnt2+1;elsecnt2=000;endif;casecnt2iswhen000=li=10000000;when001=li=01000000;when010=li=00100000;when011=li=00010000;when100=li=00001000;when101=li=00000100;when110=li=00000010;when111=li=00000001;endcase;elsif(mode=011)thenif(cnt301)thencnt3=cnt3+1;elsecnt3=00;9endif;casecnt3iswhen00=li=10101010;when01=li=01010101;whenothers=li=null;endcase;elsif(mode=100)thenif(cnt4111)thencnt4=cnt4+1;elsecnt4=000;endif;casecnt4iswhen000=li=11111111;when001=li=00000000;when010=li=11111111;when011=li=00000000;when100=li=11111111;when101=li=00000000;when110=li=11111111;when111=li=00000000;endcase;elsif(mode=101)thenif(cnt5111)thencnt5=cnt5+1;elsecnt5=000;endif;casecnt5iswhen000=li=00000001;10when001=li=00000010;when010=li=00000100;when011=li=00001000;when100=li=00010000;when101=li=00100000;when110=li=010000
本文标题:EDA课程设计报告2
链接地址:https://www.777doc.com/doc-2871685 .html