基于VHDL的可控脉冲发声器 设计
- 格式:doc
- 大小:90.00 KB
- 文档页数:5
蜂鸣器输出报警声实验一.实验目的学习交流蜂鸣器的发音原理。
二.实验内容在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 isPort( clk:in std_logic;beep:out std_logic);end aa;Architecture m1 of aa issignal beep_r:std_logic;signal count:std_logic_vector(15 downto 0);beginbeep<=beep_r;process(clk)beginif clk'event and clk='1' thencount<=count+'1';end if;end process;process(count(15))beginbeep_r<=not beep_r ;end process;end m1;五.实验步骤(1)、在QuartusII中建立一个工程项目文件beep.qpf,并在该项目下新建VHDL源程序文件输入源程序代码并保存。
(2)、选择目标器件并对相应的引脚进行锁定,在这里在这里所选择的目标器件为Altera 公司Cyclone系列的EP1C12Q240C8芯片,引脚锁定的方法如表6.1,将未使用的管脚设置为三态输入。
表1 引脚锁定方法信号引脚信号引脚1C6 1C12 EDA 1C6 1C12 EDA beep 175 175 175 clk 28 28 28(3)、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
vhdl实验报告--蜂鸣器VHDL 实验报告蜂鸣器一、实验目的本次实验的主要目的是通过使用 VHDL 语言来设计并实现一个蜂鸣器的控制电路,深入理解数字电路的设计原理和 VHDL 编程的基本方法,掌握硬件描述语言在实际电路设计中的应用,提高自己的逻辑思维和问题解决能力。
二、实验原理蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。
常见的蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。
有源蜂鸣器内部自带了振荡源,只要给其供电就能发出固定频率的声音;无源蜂鸣器则需要外部提供一定频率的脉冲信号才能发声。
在本实验中,我们使用 VHDL 语言来控制一个无源蜂鸣器。
通过编写代码,生成特定频率的脉冲信号,从而驱动蜂鸣器发声。
三、实验设备及工具1、计算机2、 Quartus II 软件3、开发板四、实验内容及步骤1、设计思路首先,需要确定蜂鸣器发声的频率。
通过计算得出所需的时钟周期数。
然后,使用计数器来产生特定频率的脉冲信号。
最后,将脉冲信号输出到蜂鸣器的控制引脚。
2、 VHDL 代码编写```vhdllibrary ieee;use ieeestd_logic_1164all;use ieeenumeric_stdall;entity buzzer_control isport(clk : in std_logic;rst : in std_logic;buzzer : out std_logic);end entity;architecture Behavioral of buzzer_control isconstant CLK_FREQ : integer := 50_000_000; 系统时钟频率constant BUZZER_FREQ : integer := 1000; 蜂鸣器发声频率signal counter : integer range 0 to CLK_FREQ/BUZZER_FREQ 1; signal clk_div : std_logic;beginprocess(clk, rst)beginif rst ='1' thencounter <= 0;clk_div <='0';elsif rising_edge(clk) thenif counter = CLK_FREQ/BUZZER_FREQ 1 thencounter <= 0;clk_div <= not clk_div;elsecounter <= counter + 1;end if;end if;end process;buzzer <= clk_div;end architecture;```3、编译与仿真将编写好的 VHDL 代码在 Quartus II 软件中进行编译。
VHDL音频发生器课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和结构,掌握利用VHDL进行数字电路设计的基本方法。
2. 学生能掌握音频发生器的原理,了解其工作流程及组成结构。
3. 学生能运用VHDL语言编写程序,实现一个简易的音频发生器。
技能目标:1. 学生能够运用所学知识,使用VHDL设计并实现音频发生器,提高实际操作能力。
2. 学生通过课程学习,培养解决实际问题的能力,学会查阅资料、分析问题、设计方案、调试程序等过程。
情感态度价值观目标:1. 学生在学习过程中,培养对电子设计、编程的兴趣和热情,提高创新意识和团队协作精神。
2. 学生能够认识到电子技术在现实生活中的应用,增强对科技发展的关注,培养社会责任感和使命感。
本课程针对高中年级学生,结合电子技术课程内容,以VHDL语言为基础,设计一个音频发生器。
课程性质为实践性、综合性,注重培养学生的动手能力和实际问题解决能力。
在教学过程中,要求教师引导学生积极参与,注重启发式教学,鼓励学生提出问题、解决问题,从而实现课程目标。
通过本课程的学习,学生能够达到以上所述的知识、技能和情感态度价值观目标,为后续相关课程学习打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. VHDL语言基础:讲解VHDL的基本语法、数据类型、运算符、信号与变量等,对应教材第1章内容。
2. 数字电路设计原理:介绍数字电路设计的基本概念、原理和方法,重点讲解时钟信号、触发器、计数器等基本电路,对应教材第2章内容。
3. 音频发生器原理:分析音频发生器的工作原理、组成结构以及关键参数,对应教材第3章内容。
4. VHDL程序设计:结合实际案例,教授如何利用VHDL语言编写程序,实现数字电路的设计,对应教材第4章内容。
5. 音频发生器设计与实现:引导学生运用所学知识,设计并实现一个简易的音频发生器,包括程序编写、调试与优化等,对应教材第5章内容。
6. 实践操作与总结:安排学生进行实践操作,培养动手能力,并对设计过程中遇到的问题进行总结和分析,提高解决问题能力。
1 引言VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。
使用VHDL语言描述的电路,可以进行综合和仿真。
然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。
VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。
VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。
关于VHDL最后要说明的是:与常规的顺序执行的计算机程序不同,VHDL 从根本上讲是并发执行的。
在VHDL中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。
本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
我们知道,与利用单片机来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具与硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
2 整体功能介绍2.1准备知识在本次设计中采用了铃声《北京欢迎你》作为要播放的乐曲,它的旋律如下:3 5 3 2 3 2 3 3 2 6 1 3 2 22 1 6 1 23 5 2 3 6 5 6 2 1 12 1 6 1 23 5 2 3 6 5 5 3 -2 3 2 1 5 6 2 5 3 3 2 3 (加粗表示低音,其他为中音)根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。
Yi bin University EDA技术及应用课程设计报告题目基于VHDL的PWM信号发生器系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013 年 12月 21日摘要本次课程设计是基于VHDL的PWM信号发生器,PWM信号发生器应用所学的数字电路和模拟电路的知识进行设计。
在设计过程中,所有电路仿真均基于Quartus II 9.1仿真软件。
本课程设计介绍了PWM 信号发生器的设计方案及其基本原理,并着重介绍了PWM信号发生器各单元电路的设计思路,原理及仿真,整体电路的的工作原理,控制器件的工作情况。
设计共有三大组成部分:一是原理电路的设计,本部分详细讲解了电路的理论实现,是关键部分;二是性能测试,这部分用于测试设计是否符合任务要求。
三是是对本次课程设计的总结。
关键词: PWM信号发生器仿真设计目录第1章绪论1.1 EDA 和QuartusⅡ的简介及起源 (1)1.2 EDA的优势及发展趋势 (1)第2章系统设计思路 (3)第3章可自加载加法计数器的设计 (4)第4章信号发生器设计过程 (6)第5章软件仿真5.1 Quartus Ⅱ软件简介 (8)5.2 用Quartus Ⅱ的仿真步骤和图像 (9)5.3 逻辑综合结果 (12)第6章设计总结 (13)第7章参考文献 (15)附录设计程序 (16)第1章绪论1.1 EDA和QuartusⅡ的简介及起源EDA是英文“electronic design automation”(电子自动化设计)的缩写,EDA技术是20世纪90年代迅速发展起来的,是现代电子设计的最新技术潮流,是综合现代电子技术和计算机技术的最新研究成果,是电子线路设计与分析的一门技术。
EDA包括电子线路的设计、计算机模拟仿真和电路分析及印制电路板的自动化设计三个方面的内容。
随着可编程逻辑器件迅速发展,出现了功能强大的全新的EDA工具。
具有较强描述能力的硬件描述语言(VHDL、Verilog、HDL)及高性能综合工具的使用,使过去单功能电子产品开发转向系统级电子产品开发。
长江大学工程技术学院毕业论文学院:专业班级:学号:姓名:指导教师:辅导教师:________~________学年________年____月至 ________年____月基于 VHDL 的函数信号发生器的仿真设计【摘要】数字技术和计算机技术已经广泛运用于工业、农业、医学、教育、军事、生活等各个领域,其应用之深之广令人惊叹。
电子设计自动化技术已日趋成为现代电子设计技术的核心,这种技术又称为 EDA(Electronic Design Automation)技术。
EDA 技术基于硬件描述语言 HDL。
VHDL 是 HDL 的一种,并广泛应用在电子设计中。
锯齿波、三角波、方波、正弦波等多种波形均可以从函数信号发生器中产生。
我们在电路实验中也广泛运用到函数信号发生器。
本文基于 VHDL 语言设计各个波形产生模块,然后在 QUARTUS II 软件上实现波形的编译及仿真,通过四选一数据选择器选择输出三角波、锯齿波、矩形波或正弦波中的一种规定波形,并采用调频模块和调幅模块进行调频调幅,可以产生多种波形。
【关键词】:函数信号发生器;EDA 技术;VHDL;QUARTUS II 软件目录1 基于VHDL的函数信号发生器的设计…………………………………………1.1信号发生器的发展现状……………………………………………………1.2研究信号发生器目的和意义………………………………………………1.3主要研究设计内容、关键问题及解决思路………………………………1.3.1主要研究内容…………………………………………………………1.3.2关键问题………………………………………………………………1.3.3解决思路………………………………………………………………2系统设计………………………………………………………………………2.1设计要求与任务……………………………………………………………2.2设计方案……………………………………………………………………2.3相关模块介绍………………………………………………………………2.3.1时钟脉冲与复位………………………………………………………2.3.2调频与调幅……………………………………………………………2.4相关组合对应关系…………………………………………………………3 系统仿真………………………………………………………………………3.1相关工具简介………………………………………………………………3.2波形数据产生模块…………………………………………………………3.2.1锯齿波…………………………………………………………………3.2.2三角波…………………………………………………………………3.2.3方波……………………………………………………………………3.2.4正弦波…………………………………………………………………4 调控模块………………………………………………………………………4.1波形输入控制模块…………………………………………………………4.2波形输出控制模块…………………………………………………………4.3频率控制模块………………………………………………………………4.4幅度控制模块………………………………………………………………5 结果分析………………………………………………………………………6 结论……………………………………………………………………………前言信号发生器也被称为信号源或振荡器,被广泛应用于生产实践与科学技术。
基于FPGA/CPLD的脉冲信号型乐曲播放器的设计摘要用纯硬件来完成乐曲演奏电路的逻辑非常复杂,仅凭传统的数字逻辑技术,即使最简单的电路也难以实现。
但是借助于功能强大的EDA工具和硬件描述语言,就可以轻松的实现设计。
本设计利用可编程逻辑器件设计一个控制器让不同频率的脉冲信号有序的输出并驱动扬声器发声,最终完成一首乐曲的演奏。
设计以《世上只有妈妈好》为例,分析了硬件电路发声的基本原理,探讨了可以实现设计的方案,利用VHDL语言在QuartusⅡ上编程设计了节拍发生器、分频器、顺序控制、音高控制等模块的功能。
最后,运用原理图编辑器调出已经设计好的各个模块,根据设计的要求进行连线、加输入输出脚,得到了总体设计的仿真实体。
并对总体设计进行了功能仿真和下载。
本设计完成了乐曲《世上只有妈妈好》的32个音符64个节拍的播放,每个节拍0.5秒,整曲播放时长为32秒。
基于FPGA,利用Quartus Ⅱ和VHDL语言完成的脉冲型乐曲播放器,其特点是设计简单、灵活、设计周期短;缺陷是实现播放的乐曲种类单一,播放时间长度较短,若想要实现较长的乐曲播放,则需要很长的源程序。
关键词:FPGA,EDA,VHDL,QuartusⅡ,乐曲播放器The design of the pulse-type music player based on FPGA / CPLDAbstractIt is very complex to complete the music playing logic circuit using pure hardware. Only depend on the traditional digital logic technology, it is difficult to achieve even the simple circuit. However, it is very ease to achieve by using the EDA tools and hardware description language. The design finished a controller that output a series of orderly pulse signal with different frequencies and driven speaker with, by using the programmable logic device ,and finally complete the concert of a music.The music <shi shang zhi you ma ma hao> was used as an example. The basic principal of the hardware circuit sing was analyzed. How could achieve the player’s faction was also discussed. Following functional module was designed in Quartus II by using VHDL language: pulse generator, frequencies divider, sequence control, pitch control and so on. Finally, simulate entity was build in the Block Editor of the Quartus II , using all of the module which has been designed and according to the design’s requirements to connect, and plus input and output pin. Following these, the player’s entity was simulated and downloaded. The <shi shang zhi you ma ma hao>’s note 32 of the 64 players beat was completed in this design. One beat was sat as 0.5 seconds long, and the whole song was played within 32 seconds。
基于 VHDL 可编程 m 序列发生器的研制赵林军(陕西理工学院 电子与信息工程系 陕西 汉中 723003)摘 要: 提出一种可实现周期ƒ初相位编程控制的 m 序列发生器逻辑电路的设计方案。
给出了 V HDL 与 C P L D 的实现 方 案。
程序经编译、仿真、测试后, 可以实现设计要求。
该器件在M C S 51 的控制下, 实现m 序列的周期、初相位的编程变关键词: m 序列发生器; V HDL ; 逻辑电路; C P L D中图分类号: TN 914142文献标识码: B文章编号: 1004 373X (2004) 14 033 02Re s ea r ch an d D eve lop m en t of Programm a b le m Sequen ce Gen e ra tor Ba sed on VHDLZHA O L in jun(D ep a r t m en t o f E lec t ro n i c & Info rm a t i o n E ng inee r ing , Shaanx i U n i ve r s ity o f T echno lo gy , H anzho ng , 723003, C h ina )A b stra c t : T h e a r t i c l e in t r o d uce s o n e o f m sequ en ce gen e r a t o r s , w h ich deve l op ed ba s in g o n V HDL lan guage an d can beenp ro g r am m ab le o n p e r i o d s f r om 22 - 1 to 232- 11 W e exp lica t ed m ak in g p r i n c i p le an d w o rk i n g co u r s e , fu r t h e r m o re , gave th e h a r d w ir ec i rcu it o f th e i m p lem en t th a t h a s g r ea t l y p rac t i ca l and refe r en t i a l va l ue 1Keywords : m sequ en ce gen e r a t o r ; V HDL ; lo g i ca l c i rcu it ; C P L Dm 序列广泛应用于数字基带信号进行加扰, 改善数字 序列的位定时质量与帧同步和自适应时域均衡性能, 同时 也是构造平衡 G OL D 码的基础。
可控脉冲发生器的设计
1.设计要求:
实现周期、占空比均可调的脉冲发生器。
(1)采用1khz 的工作时钟;
(2)脉冲周期0.5s~6s ,占空比10%~90%;
(3)可初始化:周期2.5s ,占空比50%;
2.实验目的
1、了解可控脉冲发生器的实现机理。
2、学会用示波器观察FPGA 产生的信号。
3、学习用VHDL 编写复杂功能的代码。
3.实验原理:
脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周期和占空比可变的脉冲波形。
可控脉冲发生器的实现原理比较简单,可以简单的理解为一个计数器对输入的时钟信号进行分频的过程。
通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的。
下面举个简单的例子来说明其工作原理。
假如有一个计数器T 对时钟分频,其计数的范围是从0~N ,另取一个 M (0≤M ≤N ),若输出为Q ,那么Q 只要满足条件
时,通过改变N 值,即可改变输出的脉冲波的周期;改变M 值,即可改变脉冲波的占空比。
这样输出的脉冲波的周期和占空比分别为:
4.实验内容:
编写实现可控脉冲发生器程序,通过脉冲周期和占空比改变实现不同脉冲的输出。
用Quartu s 软件对设计进行编译、综合、仿真,给出相应的时序仿真波形和硬件电路图。
⎩⎨⎧≤≤<≤=N T M M T Q 001%1001)1(⨯+=+=N M T N CLOCK 占空比周期
5.程序设计及仿真:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity exp10 is
port( Clk : in std_logic; --时钟输入
Rst : in std_logic; --复位输入
NU,ND : in std_logic; --输入:控制频率的改变
MU,MD : in std_logic; --输入:控制占空比的改变
Fout : out std_logic --波形输出
);
end exp10;
architecture behave of exp10 is
signal N_Buffer,M_Buffer : std_logic_vector(10 downto 0);
signal N_Count :std_logic_vector(10 downto 0);
signal clkin : std_logic;
signal Clk_Count : std_logic_vector(12 downto 0); --产生一个低速时钟,用于按键判断
begin
process(Clk) --计数器累加
begin
if(Clk'event and Clk='1') then
if(N_Count=N_Buffer) then
N_Count<="00000000000";
else
N_Count<=N_Count+1;
end if;
end if;
end process;
process(Clk) --波形判断
begin
if(Clk'event and Clk='1') then
if(N_Count<M_Buffer) then
Fout<='1';
elsif(N_Count>M_Buffer and N_Count<N_Buffer) then Fout<='0';
end if;
end if;
end process;
process(Clk)
begin
if(Clk'event and Clk='1') then
Clk_Count<=Clk_Count+1;
end if;
clkin<=Clk_Count(12);
end process;
process(clkin) --频率及占空比的改变1
begin
if(clkin'event and clkin='0') then
if(Rst='0') then
M_Buffer<="010********";
N_Buffer<="10000000000";
elsif(NU='0') then
N_Buffer<=N_Buffer+1;
elsif(ND='0') then
N_Buffer<=N_Buffer-1;
elsif(MU='0') then
M_Buffer<=M_Buffer+1;
elsif(MD='0') then
M_Buffer<=M_Buffer-1;
end if;
end if;
end process;
end behave;
(2)仿真图:
6.引脚绑定:
7.心得体会:
在课程设计的这段时间里,我认为收获还是很多的,不但进一步掌握了数字电子技术的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同时对于抢答器来了个系统的总结。
更多的是让我看清了自己,明白了凡事需要耐心,实践是检验学习的唯一标准。
理论知识的不足在这次课设中表现的很明显。
这将有助于我今后的学习,端正自己的学习态度,从而更加努力的学习。
总之,通过本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。
使我在各方面都得到了锻炼,非常感谢我们的指导老师,使我这次
的课程设计任务圆满完成。