EDA课程设计—音乐播放器

合集下载

EDA乐曲播放器设计

EDA乐曲播放器设计

实验报告学生姓名:EDA小王子学号:国家机密专业班级:国家机密实验类型:□验证□综合√设计□创新实验日期:国家机密实验成绩:很高实验六乐曲播放器设计一、实验目的1、进一步掌握QuartusII的使用全过程;2、学习多层次的设计方法,掌握基本的VHDL语言的设计方法;3、进一步熟悉和掌握VHDL语言。

二、实验内容与要求使用层次化设计方法,实现乐曲播放器的设计。

乐曲选取《梁祝》中化蝶部分三、实验设计1、实验分析1232、实验程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yy ISPORT(clk4hz:IN STD_LOGIC;……………………………………音调频率信号 CLK1kHz:IN STD_LOGIC; …………………………动态数码管扫描频率 clk6Mhz:IN STD_LOGIC; …………………………………节拍频率信号rt:IN STD_LOGIC;………………………………………………复位信号 SEG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);…………简谱码输出显示MAX: BUFFER INTEGER RANGE 0 TO 9110;……………………分频系数 h,m,l:OUT STD_LOGIC;…………………………………………音调指示 speakout:BUFFER STD_LOGIC …………………………………声音输出 );END ENTITY yy ;ARCHITECTURE behave OF yy ISSIGNAL addr1:INTEGER RANGE 0 TO 255;SIGNAL yf1:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL yinfu :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL count: INTEGER RANGE 0 TO 9110;SIGNAL tout: STD_LOgIC;BEGINp1:PROCESS(addr1,clk4hz)BEGINIF(clk4hz'EVENT AND clk4hz='1') THENIF(addr1<112)THENaddr1<=addr1+1;ELSIF(addr1=112) THENaddr1<=0;END IF;CASE addr1 ISWHEN 0 => yf1<="00011";WHEN 1 => yf1<="00011";WHEN 2 => yf1<="00011";WHEN 3 => yf1<="00011";WHEN 4 => yf1<="00101";WHEN 5 => yf1<="00101";WHEN 6 => yf1<="00110";WHEN 7 => yf1<="01001";WHEN 8 => yf1<="01001";WHEN 9 => yf1<="01010";WHEN 10 => yf1<="01110";…………WHEN 110 => yf1<="00101";WHEN 111 => yf1<="00101";WHEN 112 => yf1<="00101";WHEN OTHERS =>yf1<="00000";END CASE;END IF;IF(rt='1') THENaddr1<=0;END IF;END PROCESS p1;p2:PROCESS(clk6Mhz)BEGINIF(clk6Mhz'EVENT AND clk6Mhz='1') THEN IF(count<MAX) THENcount<=count+1;tout<='0';ELSIF(count=MAX) THENcount<=0;tout<='1';END IF;END IF;END PROCESS p2;p3:PROCESS(tout)BEGINIF(tout'EVENT AND tout='1') THENspeakout<=NOT speakout;END IF;END PROCESS p3;p4:PROCESS(yf1)BEGINCASE yf1 ISWHEN "00011" =>MAX<=9101;l<='1';m<='0';h<='0';WHEN "00101" =>MAX<=7653;l<='1';m<='0';h<='0';WHEN "00110" =>MAX<=6818;l<='1';m<='0';h<='0';WHEN "00111" =>MAX<=6074;l<='1';m<='0';h<='0';WHEN "01001" =>MAX<=5733;l<='0';m<='1';h<='0';WHEN "01010" =>MAX<=5108;l<='0';m<='1';h<='0';WHEN "01011" =>MAX<=4551;l<='0';m<='1';h<='0';WHEN "01101" =>MAX<=3827;l<='0';m<='1';h<='0';WHEN "01110" =>MAX<=3409;l<='0';m<='1';h<='0';WHEN "10001" =>MAX<=2867;l<='0';m<='0';h<='1';WHEN OTHERS =>MAX<=0;l<='0';m<='0';h<='0';END CASE;END PROCESS p4;yinfu<='0'&yf1(2)&yf1(1)&yf1(0);………………显示简谱的低三位,音调不论中低高,简谱数字都一样p5:PROCESS(CLK1kHz,yinfu)VARIABLE SEL : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF(rt='1') THENSEL:="000";ELSIF (CLK1kHz'EVENT AND CLK1kHz='1')THENIF SEL="000" THENSEG<=yinfu;SEL:="000";END IF;END IF;END PROCESS p5;END behave;四、实验步骤1、建立工作库文件夹和编辑设计文件1)建立一个文件夹保存工程文件;2)打开QuartusII,建立新的VHDL文件,再打开的页面下输入程序2、编译过程1)输入完程序之后逐个编译2)逐个编译无错之后进行全程编3、系统仿真1)建立新的波形激励文件2)在波形编辑器窗口添加节点3)通过Edit->End Time 来设定仿真结束时间4)在CLOCK窗口中设置clk4hz的时钟周期为1us,clk1khz时钟周期为200ns,clk6mhz时钟周期为20ns如图:5)点击save保存6) 通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。

eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计一、课程目标知识目标:1. 学生能够理解EDA乐曲硬件演奏电路的基本原理,掌握电路组成及各部分功能。

2. 学生能够描述常见电子元件在演奏电路中的作用,并运用相关知识分析电路性能。

3. 学生能够掌握编程软件及硬件设计工具,完成简单的EDA乐曲演奏电路设计。

技能目标:1. 学生能够运用所学知识,独立完成演奏电路的搭建与调试。

2. 学生能够通过编程软件,编写简单的乐曲程序,实现乐曲演奏。

3. 学生能够运用团队协作能力,共同解决演奏电路设计过程中遇到的问题。

情感态度价值观目标:1. 学生通过本课程的学习,培养对电子技术和音乐艺术的热爱,提高审美情趣。

2. 学生在学习过程中,养成积极探究、勇于创新的精神,增强实践操作能力。

3. 学生能够认识到科技与艺术的结合在生活中的应用,增强社会责任感和团队合作意识。

课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新思维和团队协作能力。

学生特点:本年级学生具备一定的电子技术基础知识,对音乐艺术有一定兴趣,好奇心强,善于动手实践。

教学要求:教师应注重理论与实践相结合,引导学生积极参与实践操作,鼓励学生创新思维,提高团队协作能力。

同时,关注学生的个体差异,因材施教,确保每位学生都能在课程中收获成长。

二、教学内容本课程教学内容主要包括以下三个方面:1. 理论知识学习:- 电路基础知识:回顾电路的基本概念、原理及电路图的识别。

- 电子元件介绍:学习常用电子元件的原理、功能及在演奏电路中的应用。

- EDA软件使用:介绍编程软件及硬件设计工具的使用方法,如Multisim、Proteus等。

2. 实践操作能力培养:- 电路搭建:学习演奏电路的搭建方法,熟悉各类电子元件的连接方式。

- 程序编写:编写简单的乐曲程序,掌握编程技巧,实现乐曲演奏。

- 调试与优化:对搭建的演奏电路进行调试,找出问题并进行优化。

3. 创新思维与团队协作:- 设计实践:运用所学知识,小组合作完成指定乐曲的演奏电路设计。

EDA乐曲播放电路课程设计报告

EDA乐曲播放电路课程设计报告

目录一.课程设计概述 (1)1.设计的题目 (2)2.设计要求 (2)3.设计构思 (2)二.总体框图 (4)三.具体各功能模块(模块图像,程序,波形图像,波形分析) (2)1.计数器模块 (2)2.选择器模块 (4)3.数据翻译模块 (6)4.数控分频模块 (7)5.乐曲ROM的三个模块 (10)6.顶层文件的设计 (12)四.总体电路图(RLT电路图) (14)五.课程设计总结 (15)..................................................................................................................................一.课程设计概述1.设计的题目乐曲播放电路2.设计要求:学习利用数控分频器设计硬件乐曲演奏电路,在实验四的基础上,改建电路的设计,增加功能自动选择曲目,可选的歌曲很多于3首。

3.设计构思(1)音乐硬件演奏电路大体原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,假设能利用程序来操纵FPGA芯片某个引脚输出必然频率的矩形波,接上扬声器就能够发出相应频率的声音。

乐曲中的每一音符对应着一个确信的频率,要想FPGA发出不同音符的音调,事实上只要操纵它输出相应音符的频率即可。

乐曲都是由连续串的音符组成,因此依照乐曲的乐谱依次输出这些音符所对应的频,就能够够在扬声器上持续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必需准确地操纵乐曲的节拍,即乐曲中每一个音符的发生频率及其持续时刻是乐曲能够持续演奏的两个关键因素。

(2)音符频率的取得多个不同频率的信号可通过对某个基准频率进行分频器取得。

由于各个音符的频率多为非整数,而分频系数又不能为小数,故必需将运算机取得的分频系数四舍五入取整。

假设基准频率太低,那么分频系数过小,四舍五入取整后的误差较大。

“两只老虎”EDA课程设计(详细)

“两只老虎”EDA课程设计(详细)

课程设计课程设计名称:专业班级学生姓名:学号:指导教师:课程设计时间:1 设计任务及要求设计任务:乐曲自动播放器。

自行选择一首自己喜爱的经典乐曲,用FPGA 设计实现一个该曲目的自动演奏电路。

要求:(1)根据设计题目要求编写相应程序代码(2)对编写的VHDL程序代码进行编译和仿真(3)利用实验箱完成硬件验证(4)总结设计内容,完成课程设计说明书与利用微处理器,以纯硬件完成乐曲演奏电路的逻辑要复杂得多。

本实验设计项目作为“两只老虎”乐曲演奏电路的实现,组成每个乐曲的每个音符的发音频率值及持续的时间是乐曲能连续演奏所需要的两个基本要素。

(1)音乐硬件演奏电路基本原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。

乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。

(2)音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。

由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。

若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。

若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。

实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。

本设计中选取1MHz的基准频率。

数控分频器采用12位二进制计数器,乐曲中的休止符,只要将分频系数设为0,即初始值=4095,此时扬声器不会发声。

根据分频系数,可计算数控分频器得到的初始值。

EDA_课程设计_乐曲演奏器

EDA_课程设计_乐曲演奏器

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计专业:通信工程班级:通信082姓名:***学号:**********一、 设计题目:乐曲硬件演奏电路的VHDL 设计二、 设计目标:1)能够播放“梁祝”乐曲。

2)能够通过LED 显示音阶。

3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。

三、 设计原理:1. 音乐基础知识一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

音符的节拍我们可以举例来说明。

在一张乐谱中,我们经常会看到这样的表达式,如1=C 44、1=G 43…… 等等。

以43为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。

比如:图1其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。

1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。

那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。

我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。

2.原理图框图:图2.框图3.原理图说明音乐播放原理说明音符的频率由数控分频器模块Speakera产生。

ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。

NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。

这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。

例如:“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在Speakera的输入端停留了1秒。

EDA课设设计简易音乐播放器

EDA课设设计简易音乐播放器

1 引言VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期出现。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

随着EDA技术的高速发展.电子系统的设计技术和工具发生了深刻的变化.大规模可编程逻辑器件CPLD/FPGA的出现.给设计人员带来了诸多方便。

利用它进行产品开发.不仅成本低、周期短、可靠性高.而且具有完全的知识产权。

突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。

本文基于FPGA开发系统.在QuartusII 7.2软件平台上.完成了简易多功能信号发生器电路的设计和与仿真.并下载到试验箱进行硬件实现。

首先.本文介绍了QuartusII 7.2软件的基本使用方法和VHDL硬件描述语言的特点.采用VHDL 硬件描述语言描述简易信号发生器.完成对电路的功能仿真。

在设计过程中.重点探讨了简易信号发生器设计思路和功能模块划分。

然后.初步探讨了电路逻辑综合的原理.该软件对简易多功能信号发生器电路进行了逻辑综合。

最后.使用EDA 实验开发系统进行电路的下载和验证。

验证结果表明设计的简易简易信号发生器完成了预期的功能。

简易多功能信号发生器是信号发生器的一种.在生产实践和科研领域中有着广泛的应用。

在研制、生产、测试和维修各种电子元件、部件以及整机设备时.都需要有信号源.由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上.用其他仪器观察、测量被测仪器的输出响应.以分析确定它们的性能参数。

信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。

它可以产生多种波形信号,如正弦波,三角波,方波和锯齿波等,因而广泛用于通信、雷达、导航、宇航等领域。

本设计是采用VHDL来实现的简易乐曲演奏器。

它能实现自动演奏已存歌曲和手动演奏简易乐曲。

且要求实现如下功能:(1)通过按键输入来控制音响声音;(2)演奏时可以通过按键选择是手动演奏还是自动演奏.手动演奏是通过按键进行简易乐曲的演奏.自动演奏则是演奏已存入的固定乐曲;(3)至少保存一首自动演奏的乐曲.且自动演奏的乐曲能重复播放;(4)进行手动演奏和自动演奏时.数码管上要同时能显示演奏乐曲的乐谱;(5)扩展功能(选作)自动播放时.设置低速.中速.快速控制键.能实现乐曲不同速度的播放。

EDA课程设计音乐演奏

EDA课程设计音乐演奏一、教学目标本课程旨在通过EDA(电子设计自动化)技术的学习,使学生掌握音乐演奏的基本原理和技巧,培养学生的创新意识和实践能力。

具体目标如下:知识目标:使学生了解音乐演奏的基本知识,包括音乐理论、演奏技巧等;掌握EDA技术的基本原理和应用。

技能目标:培养学生能够运用EDA技术进行音乐创作和演奏的能力;提高学生的音乐表现力和演奏技巧。

情感态度价值观目标:培养学生对音乐的热爱和尊重,培养学生的创新意识和团队合作精神。

二、教学内容本课程的教学内容主要包括音乐演奏的基本原理、EDA技术的基本原理和应用、音乐创作和演奏技巧等。

具体安排如下:第一章:音乐演奏概述1.1 音乐理论和演奏技巧1.2 音乐演奏的生理和心理基础第二章:EDA技术的基本原理2.1 EDA技术的发展和应用2.2 EDA工具的使用和操作第三章:音乐创作和演奏技巧3.1 音乐的创作方法和过程3.2 演奏技巧的训练和提高第四章:音乐演奏实践4.1 集体演奏和合作4.2 个人演奏和创作展示三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

通过多样化的教学方法,激发学生的学习兴趣和主动性,提高学生的学习效果。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。

教材选用权威、实用的专业教材,参考书选择与课程内容相关的学术著作和案例集,多媒体资料包括音乐演奏视频、图片等,实验设备包括计算机、音响等。

教学资源的选择和准备应能够支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面、客观、公正地评价学生的学习成果。

具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置相关的音乐演奏练习和EDA技术任务,评估学生的实践能力和掌握程度。

3.考试:包括期中考试和期末考试,以闭卷形式进行,评估学生对音乐演奏和EDA技术的理论知识掌握。

EDA音乐播放器

EDA技术及应用课程设计说明书 2013 届电子信息工程专业 1班级题目音乐播放器学号姓名指导教师二О一五年 6 月25 日一、音乐播放器基本原理1 硬件电子琴设计原理乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。

频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。

所有不同频率的信号都是从一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行向下取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。

如在48MHz 时钟下,中音1(对应的频率值是523.3Hz)的分频系数应该为:48000000/(2*523.3)=45863,这样只需对系统时钟进行45863次分频即可得到所要的中音M1(分频系数计算公式为D=F/2K,由于F/2K之后,会使分频系数D变小,所以功能模块中语句:beep_r<=!beep_r,使得输出取反,K=F/2count_end,消除了前面除以2K的影响)。

2 乐曲自动演奏设计原理硬件电路和自动演奏的原理同硬件电子琴实验原理类似。

至于其他音符,同样可由一式求出对应的分频系数。

在程序中设置一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。

只要让状态机的状态按顺序转换,就可以自动演奏播放音乐了。

《欢乐颂》乐曲的简谱如图所示:3 消抖原理作为机械开关的键盘,在按键操作时,由于机械触点的弹性及电压突跳等原因,在触点闭合或开启的瞬间会出现电压抖动,实际应用中如果不进行处理将会造成误触发。

由于这里是低电平表示按键按下,所以按键去抖动的关键在于提取稳定的低电平状态,虑除前沿、后沿抖动毛刺。

对于一个按键信号,可以用一个脉冲对他进行取样,如果连续三次取样为低电平,可以认为信号已经处于键稳定状态,这时输出一个低电平按键信号。

微机原理课程设计 音乐播放器

微机原理课程设计音乐播放器微机原理课程设计-音乐播放器一.课程设计目的1.通过d/a装换器产生模拟信号,并使pc机做为轻便音乐播放器。

2.介绍利用数模转换器产生音乐的基本方法。

二.课程设计任务设计并同时实现一个键控音乐播放器。

建议:(1)自己选用合适的芯片,不少于两种。

(2)自行设计电路并采用汇编语言编写程序顺利完成键控音乐播放器功能。

(3)该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键展开播出、选择退出或失效提示信息。

三、总体设计方案1、总体设计方案一所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。

不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。

而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。

2、总体设计方案二可以使用0832(数模转换器)来产生频率,原理图:更已连续,效果更好点。

提出这个方案是因为我想产生模拟信号,来驱动扬声器,这样产生的声音更加圆润感觉我们想要把一个周期的波形分为32份,然后每份给8253一个值使他转换成模拟信号,相同的频率可以用8253计数器掌控,比如说必须产生261hz的频率,采用1mhz的话,周期就为1/261=3.83ms,分为32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送来计数器0的初值为1m/261/32=120次。

3、各个音符的对应频率表:音符频率/hz半周期/us音符频率/hz半周期/us高1do2621908#4fa#7400676#1do#2771805中5so7840638高2re2941700#5so#8310602#2re#3111608中6la8800568高3m3301516#6la#9320536高4fa3491433中7si9880506#4fa#3701350低1do10460478高5so3921276#do#11090451#5so#4151205低2re11750426高6la4401136#2re#12450402#6la#4661072低3m13180372高7si4941012低4fa13970358中1do5230956#4fa#14800338#1do#5540903低5so15680319中2re5780842#5s0#16610292#2re#6220804低6la17600284中3m6590759#6la#18650268中4fa6980716低7si19760253四.部分电路设计及功能解说1、频率出现电路使用8253产生音符频率。

基于FPGA的音乐播放器设计

唐山学院《EDA技术》课程设计题目音乐播放器系 (部) 智能与信息工程学院班级 14电信2班姓名张洪达学号指导教师魏明哲张银蒲2016 年 12 月 19 日至 12月 30 日共 2 周2016年 12 月 30 日《EDA技术》课程设计任务书《EDA技术》成绩评定表目录前言 (1)1设计原理分析 (2)设计任务 (2)设计要求 (2)2 软件介绍 (3)Verilog HDL相关介绍 (3)QuartusⅡ相关介绍 (3)3 总体设计 (5)总体结构 (5)设计原理 (5)4主要模块功能的设计 (7)顶层模块 (7)数码管显示模块 (7)蜂鸣器块 (9)5 程序调试运行 (12)seg7_drive的验证 (12):beep的软件验证 (13)6 硬件仿真 (15)引脚设置 (15)硬件调试 (15)7 总结 (17)参考文献 (18)附录 (19)前言随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得本征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。

集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。

?顺应电子技术的发展趋势,可编程逻辑器件和EDA?技术使设计方法发生了质的变化。

把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。

利用EDA?开发平台,采用可编程逻辑器件FPGA?使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。

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

EDA课程设计音乐播放器一、前言1、课程的目的与任务《EDA课程设计》(注:EDA即电子设计自动化,Electronics Design Automation)是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础实验》课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件(MAXPLUS2),并能利用EDA软件设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。

2、课程的基本要求1、通过课程设计使学生能熟练掌握一种EDA软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。

2、通过课程设计使学生能利用EDA软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或AHDL硬件描述语言输入法。

3、通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。

4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。

3、与其他课程的联系与分工《EDA课程设计》中应用了《模拟电子技术基础》、《数字电子技术基础》中的基础知识和基本理论,并且利用了《电子技术基础实验》中的基本实验方法,在时间上的安排上应该在这些课程之后。

《EDA课程设计》的后续课程是《微机原理》等其它专业课程,《EDA课程设计》中对学生综合设计能力的培养将为这些后续课程的学习打下良好基础。

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

掌握基本的VHDL语言;理解音乐播放电路设计方案。

掌握用VHDL语言设计节拍与音符产生电路;掌握用VHDL语言设计分频系数、音符显示数据产生电路;掌握用VHDL语言设计可控分频器电路。

设计结果:原理图与原程序、电路仿真图、能在实训系统上播放悦耳动听的音乐。

三、设计原理及总体框图产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器(CPU)来实现乐曲演奏要复杂的多如果不借助于功能强大的EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。

根据6.4.1的设计要求,乐曲硬件演奏电路系统主要由数控分频器和乐曲存储模块组成。

数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。

乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。

1、音名与频率的关系音乐的十二平均率规定:每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍.在两个八度音之间,又可分为十二个半音,每两个半音的频率比为4。

另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间,E到F之间为半音,其余为全音,由此可以计算出简谱中从低音1到高音1之间每个音名的频率如表1所示.表1 简谱中的音名与频率的关系音名频率/Hz 音名频率/Hz 音名频率/Hz低音1 261.63 中音1 532.25 高音1 1046.50低音2 293.67 中音2 587.33 高音2 1174.66低音3 329.63 中音3 659.25 高音3 1318.51低音4 349.23 中音4 698.46 高音4 1396.92低音5 391.99 中音5 783.99 高音5 1567.98低音6 440 中音6 880 高音6 1760低音7 493.88 中音7 987.76 高音7 1975.52由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。

若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。

实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。

本例中选取4MHz的基准频率,若无4MHz的时钟频率,实际上,只要各个音名间的相对品频率关系不变,C作1与D作1演奏出的音乐听起来都不会“走调”。

各音阶频率及相应的分频系数如表2所示。

为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。

表2中的分频系数就是从4MHZ频率二分频得到的2MHZ频率基础上计算得出的。

表2 各音阶频率对应的分频值音名分频系数初始值音名分频系数初始值音名分频系数初始值低音1 7644 547 中音1 3822 4369 高音1 1911 6280低音2 6810 1381 中音2 3405 4786 高音2 1270 6921低音3 6067 2124 中音3 3034 5157 高音3 1517 6674低音4 5727 2464 中音4 2864 5327 高音4 1432 6759低音5 5102 3089 中音5 2551 5640 高音5 1256 6935低音6 4545 3646 中音6 2273 5918 高音6 1137 7054低音7 4050 4141 中音7 2025 6166 高音7 1013 7178由于最大的分频系数为7644,故采用13位二进制计数器已能满足分频要求。

在表2,除给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为0,即初始值为8191即可,此时扬声器将不会发声。

对于不同的分频系数,加载不同的初始值即可。

用加载初始值而不是将分频输出译码反馈,可以有效地减少本设计占用可编程逻辑器件的资源,也是同步计数器的一个常用设计技巧。

2、控制音长的节拍发生器该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为1拍。

将1拍的时长定为0.25秒,则只需要再提供一个4Hz的时钟频率即可产生1拍的时长,演奏的时间控制通过ROM查表的方式来完成。

对于占用时间较长的节拍,如全音符为4拍(重复4),2/4音符为2拍(重复2),1/4音符为1拍(重复1)。

3、总体框图:(如图1)图1总体框图说明:NOTETABS 相当于一个计数器,通过计数自动加1读MUSIC 模块里的值,然后通过MUXA 选择模块选择MUSIC 模块中不同的输出,TONETABA 模块根据MUXA 模块不同的输出选择相应的值,SPEAKERA 模块根据TONETABA 的输出对12MHZ 的时钟信号进行分频,从而得到相信的频率输出发出声音(音调),从而实现播放不同的歌曲。

四、程序设计:1、NOTETABS 模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY NOTETABS IS PORT(CLK: IN STD_LOGIC;COUNTER1 :inout STD_LOGIC_vector(7 downto 0));END NOTETABS;ARCHITECTURE a OF NOTeTABs IS BEGIN P1:PROCESS (CLK,COUNTER1) BEGIN IF COUNTER1=183 THEN COUNTER1 <= "00000000"; ELSIF CLK'EVENT AND CLK='1' THEN COUNTER1 <= COUNTER1+1;END IF;END PROCESS;END a;创建符号:(如图2)图22、muxA模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY muxA ISPORT(a: I N STD_LOGIC_vector(3 downto 0);b:out STD_LOGIC_vector(3 downto 0);INDEX :OUT STD_LOGIC_vector(3 downto 0);Q1:IN STD_LOGIC_vector(3 downto 0);Q2:IN STD_LOGIC_vector(3 downto 0);Q3:IN STD_LOGIC_vector(3 downto 0);Q4:IN STD_LOGIC_vector(3 downto 0));END muxA;ARCHITECTURE a OF muxA ISBEGINPROCESS (a,Q1,Q2,Q3,Q4)BEGINCASE a ISWHEN "0001" =>b<="0001";INDEX<=Q1;WHEN "0011" =>b<="0010";INDEX<=Q2;WHEN "0010" =>b<="0011";INDEX<=Q3;WHEN "0110" =>b<="0100";INDEX<=Q4;WHEN OTHERS =>null;END CASE;END PROCESS;END a;创建符号:(如图3)图33、TONETABA模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TONETABA ISPORT(INDEX : IN STD_LOGIC_vector(3 downto 0);CODE : OUT STD_LOGIC_vector(3 downto 0);HIGH : OUT STD_LOGIC;TONE : OUT STD_LOGIC_vector(10 downto 0));END TONETABA;ARCHITECTURE a OF TONETABA ISBEGINSEARCH:PROCESS (INDEX)BEGINCASE INDEX ISWHEN "0000" => TONE <= "11111111111";CODE <= "0000";HIGH <= '0';--2047WHEN "0001" => TONE <= "01100000101";CODE <= "0001";HIGH <= '0';--773WHEN "0010" => TONE <= "01110010000";CODE <= "0010";HIGH <= '0';--912WHEN "0011" => TONE <= "10000001100";CODE <= "0011";HIGH <= '0';--1036WHEN "0101" => TONE <= "10010101101";CODE <= "0101";HIGH <= '0';--1197WHEN "0110" => TONE <= "10100001010";CODE <= "0110";HIGH <= '0';--1290WHEN "0111" => TONE <= "10101011100";CODE <= "0111";HIGH <= '0';--1372WHEN "1000" => TONE <= "10110000010";CODE <= "0001";HIGH <= '1';--1410WHEN "1001" => TONE <= "10111001000";CODE <= "0010";HIGH <= '1';--1480WHEN "1010" => TONE <= "11000000110";CODE <= "0011";HIGH <= '1';--1542WHEN "1100" => TONE <= "11001010110";CODE <= "0101";HIGH <= '1';--1622WHEN "1101" => TONE <= "11010000100";CODE <= "0110";HIGH <= '1';--1668WHEN "1111" => TONE <= "11011000000";CODE <= "0001";HIGH <= '1';--1728WHEN OTHERS => NULL;END CASE;END PROCESS;END a;创建符号:(如图4)图44、SPEAKERA模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY SPEAKERA ISPORT(CLK : IN STD_LOGIC;TONE : IN STD_LOGIC_vector(10 downto 0);SPKS : OUT STD_LOGIC);END SPEAKERA;ARCHITECTURE a OF SPEAKERA ISSIGNAL PRECLK : STD_LOGIC;SIGNAL FULLSPKS : STD_LOGIC;BEGINDIVIDECLK:PROCESS (CLK)V ARIABLE COUNT4 : STD_LOGIC_vector(3 downto 0);BEGINPRECLK <= '0';IF COUNT4>11 THENPRECLK <= '1';COUNT4:="0000";ELSIF CLK'EVENT AND CLK='1' THENCOUNT4:=COUNT4+1;END IF;END PROCESS ;GENSPKS:PROCESS (PRECLK,TONE)V ARIABLE COUNT11 : STD_LOGIC_vector(10 downto 0);BEGIN IF PRECLK'EVENT AND PRECLK='1' THEN IF COUNT11=16#7FF# THEN COUNT11:=TONE;FULLSPKS <= '1';ELSE COUNT11:=COUNT11+1;FULLSPKS <= '0';END IF;END IF;END PROCESS; DELAYSPKS:PROCESS (FULLSPKS)V ARIABLE COUNT2 : STD_LOGIC;BEGIN IF FULLSPKS'EVENT AND FULLSPKS='1' THENCOUNT2:=NOT COUNT2;IF COUNT2='1' THENSPKS <= '1';ELSESPKS <= '0';END IF;END IF;END PROCESS;END a;创建符号:(如图5)图55、MUSIC模块:Music1:liangzhu_rom(歌曲名:梁祝) WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN00: 3; 01: 3; 02: 3; 03: 3; 04: 5; 05: 5; 06: 5; 07: 6; 08: 8; 09: 8; 10: 8; 11: 9; 12: 6; 13: 8; 14: 5; 15: 5; 16:12; 17:12; 18:12; 19:15; 20:13; 21:12; 22:10; 23:12;24: 9;25: 9;26: 9;27: 9;28: 9;29: 9;30: 9;31: 0;32: 9;33: 9;34: 9;35:10;36: 7;37: 7;38: 6;39: 6;40: 5;41: 5;42: 5;43: 6;44: 8;45: 8;46: 9;47: 9;48: 3;49: 3;50: 8;51: 8;52: 6;53: 5;54: 6;55: 8;56: 5;57: 5;58: 5;59: 5;60: 5;61: 5;62: 5;63: 5;64:10;65:10;66:10;67:12;68: 7;69: 7;70: 9;71: 9;72: 6;73: 8;74: 5;75: 5;76: 5;77: 5;78: 5;79: 5;80: 3;81: 5;82: 3;83: 3;84: 5;85: 6;86: 7;87: 7;88: 6;89: 6;90: 6;91: 6;92: 6; 93: 6; 94: 5; 95: 6; 96: 8; 97: 8; 98: 8; 99: 9; 100:12; 101:12; 102:12; 103:10; 104: 9;105: 9;106:10;107: 9;108: 8;109: 8;110: 6;111: 5;112: 3;113: 3;114: 3;115: 3;116: 8;117: 8;118: 8;119: 8;120: 6;121: 8;122: 6;123: 5;124: 3;125: 5;126: 6;127: 8;128: 5;129: 5;130: 5;131: 5;132: 5;133: 5;134: 5;135: 5;136: 0;137: 0;138: 0;END;创建符号:(如图6)Music2:shengri_rom(歌曲名:生日快乐)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN00:13; 01:13; 02:13; 03:13;图604:13; 05:13; 06:13; 07:12; 08:12; 09:10; 10:10; 11:10; 12:10; 13:12; 14:12; 15:12; 16:12; 17:15; 18:15; 19:15; 20:15; 21:13; 22:13; 23:12; 24:12; 25:13; 26:13; 27:13; 28:13; 29:13; 30:13; 31:13; 32:13; 33:10; 34:10;35:10;36:10;37:12;38:12;39:13;40:13;41:12;42:12;43:12;44:12;45:10;46:10;47:10;48:10;49: 8;50: 8;51: 6;52: 6;53:12;54:12;55:10;56:10;57: 9;58: 9;59: 9;60: 9;61: 9;62: 9;63: 9;64: 9;65: 9;66: 9;67: 9;68: 9;69: 9;70: 9;71:10;72:10;73:12;74:12;75:12;76:12;77:12;78:12;79:13;80:13;81:10;82:10;83:10;84:10;85: 9;86: 9;87: 9;88: 9;89: 8;90: 8;91: 8;92: 8;93: 8;94: 8;95: 8;96: 8;97:12;98:12;99:12;100:12;101:12;102:12;103:10;104:10;105: 9;106: 9;107: 8;108: 8;109: 6;110: 6;111: 8;112: 8;113: 5;114: 5;115: 5;116: 5;117: 5;118: 5;119: 5;120: 5;121: 5;122: 5;123: 5;124: 5; 125: 0; 126: 0; 127: 0; END;创建符号:(如图7)Music3:yydcb_rom(歌曲名:隐形的翅膀)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN00: 10; 01: 10; 02: 12; 03:12; 04:15; 05:15; 06:15; 07:15; 08:15; 09:15; 10:15; 11:15;12:15;13:15;14:15;15:15;16:13;17:13;18:12;19:12;20:13;21:13;22:15;23:15;24:10;25:10;26: 9;27: 9;28: 8;29: 8;30: 8;31: 8;32: 8;33: 8;34: 8;35:8;36: 8;37: 8;38:15;39:15;40:15;41:15;42:13;43:13;图744:12; 45:12; 46:10; 47:10; 48:9; 49:9; 50: 8; 51: 9; 52: 9; 53: 9; 54: 9; 55: 9; 56: 9; 57: 9; 58: 9; 59: 9; 60: 10; 61:10; 62:12; 63:12; 64:15; 65:15; 66:15; 67:15; 68:15; 69:15; 70:15; 71:15; 72:15; 73:15;74:15;75:15;76:13;77:13;78:12;79:12;80:13;81:13;82:15;83:15;84:10;85:10;86:9;87:9;88: 8;89: 8;90: 8;91: 8;92: 8;93: 8;94: 8;95: 8;96: 8;97: 8;98:15;99:15;100:15;101:15;102:13;103:13;104:12;105:12;106:10;107:10;108: 9;109: 9;110: 8;111: 8;112: 8;113: 8;114: 8;115: 8;116: 8;117: 8;118: 8;119: 8;120: 10;121:10;122:12;123:12;124:15;125:15;126:15;127:15;128:15;129:15;130:15;131:15;132:14;133:14;134:14;135:14;136:13;137:13;138:12;139:12;140:13;141:13;142:15;143:15;144:10;145:10;146:9;147:9;148:8;149:8;150:8;151:8;152:8;153:8;154:8;155:8;156:8;157:8;158:15;159:15;160:15;161:15;162:13;163:13;164:12; 165:12; 166:10; 167:10; 168:9; 169:9;170:9;171:9;172:9;173:9;174:9;175:9;176:8;177:8;178:8;179:8;180:8;181:8;182:8;183:8;END;创建符号:(如图8)Music4:yijianmei_rom(歌曲名:一剪梅) WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN00: 6; 01: 6; 02: 6; 03: 6; 04:10; 05:10; 06:10; 07:10; 08:10;09:10;10: 9;11: 8;12: 7;13: 7;14: 8;15: 8;16: 7;17: 7;18: 5;19: 5;20: 6;21: 6;22: 6;23: 6;24: 6;25: 6;26: 6;27: 6;28: 6;29: 6;30: 6;31: 6;图832: 6; 33: 9; 34: 6; 35: 6; 36: 6; 37: 7; 38: 7; 39: 7; 40: 7; 41: 7; 42: 7; 43: 6; 44: 8; 45: 9; 46: 9; 47: 9; 48: 9; 49:10; 50:12; 51:10; 52: 9; 53:10; 54:10; 55:10; 56:10; 57:10;58:10;59:10;60:10;61:10;62:10;63:10;64:10;65:10;66:10;67:10;68:12;69:13;70:13;71:13;72:13;73:13;74:13;75:12;76:10;77: 9;78: 9;79: 9;80: 9;81: 9;82: 9;83: 8;84: 9;85:10;86:10;87:10;88:10;89:10;90:10;91: 9;92:10;93: 6;94: 6;95: 6;96: 6;97: 6;98: 6;99: 6;100: 6;101: 7;102: 7;103: 7;104: 6;105: 5;106: 5;107: 7;108: 7;109: 0;110: 0;111: 5;112: 3;113: 7;114: 7;115: 8;116: 7;117: 6;118: 6;119: 6;120: 6;121: 6;122: 6;123: 6;124: 6;125: 6;126: 6;127: 6;128: 6;129: 0;130: 0;131: 0;END;创建符号:(如图9)五、编译及仿真仿真软件使用的是MAX PLUS II ,Max+plus Ⅱ是Altera 公司提供的FPGA/CPLD 开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。

相关文档
最新文档