1、设计课题:音乐演奏电路设计,行课节点安排,第一次课:以流水灯设计为例,学习并掌握QuartusII软件的实用,要求能够熟练建立工程(一律按“姓名首字拼音+学号”的格式命名),建立设计文件,进行波形仿真,引脚锁定及器件下载的步骤;第二次课:进行音乐演奏的原理性设计,能够建立数控分频器,并用逻辑开关控制发音音调;第三次课:进一步完善音乐演奏电路,增加查表文件,自动连续地发出预置的声音音调;第四次课:进一步完善,将简谱(曲谱可自定)转换成音符查表数据,加载节拍发生器,实现完整的音乐演奏电路设计。,课程设计要求,1. 设计一个乐曲硬件演奏电路,通过数字逻辑电路控制蜂鸣器演奏指定的乐曲(梁祝);2. 使
2、用数字电路实验板上的FPGA器件(EP1C3T144C8)作为硬件电路平台,使用板载的交流蜂鸣器作为发声元件;3. 在QuartusII环境下,将各单元电路按各自对应关系相互连接,构成乐曲硬件演奏电路,进行编译及仿真;4. 将设计下载到实验板上验证乐曲演奏的效果。,设计原理(1) -数控分频器部分,硬件电路的发声原理:声音的频谱范围约在几十到几kHz,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上喇叭就能发出相应频率的声音。乐曲发声原理:乐曲中的每一音符对应着一个特定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。 乐曲都是由一连串的音符组成,
3、因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在喇叭上连续地发出各个音符的音调。,设计原理(1),要准确地演奏出一首乐曲,仅仅让喇叭能够发声是不够的,还必须准确地控制乐曲的节奏(即乐曲中每个音符的发生频率及其持续时间)。因此,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能够连续演奏所需要的两个基本要素,不同的发音频率值决定了所发出的音符。,音符与频率关系对照表,一个基本的发声单元,按如下步骤完成发声单元设计,建立设计工程后,1、设计10分频器,并生成逻辑符号块;2、设计数控分频器,并生成逻辑符号块;3、添加一个LPM常数单元,为数控分频器提供分频预置数;4、用JK触发器实现一个2
4、分频器(即一个T触发器);5、添加输入及输出端口,并完成电路连接;6、编译;7、锁定引脚,时钟输入为Pin16(10MHz信号),蜂鸣器(喇叭)输出为Pin112;8、再次编译;9、器件下载。10、按分频预置数表格修改LPM常数单元的数值,重复编译、下载的步骤,体会不同的发音音符。,十分频器VHDL代码示例,数控分频器VHDL代码示例,本次课任务,在上述基本发生单元实现的基础上,用VHDL描述一个键控音调选择模块,能够通过5个逻辑开关控制,选择产生不同的音符声音(低、中、高音共21个)。音符频率请查阅实验书上的分频预置数表格;实质上就是描述一个具有5个输入端,11个输出端的查表译码器(分频数预置器)。,键控音调发生电路逻辑结构图,学习目标,LPM参数化常数单元的使用;将自己的VHDL描述生成为逻辑单元模块;调用自己设计的逻辑单元模块;通过顶层原理图方式组织多个模块为一个设计整体;一个工程下管理多个文件时,如何进行整体编译与调试(先哪个是顶层文件?)。,设计原理(2) -查表演奏部分,设计原理(3) -节拍发生器,简谱码部分,