《EDA课程设计报告-多路彩灯控制电路设计.doc》由会员分享,可在线阅读,更多相关《EDA课程设计报告-多路彩灯控制电路设计.doc(11页珍藏版)》请在三一文库上搜索。
1、EDA课程设计报告多路彩灯控制电路设计 多路彩灯控制电路设计报告题 目:多路彩灯控制电路设计要求:要有6种花型变化。 多种花型可以自动变化,循环往复。 彩灯变化的快慢节拍可以选择。 具有清零开关。设计方案: 根据系统设计要求,设计一个具有6种花型循环变化的彩灯控制器。整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED15.0,分别用于控制十六路彩灯。 据此,系统设计采用自顶向下的设计方法,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ。模块划分:时序
2、控制电路(SXKZ) 显示控制电路(XSKZ)端口介绍:CLK_IN控制彩灯节奏快慢的基准时钟信号CLR系统清零信号CHOSE_KEY彩灯节奏快慢选择开关LED15.016个输出信号设计过程:时序控制模块(SXKZ) 新建一个VHD格式的文本编辑文件,保存默认命名 编写源程序,如下: 时序控制模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SXKZ ISPORT(CHOSE_KEY : INSTD_LOGIC;CLK_ZN : INSTD_LOGIC;CLR : INST
3、D_LOGIC;CLK : OUTSTD_LOGIC);END SXKZ;ARCHITECTURE ART OF SXKZ ISSIGNAL CK : STD_LOGIC;BEGINPROCESS (CLK_ZN, CLR,CHOSE_KEY)VARIABLE TEMP : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF CLR=1 THEN CK=0; TEMP:=000;ELSIF (CLK_ZNEVENT AND CLK_ZN=1) THEN IF (CHOSE_KEY=1)THEN IF TEMP=011 THEN TEMP:=000; CK=NOT CK;
4、ELSE TEMP:=TEMP+1; END IF; ELSE IF TEMP=111 THEN TEMP:=000; CK=NOT CK; ELSE TEMP:=TEMP+1; END IF; END IF; END IF;END PROCESS;CLK=CK;END ART;检查错误,如图:器件配置。选用FLEX10K下的EPF10K10LC84-3 系统综合。如图:管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:生成符号文件。如图:仿真。新建一个波形编辑文件,格式为SCF,先保存默认命名, 结束时间:10ms 时钟周期:50ns 如图:分析仿真结果:根据源
5、程序当CLR为1时,TEMP=000,CLK=0 清零。当CLR=0且时钟信号CLK_IN来到时,CHOSE_KEY为1时,如果TEMP=011(即为3),则TEMP=000(即为0)且CLK反转。如果TEMP不为011,则TEMP+1CHOSE_KEY为0时如果TEMP=111(即为7),则TEMP=000(即为0)且CLK反转。如果TEMP不为111,则TEMP+1显示控制模块(XSKZ) 新建一个VHD格式的文本编辑文件,保存默认命名 编写源程序,如下:显示控制模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XSKZ ISPOR
6、T(CLK : INSTD_LOGIC;CLR : INSTD_LOGIC; LED: OUTSTD_LOGIC_VECTOR(15 downto 0);END entity XSKZ;ARCHITECTURE ART OF XSKZ IS TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6);SIGNAL CURRENT_STATE: STATE;SIGNAL LIGHT: STD_LOGIC_VECTOR(15 DOWNTO 0); BEGINPROCESS (CLR, CLK)ISCONSTANT L1:STD_LOGIC_VECTOR(15 DOWNTO 0):=00
7、10010010010010;CONSTANT L2:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010010010010010;CONSTANT L3:STD_LOGIC_VECTOR(15 DOWNTO 0):=0010110110011010;CONSTANT L4:STD_LOGIC_VECTOR(15 DOWNTO 0):=1011010011010011;CONSTANT L5:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010011010110110;CONSTANT L6:STD_LOGIC_VECTOR(15 DOWNTO 0):=11
8、01010110011011;BEGINIF CLR=1 THEN CURRENT_STATE LIGHT=ZZZZZZZZZZZZZZZZ; CURRENT_STATE LIGHT=L1; CURRENT_STATE LIGHT=L2; CURRENT_STATE LIGHT=L3; CURRENT_STATE LIGHT=L4; CURRENT_STATE LIGHT=L5; CURRENT_STATE LIGHT=L6; CURRENT_STATE=S1; END CASE; END IF;END PROCESS;LED=LIGHT;END ARCHITECTURE ART; 检查错误,
9、如图:器件配置。选用FLEX10K下的EPF10K10LC84-3 系统综合。如图:管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:生成符号文件。如图:仿真。新建一个波形编辑文件,格式为SCF,先保存默认命名, 结束时间:10ms 时钟周期:80ns 如图: 分析仿真结果:根据源程序当系统清零信号CLR为1时CURRENT_STATE为S0当系统清零信号CLR为0且时钟信号CLK来到时,当CURRENT_STATE为S1时,CURRENT_STATE的下一个状态S2,LED输出为0010010010010010当CURRENT_STATE为S6时,CURRENT
10、_STATE的下一个状态S1,LED输出为1101010110011011 循环彩灯控制器:用图形编辑文件做循环彩灯控制器(CDKZQ) 新建一个GDF格式的图形编辑文件,保存默认命名 在元器件库调用XSKZ(显示控制模块)和SXKZ(时序控制模块)的符号以及输入输出符号,做图,如下:检查错误,如图:器件配置。选用FLEX10K下的EPF10K10LC84-3系统综合。如图:管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图仿真。新建一个波形编辑文件,格式为SCF,先保存默认命名, 结束时间:10ms 时钟周期:80ns如图:分析仿真结果:当CLR=1时,系统清零当
11、CLR为0且CHOSE_KEY为1时彩灯变换的慢。当CLR为0且CHOSE_KEY为0时彩灯变换的快。循环彩灯控制器顶层设计(CAIDENG) 新建一个VHD格式的文本编辑文件,保存默认命名 编写源程序,如下:源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY caideng ISPORT(CLK_ZN: INSTD_LOGIC; CLR : INSTD_LOGIC; CHOSE_KEY: INSTD_LOGIC;LED : OUT STD_LOGIC_VECTOR(15 downto 0);END entity caideng;ARCHIT
12、ECTURE ART OF caideng ISCOMPONENT SXKZ ISPORT( CHOSE_KEY: INSTD_LOGIC; CLK_ZN : INSTD_LOGIC; CLR : INSTD_LOGIC; CLK : OUTSTD_LOGIC);END COMPONENT SXKZ;COMPONENT XSKZ ISPORT( CLK : INSTD_LOGIC; CLR : INSTD_LOGIC; LED : OUTSTD_LOGIC_VECTOR(15 DOWNTO 0);END COMPONENT XSKZ;SIGNAL S : STD_LOGIC;BEGINU1:S
13、XKZ PORT MAP(CHOSE_KEY,CLK_ZN,CLR,S); U2:XSKZ PORT MAP(S,CLR,LED);END ARCHITECTURE ART;检查错误.器件配置。选用FLEX10K下的EPF10K10LC84-3系统综合。如图:管脚定义。注意:端口只能放在I/O端口和I/O数据端,时钟信号放在CLK,如图:仿真。同上。设计心得:两周的时间虽然很短暂,但从中获益匪浅,首先对EDA数字电路这门课程有了更深的了解,无形中便加深了对EDA的了解及运用能力。以学的到很多很多同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。EDA设计对我们的总体电
14、路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,在设定输入信号后,想要的结果不能在波形上得到正确的显示,在数十次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。经过屡次调试,终于找到了
15、比较合适的输入数值。另外,Endtime的值需要设置的长一点:100ms左右,这样就可以观察到完整的仿真结果。使我对电路故障的排查能力有了很大的提高。其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的循环彩灯控制电路还是比较成功的,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力.同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
链接地址:https://www.31doc.com/p-5014493.html