Verilog hdl—简易电子琴设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北文理学院
简易电子琴设计
专业:自动化
学号:2012118064
姓名:一天虹影
实验目的
使用VerilogHDL语言进行前端设计,并使用Quaruts软件在GW48-PK2实验上实现仿真,实现硬件电子琴。电子琴要求有8个音阶,使用外部时钟信号3MHz,能同步显示音阶。
设计要求
1、设计一个简易电子琴。要求能演奏的音域为D调的do到E调do。
2、用GW48-PK2中的8个按键作为琴键。
3、 GW48-PK2中有蜂鸣器。
4、可以使用GW48-PK2上的12MHz作为输入时钟信号
设计思路
通过可编程逻辑器件(PLD)和VHDL硬件描述语言来实现电子琴的基本要求。设计的主体是数控分频器,对输入的频率按照与每个音阶对应的分频系数进行分频,得到各个音阶对应的频率分别在蜂鸣器和数码管上以声音和频率数值的形式作为输出。
设计组成与原理
下图为系统的工作原理框图。
模块设计
1. 音名与频率的关系
音乐的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音。灵位,音符A (简谱中的低音6)的频率为440HZ ,音符B 到C 之间、E到F之间为半音,其余为全音。由此可以计算出简谱中所有的音符的频率,在这我们只需计算出中音1到高音1的频率即可。如下所示:
表一 简谱音名与频率的对应关系
由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由
分频置 数
按 键
分 频
器
12MHZ
蜂 鸣 器
数码管显示
于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素,在尽量减少频率误差的前提下取合适的时钟频率。本实验要求用12MHZ的时钟脉冲信号,所以不必考虑这方面的因素。实际上,只要各个音符间的相对频率关系不变,弹奏出来的音调听起来是不会走调的。
2.分频系数与初始值(预置数)
本例设计的音乐电子琴选取12MHZ的系统时钟频率。在数控分频器模块中,由于数控分频器输出的波形是脉宽极窄的脉冲波,为了更好地驱动扬声器发生,减少输出的偶次谐波分量,在到达扬声器之前需要均衡占空比,从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频,频率变为原来的二分之一,即6MHZ。
因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为523.3HZ,它的分频系数应该为:
Divider=6MHz/523.3=6*106 /523.3=11466
至于其他音符,同样由上式求出对应的分频系数,这样利用程序可以轻松地得到相应的乐声。各音名对应的分频系数如下表:
表二各音名对应的分频系数
由于最大的分频系数为11466,故采用14位二进制计数器已能满足分频要求。将分频系数设为0,其初始值为16383(214 -1 )即可,此时扬声器不会发声。对于不同的分频系数,加载不同的初始值即可。本实验参考王金明:《Verilog HDL程序设计教程》,采用差值法进行分频。把差值作为初始值,为不同音阶的发声的来源。各音名对应的初始值如下表:
表三各音名对应的初始值
3.数控分频器
数控分频器是对基准频率进行分频,得到与各个音阶对应的频
率输出。数控分频模块是由一个初始值可变的14位加法计数
器构成,该计数器的模为214=16384,当计数器记满时,产生
一个进位信号,该信号就是用作发音的频率信号。其分为预分
频和脉冲展宽两部分。
a)预分频
assign preclk=(divider==16383)?1:0;
always@(posedge clk)
begin
if(preclk)
divider=origin;
else
divider=divider+1;
end
b) 脉冲展宽(二分频)
always@(posedge preclk)
begin
speaker=~speaker;
目的是将预分频产生的占空比很小的波形进行拓宽,使得波形有足够长的高电平来驱动扬声器。
实验仿真
(一)测试使用的仪器与软件
仪器
康芯GW48系列EDA设备-----GW48-PK2
实验电路图和适用范围:本实验适用模式3,其结构
图如下
CLOCK9CLOCK5CLOCK2CLOCK0实验电路结构图
NO.3
译码器
译码器译码器译码器译码器译码器译码器译码器D9
D16D15D14D13D12D11D10
D8D7D6D5D4D3D2D1PIO8
PIO9
PIO10
PIO11
PIO12
PIO13
PIO14
PIO15
S P E A K E R
扬声器
1
2
3
4
5
6
7
8
目标芯片
FPGA/CPLD PIO0
PIO1PIO2PIO3PIO4PIO5PIO6PIO7键1
键2键3键4键5键6键7键8PIO15-PIO8PIO47-PIO44
PIO43-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16
1.Altera 公司的Cyclone 系列的EP2C5T144C8芯片
2.康芯教学实验箱