欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Veriloghdl简易电子琴设计.docx

    • 资源ID:12314099       资源大小:791.24KB        全文页数:12页
    • 资源格式: DOCX        下载积分:8金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Veriloghdl简易电子琴设计.docx

    1、Veriloghdl简易电子琴设计 湖北文理学院 简易电子琴设计专业:自动化学号:64姓名:一天虹影实验目的使用VerilogHDL语言进行前端设计,并使用Quaruts软件在GW48PK2实验上实现仿真,实现硬件电子琴。电子琴要求有8个音阶,使用外部时钟信号3MHz,能同步显示音阶。设计要求1、 设计一个简易电子琴。要求能演奏的音域为D调的do到E调do。 2、 用GW48PK2中的8个按键作为琴键。 3、 GW48PK2中有蜂鸣器。4、 可以使用GW48PK2上的12MHz作为输入时钟信号设计思路通过可编程逻辑器件(PLD)和VHDL硬件描述语言来实现电子琴的基本要求。 设计的主体是数控分

    2、频器,对输入的频率按照与每个音阶对应的分频系数进行分频,得到各个音阶对应的频率分别在蜂鸣器和数码管上以声音和频率数值的形式作为输出。 设计组成与原理下图为系统的工作原理框图。 模块设计1. 音名与频率的关系音乐的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音。灵位,音符A(简谱中的低音6)的频率为440HZ,音符B到C之间、到之间为半音,其余为全音。由此可以计算出简谱中所有的音符的频率,在这我们只需计算出中音到高音的频率即可。如下所示: 表一 简谱音名与频率的对应关系音名中音中音中音中音中音中音中音高音频率/HZ784880由于

    3、各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素,在尽量减少频率误差的前提下取合适的时钟频率。本实验要求用12MHZ的时钟脉冲信号,所以不必考虑这方面的因素。实际上,只要各个音符间的相对频率关系不变,弹奏出来的音调听起来是不会走调的。2. 分频系数与初始值(预置数) 本例设计的音乐电子琴选取12MHZ的系统时钟频率。在数控分频器模块中,由于数控分频器输出的波形是脉宽极窄的脉冲波,为了更好地驱动扬声器发生,减少

    4、输出的偶次谐波分量,在到达扬声器之前需要均衡占空比,从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频,频率变为原来的二分之一,即6MHZ。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为,它的分频系数应该为:Divider=6MHz/=6*106 /=11466 至于其他音符,同样由上式求出对应的分频系数,这样利用程序可以轻松地得到相应的乐声。各音名对应的分频系数如下表: 表二 各音名对应的分频系数音名中音1中音2中音3中音4中音5中音6中音7高音1分频系数(divider)1146610216910185907653681860745733 由于

    5、最大的分频系数为11466,故采用14位二进制计数器已能满足分频要求。将分频系数设为0,其初始值为16383(214 -1 )即可,此时扬声器不会发声。对于不同的分频系数,加载不同的初始值即可。本实验参考王金明:Verilog HDL程序设计教程,采用差值法进行分频。把差值作为初始值,为不同音阶的发声的来源。各音名对应的初始值如下表:表三 各音名对应的初始值音名中音1中音2中音3中音4中音5中音6中音7高音1初始值(origin)49176167728277938730956510309106503. 数控分频器数控分频器是对基准频率进行分频,得到与各个音阶对应的频率输出。数控分频模块是由一个

    6、初始值可变的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;目的是将预分频产生的占空比很小的波形进行拓宽,使得波形有足够长的高电平来驱动扬

    7、声器。实验仿真(一) 测试使用的仪器与软件仪器康芯GW48系列EDA设备-GW48-PK2实验电路图和适用范围:本实验适用模式3,其结构图如下公司的Cyclone系列的EP2C5T144C8芯片2.康芯教学实验箱软件Quartus IIQuartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程以下为使用Quartus II软件得到的RTL级视图(二) 测试方法 注:

    8、选择模式3,此模式下按键为琴键式,适合本实验演奏。1.打开Quartus软件,file-NewProjectWizard-选择程序e_piano2.设置芯片为Cyclone系列的EP2C5T144C83.定义管脚如下clkPIN_128index2PIN_3code0PIN_39index3PIN_4code1PIN_40index4PIN_5code2PIN_41index5PIN_6code3PIN_42index6PIN_7dPIN_47index7PIN_10index0PIN_1spkPIN_129index1PIN_2下图为管脚定义界面4.定义完成后再次编译,再执行Programm

    9、er,选中,开始下载。下图为编译下载界面5.下载完成后控制按键,观察音调准确,声音清晰,数码管能够正常显示音调。实验总结 根据老师的要求,我们先一起通过所学知识讨论了设计原理,不懂的问了下其他同学,最后定制出了大致计划。在具体设计过程中,我们根据步骤逐次检验,查阅了有关资料,主要包括王金明:Verilog HDL程序设计教程以及潘松,黄继业,潘明的EDA技术实用教程在初次编写分频模块时候,使用的是比较基本的计数器分频法,编写程序后在modelsim软件中进行了仿真,发现无法观察到分频情况。经过分析,原因是由于分频比过大,因此在波形图中很难观察到。而且由于预分频的占空比很小,更难以观察到高电平。

    10、在原因找到后,为了考察程序的性能,我们将输入频率减小。同时适当缩小分频比,这样就得到了模块仿真中的分频波形。通过此次实验,我们不仅学会了Quartus II软件的使用方法,还对集成电路设计有了更深的认识,对专业知识得到了加强。同时认识到了自己的不足,比如有些知识已经模糊,所以有待于复习,所谓“温故而知新”,我们要学习的东西还很多。这次的学习将对自己以后的研究生学习和将来的工作有很大的帮助,也是一次实践的锻炼!参考文献1. 王金明:Verilog HDL程序设计教程 2. 潘松,黄继业,潘明EDA技术实用教程3. 其他网上资料附录:程序源代码 /信号定义与说明:/clk:用于产生各种音阶频率的基

    11、准频率;/key:电子琴音符输入端口;/speaker:用于激励扬声器的输出信号,本例中为方波信号;/med,high:分别用于显示中音,高音音符,各驱动一个数码显示管和LED来显示;/origin:为数控分频模块提供音符频率的初始值;module dianziqin(clk,key,speaker,med,high); input clk; /12MHZ input 7:0 key; output speaker; output high; /高音显示 output 3:0 med; /中音显示 reg 13:0 divider; /分频系数和初始值 reg 13:0 origin; reg

    12、 speaker; reg high; reg 3:0 med; wire preclk; assign preclk=(divider=16383)1:0; /14位,对时钟频率进行预分频 always(posedge clk) begin if(preclk) divider=origin; else divider=divider+1; end always(posedge preclk) begin speaker=speaker; /进行2分频,拓宽波形,产生方波信号 end parameter do=8b00000001, re=8b00000010, mi=8b00000100,

    13、 fa=8b00001000, so=8b00010000, la=8b00100000, xi=8b01000000, do_=8b; /状态编码,采用独热码编码方式 always(key) /分频比预置 case(key) do: begin origin=4917; med=1; high=0; end re: begin origin=6167; med=2; high=0; end mi: begin origin=7282; med=3; high=0; end fa: begin origin=7793; med=4; high=0; end so: begin origin=8730; med=5; high=0; end la: begin origin=9565; med=6; high=0; end xi: begin origin=10309; med=7; high=0; end do_: begin origin=10650; med=1; high=1; end default:begin origin=16383; high=0; end endcase endmodule


    注意事项

    本文(Veriloghdl简易电子琴设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开