硬件电子琴电路模块设?/p>
一、实验目的:
学习利用数控分频器设计硬件电子琴实验?/p>
二、实验原理:
实验?/p>
FPGA
实现乐曲的播放原理:
?/p>
分四?/p>
1
、将待播放的《梁祝》音乐音符存?/p>
ROM
2
、以
4HZ
频率读取
ROM
3
、根?/p>
1MHZ
的内部时钟要求,将读出的音符换算成应计数的数?/p>
4
、以
1MHZ
为内部时钟,实现符合要求的方波信号?/p>
?/p>
1
硬件电子琴电路结?/p>
主系统由五个模块组成?/p>
songer.v
是顶层设计文件,其内部有五个功能模块(如?/p>
1
所
示)
?/p>
Speakera.v
?/p>
ToneTaba.v
?/p>
NoteTabs.v
?/p>
div_50_12M.v,div_50_4HZ.v
?/p>
模块
ToneTaba
是音阶发生器,当
8
位发声控制输?/p>
Index
中某一位为高电平时,则?/p>
应某一音阶的数值将从端?/p>
Tone
输出?/p>
作为获得该音阶的分频预置值;
同时?/p>
Code
输出?/p>
应该音阶简谱的显示数码,如
??/p>
,并?/p>
High
输出指示音阶?/p>
8
度显示?/p>
模块
Speakera
中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器?/p>
成,当模?/p>
Speakera
由端?/p>
Tone
获得一?/p>
2
进制数后,将以此值为计数器的预置数,对端
?/p>
Clk12MHZ
输入的频率进行分频,之后?/p>
Spkout
向扬声器输出发声?/p>
增加一?/p>
NoteTabs
模块用于产生节拍控制?/p>
Index
数据存留时间)和音阶选择信号,即
?/p>
NoteTabs
模块放置一个乐曲曲谱真值表?/p>
由一个计数器的计数值来控制此真值表的输出,
而由此计数器的计数时钟信号作为乐曲节拍控制信号,
从而可以设计出一个纯硬件的乐曲自
动演奏电路?/p>
div_50_12M.v
是由于实验板上,只有
50MHZ
有源晶振,故将用
50MHZ
进行分频实现
12.5MHZ
的时钟,在后续模?/p>
Speakera.v
中再分频得到近似
1MHZ
时钟?/p>
div_50_4HZ.v
是用系统需?/p>
4HZ
频率?/p>
ROM
,于是用
50MHZ
,分频得?/p>
4HZ
频率?/p>
