




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1设计目的熟练掌握EDA技术利用计算机方面的课程解决专业课程方面点具体问题达到解决问题.完成课程设计任务.培养实践的目的。2设计要求和任务利用所学的EDA设计方法设计彩灯控制器.熟练使用使用QUARTUSII应用软件.进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。功能要求:1.要有多种花型变化(至少4种)..多种花型可以自动变换.循环往复..彩灯变换的快慢节拍可以选择..具有清零开关.3总体设计思路及原理描述3.1功能描述在电路中以1代表灯亮,以0代表灯灭,由0,1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样功能显示。在该电路中只需简单的修改程序就可以灵活地调整彩灯图案和变化方式。下面就以一个十六路彩灯控制系统的实现为例进行简单说明。此十六路彩灯控制系统设定有六种花样变化,这六种花样可以进行自动切换,并且每种花样可以选择不同的频率。3.2设计原理用VHDL进行设计,首先应该了解,VHDL语言一种全方位硬件描述语言,包括系统行为级,寄存传输级和逻辑门级多个设计层次。应充分利用DL“自顶向下”的设计优点以及层次化的设计概层次概念对于设计复杂的数字系统是非常
有用它使得人们可以从简单的单元入手,逐渐构成庞大而复杂的系统。首先应进行系统模块的划分,规定每一模块的功能以及各个模块之间的接口。最终设计方案为:以一个十六路彩灯花样控制器、一个四频率输出分频器,一个四选一控制器和一个时间选择器总共四部分来完成设计。四选一控制器从分频器选择不同频率的时钟信号输送到彩灯花样控制器,从而达到控制彩灯闪烁速度的快慢,时间选择器控制每种速度维持的时间长短。整个十六路彩灯控制系统设计的模块图如图1所示花形控制电路花形控制电路总体控制电路图一4分层次方案设计及代码描述子模块及其功能本次设计分为四个子模块,即十六路彩灯花样控制器、四频率输出分频器,四选一控制器和时间选择器,其子模块及其功能如下:4.1.1四频率输出分频器在本次设计中,设计了六种花样,要求这六种花样以不同的频率显示,而只有一个输入的时钟信号,所以对所输入的时钟信号进行2分频,4分频,8分频,16分频,得到四种频率信号,CLKDIV模块用来完成此功能。4.1.2时间选择器时间选择器实际上是两个分频器,其中一个频率是另一个频率的两倍。本来这两个分频器是可以在上述的四频率输出器中实现的,但为了方便地为四选一控制器提供不同的时间选择条件,就将这两个分频器独立开来。这两个输出的时钟信号组合起来就可以为四选一控制器提供00,01,10,11四个时间选择条件,如图二4.1.3四选一控制器四选一控制器功能是从分频器中选择不同频率的时钟信号送给彩灯控制器,实现彩灯闪烁的频率变化。4.1.4彩灯控制器彩灯控制电路是整个设计的核心,它负责整个设计的输出效果即各种彩灯图案的样式变化。该程序充分地说明了用VHDL设计电路的“弹”性,即可通过改变程序中输出变量Q的位数来改变彩灯的数目。其中,P1进程对灯闪的速度控制有两种方式可改变灯闪的速度:一是改变外部时钟的赋值,二是改变信号U的位数。P2进程能进行彩灯的图案控制,改变s的位数即可改变要控制图案的数目,改变输出变量Q的组合即可变幻彩灯图案。最后,当各个模块均完成上述操作之后,即可利用MAXPLUS2的原理图输
入,调用各个元器件(底层文件),以原理图的形式形成最后的十六路彩灯显示系统(顶层文件),并且进行仿真。仿真通过,即可下载到指定的CPLD芯片里面,并进行实际连线,进行最后的硬件测试。当然,可以将各个模块所生成的元件符号存放在元件库中,用以被其它人或其它的设计所重复调用,以简化后面的设计。4.2代码描述4.2.1时序控制电路部分程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;-定-义实体-时-钟信号-定-义实体-时-钟信号-复-位信号-快-慢控制信号-输-出时钟信号clk:instd_logic;clr:instd_logic;opt:instd_logic;clkout:outstd_logic);endtimecontrol;isdowntoisdownto0);-定-义计数器signalcounter:std_logic_vector(1beginprocess(clk,clr,opt)begin--清零ifclr='0'then--清零clk_tmp<='0';counter<="00";elsifclk'eventandclk='1'thenifopt='0'then--四分频ifcounter="01"thencounter<="00";clk_tmp<=notclk_tmp;elsecounter<=counter+'1';endif;else--八分频ifcounter="11"thencounter<="00";clk_tmp<=notclk_tmp;elsecounter<=counter+'1';endif;endif;endif;endprocess;clkout<=clk_tmp;--输出分频后的信号endarchitectureone;4.2.2显示控制电路部分程序如下:libraryieee;useieee.std_logic_1164.all;entityshowcontrolisport(clk:instd_logic;--输入时钟信号clr:instd_logic;--复位信号led:outstd_logic_vector(15downto0));--彩灯输出endshowcontrol;architectureone1ofshowcontrolistypestatesis--状态机状态列举(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);signalstate:states;beginprocess(clk,clr)beginifclr='0'thenstate<=s0;led<="0000000000000000";elsifclk'eventandclk='1'thencasestateiswhens0=>state<=s1;led<="0000000000100001";whens1=>state<=s2;led<="0001000100010001";whens2=>state<=s3;led<="0010001000100010";whens3=>state<=s4;led<="0011001100110011";whens4=>state<=s5;led<="0100010001000100";whens5=>state<=s6;led<="0101010101010101";whens6=>state<=s7;led<="0110011001100110";whens7=>state<=s8;lecK二”0111011101110111”;whens8=>state<=s9;Ied<="1000100010001000";whens9=>state<=s10;Ied<="1001100110011001";whens10=>state<=s11;led<="1010101010101010";whens11=>state<=s12;IecK二”1011101110111011”;whens12=>state<=s13;Ied<="1100110011001100";whens13=>state<=s14;lecK二”1101110111011101”;whens14=>state<=s15;IecK二”1110111011101110”;whens15=>state<=s0;IecK二”1111111111111111”;whenothers=〉nuII;endcase;endif;endprocess;endarchitectureone1;4.2.3顶层电路部分程序如下:libraryieee;useieee.std_logic_1164.all;entityrootisport(clk:instd_logic;clr:instd_logic;opt:instd_logic;led:outstd_logic_vector(15downto0));--八路彩灯输出endcolorled;architectureone3ofrootiscomponenttimecontrolis--定义元件:时序控制电路port(clk:instd_logic;clr:instd_logic;opt:instd_logic;clkout:outstd_logic);endcomponenttimecontrol;componentshowcontrolis--定义元件:显示电路port(clk:instd_logic;clr:instd_logic;led:outstd_logic_vector(15downto0));endcomponentshowcontrol;signalclk_tmp:std_logic;beginu1:timecontrolportmap(clk=>clk,clr=>clr,opt=>opt,clkout=>clk_tmp);--例化时序控制模块
u2:showcontroIportmap(cIk=>cIk_tmp,cIr=>cIr,Ied=>Ied);一例化显示电路模块endarchitectureone3;5各模块的时序仿真图5.1时序控制电路timecontrol的仿真图如下:-I-II组红应片灯]「1代籍JE业]¥向世:「工舶室Jjrtervil:P上映屿川够「醍wIftflEVduiatLB.S蚱2.3Tte2.9Bns2,S9us3,Dns11B1图三功能:时序控制电路metronome的功能是.用OPT控制输入信号CKL_IN的快慢节拍。而久区是控制开关。且从图中可以看出.当复位信号为高电平时.电路时钟输出清零.当快慢信号OPT为低电平时.时序控制电路四分频起作用.当快慢信号OPT为高电平时.时序控制电路八分频起作用.仿真结果符合电路要求。
2显示控制电路showcontroI的仿真图如下:图四功能:显示控制电路showcontrol的功能是控制花形的。且从图中可以看出.当复位信号有效时彩灯输出为零.否则.显示电路在十六种不同状态间转换。5.3顶层电路root系统的仿真图如下:
firn-HeV=IJ5UOI■ILJSfirn-HeV=IJ5UOI■ILJS-III-—-IJ.J3匕IJSIL'lJSI邑0led7Eflecfi0lecfi0lecWRled]0lecG厘Ied10阈_/|is:u2|led01010010101010工叩:叩口)而而[1['口仙『「伽口加口丁”[11刀(时皿11\―功能:整个电路root系统是把showcontrol与timecontrol综合成一■个电路。且从图中可以看出.从图中可以看出当OPT为高电平时彩灯状态转换慢.为低电平时转换要快.当复位信号有效时.所用输出都清零。6总结通过这次课程设计使我懂得了理论与实际相结合是很重要的.通过这次的课程设计.发现自己的实践经验还是不足的.以后多应该以理论为基础.然后应用到实践中来.从理论中得出结论.才能提高自己的实际动手能力和独立思考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一英语活动方案
- 安全三级教育试题及答案
- 共享图书+活动方案
- 共享果蔬机活动方案
- 共享超市活动方案
- 共建社区活动方案
- 关于举办端午活动方案
- 羊水栓塞考试试题及答案
- 眼科中级考试试题及答案
- 烟叶站考试试题及答案
- 2024年四川省乐山市中考生物试卷附答案
- 助贷贷款服务合同范本
- JBT 14543-2024 无刷稳速直流电动机技术规范(正式版)
- 2023-2024学年广东省广州市荔湾区八年级物理第二学期期末学业水平测试模拟试题及答案解析
- 2024届山东省青岛黄岛区七校联考物理八下期末学业水平测试试题及答案解析
- 信息技术智慧树知到期末考试答案章节答案2024年烟台职业学院
- 中国食物成分表2018年(标准版)第6版
- 护理质量安全与风险管理的信息安全与数据保护
- 【课件】宣纸的工艺讲解
- 双J管患者护理查房
- 光伏发电钙钛矿光伏组件技术要求
评论
0/150
提交评论