EDA实验报告5_乐曲硬件演奏电路设计
eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计一、课程目标知识目标:1. 学生能够理解EDA乐曲硬件演奏电路的基本原理,掌握电路组成及各部分功能。
2. 学生能够描述常见电子元件在演奏电路中的作用,并运用相关知识分析电路性能。
3. 学生能够掌握编程软件及硬件设计工具,完成简单的EDA乐曲演奏电路设计。
技能目标:1. 学生能够运用所学知识,独立完成演奏电路的搭建与调试。
2. 学生能够通过编程软件,编写简单的乐曲程序,实现乐曲演奏。
3. 学生能够运用团队协作能力,共同解决演奏电路设计过程中遇到的问题。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子技术和音乐艺术的热爱,提高审美情趣。
2. 学生在学习过程中,养成积极探究、勇于创新的精神,增强实践操作能力。
3. 学生能够认识到科技与艺术的结合在生活中的应用,增强社会责任感和团队合作意识。
课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新思维和团队协作能力。
学生特点:本年级学生具备一定的电子技术基础知识,对音乐艺术有一定兴趣,好奇心强,善于动手实践。
教学要求:教师应注重理论与实践相结合,引导学生积极参与实践操作,鼓励学生创新思维,提高团队协作能力。
同时,关注学生的个体差异,因材施教,确保每位学生都能在课程中收获成长。
二、教学内容本课程教学内容主要包括以下三个方面:1. 理论知识学习:- 电路基础知识:回顾电路的基本概念、原理及电路图的识别。
- 电子元件介绍:学习常用电子元件的原理、功能及在演奏电路中的应用。
- EDA软件使用:介绍编程软件及硬件设计工具的使用方法,如Multisim、Proteus等。
2. 实践操作能力培养:- 电路搭建:学习演奏电路的搭建方法,熟悉各类电子元件的连接方式。
- 程序编写:编写简单的乐曲程序,掌握编程技巧,实现乐曲演奏。
- 调试与优化:对搭建的演奏电路进行调试,找出问题并进行优化。
3. 创新思维与团队协作:- 设计实践:运用所学知识,小组合作完成指定乐曲的演奏电路设计。
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课程设计---乐曲硬件演奏电路的VHDL设计

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计一、 设计题目:乐曲硬件演奏电路的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设计摘要可编程逻辑器件(简称PLD)是一种由用户编程来实现某种逻辑功能的新型逻辑器件,主要包括FPGA和CPLD两大类。
FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。
FPGA/CPLD最明显的特点是高集成度、高速度和高可靠性,其时钟延时可小至纳秒级,集合器并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。
在高可靠领域,如果设计的得当,将不会存在类似于MCU的复位不可靠和PC的可能跑飞等问题。
FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓的片上系统,从而大大的缩小的体积,易于管理和屏蔽。
硬件的乐曲演奏电路是用FPGA将50M 时钟进行分频,两路的分频分别产生节拍和音调。
随着时间的推移节拍计数信号会记录当前在乐谱中的位置,根据当前的位置会将音调控制的信号数组置成乐谱上的音调,挂载信号数组上面的音调发生器会产生相应的音调,其中为增加音乐的效果信号数组上挂载了一个8个LED控制器,不同的音调灯的亮灭的组合会各不同会产生看似随机的等组合实际灯亮的组合根据音调的确定是固定的。
此现场可编程门阵列的程序是演奏生日快乐的乐曲的。
下面会有他的乐谱。
关键词FPGA,CPLD, 乐曲演奏电路,音乐节拍发生器,音乐译码电路,可编程逻辑器件分频器。
- I -沈阳工程学院课程设计(论文)AbstractProgrammable logic devices (hereinafter referred to as PLD) is a kind of programming by the user to achieve a certain logic function of the new logic devices, including two kinds of FPGA and CPLD. FPGA and CPLD were field programmable gate array and complex programmable logic device referred to as. FPGA/CPLD the most obvious characteristic is high integration, high speed and high reliability, the clock time delay can be small to nanosecond level, collector parallel work way, in the ultra high speed applications and real-time measurement and control aspects has a very broad application prospects. In the field of high reliability, if the design is proper, there will not be similar to the MCU reset is not reliable and PC can be run problems such as fly. FPGA/CPLD high reliability as well as in almost the whole system can be download from the same chip, so as to realize the so-called chip system, thus greatly reduced volume, easy to management and shielding. The music of hardware circuit is playing with FPGA will fifty m clock for crossover, two-way crossover respectively produce rhythm and tone. With the passage of time beat count signal will record the current position of the music, according to the current position will tone control signal array set to music on the tones, mount signal array the tone generator can produce corresponding tones, the music to increase the effect of array signal on mount a eight LED controller, different tones lamp light out of the different combination will can produce a seemingly random combined the actual combination of light according to determine the tone is fixed. The field programmable gate array program is playing the music of happy birthday. Below will have his music.Keywords FPGA, FPGA, CPLD, music performance, music beat generator circuit, music decoding circuit, programmable logic devices frequency divider.- II -乐曲硬件演奏电路的EDA设计目录摘要 (I)ABSTRACT (II)1引言 (1)1.1EDA技术的发展 (1)1.2硬件描述语言的产生 (1)1.3VHDL语言特点 (1)1.4EDA的发展趋势 (1)2乐曲演奏系统设计原理分析 (3)2.1乐曲演奏基本要求 (3)2.2乐曲演奏原理 (3)3系统硬件设计 (6)3.1现场可编程门阵列(FPGA) (6)3.1.1 FPGA的基本结构 (6)3.1.2 Altera公司的FPGA (6)3.2FLEX系列的结构特点 (7)3.2.1 概述 (7)3.2.1 FLEX的特点 (7)4乐曲硬件演奏电路的VHDL实现 (8)4.1音乐节拍的生成 (8)4.2乐谱的生成 (8)4.3音调的生成 (10)4.4乐曲硬件演奏电路完整硬件电路程序设计和仿真 (11)总结 (16)致谢 (17)参考文献 (18)- III -乐曲硬件演奏电路的EDA设计1引言1.1EDA技术的发展人类社会已经进入到高度发达的信息化社会,信息社会的发展离不开电子产的进步。
乐曲硬件演奏电路的设计 EDA实验报告

乐曲硬件演奏电路的设计1.实验目的和要求本实验为设计性实验。
将VHDL硬件描述语言,简单组合电路逻辑QuartusII 的使用等知识应用到实际硬件电路设计中。
其目的是学会在EDA软件平台中利用VHDL硬件描述语言设计电路.设计要求利用数控分频器设计乐曲硬件演奏电路。
2.实验原理与利用微处理器(CPU或MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
本实验设计项目是“梁祝”乐曲演奏电路的实现。
我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。
乐曲硬件演奏电路的顶层文件原理图如图5-1所示,主系统由3个模块组成:NoteTabs.vhd、ToneTaba.vhd和Speakera.vhd。
其中,模块U1(NoteTabs)类似于弹琴的人的手指;模块U2(ToneTaba)类似于琴键;模块U3(Speakera)类似于琴弦或音调发声器。
图5-1 乐曲硬件演奏电路的顶层文件原理图下面介绍图5-1的工作原理:1、音符的频率可以由图4-1中的Speakera获得,这是一个数控分频器。
由其clk端输入一具有较高频率(这里是12MHz)的信号,通过Speakera分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。
Speakera对clk输入信号的分频比由11位预置数Tone[10..0]决定。
SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone[10..0] 与SPKOUT的输出频率,就有了对应关系。
例如在TONETABA模块中若取Tone[10..0]=1036,将发音符为"3"音的信号频率。
eda乐曲演奏电路设计

eda乐曲演奏电路设计
设计一个eda乐曲演奏电路可以分为以下几个步骤:
1. 选择音频输入设备:首先需要选择合适的音频输入设备,如麦克风或乐器接口,用于将音频信号输入到电路中。
2. 音频信号处理:接下来,需要对音频信号进行处理,以便对其进行分析和控制。
可以使用模拟或数字信号处理技术来实现这一步骤。
3. 音符检测与转换:将处理后的音频信号输入到音符检测模块中,以检测出演奏中的音符和音高。
可以使用算法(如傅里叶变换)来实现音符检测,并将检测结果转换成数字形式,以便后续处理。
4. 控制信号生成:根据检测到的音符和音高,产生相应的控制信号。
可以使用模拟电路或数字信号处理器(DSP)来实现这一步骤。
5. MIDI信号输出:将控制信号转换成MIDI(Musical Instrument Digital Interface)格式的信号,以便将其与其他MIDI设备或乐器连接起来。
可以使用MIDI编码/解码器芯片实现这一步骤。
6. 音乐合成与演奏控制:利用MIDI信号控制MIDI设备或乐器,实现乐曲的合成与演奏。
可以使用MIDI合成器,MIDI 乐器模块或其他合成器设备来实现这一步骤。
在整个设计过程中,需要考虑信号处理的实时性、音质、精度等因素,并根据具体需求进行优化和调整。
电子课程设计 EDA课程设计 乐曲硬件演奏电路

电子课程设计——乐曲硬件演奏电路设计学院太原科技大学华科学院专业、班级电子信息工程姓名学号指导教师2011年12月目录一、设计任务与要求 (3)二、总框体图 (3)三、选择器件 (4)四、功能模块 (4)1、音乐数据模块 (4)2、音符控制输出模块 (7)3、音符译码模块 (8)4、数控分频器模块 (11)5、分频器模块 (12)6、译码模块 (13)五、总体设计电路图 (15)1、总体电路原理图 (15)2、管脚分配图 (15)3、电路仿真结果 (15)4、硬件验证 (16)六、设计心得 (17)七、附录 (19)乐曲硬件演奏电路设计一、设计任务与要求:1、实验内容利用可编程逻辑器件FPGA,设计乐曲硬件演奏电路,可自动演奏乐曲。
2、实验要求(1)利用数控分频器设计硬件乐曲演奏电路。
(2)利用给定的音符数据定制ROM“music”。
(3)设计乘法器逻辑框图,并在QuartusII上完成全部设计。
(4)将音乐通过实验箱上的喇叭播放出来。
(5)与演奏发音相对应的简谱码输出在数码管上显示。
二、总体框图设计思路:C调音阶频率表:同的预置数即可发出不同频率的声音。
由此,可以以此为设计基础。
设计一功能模块,能够将乐曲中的音符逐一以对应的频率以预置数的形式置入数控分频计中,即可利用该数控分频计产生不同的声音,演奏出设定好的音乐。
ROM中的音乐数据文件刚可由编辑好的音符填入MIF文件中再定制LPM_ROM将音符数据加载入ROM中,并设计程序在运行时自动读取ROM中的文件并置入数控分频器中。
当采用四四拍曲子时,每节拍持续时间为0.5秒。
置入数控分频器的速度也应与此同步或一致,避免音乐过快或过快慢而失真。
由已知的C调音阶频率表,各频率对应的预置数就与数控分频推动蜂鸣器发出声音的频率对应。
在编写数控分频器时,不仅要考虑预置数的输入方式,还要考虑输入的速度,以及驱动蜂鸣器发声的频率。
为了显示高音音调,可在音符预置数的译码过程中,同时译出高音音阶的信号,并利用LED灯输出信号。
EDA硬件乐曲演奏电路设计梁祝两只老虎

编号:EDA综合设计实验报告课题:硬件乐曲演奏电路设计专业:智能科学与技术学生姓名:黎良贵学号: 12008502112014 年11 月30 日一、概述:硬件乐曲演奏电路顶层模块图如图1-1所示,电路图由11个子模块组成,能够实现:(1)梁祝乐曲的自动演奏;(2)键盘弹奏歌曲;(3)ROM中能存两首歌曲,并能手动选歌。
二、实验原理:①音符的频率可以由图1-1中的SPKER获得。
这是一个数控分频器。
由其CLK端输入一具有较高频率(1MHz)的时钟,通过SPKER分频后,经由D触发器构成的分频电路,由SPK_KX口输出。
由于直接从分频器中出来的输出信号是脉宽极窄的信号,为了有利于驱动扬声器,需另加一个D触发器分频以均衡其占空比,但这时的频率将是原来的1/2。
SPKER对CLK输入信号的分频比由输入的11位预置数TN[10..0]决定。
SPK_KX的输出频率将决定每一音符的音调;这样,分频计数器的预置值TN[10..0] 与输出频率就有了对应关系,而输出的频率又与音乐音符的发声有对应关系,例如在F_CODE模块中若取TN[10..0]=11'H40C,将由SPK_KX发出音符为“3”音的信号频率。
②音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定,图1-1中模块F_CODE的功能首先是为模块SPKER(11位分频器)提供决定所发音符的分频预置数,而此数在SPKER输入口停留的时间即为此音符的节拍周期。
模块F_CODE是乐曲简谱码对应的分频预置数查表电路,每一音符的停留时间则由音乐节拍和音调发生查表模块MUSIC中简谱码和工作时钟inclock的频率决定,在此为4Hz。
这4Hz频率来自分频模块FDIV,模块MUSIC是一个LPM_ROM。
它的输入频率来自锁相环PLL20的2kHz输出频率。
而模块F_CODE的14个值的输出由对应于MUSIC模块输出的q[3..0]及4位输入值INX[3..0]确定,而INX[3..0]最多有16种可选值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA技术与应用实验报告
姓名学号专业年级电子信息工程
实验题
目
乐曲硬件演奏电路设计
实验目的1.学习利用数控分频器设计硬件乐曲演奏电路
2.掌握模块化和层次化的设计方法以及音符编码的设计思想
实验原理1.一定频率的矩形波通过扬声器可以发出相应频率的声音,乐曲是由一系
列的音符组成的。
所以,如果我们通过控制每个音符的发音频率值及其持续的时间,就可以以纯硬件的手段,利用这些数值来实现所希望演奏的乐曲。
2.该硬件演奏电路由三个模块构成
<1>音符数据ROM的地址发生器模块NoteTabs.vhdl
内置8位二进制计数器,作为ROM的地址发生器,计数频率4Hz,即每一计数值的停留时间为0.25s,恰为全音符设为1s时,四四拍的4音符持续时间。
随着NoteTabs中的计数器按4Hz的时钟速率作加法计数即地址值递增时,ROM中的音符数据将通过ToneIndex[3..0]输向ToneTaba模块,乐曲即开始演奏起来。
<2>乐曲简谱码对应的分频预置数查表电路模块ToneTaba.vhdl
ToneTaba为Speakera提供决定所发音符的分频预置数,此数在Speakera输入口停留的时间即为此音符的节拍值。
输入Index[3..0]可确定乐曲全部音符所对应的分频预置数(13个)每一音符的停留时间由NoteTabs模块的clk决定(4Hz)。
<3>决定每一个音符音调的数控分频器模块Speakera.vhdl
输入端clk输入一较高频率(12MHz)的信号,经Speakera分频,再经2分频以展宽脉冲后,由SpkOut输出。
11位预置数Tone[10..0]决定由clk输入信号的分频比,SpkOut输出的频率决定每一音符的音调。
实验内容1.定制存放LPM-ROM模块Music,在连续地址上存放乐曲的音符数据,
2.用vhdl文本输入法和元件例化语句完成NoteTabs.vhdl的设计,该模
块包含音符数据ROM模块Music.vhdl
3.完成ToneTaba.vhdl的设计,此模块给数控分频模块提供每个音符所对
应的分频预置数,即计数初值
4.完成Speakera.vhdl的设计,该模块是一个初值可变的加法计数器。
该
计数器的模为2047,当计数器记满时,计数器产生一个溢出信号FULL,此溢出信号就是用作发音的频率信号
5.用vhdl文本输入法和元件例化语句完成硬件演奏电路顶层文件
play_song.vhdl的设计,编译、仿真,选用杭州康芯电子有限公司生产的 GW48系列EDA实验箱和Altera公司生产的FPGA芯片Cyclone 的EP1C6Q240C8,引脚锁定,下载到FPGA上进行硬件测试
实验步骤1.定制ROM模块,生成Music.vhdl地址文件,以存储乐曲演奏数据
2.输入NoteTabs.vhdl,编译、仿真,给出时序波形
3.输入ToneTaba.vhdl,编译、仿真,给出时序波形
4.输入Speakera.vhdl,编译、仿真,给出时序波形
5.建立硬件演奏电路顶层文件play_song.vhdl,将以上4个vhdl文件拷
贝进顶层文件所在目录,用元件例化语句和层次化设计方法,完成乐曲硬件演奏电路的设计,编译、仿真,给出时序波形,引脚锁定并下载进FPGA进行硬件测试
实验结果及分析vhdl文本输入法时序仿真波形
1.由音符数据地址发生模块的仿真波形NoteTabs.sim可知,随NoteTabs
中的计数器按输入时钟clk作加法计数,即随ROM地址值的递增,ROM 中的音符数据将从ToneIndex[3..0]中输出。
2.由分频预置数查表电路模块的仿真波形ToneTaba.sim可知,由
Index[3..0]译码输出分频预置数,并通过Tone[10..0]输出给
Speakera模块。
与演奏发音相对应的简谱码由CODE通过数码管输出显示,HIGH1显示高八度音。
3.由数控分频器模块的仿真波形Speakera.sim可知,由Tone[10..0]输
入的分频预置数将clk输入的一较高频率(12MHz)的时钟信号进行分频,得到不同频率的输出FullSpkS,由于FullSpkS直接由数控分频器输出,是脉冲极窄的脉冲式信号,经内部增加一个D触发器后,可以得到展宽脉冲后的SpkS。
4.由乐曲硬件演奏顶层文件的仿真波形play_song.sim可知,SpkOut是
经SpkS的最终的输出,决定所发出的每一音符的音调。
音符不同,SpkOut 的脉宽也不同,通过扬声器发出的声音也不同,因而可以演奏音乐,得到预期的效果。
5.乐曲演奏时,简谱码可以在数码管上同步显示出来,同时HIGH1对应的
LED灯随高低音的不同,亮灭情况也不同,实验结果符合预期。
实验过程中所遇到的问题及相应的解决方法1.刚开始实验用的是KHF-4型的实验箱,需要将晶振频率为22.1184Hz
的时钟信号进行分频,以得到NoteTabs模块和Speakera模块所需的4Hz和12MHz的输入时钟,并将简谱码通过译码输出到数码管上显示。
然而在实验箱测试后却得不到预期的结果,HIGH1所对应的LED灯恒亮,蜂鸣器发出持续的高音。
检查Speakera的时序仿真波形,输出SpkOut 是持续的低电平,而不是脉宽不一的方波。
2.多次尝试没有结果后,决定换杭州康芯电子有限公司生产的 GW48系列
EDA实验箱,该实验箱有8个译码输出显示的数码管,和可选的多个时钟输入端,这样可以省去译码和分频电路。
引脚锁定,硬件下载测试后,蜂鸣器可以正常放出预置的乐曲。
3.之后对Speakera模块的仿真文件反复揣摩,多次改变输入的频率,并
设定不同的分频预置数,终于可以看到SpkOut输出脉宽不一的方波信号,对于顶层文件用相同的方法,亦可以得到预期的输出。
4.个人认为,之前在KHF-4型实验箱测试的时候,应该是分频模块的问题。
经22.1184MHz分频输出的频率不满足该硬件演奏电路所需要的时钟输入。
NoteTabs模块的输入时钟clk_8Hz(实为4Hz)决定了每一音符在Speakera输入端停留的时间,而Speakera的输入时钟clk_12MHz决定了每一音符的音调。
如果时钟偏差过大,将会导致时许错乱,如音符在Speakera输入端停留的时间过长或过短,数控分频输出的脉冲过宽或者过窄,这都直接影响音乐的正常播放。
5.在梁祝乐曲演奏成功后,换了一首歌you_and_me,但问题也接踵而至。
<1>首先在定制LPM_ROM模块时,得到的.bsf元件输入端口跟定制梁祝乐曲ROM时的端口不一致了,在NoteTabs模块中用了元件例化语句,因此编译不成功。
重新命名端口后,再次编译,问题解决。
<2>其次,在mif文件you_and_me.mif中,depth = 280,而梁祝的为256,即每一字节的宽度为8bit,结果编译报错。
于是我把you_and_me 的mif文件的地址音符数据去掉后面一部分,使得depth = 256。
虽然一首歌不再完整,但在定制LPM_ROM的时候不必增加额外的地址开销,同时省去了大幅度修改vhdl代码的工作。
附录
(原理
图或
VHDL
代码)
1.顶层文件play_song.vhdl
2.数控分频器Speakera.vhdl
3.音符地址发生器NoteTabs.vhdl
4.分频预置数模块ToneTaba.vhdl
5.乐曲演奏数据you_and_me.mif。