EDA课程设计报告彩灯控制器文档格式.docx
- 文档编号:16504525
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:10
- 大小:97.25KB
EDA课程设计报告彩灯控制器文档格式.docx
《EDA课程设计报告彩灯控制器文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告彩灯控制器文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
整个十六路彩灯控制系统设计的模块图如图1所示
图一
4分层次方案设计及代码描述
4.1子模块及其功能
本次设计分为四个子模块,即十六路彩灯花样控制器、四频率输出分频器,四选一控制器和时间选择器,其子模块及其功能如下:
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;
useieee.std_logic_arith.all;
entitytimecontrolis--定义实体
port(
clk:
instd_logic;
--时钟信号
clr:
--复位信号
opt:
--快慢控制信号
clkout:
outstd_logic--输出时钟信号
);
endtimecontrol;
architectureoneoftimecontrolis
signalclk_tmp:
std_logic;
signalcounter:
std_logic_vector(1downto0);
--定义计数器
begin
process(clk,clr,opt)
ifclr='
0'
then--清零
clk_tmp<
='
;
counter<
="
00"
elsifclk'
eventandclk='
1'
then
ifopt='
then--四分频
ifcounter="
01"
=notclk_tmp;
else
=counter+'
endif;
else--八分频
11"
endif;
endprocess;
clkout<
=clk_tmp;
--输出分频后的信号
endarchitectureone;
4.2.2显示控制电路部分
entityshowcontrolis
--输入时钟信号
led:
outstd_logic_vector(15downto0));
--彩灯输出
endshowcontrol;
architectureone1ofshowcontrolis
typestatesis--状态机状态列举
(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);
signalstate:
states;
process(clk,clr)
then
state<
=s0;
led<
00000"
elsifclk'
casestateis
whens0=>
state<
=s1;
="
00001"
;
whens1=>
=s2;
10001"
whens2=>
=s3;
00010"
whens3=>
=s4;
10011"
whens4=>
=s5;
00100"
whens5=>
=s6;
10101"
whens6=>
=s7;
00110"
whens7=>
=s8;
10111"
whens8=>
=s9;
01000"
whens9=>
=s10;
11001"
whens10=>
=s11;
01010"
whens11=>
=s12;
11011"
whens12=>
=s13;
01100"
whens13=>
=s14;
11101"
whens14=>
=s15;
01110"
whens15=>
11111"
whenothers=>
null;
endcase;
endprocess;
endarchitectureone1;
4.2.3顶层电路部分
entityrootis
port(
instd_logic;
--八路彩灯输出
endcolorled;
architectureone3ofrootis
componenttimecontrolis--定义元件:
时序控制电路
port(
outstd_logic);
endcomponenttimecontrol;
componentshowcontrolis--定义元件:
显示电路
endcomponentshowcontrol;
begin
u1:
timecontrolportmap(clk=>
clk,clr=>
clr,opt=>
opt,clkout=>
clk_tmp);
--例化时序控制模块
u2:
showcontrolportmap(clk=>
clk_tmp,clr=>
clr,led=>
led);
--例化显示电路模块
endarchitectureone3;
5各模块的时序仿真图
5.1时序控制电路timecontrol的仿真图如下:
图三
功能:
时序控制电路metronome的功能是,用OPT控制输入信号CKL_IN的快慢节拍。
而CLR是控制开关。
且从图中可以看出,当复位信号为高电平时,电路时钟输出清零,当快慢信号OPT为低电平时,时序控制电路四分频起作用,当快慢信号OPT为高电平时,时序控制电路八分频起作用,仿真结果符合电路要求。
5.2显示控制电路showcontrol的仿真图如下:
图四
功能:
显示控制电路showcontrol的功能是控制花形的。
且从图中可以看出,当复位信号有效时彩灯输出为零,否则,显示电路在十六种不同状态间转换。
5.3顶层电路root系统的仿真图如下:
图五
整个电路root系统是把showcontrol与timecontrol综合成一个电路。
且从图中可以看出,从图中可以看出当OPT为高电平时彩灯状态转换慢,为低电平时转换要快,当复位信号有效时,所用输出都清零。
6总结
通过这次课程设计使我懂得了理论与实际相结合是很重要的,通过这次的课程设计,发现自己的实践经验还是不足的,以后多应该以理论为基础,然后应用到实践中来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。
在这次的课程设计里深入的接触了运用电子集成元器件制作多路彩灯的过程,并和同学一起讨论用软件制作出了这一个多路彩灯控制系统。
正所谓“纸上谈兵终觉浅,觉知此事要躬行。
”学习任何知识,都要进行实践,只有那样才能达到事半功倍的效果。
7参考文献
《EDA技术与数字系统设计》邹彦主编电子工业
《EDA技术实用教程》,松、黄继业,科学
《数字电子技术基础》(第五版),阎石,高等教育
《电子设计自动化(EDA)手册》,王丹、童如松,电子工业
《EDA技术程设计》,江海,华中科技大学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告 彩灯 控制器