VHDL语言要素
- 格式:ppt
- 大小:497.55 KB
- 文档页数:57


蜂鸣器输出报警声实验
一.实验目的
学习交流蜂鸣器的发音原理。
二.实验内容
在SmartSOPC实验箱上的蜂鸣器输出报警笛声。
三.实验原理
SmartSOPC实验箱上有1个交流蜂鸣器BUZZER,通过跳线JP6的BEEP与芯片相连接。为了增强I/O口的驱动能力,在此采用了PNP型三极管,这样只要在BEEP上输入一定频率的脉冲蜂鸣器就会发出音乐。
四.实验程序
实验源程序如下:
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
Entity aa is
Port( clk:in std_logic;
beep:out std_logic);
end aa;
Architecture m1 of aa is
signal beep_r:std_logic;
signal count:std_logic_vector(15 downto 0);
begin
beep<=beep_r;
process(clk)
begin
if clk'event and clk='1' then
count<=count+'1'; end if;
end process;
process(count(15))
begin
beep_r<=not beep_r ;
end process;
end m1;
五.实验步骤
(1)、在QuartusII中建立一个工程项目文件beep.qpf,并在该项目下新建VHDL源程序文件输入源程序代码并保存。
(2)、选择目标器件并对相应的引脚进行锁定,在这里在这里所选择的目标器件为Altera公司Cyclone系列的EP1C12Q240C8芯片,引脚锁定的方法如表6.1,将未使用的管脚设置为三态输入。
VHDL语言
VHDL(VHSIC Hardware Description Language)是用于描述数字电路和系统的硬件描述语言,是一种标准化的硬件描述语言,广泛应用于数字电路设计和电子系统设计领域。VHDL语言是一种强大的工具,可以帮助工程师描述复杂的数字电路,并进行仿真和综合。它可以描述电路的结构、功能和时序行为,是一种形式化的语言,能够准确地描述电路的行为特性,有助于工程师在设计阶段发现和解决问题。
VHDL语言的基本概念
实体(Entity)
• 实体描述了电路的接口和功能,可以看作是一种抽象的模块。
• 实体中定义了输入输出端口,以及对应的信号类型和位宽。
• 实体可以包含多个体系结构(Architecture)。
体系结构(Architecture)
• 体系结构描述了实体的具体实现,定义了实体的行为。
• 体系结构中包含了处理逻辑、时序行为以及信号的赋值。
• 体系结构可以描述电路的功能和行为。
信号(Signal)
• 信号是VHDL语言中的基本数据类型,用于在电路中传递信息。
• 信号可以是标量(Scalar)或矢量(Vector),可以是时序或组合。
• 信号的赋值可以是同步的或异步的。
过程(Process)
• 过程描述了VHDL中的行为,通常用于描述组合逻辑或时序逻辑。
• 过程中可以包含逻辑运算、条件语句、循环语句等。
• 过程中的代码在仿真或综合时会被执行。
VHDL语言的应用
VHDL语言主要用于数字电路设计、电子系统设计、FPGA设计等领域。工程师可以使用VHDL语言描述数字电路的结构和行为,进行仿真和综合,快速验证设计的正确性。VHDL语言的应用领域包括但不限于:
• 数字电路设计
• 通信系统设计
• 控制系统设计
• 图像处理系统设计 • 嵌入式系统设计
VHDL语言在电子设计领域具有广泛的应用前景,可以帮助工程师快速高效地设计数字电路系统,并满足不同应用场景的需求。
YIBIN UNIVERSITY
EDA技术及应用期末设计报告
题 目: PWM信号发生器的设计
专 业: 电子信息科学与技术
姓 名:
学 号:
2013 年 12月 20 日 摘要:
PWM,即脉冲宽度调制。脉冲宽度,即一个脉冲信号所占时间的长度。所以脉冲宽度的调制就是调制脉冲信号的时间长度。一个完整的脉冲信号是有高电平部分和低电平部分共两部分组成的。所以,脉冲宽度调制可以简单的理解为就是调制脉冲信号的高电平或者低电平时间的长度。而控制时间的长度,可以用计数器对时钟脉冲信号的计数来实现:通过计数器的数值设定以及对溢出信号的使用,就可以实现对脉冲信号中的高电平或者低电平的时间进行限定。
在本次设计中,一共有两个设计方案,分别用不同的器件进行设计,但其中最重要的,最关键的部分,都是有关计数器的设计,用信号赋值的方式决定输出的电平的高低,通过相关计数器的数值设定,调制脉冲输出的电平的时间长度。
关键词:
1) 脉冲宽度调制
2) 时钟信号
3) 计数器
4) D触发器
目录
摘要--------------------------------------------------------------------------------2
关键词-----------------------------------------------------------------------------2
引言--------------------------------------------------------------------------------4
设计概述--------------------------------------------------------------------------4
VHDL学习
(本学习以MAXPLUS10为工具软件)
第一章、 VHDL程序的组成
一个完整的VHDL程序是以下五部分组成的:
库(LIBRARY):储存预先已经写好的程序和数据的集合
程序包(PACKAGE):声明在设计中将用到的常数、数据类型、元件及子程序
实体(ENTITY):声明到其他实体或其他设计的接口,即定义本定义的输入输出端口
构造体(ARCHITECTUR):定义实体的实现,电路的具体描述
配置(CONFIGURATION):一个实体可以有多个构造体,可以通过配置来为实体选择其中一个构造体
1.1库
库用于存放预先编译好的程序包(PACKAGE)和数据集合体,可以用USE语句调用库中不同的程序包,以便不同的VHDL设计使用。
库调用的格式:
LIRARY 库名
USE 库名.所要调用的程序包名.ALL
可以这样理解,库在硬盘上的存在形式是一个文件夹,比如库IEEE,就是一个IEEE的文件夹,可以打开MAX PLUSR安装源文件夹,进入VHDL93的文件夹,就可以看到一个IEEE的文件夹,这就是IEEE库,而里面的文件就是一个个对程序包或是数据的描述文件,可以用文本打开来查看文件的内容。
例如在VHDL程序里面经常可以看到“USE IEEE.STD_LOGIC_1164”,可以这样解释这句话,本序里要用到IEEE文件夹下程序包STD_LOGIC_1164,而STD_LOGIC_1164是可以在IEEE文件夹的STD1164.vhd文件里面看到的,用文本打开STD1164.vhd,可以看到有一名为“IEEE.STD_LOGIC_1164”PAKAGE定义。
简单的来说,库相当于文件夹,而程序包和数据就相当于文件夹里面的文件的内容(注意:不是相当于文件,因为程序包和数据都是在文件里面定义的,而文件名是和实体名相同的,可以说实体相当于文件)。
到了这里就可以考虑一个问题,“在安装MAX PLUS时有多少个库已经存在的呢”,要得到这个问题的答案,可以打开安装目录下的“VHDL93”文件夹,就可以看到里面有五个文件夹,分别是ATERA、IEEE、LPM、STD、VITAL,也就是说你看到了五个库,分别是