ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:809.90KB ,
资源ID:14411693      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14411693.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA课程设计报告 简易电子琴的设计文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA课程设计报告 简易电子琴的设计文档格式.docx

1、 三、使用环境: 等编程仿真软件;、软件:Modelsim和Quartus II1 开发板。2、硬件:FPGA 四、课程设计详细方案及功能验证: 、总体实现方案:19、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、1程序的应用软件HDLLED、蜂鸣器等,软件资源包括编写Verilog 个按键、。电子琴有按键代替琴键的弹奏功能和自动播放Quartus IIModelsim和仿真软件 功能。模块,模块,曲目2个模块:主模块,按键模块,曲目15 2、整个程序总共分 3模块。曲目作为琴键,通过key1key7)整个方案总共用了9,按键个按键(key1key9这七个按键键入不同的音阶。主模

2、块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。本次设计的框图: 主模块 曲目1 mm=01 键按9个)key1key9(控制播放曲目 以及手动弹奏2 曲目 mm=10 奏弹手动 key1key7()目放曲播 )key8(、key93 曲目 mm=11 mm=00 按键模块 即琴键键入音阶,Key1key7 2、输入输出信号描述: 7:0num I

3、nclk 电 子 琴 Key(19) Out_r(beep) 具体功能描述:信号源 输入/输出 功能描述 inclk Input 时钟频率50M key(19) 键入以及选择曲目 num Output 数码管显示 out_r 根据r选择不同模块 3、顶层划分: 主模块 (key1.key2.key3.key4.key5.key6.key7.key8.key9) outclk beep_r inclk 分Key mm num7:0 50MHZ clk_6M 频 (89) 分clk_6M Keybeep4 频 (17) clk_6M count 分beep1 频 clk_4HZ state cou

4、nt clk_6M 分beep2 频clk_4HZ state clk_6M count分beep3 频 clk_4HZ state 4、主要模块:主模块:功能描述:是四个子模块的核心,通过主模块分别调用四个不同的子模块。管脚描述:信号名称 输入 / 输出 源 功能描述 inclk Input Pin 系统时钟50MHz Key(19) 按键选择,键入作用 outclk Output 模块选择输出 按键模块:通过按键key1key7键入不同的7个音阶,频率不同则蜂鸣器发音就不同;通过mm=(key8、key9)的值选择调用不同曲目模块。Key(17) 按键键入7个不同音阶 Beep4 个不同音

5、阶7输出曲目模块: 功能描述:不同的曲目模块输出不同的曲调,根据高低音对应的频率不同输出不同曲调的曲目。在50MHZ的情况下对主时钟分频得到6MHZ的频率,得到在6MHZ下对应的音阶及其对应频率,以及分频数,通过计数分频数,来对不同频率的声音进行输出,实验箱原始时钟为50MHz,分频后变成不同的频率输出,通过蜂鸣器输出不同频率的声音。音乐的节拍通过分频变为4Hz,作为1/4拍,即每个单位时长0.25s。 管脚描述:Key(89) 选择曲目 Beep3 输出曲目 5、功能仿真:1、综合: 、总体电路图:23、所有输入输出信号:4、管脚分配:输入信号:一个时钟信号,9个按键;输出信号:一个数码管输

6、出,一个蜂鸣器输出音调。5、时序仿真:仿真结果;设置输入信号key1key7为高电平,此时设置key8key9=01,即mm=01,在数码管应该显示1,在仿真结束后,如图示数码管为11111001,即为1,outclk为蜂鸣器的输出,如图示也正确,所以本设计经过仿真证明正确可行。6、 硬件测试结果: 在时序验证后下载,通过硬件测试,实验达到预期效果,当mm(key8key9)=00时,通过key1key7这7个按键的键入蜂鸣器可以发出doxi的七个音阶的音,即表示了电子琴的弹奏功能;当mm=01时,播放了第一首歌;mm=10时,播放了第二首歌;mm=11时,播放第三首歌。通过硬件的测试,所有的

7、设计目标均实现。7、 对结果和结论的问题讨论:实验过程中,蜂鸣器发音时好时坏,有时比较低沉,有时却比较尖锐,这可能是对主系统分频不精确导致的结果,当对主系统时钟不同分频时,结果都不同,最终在多次试验下,得到在6M时钟频率下效果最为理想。8、 音阶及其对应频率(时钟频率为50MHz分为6MHz) 音阶 频率/Hz /us 周期半周期/us 分频数 中音1 523 1912 956 11472 2 578 1684 842 10380 659 1518 759 9104 4 698 1432 716 8595 5 784 1276 638 7653 6 880 1136 568 6818 7 98

8、8 1012 506 6073 高音 H1 1046 478 5736 H2 1175 852 426 5106 五、心得体会:上手起来其实做过了单片机关于蜂鸣器方面的实验,在这次课程设计之前,还是很快的,开始时,先按照老师的要求,写规范,确定实现方案,然后在逐一软件,由于quartusII细化,一步一步按照要求去完成整个设计。本次设计要用所以这次课程设计之前对此软件不是太熟悉所以导致了一些错误和问题的发生,软件的具体使用步骤和操作流程,对所有可能出现的问quartusII中认真学习了软件,也了解了开发quartusII题进行逐一攻破。通过这次实验,我不但熟悉了编程语言的理解,最重要的是Ver

9、ilog的最基本流程和方法,也进一步加深了对锻炼了我独立思考和分析的逻辑能力,通过从顶向下的设计方法,一步步实现, 然后将整个设计串套起来,是我对设计的流程以及编程有了很大的提高。编程对项目实现有着至关通过此次硬件课程设计,使我越来越认识到一点,将编程看作是完善开发的我们在硬件开发的过程中必须重视编程,重要的作用,不仅提高了逻辑分析论证和测试中,不可缺少的一部分。在一次次的反复设计、能力、全面分析问题的能力,还提升了发现问题、解决问题的能力。虽然设计过通过各方面大大小小也出现了许多问题,但这却磨练了我的意志。程比较繁琐,的学习,使我的知识面进一步拓宽了。同时,通过本次课程设计,使我也发现了解决

10、问题的能力不足,编程能力不足,自己的不足,例如:逻辑分析能力不突出,我提升自我能力。使我认识到在以后的学习中在这些方面要多努力,加以改进, 相信通过这次课程设计的学习,对我以后有着十分重要的影响和作用。附代码:module dianziqin(inclk,outclk,key1,key2,key3,key4,key5,key6,key7,key8,key9,num);input inclk;input key1,key2,key3,key4,key5,key6,key7,key8,key9;output outclk;output7:0num;reg 7:0 num;reg outclk,cl

11、k_6M;reg 3:0c;wire out1,out2,out3,out4;wire8:0 key;reg 1:0mm;assign key = key1,key2,key3,key4,key5,key6,key7,key8,key9; /由按键拼键为变量key /调用子调块 digital_piano m1( .inclk(inclk), .key1(key1), .key2(key2), .key3(key3), .key4(key4), .key5(key5), .key6(key6), .key7(key7), .beep4(out4) );bell m2( .beep1(out1) );bell2 m3( .beep2(out2) bell3 m4( .beep3(out3) always(posedge inclk) begin if(c4d8) c=c+4d1; else begin c = 4d0; clk_6M = clk_6M; end end always (posedge clk_6M) 在时钟的上升沿检测是否有按键按下/begin if(key = 9b111111110) mm = 2b01;else if(key=9b111111101) b10;b11111110

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1