下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第8章程序部分8.18 电子琴程序设计与仿真

第8章程序部分8.18 电子琴程序设计与仿真.doc

第8章程序部分8.18 电子琴程序设计与仿真

。CYSTE,M
2018-09-08 0人阅读 举报 0 0 暂无简介

简介:本文档为《第8章程序部分8.18 电子琴程序设计与仿真doc》,可适用于工程科技领域

电子琴程序设计与仿真顶层程序与仿真音阶发生器程序与仿真数控分频模块程序与仿真自动演奏模块程序与仿真设计例见随书所附光盘中文件:电子琴VHDL程序与仿真。顶层程序与仿真()顶层VHDL程序文件名:topvhd功能:顶层文件最后修改日期:libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentitytopisPort(clkMHz:instdlogicMHz系统时钟handTOauto:instdlogic键盘输入自动演奏code:outstdlogicvector(downto)音符显示信号index:instdlogicvector(downto)键盘输入信号high:outstdlogic高低音节信号spkout:outstdlogic)音频信号endtoparchitectureBehavioraloftopiscomponentautomusicPort(clk:instdlogicAuto:instdlogicindex:instdlogicvector(downto)index:outstdlogicvector(downto))endcomponentcomponenttonePort(index:instdlogicvector(downto)code:outstdlogicvector(downto)high:outstdlogictone:outintegerrangeto)endcomponentcomponentspeakerPort(clk:instdlogictone:inintegerrangetospks:outstdlogic)endcomponentsignaltone:integerrangetosignalindx:stdlogicvector(downto)beginu:automusicportmap(clk=>clkMHZ,index=>index,index=>indx,Auto=>handtoAuto)u:toneportmap(index=>indx,tone=>tone,code=>code,high=>high)u:speakerportmap(clk=>clkMHZ,tone=>tone,spks=>spkout)endBehavioral()仿真顶层文件仿真图如图所示。图顶层文件仿真图音阶发生器程序与仿真()音阶发生器VHDL程序文件名:tonevhd。功能:libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentitytoneisPort(index:instdlogicvector(downto)音符输入信号code:outstdlogicvector(downto)音符显示信号high:outstdlogic高低音显示信号tone:outintegerrangeto)音符的分频系数endtonearchitectureBehavioraloftoneisbeginsearch:process(index)此进程完成音符到音符的分频系数译码音符的显示高低音阶begincaseindexiswhen""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''when""=>tone<=code<=""high<=''whenothers=>tone<=code<=""high<=''endcaseendprocessendBehavioral()音阶发生器程序仿真音阶发生器程序仿真图如图所示。图音阶发生器仿真图数控分频模块程序与仿真()数控分频模块VHDL程序文件名:speakervhd。功能:实现数控分频。最后修改日期:。libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentityspeakerisPort(clk:instdlogic系统时钟tone:inintegerrangeto音符分频系数spks:outstdlogic)驱动扬声器的音频信号endspeakerarchitectureBehavioralofspeakerissignalpreclk,fullspks:stdlogicbeginpulse:process(clk)此进程对系统时钟进行分频variablecount:integerrangetobeginifclk'eventandclk=''thencount:=countifcount=thenpreclk<=''elsifcount=thenpreclk<=''count:=endifendifendprocesspulsegenspks:process(preclk,tone)此进程按照tone输入的分频系数对MHz的脉冲再次分频得到所需要的音符频率variablecount:integerrangetobeginifpreclk'eventandpreclk=''thenifcount<tonethencount:=countfullspks<=''elsecount:=fullspks<=''endifendifendprocessdelaysps:process(fullspks)此进程对fullspks进行分频variablecount:stdlogic:=''beginiffullspks'eventandfullspks=''thencount:=notcountifcount=''thenspks<=''elsespks<=''endifendifendprocessendBehavioral()数控分频模块程序仿真数控分频模块程序仿真图如图所示。图数控分频模块仿真图自动演奏模块程序与仿真()自动演奏模块VHDL程序文件名:automusicvhd功能:实现自动演奏功能。最后修改日期:。libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentityautomusicisPort(clk,Auto:instdlogic系统时钟键盘输入自动演奏index:instdlogicvector(downto)键盘输入信号index:outstdlogicvector(downto))音符信号输出endautomusicarchitectureBehavioralofautomusicissignalcount:integerrangetochangesignalclk:stdlogicbeginpulse:process(clk,Auto)此进程完成对系统时钟M的分频得到Hz的信号clkvariablecount:integerrangetobeginifAuto=''thencount:=clk<=''elsifclk'eventandclk=''thencount:=countifcount=()thenclk<=''elsifcount=()thenclk<=''count:=endifendifendprocessmusic:process(clk)此进程完成自动演奏部分曲的地址累加beginifclk'eventandclk=''thenifcount=thencount<=elsecount<=countendifendifendprocesscom:process(count,Auto,index)beginifAuto=''thencasecountis此case语句:存储自动演奏部分的曲when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""when=>index<=""whenothers=>endcaseelseindex<=index键盘输入音符信号输出endifendprocessendBehavioral()自动演奏模块程序仿真自动演奏模块仿真图如图所示。图自动演奏模块仿真图(注:由于输入频率太高实验条件所限如按源程序仿真将看不到输出波形因此将原脉冲的分频点和改为和得到如图的仿真结果在实际烧制芯片中不作此处理。)

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

第8章程序部分8.18 电子琴程序设计与仿真

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利