SOPCEDA综合课程设计乐曲硬件演奏

上传人:仙*** 文档编号:146481941 上传时间:2022-08-31 格式:DOC 页数:20 大小:732.50KB
返回 下载 相关 举报
SOPCEDA综合课程设计乐曲硬件演奏_第1页
第1页 / 共20页
SOPCEDA综合课程设计乐曲硬件演奏_第2页
第2页 / 共20页
SOPCEDA综合课程设计乐曲硬件演奏_第3页
第3页 / 共20页
点击查看更多>>
资源描述
SOPC ED餡 件演奏综合课程设计乐曲硬作者:日期:错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。莫 块 PUTTAB错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。 错误! 未定义书签。. 。.。 。.目录第一章 EDA 技术综合应用设计的主要软件及设备 1。 1 主要软件、设备及作用: 1。 2实验电路结构图 . 。第二章 乐曲硬件演奏电路设计的原理 . 第三章 乐曲硬件演奏电路VHDL程序设计 3。 1音 乐 节 拍 和 音 调 发 生 器 错误! 未定义书签。3.1。1 PUTTAB模块原理图 3。 1.2 puttab 模块时序仿真图 3。 2 音乐谱对应分频预制数查表电路模块 ONTAB.3。2。1 ONTAB模块原理图 3。2。2 ONTAB莫块时序仿真图 3.3 音乐符数控 11分频电路模块 OUTSPEKE.R3.3。1 OUTSPEAKS模块原理图3。3。2 OUTSPEAKS模块时序仿真图.3.4 乐曲演奏音符数据文件 (梁祝、自选曲 ) 3。 4 引脚绑定 第四章 顶层程序的时序仿真图 第五章 课程设计心得体会 参考文献 。 . 。 . 。 . 。 . 。 . 。 . 。 . 。 . 。 . 。 . 。 . 错误! 未定义书签。第一章 EDA 技术综合应用设计的主要软件及设备1.1 主要软件、设备及作用:EDA 技术的综合应用设计与开发可能用到的主要开发设计软件、 设备及 其作用如下:(1) EDA 的工具软件 :目前比较流行的、主流厂家的 EDA 的软件工 具有 Altera 的 MAX+plus n Quartus n Lattice 的 ispDesignExpERT,Xilinx 的 Foundation Series、 ISE/ISE-WebPACK Series。(2) 计算机辅助分析软件: MATLAB 用于复杂系统的系统级仿真, DSP 的系统建模,有关数据的计算和分析等 .(3) 印刷电路板 PCB 的设计软件:主要有 PROTEL、 ORCAD 等,用于 设计系统的外围部件或外围电路的 PCB 图。(4) EDA实验开发系统/片上系统(SOPC)/嵌入式系统:用于EDA实验 与开发的硬件的编程下载及硬件验证。(5) 单片机仿真器及仿真头:用于单片机程序的调试与硬件的验证。(6) 印刷电路板 PCB 的制作设备:用于系统外围部件或外围电路的 PCB 的制作。(7) 信号源、示波器、频率计、无线电综合测试仪等其它相关设备。1。2 实验电路结构图PIO13-PO16 PIO23-PC2n PIO27-PO2r1PIOTI*nO20puay-pc2 PIO49 PIO4B PIO15-PQ12 PIOl 1.POA P107-P104 PIO3-PIO0FPGAC- LD图错误!未定义书签。-1实验电路结构图 NQ 1hiiis=-.4lls密1第二章 乐曲硬件演奏电路设计的原理与利用微处理器来实现乐曲演奏相比, 一纯硬件完成乐曲演奏电路 的逻辑要复杂的多,如果不借助于功能强大的EDA工具和硬件描述语言, 仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现 .本文通过利用硬件乐曲演奏电路的设计实例, 使读者初步了解VHDL硬 件描述语言和Quartus II开发环境。设计并调试好一个能产生梁祝曲子的音 乐发生器,并利用EDA实验开发系统(本设计是在 Altera 的FPGA芯片CycloneEP1C6和杭州康芯电子有限公司生产的 GW48系列EDA的基础上完成 硬件测试。根据系统提供的时钟源引入一个 12MHZ寸钟的基准频率,对其进行各 种分频系数的分频,产生符合某一音乐的频率,然后再引入 8HZ的时钟为音乐 的节拍控制,最后通过扬声器放出来.图11音乐产生器原理框图乐曲时由每个音符的发音频率值及其持续的时间是乐曲能连续演奏的两 个基本要素,在下面的电路就是来获取这两个要素所对应的数值以及通过纯硬件 的手段来利用这些数值来实现所希望乐曲的演奏效果。模块PUTTA啖似于弹琴人的手指;模块ONTA类似于琴键;模块OUTSPEKER似于琴弦或音调发生器。 乐曲硬件演奏电路设计的原理:(1)音符的频率可以由图中的 OUTSPEKE获得,这是一个数控分频器. 由其CLK端输入一具有较高频率(这里是 12MHZ的信号,通过OUTSPEKE分频 后又SPKOU输出,由于直接从数控分频器中出来的输出信号时脉宽及其狭窄的 脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器一均衡其占空比,但这是的频率将是原来的一半。OUTSPEKE对CLK输入信号的分频比又11位的预 置数TONE10.。0决定。SPKOU的输出频率将决定每一音符的音调,这样,分 频计数器的预置数TONE 10.0 与SPKOU的输出频率就有了对应关系。例如 在ONTA模块中若去TONE 10.。0 =1036,将发音符为“ 3音的信号频率。(3) 3.22音符的持续时间须根据乐曲的速度及每个音符的节拍数来确 定,图8-6中模块ONTAB勺功能首先是为SPEAKR提供决定所发音符的分频预置 数,而此数在SPEAKR输入口停留的时间即为此音符的节拍值.模块ONTA是乐曲 简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块PUTTAB的elk的输入频率决定,在此为 4H乙这13个值的输出由对应于 ONTAB勺4位 输入值Index【3.。0】确定,而Index【3.。0】最多有16种可选值。输向ONTAB 中Index【3。0】的值Ton el ndex【3.。0】的输出值与持续的时间由模块 NOTERABS 决定.3.23在PUTTAB中设置了一个 8位二进制计数器(计数最大值为 137),作为音符数据 ROM勺地址发生器。这个计数器的计数频率选为4HZ即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符 持续时间。例如,PUTTAB在以下的VHDL逻辑描述中,“梁祝乐曲的第一个音符 为“3”,此音在逻辑中停留了 4个时钟节拍,即1秒时间,相应的,所对应的“3” 音符分频预置值为1036,在OUTSPEKERA俞入端停留了 1秒.随着PUTTAB的 计数器按4HZ的时钟速率作加法计数时,即随地址值递增时,音符数据ROM中的 音符数据将从ROM中通过Tonelndex【3。.0】端口输向ONTABg块,“梁祝”乐曲就开始连续自然的演奏起来了图2-2顶层模块设计原理图第三章 乐曲硬件演奏电路 VHDL程序设计根据顶层模块设计原理图,共分为 music模块、地址发生器模块、分频预 置数模块这3个模块。music模块存放乐曲中的音符数据,地址发生器模块作为 music模块中所定制的音符数据 ROM勺地址发生器,分频预置数模块提供分频预 置数即给数控分频模块提供计数初值,十六进制模块对12MHZ勺时钟脉冲进行16分频,得到750KHZ的频率,给数控分频模块提供时钟脉冲。数控分频模块根 据分频预置数输出各个音符所对应的频率。3.1 音乐节拍和音调发生器模块 PUTTAB乐曲演奏电路的VHDL逻辑描述如下:library ieee;音乐节拍和音调发生器模块use ieee.std_logic_1164 all ;use ieee std_logic_unsigned。all ;en tity PUTTAB isport( clk : in stdogic ;-时钟信号SEL : IN STD_LOGIC;-音乐选择键RST : IN STD_LOGIC ;-复位键toneindex:out stdogic_vector( 3 downto 0);end;architecture one of PUTTAB iscompo nent MUSIC音符数据port( address in std_logic_vector( 7 downto 0);clock: in stdogic ;q: out stdogic_vector(3 downto 0);end comp onen;signal counter: stdogic_vector( 7 downto 0); -8 位二进制计数器beg inCNT8 : PROCESS(clk, Counter, sel, rst)BEGINIF ( clk EVENAND clk = )and (Counter=256 or rst= 0)enCounter二 ” 00000000 Counter =Counter+1 ;end if;IF ( clk EVENTAND clk = 1 and ( sel= )0) THEN Counter v=” 10010000” ;Counter counter,q= toneindex,clock=clk);end;3.1。1 PUTTAB模块原理图insizii -iiRrwMn * 吟 ircg-an fn i|.r*|i rqi 11|JB图3-1 PUTTAB模块原理图3。1.2 puttab模块时序仿真图将所编写的音乐节拍和音调模块 PUTTAB勺程序设为工程,选用Altera公司的Cyclone系列中的EP1C3TC144为目标芯片进行仿真313 QI301534f 51一再 ms6ms DcLnmumrLnjwwiTLKnmmnnnjuLnmuwinmmnnnnnjWLJinnw11BST12SILII|1曰1129U L-T aIrLdl43E 31 1JL1TJkJl 2 nDLTLTL_Ia o-TonelndeK 1 r-LI厂nL_TLLi衿TT OEielndeK Q.n _r.n . n1LI图3-2 puttab模块时序仿真图由上图可以看出,该模块音乐节拍和音调发生器模块,当CLK给出上升沿输 出时,给出音符节拍,当 RST复位时音符从头给出3 5 8等音乐节拍,当SEL为低电平时,自动切换到下一首歌曲。满足要求3.2音乐谱对应分频预制数查表电路模块 ONTABlibrary ieee;use ieee std_logic_1164 all;en tity ONTAB isport(i ndex:i n stdo gic_vector(3 dow nto 0); tone: out std_logic_vector (10 downto 0); HIGH : OUT std_logic;CODE:out std_logic_vector(3 downto 0);end;architecture one of ONTAB isbeg insearch:process( in dex)beg inCASE Index IS 译码电路,查表方式,控制音调的预置数WHEN 0000 =Tone二” ” CODE二” 0000 HIGH Tone= ” 01100000101 ” ; CODW001; HIGH =;0773;WHEN 0010 =Tone=” ” CODE Toie二; CODE Tone ”; CODE= 0101” ;HIGH Tone 二” 10101011100”CODE= 0111;HIGHTone=” 10110000010”CODEv” 0001”;HIGH=1;1410;WHEN1001 ” =Tone=10111001000;CODE=0010 ;HIGHTone =11000000110;CODE二” 0011”HIGHv=1;-1542;WHEN 1100 ”= Tone=” ;CODE=0101; HIGH=1-1622;WHEN ” ”; CODE= 0110; HIGH =1-1668;WHEN 1111 =” ; HIGH=1 1728;when others=null ;end case;end processend;3。2.1 ONTAB模块原理图图3 3 ONTAB模块原理图3。2。2 ONTAB模块时序仿真图波形仿真将所编写的分频预置数查表模块 ONTAB勺程序设为工程,选用Altera公司的Cyclone系列中的EP1C3TC1448为目标芯片进行仿真。 仿真结果如下图:m culma 1-OOM 3O 2-CODE 空3-CODE J J-4HIGHLCtl index7-ixid牡S吕-uicLeK jTz-jLJid.eKl jIOiil三t. on. a2 IE-IOO 13-914-l心血* 8击15-tona TT0 16-SEF17 I-4 one 5 la-t O71A 4 J=?1*20-rs-tan# 1 =t ga 图34 模块ONTAB的波形仿真由上图可以看出,该模块为音乐谱对应分频预制数查表电路模块,当 code 为休止符0000时,输出端tone给出的分频预置数为2047,当code为0001时 输出端tone给出的分频预置数为773,满足程序要求。3.3音乐符数控11分频电路模块 OUTSPEKER音符的频率由数控分频模块获得,这是一个数控分频电路它是由一个初值可变的加法计数器构成该计数器的模为2047,当计数器记满时,计数器产生一 个溢出信号FULL此溢出信号就是用作发音的频率信号。在计数器的输入端给 定不同的初值,而此预置数就是表1中的计数初值,就可得到不同音符的发音频 率信号。它计满时所需要的计数初值可由下式来表示。分频系数=基准频率/音符的发生频率计数初值(Tone) =2047-分频系数低音时Tone值小,分频系数大,溢出信号周期长,扬声器发出的声音低,Tone 随音乐的乐谱变化大,自动控制分频比,实现了数控分频,发生信号的频率与音 调Tone成正比.这就是利用数控分频器自动演奏音乐的原理.library ieee;use ieee。 std_logic_unsigned.all;entity OUTSPEKER isport(clk:in std_logic;tone:in std_logic_vector(10 downto 0) ;spks:out std_logic);end entity OUTSPEKER;architecture one of OUTSPEKER is signal preclk,fullspks:std_logic ; begindivideclk : process(clk)variable count4:std_logic_vector(3 downto 0);beginpreclk= ;将 CLK 进行 16 分频,PreCLK 为 CLK 的 16 分频if count41 1 then preclk=1 ; count4: =0000 ”;elsif clk event and clk=1 :the=ncocuonutn4t+41; end if;end process divideclk;genspks:process(preclk, tone)- 11 位可预置计数器 variable count11:std_logic_vector(10 downto 0);beginif preclk event and preclk=1 thenif count1 1 =1 6#7ff then count1 1:=tone;fullspks=1;else count11:=count11+1;fullspks=0;end if;end if;end process;delayspks:process(fullspks)-将输出再2分频,展宽脉冲,使扬声器有足够 功率发音variable count2:std_logic;beginif fullspksevent and fullspks= 1 thneont count2;:=if count2=1 then spks=1;else spks =0;e nd if;end if;end processend;3.3.1 OUTSPEAKER模块原理图 OUTspeakerj!elkspk& toneW.Ojl instlI图3-5 OUTSPEAKER模块原理图3.3.2 OUTSPEAKER模块时序仿真图波形仿真将所编写的音乐符数控分频模块 OUTSPEKER程序设为工程,选用Altera公司的Cyclone系列中的EP1C3TC144为目标芯片进行仿真 仿真结果如下图:IV 0ilk 1spks曰 tOTiiIT 3-toiuelD4 ;-tDD( 9-t DTie 3Up 6-tone7耐-tDne Sj tent410-tone31F:1-tPIW l2-tul|13-ttILfc 0)5.us IQ.1 nsV5 20, tis 25- us 和一平 mL55 ihrL1II1i11 1191 1 1 1 1 1iniii n i 1 il i p i i| h i 1hiiiiI|4I1Iaaai|iiqniiIiiiiiiaii|i|(fl!41Iii图3-2模块OUTSPEKE的波形仿真图由上图可以看出,此图为音乐符数控11分频电路模块,tone为时,给出的分频预置数为1686,这样,与SPKS的输出频率就有了对应关系. 满足程序要求。3.4 乐曲演奏音符数据文件 ( 梁祝、自选曲 )WIDTH = 4 ;-乐曲演奏数据DEPTH = 256 ;Address_radix = dec;Data_radix = dec ;CONTENT BEGIN333355568889685512121215131210129999999099910776655568899338865685555555510101012779968555555353356796666665688891212121099109886533338888686535685555555500000000123355677656321112325678987652323333555500000000其中WIDTH=4表示数据输出为宽为4; DEPTH=256表示共有256个4位数 据点;ADDRESS-RADIX=DE表示地址信号用十进制; DATA-RADIX=DEC表示输 出数据是十进制数。形成ROM中的配置数据(初始化数据)文件的方法如下:在 QUARTUS I中 编辑.mif文件。首先在File菜单下的New菜单上选择Text Editor File 命令, 进入文本编辑器,然后输入以上格式的数据文件。文件中的关键词WIDT H设置ROM勺数据宽度QEPTH设置ROM数据的深度,即4位数据的数量,文件中设置的256等效于8位地址线宽度;ADDRESSRADIX=DEC口 DATA-RADIX=DE表示设置 地址和数据的表达式格式都是十进制;地址 /数据表以CONTENT BEG开始,以 END结束;其中的地址/数据表达方式是冒号左边写 ROM地址值,冒号右边写对 应此地址放置的十进制数据。3.4 引脚绑定为了能对此电路进行硬件测试,应将其输入信号锁定在芯片确定的引脚上, 编译后下载。当硬件测试完成后,还必须对配置芯片进行编程,完成 FPGA的最 终开发.确定引脚分别为CLK8HZ接第128脚,CLK12MHZ接在第123引脚上, 复位RST接在第106引脚上,选择键SEL接在第107引脚上;CODE【3。0】 分别接在第42到39引脚上,high接在第73引脚上输出SPKOUT接在第129 引脚上。确定了锁定引脚编号后就可以完成以下引脚锁定操作了,选择 ASSSIGNMENT- PINS命令,将弹出目标器件的引脚编辑窗口, 将信号名拖 入引脚上,最后储存这些引脚锁定的信息后,再编译一次,才能将引脚锁定信息 编译进编程下载文件中.NcdeNameOrectbnLocationI/O RantH&qlfIjlOStriaid1lnpdt2B!.Nl3.J-VWT1L (default)1 CH2NH2I帼pm i232B2 Hl3M陶3OujdtP1N.42B4.N2kWTU (default)4P1N.414町23.JVWTK(def7A I形8-0 A i09HIGH1A I3 10SP1TIUTA iK. 9T5 ns?= 魄竽i冲1 S66哙2- 621町 3 277 m= 3呼皓4丐AonnnmrLrLnrLrLrLrLnrLrLrLrLrLnrwmnjTnmLruwmRRTL3:nrisr7&T!CTeTu图4-1顶层程序的时序仿真_iu1Jrui_n已经实现乐曲的演奏。SEL为低电平时切换第二首乐曲播放,RST为低电平时从 第一首乐曲开始重新播放达到了设计要求第五章 课程设计心得体会这次 EDA 课程设计历时两个星期,在整整两个星期的日子里,可以说是 苦多于甜, 但是可以学的到很多很多的东西, 同时不仅可以巩固以前所学过的知 识,而且学到了很多在书本上所没有学到过的知识。通过这次设计, 进一步加深 了对 EDA 的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写 调试成功时,心里特别的开心 .但是在编写顶层文件的程序时,遇到了不少问题, 特别是各元件之间的连接 ,以及信号的定义,总是有错误,在细心的检查下,终 于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。 在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示。 后来,在数十次的调试之后就可以观察到完整的仿真结果。通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知 识是远远不够的, 只有把所学的理论知识与实践相结合起来, 从理论中得出结论, 才能真正为社会服务 ,从而提高自己的实际动手能力和独立思考的能力。在设计 的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题 ,同时在设计的过程中发现了自己的不足之处,对以前所学过的知 识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的乐曲硬件演奏电路还是比较成功的,在设计中遇到了很多问题, 最后在老师的辛勤的指导下, 终于游逆而解,有点小小的成就感, 终于觉得平时所学的知识有了实用的价值 ,达到了理论与实际相结合的目的 ,不仅 学到了不少知识, 而且锻炼了自己的能力, 使自己对以后的路有了更加清楚的认 识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导 老师再次表示忠心的感谢参考文献1潘松 黄继业 编著。EDA技术与VHDL(第二版).清华大学出版社。20072 刘江海 EDA 技术课程设计。 华中科技大学出版社。 20083潘松编著.EDA技术实用教程.北京:科学教育出版社.20064 QuartusSemiconductor data books Quartus Semiconductor Corporation20015杭州康芯电子有限公司 GW4 PK3实验系统说明书。杭州康芯电子有限公司.2006
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!