1、VHDL彩灯控制课程设计最终版对外要点课程设计EDA与VHDL语言课程设计报告班 级: 电信XX-1 姓 名: XXX 学 号: XXXXXXXX 指导教师: XX 成 绩: 电子与信息工程学院信息与通信工程系摘 要此设计是以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主,以原理图输入设计为辅的表达方式,以Quartus II开发软件和EDA实验箱为设计工具,阐述了九路彩灯控制器的工作原理和软硬件的实现方法。它以按键控制彩灯工作模式,并对所设计的控制器进行了功能仿真和编程下载进行硬件验证,而且顺利实现设计目标。关键词:VHDL;FPGA;彩灯 ;仿真;编程目 录摘 要
2、 II引 言 11 设计任务及要求 21.1 课程设计的目的 21.2 设计任务及要求 22. 系统设计方案 32.1 系统整体设计 33 各个分模块设计与控制 43.1时序模块 43.1.1时序模块功能 43.1.2 时序模块程序 43.1.3 时序模块波形仿真 53.2 显示模块 53.2.1 显示模块功能 53.2.2显示模块程序 63.2.3 显示模块仿真图 63.3系统顶层设计 73.3.1顶层程序设计 73.3.2 系统顶层波形仿真 74.总结与心得 8参 考 文 献 9附录1 10附录2 11附录3 13引 言随着科技的发展,在现代生活中,彩灯作为一种景观应用越来越多的应用到节目
3、庆典、剧场灯光,橱窗装饰中。EDA技术的应用引起电子产品及系统开发的革命性变革,以VHDL为基础的多路彩灯控制系统,同时减少了设计芯片的数量、缩小了体积、降低了功耗、提高了设计的灵活性、可靠性和可扩展性。在电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHDL语言则是EDA的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。本文介绍了基于EDA技的多路彩灯控制器的设计与分析。在Quartus II环境下采用VHDL语言实现,论述了基于VHDL语言和FPGA芯
4、片的数字系统设计思想和实现过程。多路彩灯控制器通过对应的开关按钮,能够控制多个彩灯的输出状态,组合多种变幻的灯光闪烁。1 设计任务及要求1.1 课程设计的目的 本次设计的主要目的是为了巩固所学的专业技术知识,培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力,培养初步的独立设计能力;通过课程设计实践,了解并掌握一般的综合设计过程,训练并提高学生在理论计算、结构设计、工程绘图、查阅设计资料、运用标准与规范和应用计算机等方面的能力,更好地将理论与实践相结合,提高综合运用所学理论知识独立分析和解决问题的能力。再设计完成后,还要将设计的电路进行安装、调试,加强我们的动手能力。在此过程
5、中培养从事设计工作的整体观念。通过课程设计学习掌握适用EDA软件Quartus II,电路描述,综合,模拟仿真过程,同时掌握EDA的VHDL语言。1.2 设计任务及要求设计一个多路彩灯控制器,能够在6种不同的彩灯花型之间进行循环变化,并可设置花型变化的节奏,且可进行复位。要求给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。2. 系统设计方案2.1 系统整体设计整个系统有三个输入信号,分别为由系统晶振产生的时钟信号CLK脉冲,控制快慢的信号SPEED,复位清零信号CLR,输出信号是9路彩灯输出状态。系统整体设计框图如图2-1:图2-1 系统整体设计框图3
6、 各个分模块设计与控制3.1时序模块3.1.1时序模块功能该模块主要功能:通过CLK、CLR、SPEED三个输入端口和CLK1输出端口,实现分频电路的可控调节,从而控制彩灯的各个花型的变换速度快慢。框图入3-1所示图3-1 时序模块框图 CLK为输入时钟信号,电路在时钟上升沿变化;CLR为复位清零信号,高电平有效,一旦有效时,电路无条件的回到初始状态;SPEED为频率快慢选择信号,低电平节奏快,高电平节奏慢;CLK1为输出信号,CLR有效时输出为零,否则随SPEED信号的变化而改变。设定时序控制电路所产生的控制时钟信号的快慢两种节奏分别为输入时钟信号频率的1/2和1/8,因而输出时钟控制信号可
7、以通过对输入时钟的计数来获得。当SPEED为低电平时,输出每经过一个时钟周期进行翻转,实现二分频的快节奏;当SPEED为高电平时,输出每经过四个时钟周期进行翻转,实现八分频的慢节奏。3.1.2 时序模块程序参见附录1。3.1.3 时序模块波形仿真时序模块波形仿真结果如图3-2示图3-2时序模块仿真图由波形图中可以看出当高电平时, CLK1出为低电平复位。当SPEED为高电平时,CLK1出为CLK进行八分频后的时钟;当SPEED为低电平时,CLK1出为CLK进行二分频后的时钟。3.2 显示模块3.2.1 显示模块功能显示控制电路的模块框图如3-3,入信号CLK和CLR的定义与时序控制电路一样,输
8、出信号LED9.0 能够循环输出9路彩灯6种不同状态的花型。对状态的所对应的彩灯输出花型定义如表3-1,彩灯状态的状态循环图如图3-4所示。图3-3 显示模块框图表 3- 1 状态对应表状态名状态S0000000000S1001001001S2010010010S3011011011S4100100100S5101101101S6110110110图3-4 彩灯状态示例3.2.2显示模块程序参见附录23.2.3 显示模块仿真图 显示模块波形仿真图3-5,通过分析仿真图可知当CLR为高电平时,LED的状态为S0,彩灯全灭。否则状态从S1到S6循环。图3-5 显示模块仿真图3.3系统顶层设计3.3
9、.1顶层程序设计参见附录3.3.3.2 系统顶层波形仿真通过分析顶层仿真图3-6可知,当CLR为高电平时,LED输出为零。当SPEED为高电平时,彩灯LED花型变化缓慢;当SPEED为低电平时,彩灯LED花型变化快。图3-6 系统顶层仿真图4.总结与心得通过本次课程设计实现了彩灯的全部功能,此次设计充分利用VHDH“自顶向下”的设计优点以及层次化的设计概念,层次概念对于设计复杂的数字系统是非常有用的。它使的我们可以从简单的单元入手,逐渐构成庞大而复杂的系统。通过使用EDA编程既方便又快捷的实现了程序。本次设计的程序已经在硬件系统上得到了验证,实验表明,此设计方法能够满足多种不同花样彩灯的变化要
10、求。并且该方法便于扩展不同变化模式的彩灯花样。通过近一周时间课程设计,不仅检验了我以往所学习的理论知识,而且还丰富了课外知识学到了许多在课上没有学过的东西,并且也体会到了自己做设计时的能力不足,以及综合运用知识的能力的不足,体会了学以致用、与实践相结合的乐趣,也发现了团队合作的重要性,而且通过查阅资料上网搜索学习到了许多搜索资料方面的技能,也对今后的资料搜索和论文编写打下了良好的基础。参 考 文 献1 潘松,黄继业等.EDA与VHDL(第三版).清华大学出版社,20092 李洋.EDA技术实用教程.机械工业出版社,2011.3 曹昕燕, 周凤臣.EDA技术实验与课程设计 主编清华大学出版社,2
11、008附录1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY timecontrol IS PORT(SPEED:IN STD_LOGIC; CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; CLK1:OUT STD_LOGIC);END timecontrol; ARCHITECTURE ART OF timecontrol ISSIGNAL CK:STD_LOGIC; BEGIN PROCESS(CLK,CLR,SPEED) ISVARIABLE TEMP:S
12、TD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF CLR=1 THEN CK=0; TEMP:=000; ELSIF (CLKEVENT AND CLK=1) THEN IF SPEED=1 THEN IF TEMP= 011 THEN TEMP:=000; CK=NOT CK; ELSE TEMP:=TEMP+1; END IF; else CK=NOT CK; END IF; END IF; END PROCESS; CLK1=CK; END ART;附录2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY displa
13、yled IS PORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);END ENTITY displayled;ARCHITECTURE behav OF displayled IS TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6); SIGNAL CURRENT_STATE:STATE; SIGNAL LIGHT:STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN PROCESS(CLR,CLK1) ISCONSTANT L1:STD_LOGIC
14、_VECTOR(8 DOWNTO 0):=001001001;CONSTANT L2:STD_LOGIC_VECTOR(8 DOWNTO 0):=010010010;CONSTANT L3:STD_LOGIC_VECTOR(8 DOWNTO 0):=011011011;CONSTANT L4:STD_LOGIC_VECTOR(8 DOWNTO 0):=100100100;CONSTANT L5:STD_LOGIC_VECTOR(8 DOWNTO 0):=101101101;CONSTANT L6:STD_LOGIC_VECTOR(8 DOWNTO 0):=110110110; BEGIN IF
15、 CLR=1 THEN CURRENT_STATE LIGHT=000000000; 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; LEDSPEED,CLK=CLK,CLR=CLR,CLK1=S);U2: displayled PORT MAP(CLK1=S,CLR=CLR,LED=LED);END ;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1