1、长 沙 学 院课 程 设 计 说 明 书题目 EDA 课程设计 系(部) 电子与通信工程系 专业(班级) 姓名 学号 指导教师 起止日期 IIEDA 技 术 课程设计任务书系(部):电子与通信工程系 专业:电气工程及其自动化 指导教师:课题名称 彩灯控制器的设计设计内容及要求(1)课题内容: 1、 设计一个彩灯控制器,使彩灯(LED 管)能连续发出三种以上不同的花型(自拟) ;2、 随着彩灯显示图案的变化,发出不同的音响声。3、 要求使用 7 段数码管显示当前显示的花型,如第一种花型显示 AA,第二种花型显示 BB,第三种花型显示 CC(2)主要任务:完成该系统的硬件和软件的设计,并制作出实物
2、装置,调试好后并能实际运用(指导教师提供制作所需的器件) ,最后就课程设计本身提交一篇课程设计说明书。设计工作量1、VHDL 语言程序设计;2、波形仿真;3、在实验装置上进行硬件测试,并进行演示;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。起止日期(或时间量) 设计内容(或预期目标) 备注第一天 课题介绍,答疑,收集材料第二天 设计方案论证第三天 设计 VHDL 语言程序第四天 在实验装置上进行硬件测试,并进行演示进度安排第五天 编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日III长沙学院课程设计鉴定
3、表姓名 学号 专业 班级设计题目 彩灯控制器的设计 指导教师指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级: 答辩小组长签名: 日期: 教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名: 日期: 说明 课程设计成绩分“优秀” 、 “良好” 、 “及格” 、 “不及格”四类;IV目录第 1 章 EDA 简介 .1第 2 章 彩灯控制器的设计原理 2第 3 章 程序设计和分析 3第 4 章 波形仿真分析 第 5 章 硬件测试 11第 6 章 心得体会 121第 1 章 EDA 简介EDA 技术(即 Electronic Design Automation 技术)
4、就是依赖强大的计算机,在 EDA工具软件平台上,对以硬件描述语言 HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC 版图设计、ASIC 测试和封装、FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(
5、CAM ) ,计算机辅助测试(CAT) ,计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。硬件描述语言 HDL 是 EDA 技术的重要组成部分,常见的 HDL 主要有VHDL、 Verilog HDL、ABEL、AHDL、System Verilog 和 SystemC。其中 VHDL、Verilog和现在的 EDA 设计中使用最多,并且我们学习的是 VHDL 的编程方法和实用技术。VHDL 的英文全名是 VHSIC(Very High Speed Integrated
6、 Circuit)Hardware DescriptionLanguage,由 IEEE(The Institute of Electrical and Electronics Engineets)进一步发展,并在1987 年作为“IEEE 标准 1076”公布。从此 VHDL 成为硬件描述语言的业界标准之一。VHDL 技术与传统的数字电子系统或 IC 设计相比之下有很大的优势,主要表现在:第一, VHDL 语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。第二, VHDL 具有也具体硬件电路武官和与设计平台无关的特性,
7、并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。EDA 书中所给出的所有的实力和实验都是基于 Quartus 6.0 的,其应用方法和设计流程对于其他流行 EDA 工具的使用具有一定的典型性和普遍性。它提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)开发的基本设计工具,并为 Altera DSP 开发包进行系统模型设计提供了集成综合环境。Quartus 6.0 包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis Synthesis) 、适配器(Fitter) 、装配器(
8、Assembler) 、时序分析器( TimingAnalyzer) 、设计辅助模块(Design Assistant) 、EDA 网表文件生成器(EDA Netlist Writer) 、编辑数据接口(Compiler Database Interface)等。可以通过选择 Start Compilation 来运行所有的编译器模块,也可以通过选择 Start 单独运行各个模块。还可以通过选择 Compiler Tool,在Compiler Tool 窗口中运行该模块来启动编译器模块。2第 2 章 彩灯控制器的设计原理本次彩灯控制器的设计包含几个主要模块,一是彩灯显示和扬声器的时序控制部分,
9、二是发光二极管的动态显示和数码管的动态显示,本次设计中,二者的显示同步变化;三是扬声器的控制部分。流程图如下所示:图 1 彩灯控制器的设计流程图彩灯控制器的设计核心主要是分频器的使用,显示部分的设计较简易。分频的方法有很多种,本次设计之采用了其中较简易的一种,通过计数器的分频,将控制器外接的频率分为几个我们预先设定的值。当计数器达到预先设定的值,即产生一个上升沿,从而实现分频。扬声器通过不同的频率控制发出不同的声音。同样发光二极管和数码管的显示速度也由其中分出来的一种频率控制(控制显示频率在 14 之间为宜) 。通过使能端的控制可以控制不同的数码管显示预先设定的图案,数码管依次显示的图案为 A
10、A、BB 、CC,并随着发光二极管同步动态显示。AA 为自左向右显示,BB 为自右向左显示,CC 从二边向中间再由中间向二边发散显示。与此同时,显示不同的花型时扬声器发出不同的声音,代表不同的花型。本次设计还带有复位功能,通过复位可以使彩灯控制器恢复到最初的状态。3第 3 章 程序设计和分析library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; 建立设计库和标准程序包实体部分:entity pan isport(clk:in std_logic;clr:in std_logic;speak:out st
11、d_logic;led7s1:out std_logic_vector(6 downto 0);led7s2:out std_logic_vector(7 downto 0);led_selout:out std_logic_vector(7 downto 0);end entity;实体名为 pan,定义端口,输入端口为 clk 和 clr ,其中 clk 接脉冲信号,clr 接复位端;输出端口 speak 接扬声器,led7s1 接数码管的七段显示部分, led7s 接八个发光二极管,led_selout 接八个数码管的使能端,控制数码管的循环显示。结构体部分:architecture o
12、ne of pan issignal s: std_logic_vector(4 downto 0);signal clk1:std_logic;signal clk2:std_logic;signal clk3:std_logic;定义 4 个信号,cq,cllk1,clk2,clk3.process(clk)variable a:std_logic_vector(5 downto 0);beginif clr=1 thenclk1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led
13、7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1led7s1null;end case;end process;end;此段程序就是当敏感信号 s 发生变化至 10000 时,对数码管进行置位和置型,1000110也就是对相应的数码管使之显示花型为 C,通过对数码管使能端的置位,控制显示的数码管显示为 CC ,并且发光二极管最左边第一个和最右边第一个显示为亮。当 S 每变化一次,数码管向中间移动一格,发光二极管也同步中间移动,可以看到由二边向中间移动再发散到二边的变化过程。当 s 变化到 10111 之后执行再循环显示 A 花型
14、,同时扬声器发出声音。7第 4 章 波形仿真分析程序经过编译之后即可进行波形的仿真,为了方便观察显示结果,这里调节仿真时间为 3us ,脉冲频率 clk 的周期为 5ns,复位信号暂且不进行仿真.。执行 Quartus 软件中的processing start simulation 选项,即可观察到波形仿真图像。如下图所示为显示花型 AA的仿真结果。图 2 花型 A 波形仿真图由图 2 可知,当 clk 发生变化,来上升沿时,led7s1 为 0001000 即数码管首先显示为花型 A 二极管按规定的显示,首先 led7s2 位 01111111 即最右边的二极管亮灯,led_selout为
15、11000000 即最右边的 2 个数码管显示 2 个 A 的花型。当 clk 变化到规定次数时二极管的显示开始按左移动,数码显示管也向左移动。Led7s2 依次变化 0111111111111110,实现二极管的向左移动;led_selout 也依次变化 1100000000000011 实现数码显示管的向左移动。同时当 clk 信号变化 50 次时产生一个上升沿 clk1,控制扬声器发出声音。8图 3 花型 BB 的波形仿真图由图 3 可知,当 clk 发生变化,来上升沿时,led7s1 为 0000011 即数码管首先显示为花型 B 二极管按规定的显示,首先 led7s2 位 11111
16、110 即最右边的二极管亮灯,led_selout为 00000011 即最右边的 2 个数码管显示 2 个 B 的花型。当 clk 变化到规定次数时二极管的显示开始向右移动,数码显示管也向右移动。Led7s2 依次变化 1111111001111111,实现二极管的向右移动;led_selout 也依次变化 0000001111000000 实现数码显示管的向右移动。同时当 clk 信号变化 25 次时产生一个上升沿 clk2,控制扬声器发出声音。9图 4 花型 C 的波形仿真图由图 4 可知 当 clk 发生变化,来上升沿时, led7s1 为 1000110 即数码管首先显示为花型 C
17、二极管按规定的显示,首先 led7s2 位 01111110 即最右边和最右边的二极管亮灯,led_selout 为 10000001 即最右边和最左边的 2 个数码管显示 2 个 C 的花型。当 clk 变化到规定次数时二极管的显示开始向中间移动,数码显示管中的花型也向中间移动,然后再由中间向俩边移动。Led7s2 依次变化 011111101110011101111110,实现二极管的向中间移动再向俩边移动;led_selout 也依次变化 100000010001100010000001 实现数码显示管的向中间再向俩边移动。同时当 clk 信号变化 8 次时产生一个上升沿 clk3,控制
18、扬声器发出声音。10第 5 章 硬件测试波形仿真完成之后即可进行引脚的分配,并进行编程下载至硬件进行测试。在 Quartus 中选择 Assignments-Assignments Editor,在 Assignments Editor 窗口中选择 pin 标签页,即可分配引脚,引脚的分配情况如图 5 所示。 图 5 引脚分配图如上图所示,在实验过程中 clk 的引脚选择 J16 即可外接频率源,实验过程中选择的频率为 1KHZ。其余数码管和二极管以及 8 个数码管的使能端引脚分配见上图,复位键引脚T10 对应的按键。选择 process-start compilation,重新编译,完成后形
19、成可配置到 FPGA 的pan.sof 文件和配置到外部的 pan.pof 文件。编程下载,在 quartus 软件中,选择 tools/programmer,在 Mode 中选择 JTAG,点击”add file” 按钮添加需要配置的 pan.sof 文件,选中 program /configure,点击 start 按钮对芯片进行配置,等待一段时间后即可观察到实验结果。在实验箱上,我们观察到实验结果按我们所设计的那样显示,即可显示我们预先设定的三种花型 AA、BB 、CC 并且能够按要求循环移动,发光二极管也可按设计要求循环闪烁,并与数码显示管的花型变化同步。同时当显示不同的花型时扬声器发
20、出了不同的声音。当按下复位键时我们可以看到数码显示管重新开始再最右边显示花型,并且扬声器停止11发声。这些实验结果验证所设计程序的正确性,实现了设计内容和要求,并且有了一定的扩展功能。第 6 章 心得体会本次设计的课题是彩灯控制器的设计,当拿到这个课题的时候经过分析就知道关键是计数器和分频器的使用,分频的方法有很多种,对于同一种功能的实现,用 VHDL 可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。通过这次课程设计对技术有了更进一步的熟悉,VHDL 语言和语言等其他语言还是有很大的区别。VHDL 是 EDA 技术的重要
21、组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。在实际操作中发现设计和课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对的了解。不过本次设计也存在一些不足,暴露了自己对的掌握还有所欠缺。在设计过程中,分频分的太大,频率太小的话,扬声
22、器的声音体现不出显示不同花型时的区别;频率太大的话,数码管显示速度太快,尝试分频时使用不同的脉冲信号,但没有成功。在反复调试中,最后还是成功了,但原理还不是很清楚。同时,在课程设计过程中通过与老师、同学的交流,也了解了他们对于这门技术的看法和今后这门技术的发展方向,也感谢老师对我设计的指导和同学对我的帮助。总的来说,这次设计还是有所收获的。12参考文献1 潘松,黄继业与 VHDLM北京:清华大学出版社,20072徐志军,徐光辉CPLD/FPGA 的开发与应用M北京:电子工业出版社,20023 边计年,薛宏熙用 VHDL 设计电子线路北京:清华大学出版社,20004王金明,杨吉斌数字系统设计与 VerilogHDL北京:机械工业出版社,2002