FPGA课程设计_第1页
FPGA课程设计_第2页
FPGA课程设计_第3页
FPGA课程设计_第4页
FPGA课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.FPGA 课程设计报告题目: 简易电子琴设计及FPGA功能验证院系:电子工程学院专业班级:学生姓名:导师姓名:黄海生起止时间: 2012-6-18至 2012-6-292012 年6 月 29 日.目录1.任务 .22.目的 .23.使用环境 .24.FPGA 课程设计详细内容 .24.1技术规范 .24.1.1总体描述 .24.1.2结构框图 .错误 ! 未定义书签。4.1.3引脚描述 .错误 ! 未定义书签。4.1.3应用范围 .54.2设计方案 .54.2.1顶层方案设计 .54.2.2顶层模块程序 .74.3功能验证方案及源程序 .74.3.1按键输入控制模块方案设计及源程序 .74

2、.3.2控制模块方案设计及源程序 .84.3.3LCD 驱动模块方案设计及源程序 .114.4电路设计及功能仿真报告 .304.5综合及布局布线报告和引脚分布报告 .214.6硬件测试结果报告 .215.课程设计的心得体会 .226.参考资料 .22.1 任务:a、设计一个简单电子琴。 (内置 24 首简单音调曲)b、用 FPGA 开发板的按键可选择演奏内置曲调,用数码管显示当前演奏的哪个演奏曲目或停止。c、要求电子琴具有自主选择,自动播放所选曲目或停止曲目。2 目的:a、在掌握计算机组成原理理论相关的基础上,了解EDA 技术,掌握Verilog HDL 硬件描述语言的设计方法和思想,通过学习

3、的 Verilog HDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识;b、深入学习 Verilog H DL 、FPGA,了解其编程环境;c、学会运用 Modelsim 和 Quartus II 等编程仿真软件;d、将硬件语言编程与硬件实物功能演示相结合,加深理解 Verilog HDL 、FPGA 的学习;3 使用环境(软件 /硬件环境,设备等 )软硬件环境:软件: Quartus II 7.2, Modelsim6.1;硬件环境: DEII 开发板;设备: PC 一台, USB 下载线, FPGA 开发板及电源。在 EDA 软件平台上,根据硬件描述语言 Verilog 完

4、成的设计文件,自动的完成逻辑编译、化简、分割、综合及优化、布局布线、仿真、目标芯片的适配编译、逻辑映射和编程下载等工作。Verilog HDL 语言,用 Modelsim 进行前仿真,以及代码的生成,验证程序验证,也可进行综合。用Quartus II 进行后仿真。4 FPGA 课程设计详细内容4.1 技术规范4.1.1 原理简易电子琴的设计通过软硬件结合实现, 硬件系统包括主控制器芯片、 LED 、蜂鸣器等,软件资源包括编写 Verilog HDL 程序的应用软件 Modelsim 和仿真软件 Quartus II。电子琴有自动播放功能。播放功能中有三首曲子。 程序共有六个模块, 分别为主模块

5、、 数码管显示模.块、分频模块、计数器模块、存储器模块、音频输出模块。硬件实现是用一个数码管显示当前播放的曲目,另外四个按键key1、key2 用来选择曲目。通过主模块调用各模块实现电子琴的功能。乐曲演奏的原理:乐曲演奏的原理:组成乐曲的每个音符的频率值 (音调 )以及持续时间(音长)是乐曲能持续演奏所需的两个基本数据, 因此只要控制输出到扬声器的激励信号的频率的高低和持续的时间,就可以使扬声器发出持续的乐曲声。音调的控制频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音 1 与高音 1)之间的频率相差一倍。在两个八度音之间,又可分为十二个半音,每半个音的频率比为。

6、另外,音名 A(简谱中的低音 6)的频率为 440HZ ,音名 B 到 C 之间, E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 1 至高音 1 之间的每个音名对应的频率如图所示 :音名频率 (HZ)音名频率 (HZ)音名频率 (HZ)低音 1261.6中音 1523.3高音 11046.5低音 2293.7中音 2587.3高音 21174.7低音 3329.6中音 3659.3高音 31318.5低音 4349.2中音 4698.5高音 41396.9低音 5392中音 5784高音 51568低音 6440中音 6880高音 61760低音 7493.9中音 7987.

7、8高音 71975.5所有不同频率均从同一基准频率分频得到。将分频数四舍五入进行取整,并尽量减小误差。在本设计中选取5MHZ 作为基准频率。从下表中可以看出最大分频系数为 11468 ,采用 14 位二进制计数器分频可满足要求。此外还应给出预置数,对应不同的预置数,只需加载不同的预置数即可。采用加载预置数实现分频的方法比采用反馈复零法节省资源,实现起来更加容易。音名分频比预置数音名分频比预置数音名分频比预置数低音 195576826中音 1477711606高音 1238913994低音 285127871中音 2425712126高音 2212814255低音 375858798中音 337

8、9212591高音 3189614487低音 471599224中音 4357912804高音 4179014593低音 5637810005中音 5318913194高音 5159414789低音 6568210701中音 6284113524高音 6142014963低音 7506211321中音 7253113852高音 7126615117.音长的控制音符的持续时间须根据音乐的速度及每个音符的节拍数来确定。如果设定全音符的持续时间为 1S 的话,假设产生4 分音符,则产生四分频即可实现四分音符的时长,并提供4HZ 分频器。 如图为乐曲演奏的原理图,其中, 乐谱产生电路用来控制音乐的音调

9、和时长。控制音调通过设置计数器的预置数来实现,预置不同的数值会可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数的停留时间越长,则该音符的演奏时间越长,如2 分音符,在记谱时将该音符记录两次即可。4.1.2 总体方案本次设计课程的目的是让我们在学习 verilogHDL 的基础上更加深入的了解硬件设计语言的功能、作用及其特征,并且将我们的动手能力与创新能力结合起来。本次试验的总体框图为:设计框图说明.4.1.3 引脚描述信号名输入 /输出目标 /源功能描述CLKInputPin主时钟频率, 5MHZ ,占空比为1:1DIRInputPi

10、n使能端,控制时钟产生,以及读写同步OUTOutputPin输出乐曲信号 (方波形式 )SCREENOutputPin数码管显示信号4.1.4 顶层划分顶层模块说明:1 D 触发器:实现信号读取,产生内部使能端,控制分频器;2分频器 :实现与基准时钟同步操作,读取存储器数据进行分频操作,实现音调与音长的改变与输出;3节拍发生器 : 根据使能端,产生对应的频率产生对应音符时长;4存储器:实现将预置数传送给分频器,实现曲目的不停音调和音长;5 2 分频器:将产生的信号再次进行2 分频;.注: 音名显示控制音名显示电路用来显示演奏乐曲时对应的音乐曲曲目名。 可以用三个数码管,加以显示,本设计中使用

11、HIGH3:0,MED3;0,LOW3;0 等信号加以显示,为了能使其循环显示, 需要一时长计数器, 等音乐演奏完成后, 保证自动从头开始演奏。4.1.5 子模块描述按键接收器D 触发器1、功能描述运用 D 触发器和数据锁存器实现数据线输出的使能端。2、管脚描述信号名称输入 /输出源目标功能描述DIR输入Pin按键输入信号DR输出Pin使能端3、实现说明:在按键信号产生后,进行信号的锁存和产生使能信号。4、验证方案正常的信号锁存,和信号转换;是否实现正确使能输出;节拍发生器分频器1、功能描述根据信号的输入,对应产生对应曲目的节拍频率时钟用来读取存储器音调音长数据,产生不同的预置数.2、管脚描述

12、信号名称输入 / 输出源目标功能描述DIR输入PIN按键输入CLK输入PIN基准时钟频率CK输出PIN1 位节拍频率时钟3、实现说明在 CLK 的上升沿,将锁存后的 DIR 信号输入到内部,并根据对应时钟节拍分频,产生对应节拍频率。4、测试略; 分频器1、功能描述将基准时钟按照预置数的信息进行分频,且与时钟同步,并当使能端低电平时,停止输出,也可实现循环播放。2、管脚描述信号名称输入 /输出源目标功能描述DIR输入PIN使能端CK输入PIN基准频率VOICE输入PIN预置数SPEAK输出PIN乐曲输出;3、实现说明通过计数器、存储器、 D 触发器,实现分频。当计数从预置数到初始值时 Speak

13、er翻转一次,即为分频。4、测试用 modelsim 仿真,观察波形是否为所需方波;存储器1、功能描述按照使能端的数据,选择对应的预置数据进行读操作,并且于时钟同步。2、管脚描述信号名称输入 /输出源目标功能描述DR输入PIN使能端CLK输入PIN基准频率VOICE输出PIN读取的预置数SCREEN输出PIN数码管信号输出;3、实现说明通过选择,在时钟的上升沿进行数据的读取,并将读出的数据同时传至数码管,与分频器。.4、测试用 modelsim 仿真,观察预置数的值是否为对应曲目;4.1.6 验证方案:正常情况下,输入一个 DIR 的值,查看波形输出是否正常。改变 DIR 的值,再次查看波形输

14、出是否正常,并且其频率是否满足上述的公式计算出的值。4.1.7应用范围 :简易电子琴可以应用于简单的设计中,亦可应用于娱乐方面。4.2 设计方案4.2.1 顶层方案设计顶层主要是对各个子模块进行调用与连接,顶层主要调用以下模块:(1)按键驱动模块该模块用于选择所要播放曲目。(2)控制模块:该模块用于处理比较所选择的功能。(3)数码管显示模块:该模块用于显示用户是否登陆成功,即LCD 驱动。4.2.2 顶层模块程序/ 信号定义与说明/CLK_4HZ: 用于控制音长 ( 节拍 ) 的时钟频率/clk_6MHZ: 用于产生各种音阶频率的基准频率/speak:用于激励扬声器的输出信号, 本例中为方波信

15、号/high,med,low:分别用于显示高音,中音和低音音符,各驱动一个数码管来显示module music(clk,key1,key0,speak,high,low,decodeout); /顶层模块:input clk,key1,key0;output speak,high,low;output 6:0 decodeout;wire 1:0 dir;wire clk,key1,key0;wire clk_5MHZ,clk_4hz;wire speak;wire ck,dr;wire 11:0 voice;wire 6:0 decodeout;wire high,low;.assign h

16、igh=1;assign low=0;assign dir=key1,key0;clock5mhz mhz(.clk(clk),.dir(dir),.clk_5MHZ(clk_5MHZ);clock4hzhz(.clk_5MHZ(clk_5MHZ),.dir(dir),.ck(ck),.clk_4HZ(clk_4HZ);D d1(.dir(dir),.dr(dr);DDR ddr1(.dir(dir),.ck(ck),.voice(voice);mainm(.dr(dr),.clk_5MHZ(clk_5MHZ),.clk_4HZ(clk_4HZ),.voice(voice),.speak( s

17、peak);decode dec(.dir(dir),.decodeout(decodeout);endmodule/ 信号定义与说明/CLK_4HZ:用于控制音长 ( 节拍 ) 的时钟频率/clk_6MHZ:用于产生各种音阶频率的基准频率/speak:用于激励扬声器的输出信号, 本例中为方波信号/high,med,low: 分别用于显示高音, 中音和低音音符, 各驱动一个数码管来显示module DDR(dir,ck,voice);input 1:0 dir;input ck;output 11:0 voice;wire 1:0 dir;wire ck;wire 11:0 voice;reg

18、 7:0 counter;reg 3:0 high,med,low;assign voice=high,med,low;always (posedge ck)if(dir=2b00)counter=0;else if(dir=2b01) / 梁祝乐曲演奏电路 beginif(counter=63) counter=0;else counter=counter+1;case(counter)0: high,med,low=b1;1: high,med,low=b1;.2: high,med,low=b1;3: high,med,low=b1;4: high,med,low=b1;5: high,

19、med,low=b1;6: high,med,low=b1;7: high,med,low=b0;8: high,med,low=b0;9: high,med,low=b0; 10: high,med,low=b0;11: high,med,low=b0;12: high,med,low=b0;13: high,med,low=b0;14: high,med,low=b1;15: high,med,low=b1;16: high,med,low=b0;17: high,med,low=b0;18: high,med,low=b0;19: high,med,low=b0;20: high,med

20、,low=b0;21: high,med,low=b0;22: high,med,low=b0;23: high,med,low=b0;24: high,med,low=b0;25: high,med,low=b0;26: high,med,low=b0;27: high,med,low=b0;28: high,med,low=b0;29: high,med,low=b0;30: high,med,low=b0;31: high,med,low=b0;32: high,med,low=b0;33: high,med,low=b0;34: high,med,low=b0;35: high,med

21、,low=b0;36: high,med,low=b1;37: high,med,low=b1;38: high,med,low=b0;39: high,med,low=b0;40: high,med,low=b1;41: high,med,low=b1;42: high,med,low=b1;43: high,med,low=b0;44: high,med,low=b0;45: high,med,low=b0;.46: high,med,low=b0;47: high,med,low=b0;48: high,med,low=b1;49: high,med,low=b1;50: high,me

22、d,low=b0;51: high,med,low=b0;52: high,med,low=b0;53: high,med,low=b1;54: high,med,low=b0;55: high,med,low=b0;56: high,med,low=b1;57: high,med,low=b1;58: high,med,low=b1;59: high,med,low=b1;60: high,med,low=b1;61: high,med,low=b1;62: high,med,low=b1;63: high,med,low=b1; default: high,med,low=b0; endc

23、aseendelse if(dir=2b10)/天空之城乐曲演奏电路beginif(counter=195) counter=0;else counter=counter+1;case(counter)0: high,med,low=b0;/中 61: high,med,low=b0;/中 72: high,med,low=b0;/高 13: high,med,low=b0;/高 14: high,med,low=b0;/高 15: high,med,low=b0;/中 76: high,med,low=b0;/高 17: high,med,low=b0;/高 18: high,med,low

24、=b0;/高 39: high,med,low=b0;/高 310: high,med,low=b0;/中 711: high,med,low=b0;/中 712: high,med,low=b0;/中 713: high,med,low=b0;/中 714: high,med,low=b0;/中 715: high,med,low=b0;/中 7.16: high,med,low=b0;/中 317: high,med,low=b0;/中 318: high,med,low=b0;/中 619: high,med,low=b0;/中 620: high,med,low=b0;/中 621:

25、high,med,low=b0;/中 522: high,med,low=b0;/中 623: high,med,low=b0;/中 624: high,med,low=b1;/中 125: high,med,low=b1;/中 126: high,med,low=b0;/中 527: high,med,low=b0;/中 528: high,med,low=b0;/中 529: high,med,low=b0;/中 530: high,med,low=b0;/中 531: high,med,low=b0;/中 532: high,med,low=b0;/中 333: high,med,low

26、=b0;/中 334: high,med,low=b0;/中 435: high,med,low=b0;/中 436: high,med,low=b0;/中 437: high,med,low=b0;/中 338: high,med,low=b0;/中 439: high,med,low=b0;/高 140: high,med,low=b0;/高 141: high,med,low=b0;/高 142: high,med,low=b0;/中 343: high,med,low=b0;/中 344: high,med,low=b0;/中 345: high,med,low=b0;/高 146:

27、high,med,low=b0;/高 147: high,med,low=b0;/高 148: high,med,low=b0;/中 749: high,med,low=b0;/中 750: high,med,low=b0;/中 751: high,med,low=b0;/中 452: high,med,low=b0;/中 453: high,med,low=b0;/中 454: high,med,low=b0;/中 755: high,med,low=b0;/中 756: high,med,low=b0;/中 757: high,med,low=b0;/中 758: high,med,low

28、=b0;/中 759: high,med,low=b0;/中 7.60: high,med,low=b0;/中 761: high,med,low=b0;/中 762: high,med,low=b0;/中 663: high,med,low=b0;/中 764: high,med,low=b0;/高 165: high,med,low=b0;/高 166: high,med,low=b0;/高 167: high,med,low=b0;/高 768: high,med,low=b0;/高 169: high,med,low=b0;/高 170: high,med,low=b0;/高 371:

29、 high,med,low=b0;/高 372: high,med,low=b0;/中 773: high,med,low=b0;/中 774: high,med,low=b0;/中 775: high,med,low=b0;/中 376: high,med,low=b0;/中 377: high,med,low=b0;/中 678: high,med,low=b0;/中 679: high,med,low=b0;/中 680: high,med,low=b1;/中 581: high,med,low=b0;/中 682: high,med,low=b0;/中 683: high,med,lo

30、w=b1;/中 184: high,med,low=b1;/中 185: high,med,low=b0;/中 586: high,med,low=b0;/中 587: high,med,low=b0;/中 588: high,med,low=b0;/中 589: high,med,low=b0;/中 590: high,med,low=b0;/中 591: high,med,low=b0;/中 392: high,med,low=b0;/中 393: high,med,low=b0;/中 494: high,med,low=b0;/中 495: high,med,low=b0;/高 196:

31、 high,med,low=b0;/中 797: high,med,low=b0;/中 798: high,med,low=b0;/中 799: high,med,low=b0;/高 1100: high,med,low=b0;/高 1101: high,med,low=b0;/高 2102: high,med,low=b0;/高 2103: high,med,low=b0;/高 3.104: high,med,low=b0;/高 1105: high,med,low=b0;/高 1106: high,med,low=b0;/高 1107: high,med,low=b0;/高 1108: h

32、igh,med,low=b0;/高 1109: high,med,low=b0;/高 1110: high,med,low=b0;/中 7111: high,med,low=b0;/中 6112: high,med,low=b0;/中 6113: high,med,low=b0;/中 7114: high,med,low=b0;/中 7115: high,med,low=b0;/中 5116: high,med,low=b0;/中 5117: high,med,low=b0;/中 6118: high,med,low=b0;/中 6119: high,med,low=b0;/中 6120: h

33、igh,med,low=b0;/中 6121: high,med,low=b0;/中 6122: high,med,low=b0;/中 6123: high,med,low=b1;/中 1124: high,med,low=b1;/中 1125: high,med,low=b0;/高 2126: high,med,low=b0;/高 3127: high,med,low=b0;/高 3128: high,med,low=b0;/高 3129: high,med,low=b0;/高 2130: high,med,low=b0;/高 3131: high,med,low=b0;/高 3132: h

34、igh,med,low=b0;/高 5133: high,med,low=b0;/高 5134: high,med,low=b0;/高 2135: high,med,low=b0;/高 2136: high,med,low=b0;/高 2137: high,med,low=b0;/高 2138: high,med,low=b0;/高 2139: high,med,low=b0;/高 2140: high,med,low=b0;/中 5141: high,med,low=b0;/中 5142: high,med,low=b0;/高 1143: high,med,low=b0;/高 1144: h

35、igh,med,low=b0;/高 1145: high,med,low=b0;/中 7146: high,med,low=b0;/高 1147: high,med,low=b0;/高 1.148: high,med,low=b0;/高 3149: high,med,low=b0;/高 3150: high,med,low=b0;/高 3151: high,med,low=b0;/高 3152: high,med,low=b0;/高 3153: high,med,low=b0;/高 3154: high,med,low=b0;/高 3155: high,med,low=b0;/高 3156:

36、high,med,low=b0;/中 6157: high,med,low=b0;/中 6158: high,med,low=b0;/中 7159: high,med,low=b0;/中 7160: high,med,low=b0;/高 1161: high,med,low=b0;/高 1162: high,med,low=b0;/高 1163: high,med,low=b0;/高 1164: high,med,low=b0;/中 7165: high,med,low=b0;/中 7166: high,med,low=b0;/高 1167: high,med,low=b0;/高 1168:

37、high,med,low=b0;/高 2169: high,med,low=b0;/高 2170: high,med,low=b0;/高 1171: high,med,low=b0;/高 1172: high,med,low=b0;/高 1173: high,med,low=b0;/中 5174: high,med,low=b0;/中 5175: high,med,low=b0;/中 5176: high,med,low=b0;/中 5177: high,med,low=b0;/中 5178: high,med,low=b0;/中 5179: high,med,low=b0;/高 4180:

38、high,med,low=b0;/高 4181: high,med,low=b0;/高 3182: high,med,low=b0;/高 3183: high,med,low=b0;/高 2184: high,med,low=b0;/高 2185: high,med,low=b0;/高 2186: high,med,low=b0;/高 1187: high,med,low=b0;/高 1188: high,med,low=b0;/高 3189: high,med,low=b0;/高 3190: high,med,low=b0;/高 3191: high,med,low=b0;/高 3.192: high,med,low=b0;/高 3193: high,med,low=b0;/高 3194: high,med,low=b0;/高 3195: high,med,low=b0;/高 3default: high,med,low=b0;endcaseendelse if(dir=2b11)/康定情歌乐曲演奏电路beginif(counter=103) counter=0;else counter=counter+1;case(counter)0: high,med,low=b0;/中 31: high,med,low=b0;/中 32: high,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论