FPGA硬件电子琴电路设计实验报告

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

FPGA实验报告

题目:硬件电子琴电路设计

一.实验目的:学习利用数控分频器设计硬件电子琴实验。

二.实验原理及内容:主系统由3个模块组成,顶层设计文件中包含三个功能模块,和,。

模块ToneTaba是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code 输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。

模块Speakera中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speakera由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。

增加一个NoteTabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在NoteTabs模块放置一个乐曲曲谱真值表,由一个计数器的计数值来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。

图1 硬件电子琴电路结构

三.实验步骤.

1.在QUARTUSII软件下创建一工程,工程名为songer,芯片名为EP2C35F672C6;

2.输入数控分频器程序并命名为,保存与工程相同的文件夹中。

其功能仿真波形和时序仿真波形分别如下:

3.输入音阶发生器程序并命名为,保存与工程相同的文件夹中。

4.输入27分频程序并命名为,保存与工程相同的文件夹中。

5.输入50分频程序并命名为,保存与工程相同的文件夹中。

其功能仿真波形和时序仿真波形分别如下:

6.建立梁祝乐曲演奏数据的MIF文件。

WIDTH = 4 ; 入程序并命名为,保存与工程相同的文件夹中。

8.输入硬件演奏电路顶层设计文件并命名为,保存与工程相同的文件夹中。

9.锁定引脚后重编译并进行下载。

四.思考题.

1.电路上应该满足哪些条件,才能用数字器件直接输出的方波驱动扬声器发声

答:(1)输出的频率在扬声器的工作范围之内(扬声器的工作频率范围一般是能听见的声波);(2)驱动电流能够驱动扬声器。

2.如果演奏其他乐曲,程序应做哪些方面的改动

答:程序应将mif文件改掉以及ToneTaba和NoteTabs做一些响应的小改变。

五.实验报告要求:用仿真波形和电路原理图,详细叙述硬件电子琴的工作原理及其3个Verilog文件中相关语句的功能,叙述硬件实验情况。

答:(1)①在数控分频器模块中,在时钟上升沿触发always模块,如果count4>11,则使PreClk,Count4赋值为1,否则使PreClk赋值为0,Count4加1,用第一个always 模块产生的PreClk上升沿做触发条件,如果count11>11’h7FF,则使Count11赋值为Tone,FullSpkS赋值为1,否则使Count11加1,FullSpkS为0;第二个always模块产生的FullSpks上升沿做触发条件,每遇到一个上升沿让count2翻转一次,如果count2为1,扬声器发出声音,否则不发。

②在分频模块中,用27MHz分频产生占空比为50%的4Hz时钟,在27MHz时钟的上升沿

触发,如果count计数达到3374999,将count赋为0,并将Q2翻转,否则继续计数。

用50MHZ的输入频率接入并进行分频得。

③在NoteTabs模块中,用Clk上升沿或 reset下降沿做触发条件,如果reset为0,

则将计数器置0.当计数到138时,Counter清0,否则继续计数。调用Music模块发音。(2)原理:用mif文件将梁祝乐曲的曲谱、节拍和音调存储在内存中,再结合程序将乐谱的每一个值按一定频率、音调、节拍读出来,在DE2电路板上接扬声器便能听到有音乐出来,频率是我们利用分频模块设置的频率。这是一个纯硬件的乐曲自动演奏电路。

(3)实验情况:将每个模块进行仿真,得到相应的波形图,与预想的结果一样,但顶层的设计必须与每个模块连接在一起,将程序下载到DE2板上后接上扬声器能听到很清楚且速度很适宜的梁祝音乐。

相关文档
最新文档