EDA多功能彩灯 实验报告
- 格式:doc
- 大小:251.00 KB
- 文档页数:12
黄冈师范学院物理科学与技术学院
《EDA技术》课程设计
题目:多功能彩灯设计
学号:************
*名:***
班级:电信0902
指导老师:**
2011-12-25——2011-12-27
一、实验目的
本程序以计算机为工作平台,综合运用EDA软件工具开发环境,用硬件描述语言VHDL为设计语言,以ASIC来实现载体的设计。通过在EDA中的编译、处理、仿真和调制分析,接受电子设计领域的初步训练,并使所学的知识和技能得到进一步巩固、深化和扩展,以达到可以运用EDA工具设计一些简单的电子产品,掌握使用EDA工具设计数字系统的设计思想和设计方法,为继续学习和认识电子设计知识打下良好的基础。
培养利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,积累实际的EDA编程。通过本课程设计的学习,复习所学的专业知识,使课堂学习的理论知识应用于实践。培养综合运用以学知识解决实际工程技术问题的能力,查阅图书资料和各种工程书的能力、工程绘图能力、撰写技术报告和编制技术资料的能力,接受一次电子设计自动化方面的基本训练。
二、设计要求
1,用EDA技术设计一个多功能彩灯控制器,使得彩灯(LED管)既能发出四种不同的花型(自拟),又能四种模式自动循环。具体选择由按键一控制。2,由按键二控制彩灯的频率,使得彩灯可以二分频、四分频、八分频。
3,要求7段数码管显示当前显示的花型和用的是几分频,如是二分频,则数码管一显示2;显示花型二,则数码管二显示2。
三、总体设计原理与内容
3.1彩灯控制器放入设计原理分析:
此设计的要求是连续发出四种花型且用数码管显示。由此可知:要发出不同的花型,必须要由不同的输出频率来实现,所以应该要由一个分频器。分频器部分的设计是利用计数器实现分频,将控制器的外接频率分为几个我们预先设计的值,即产生一个上升沿,从而实现分频。显示部分的设计是利用分频器产生的低频信号计数,从而达到分频的目的。利用分频器输出的不同信号,可以控制彩灯显示不同的花型。
四、设计环境
QuartusⅡ简介
QuartusⅡ是Altera公司提供的FPGA/CPLD集成开发软件,Altera是世界上最大的可编程逻辑器件供应商之一。 QuartusⅡ在21世初推出,是Altera 全一代FPGA/CPLD集成开发软件MAX+plus II的更新换代产品,其界面友好,使用便捷。在QuartusⅡ上可以完成设计输入、HDL综合、布新布局(适配)、仿真和选择以及硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、开始处理和器件编程。
QuartusⅡ提供了完整的多平台设计环境,能满足各种特定设计的需求,也是单片机可编程系统(SoPC)设计的综合环境和SoPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。QuartusⅡ设计完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus Ⅱ与可用利用第三方的综合工具(如Leonardo Spectrum、Synplify Pro、FPGA Complier II),并能直接调用这些工具。
同样 QuartusⅡ具备仿真功能,同时支持第三方的仿真工具(如ModelSin)。此外, QuartusⅡ与MATLAB和DSP Builder结合,可用进行基于FPAG的DSP 系统开发,是DSP硬件系统实现的工具EDA工具。
五、多功能彩灯设计
5.1 .1分频控制电路的VHDL设计及实现
程序如下:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY SX IS
PORT(CLK:IN STD_LOGIC;
K:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK_OUT:OUT STD_LOGIC);
END SX;
ARCHITECTURE bhv OF SX IS
SIGNAL Q :STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
PROCESS(K)IS
BEGIN
CASE K IS
WHEN "0000"=> Q <="00000001";--2分频
WHEN "0001"=> Q <="00000011";--4分频
WHEN "0010"=> Q <="00000111";--8分频
WHEN "0011"=> Q <="00001111";--16分频
WHEN "0100"=> Q <="00011111";--32分频
WHEN "0101"=> Q <="00111111";--64分频
WHEN "0110"=> Q <="01111111";--128分频
WHEN "0111"=> Q <="11111111";--256分频
WHEN OTHERS=> Q <="00000001";
END CASE;
END PROCESS;
PROCESS (CLK,Q)
V ARIABLE QA:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF QA=Q THEN QA:="00000000";CLK_OUT<='1';
ELSE QA:=QA+1; CLK_OUT<='0';
END IF;
END IF;
END PROCESS;
END BHV;
5.1.2分频控制电路封装图