VHDL音乐播放器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

洛阳理工学院

课程设计报告

课程名称 EDA技术与VHDL

设计题目音乐播放器的设计与仿真

专业通信工程

班级 B1105

学号 B1105

姓名

完成日期 2014年12月22日

前言

随着科学技术的进步,电子器件和电子系统设计方法日新月异,电子设计自动化(Electronics Design Automation,EDA)技术正是适应了现代电子产品设计的要求,吸收了多学科最新成果而形成的一门新技术。现如今掌握EDA技术是电子信息类专业的学生、工程技术人员所必备的基本能力和技能。

传统电子电路的设计,首先要对系统进行分析,然后按功能对系统进行划分,接下来就要选择特定芯片,焊接成PCB电路板,最后对成品PCB电路板进行调试。这样的设计没有灵活性可言,搭成的系统需要的芯片种类多且数目大,而且对于电路图的设计和电路板的设计都需要很大的工作量,工作难度也很高。随着可编程器件和EDA技术的发展,传统设计的劣势被克服,采用可编程逻辑器件基于芯片的设计方法,期间的内部逻辑和引脚可以由设计者自行决定,提高了设计的灵活性和工作效率;同时,将系统集成在一个芯片上的设计,使系统具有体积小、功耗低、可靠性高等特点。

EDA技术即电子设计自动化技术,它是以可编程逻辑器件(PLD)为载体,以硬件描述语言(HDL)为主要的描述方式,以EDA软件为主要的开发软件的电子设计过程。它主要采用“自顶向下”的设计方法,设计流程主要包括:设计输入、综合、仿真、适配、下载。EDA技术主要有以下特征:

(1)高层综合的理论和方法取得进展,从而将EDA设计层次由RT级提高到了系统级,并推出了系统级综合优化工具,缩短了复杂ASIC的设计周期。

(2)采用硬件描述语言来描述10万门以上的设计,并形成了VHDL和Verilog-HDL两种标准硬件描述语言。

(3)采用平面规划技术对逻辑综合和物理版图设计联合管理,做到在逻辑设计综合早期阶段就考虑到物理设计信息的影响。

(4)可测性综合设计。

(5)为带有嵌入式IP核的ASIC设计提供软、硬件协同设计工具。

(6)建立并设计工具框架结构的集成化设计环境,以适应当今ASIC规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。

总而言之,EDA技术的出现,给电子信息产业带来了革命性的变革。

一.设计任务及要求

本次课程设计要求使用EDA工具,设计实现简易音乐播放器,理解音名与频率的关系及数控分频原理,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。

用VHDL语言设计乐音的节拍与音符产生电路;用VHDL语言设计分频系数、音符显示数据产生电路;用VHDL语言设计可控分频器电路;理解简易音乐播放器总体设计方案。

掌握基本的VHDL语言;理解音乐播放电路设计方案。掌握用VHDL语言设计节拍与音符产生电路;掌握用VHDL语言设计分频系数、音符显示数据产生电路;掌握用VHDL语言设计可控分频器电路。设计结果:原理图与原程序、电路仿真图、能在实训系统上播放悦耳动听的音乐。

二.设计实现

2.1 准备知识

在本次设计中采用了《梁祝》《茉莉花》《虫儿飞》作为要播放的乐曲,根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。

该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为1拍。将1拍的时长定为0.25秒,则只需要再提供一个4Hz的时钟频率即可产生1拍的时长,演奏的时间控制通过ROM查表的方式来完成。对于占用时间较长的节拍,如全音符为4拍(重复4),2/4音符为2拍(重复2),1/4音符为1拍(重复1)。

由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的

设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本设计中选取4MHz 的基准频率。表2-1为简谱中音名与频率的对应关系。

表2.1 乐谱编码和乐音频率

2.2乐曲演奏电路的结构示意

2.3乐曲演奏电路的子结构

顶层结构所包含的模块分别有地址计数器模块(ADDR )、乐音分频器模块

分频器

乐谱存储器

扬声器

时钟

地址

乐音

(SPEAKER)、数据存储器(YP)以下便是对各个子模块的分析。

2.3.1 地址计数器模块

1. 地址计数器功能

在此模块中设置了一个9位二进制计数器(计数最大值为512),这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25s,恰好为当全音符设为1s时。例如,《梁祝》乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即为1s时间,相应地所对应“1”音符分频预置数为1409在ADDR的输入端停留了1s。随着ADDR中的计数器按4Hz的时钟频率做加法计数时,乐谱逐次被选取,《梁祝》乐曲就开始自然连续的演奏起来了。

2. 程序代码

LIBRARY ieee;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDR IS

PORT (clk : IN STD_LOGIC;

A : BUFFER STD_LOGIC_VECTOR(8 DOWNTO 0));

END;

ARCHITECTURE ONE OF ADDR IS

BEGIN

PROCESS (clk)

BEGIN

IF (clk'event AND clk = '1')

THEN

A <= A + 1;

END IF;

END PROCESS;

END;

相关文档
最新文档