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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于CPLD梁祝演奏电路设计Word下载.docx

1、 细化方框图四、编写应用程序并仿真1、模块Speakera是一个数控分频器,音符的频率可由此模块获得。由CLK端输入一具有较高频率(这里是12MHZ)的信号,通过Speakera分频后由SPKOUT输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号。为了利用驱动扬声器,需加一个D触发器以均衡其占空比,频率将是原来的1/2。Speakera对CLK输入信号的分频比由预置数Tone10.0决定。SPKOUT的输出频率将决定每一音符的音调。 该模块仿真图为:Speakera仿真图2、模块ToneTaba,是为了Speakera提供决定发音符的分频预置数,是乐曲简谱码对应的分频预置数查找

2、表电路,其中设置了“梁祝”的全部音符所对应的分频置数功13个。每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs的CLK的输入频率决定,在此为4MHZ。这些值由对应于ToneTaba的4位输入值Index3.0确定,最多有16种可选值。输向ToneTaba中Index3.0的值ToneIndex3.0的输出值与持续的时间由模块NoteTabs决定。该模块仿真图为:ToneTaba仿真图 3、模块NoteTabs是乐曲简谱码对应的分频预置数查表电路。在该模块中设置了一个8位二进制计数器(计数最大值为138),作为音符数据ROM的地址发生器。这个计数器的计数频率为4Hz,即每一计数值的停

3、留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。该模块的功能就是定义音符数据ROM“music”随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据ROM中的音符数据。将从ROM中通过ToneIndex3.0端口输向ToneTaba模块,演奏“梁祝”乐曲。该模块的波形图为:NoteTabs仿真图1对于模块Songer梁祝乐曲简谱如下:其仿真波形如下 定制LPM_ROM模块定义音符数据ROM“music”。 Music模块存放乐曲中的音符数据,它是利用LPM-ROM来实现的,将乐谱中相应的音符放在一个连续的地址上。它首先是编写音符数据文件,将乐谱中相应

4、的音符存放在一个连续的地址上。因为1拍的时间定为1秒,提供的是4Hz的时钟频率(即1/4拍的整数倍),则需将这个音符存储在相应次数的连续几个地址上。然后对音符数据进行ROM定制。五、全系统联调,画出整机电路,波形图等。1、顶层设计Songer的电路原理图顶层设计Songer的电路原理图Songer模块就是顶层设计文件,所有的模块都由它调用。将Songer模块设为当前文件,进行编译,编译成功:顶层设计的仿真结果如下:2、电路的顶层文件管脚分配图如下:六、硬件测试与说明 选择电路模块1,先将引脚锁定,使clk12Mhz与clock9相连,用短路帽在clock9接12Mhz;clk8Mhz与cloc

5、k2相连,接受4Mhz;spkout接speaker;code1接引脚3942;high1接引脚77.下载完成后,选择蜂鸣器即发出声音,演奏出“梁祝”乐曲。最后一数码段显示音乐谱数。 硬件下载仿真图形七、结论 次课程设计终于顺利完成了,在设计中遇到的一些问题,最后在老师和同学的帮助下,终于解决了,从中学习到了很多。通过两个多周的紧张工作,终于完成了简易电子琴的设计,这个课程设计使我受益匪浅,使我了解了硬件设计的整个流程,并且加深了我对计算机组成原理这门的课内容的理解,通过这个课程设计,不仅使我了解了组成原理的脊髓,而且使我对VHDL语言从陌生到初步理解,扩充的我的知识面。通过本次课程设计的学习

6、,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。回顾此次课程设计,从书籍,网络不断的寻找到设计电路,从拿到题目到完成整个设计,从理论到实践,可以学到很多很多的的东西。对课本知识的进一步加深的同时学到了很多在书本上没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的。把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正

7、提高自己的实际动手能力和独立思考的能力。在设计的过程难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。在课程设计的整个过程中,得到了谭敏老师的大力支持和精心指点。所以非常感谢谭敏老师对我的指导与大力的帮助。如果没有她严谨细致、一丝不苟地批阅和指正,本文很难在这个短时间内完成。从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!8、课程总结 1 EDA简介 EDA(Electronics Design Automation)

8、技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是Verilog HDL。 2 Ve

9、rilog HDL简介Verilog HDL和VHDL一样,是目前大规模集成电路设计中最具代表性、使用最广泛的硬件描述语言之一。Verilog HDL具有如下特点:能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行精确而简练的描述。(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如国有C语言的编程基础经验,只需很短的时间就能学会和掌握Verilog HDL,因此,Verilog HDL可以作为学习HDL设计方法的入

10、门和基础。本设计了基于FPGA的音乐硬件演奏电路的设计,实现了一个乐曲播放器,而且描述了其工作原理、设计思路及实现方法,并在上选用目标芯片仿真实现了音乐硬件演奏电路的功能。实践证明:采用FPGA设计实现音乐硬件演奏电路的可行性和可靠性,而且更改乐曲容易,可根据需要修改ROM中的音符数据文件,从而使电路实现任一曲子的播放。这种基于FPGA的音乐硬件演奏电路的设计与实现,不仅通过VHDL层次化和模块化设计方法,同时采用数控分频和定制LPM-ROM的设计思想,更好的优化了乐曲演奏数字电路的设计,在此基础上不必变化顶层文件架构可随意变更乐曲,有效缩短了产品开发周期、减少了设计芯片的数量、降低了功耗、提

11、高了设计的灵活性、可靠性和可扩展性。这个课程设计也培养了我们的耐心和毅力,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,由于这个课程设计也使我积累了一些经验,相信这些经验在我以后的学习工作中会有很大的作用。此课程设计也使我了解了VHDL设计的方便灵活性,这是我们跨入计算机硬件行业很好的一次锻炼。九、参考文献目录一、 潘松 黄继业.EDA技术实用教程(第三版). 科学出版社/2006年出版二、 曹新燕 周凤臣 聂春燕EDA技术实验与课程设计 清华大学出版社 三、 李莉 路而红 电子设计自动化 中国电力出版社十、附录(源程序)Tonetaba模块LIBRARYIEEE;U

12、SEIEEE.STD_L OGIC_1164.ALL ;ENTITY ToNeTaba IS PORT( INDEX : IN STD_LOGIC_VECTOR(4 DowNTO 0); CODE : OUT STD_LOGIC_VECTOR(4 DowNTO 0); HIGH : OUT STD_LOGIC; TONE : OUT STD_LOGIC_VECTOR(10 DowNTO 0);END;ARCHITECTURE ONE OF TONETABA ISBEGINSEARCH : PROCESS(INDEX)CASE InDex ISWHEN 00000=TONE=1111111111

13、1;CODEHIGH NULL ;END CASE;END PROCESS;Speakera模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC);ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LOGIC;

14、DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN PreCLK11 THEN PreCLKCount4 := 0000 ELSIF clkEVENT AND clk= THEN Count4 := Count4 + 1; END IF; END PROCESS; GenSpkS : PROCESS(PreCLK,Tone) VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0); IF PreCLKEVENT AND PreCLK = THE

15、N IF Count11 = 16#7FF# then Count11 := Tone ; FullSpkS = ELSE Count11 := Count11 + 1;FullSpkSEND IF; DelaySpkS : PROCESS(FullSpkS) VARIABLE Count2 : IF FullSpkSEVENT AND FullSpkS = THEN Count2 := NOT Count2; IF Count2 = THEN SpkS ELSE SpkS END;NoteTabs模块USE IEEE.STD_LOGIC_1164;ENTITY NoteTABS ISPORT

16、 ( clk :ToneIndex : OUT STD_LOGIC_VECTOR (4 DOWNTO 0);ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock : q :END COMPONENT; SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0); CNT8 : IF Counter=197 THEN Counter 00000000 ELSIF (clkEVENT AND clk = )THE

17、N CounterCounter, q=ToneIndex,inclock=clk);顶层模块 songerENTITY songer IS PORT ( CLK12MHZ : -音频频率信号 CLK8HZ : -节拍频率信号 CODE1 : OUT STD_LOGIC_VECTOR (4 DOWNTO 0); -简谱码输出显示 HIGH1 : -高8度指示 SPKOUT : OUT STD_LOGIC ); -声音输出ARCHITECTURE one OF Songer IS COMPONENT NoteTabs ToneIndex : END COMPONENT; COMPONENT To

18、neTaba PORT ( Index : IN STD_LOGIC_VECTOR (4 DOWNTO 0); OUT STD_LOGIC_VECTOR (10 DOWNTO 0); COMPONENT Speakera SIGNAL Tone : SIGNAL ToneIndex : STD_LOGIC_VECTOR (4 DOWNTO 0);u1 : NoteTabs PORT MAP (clk=CLK8HZ,ToneIndex=ToneIndex);u2 : ToneTaba PORT MAP (Index=ToneIndex,Tone=Tone,CODE=CODE1,HIGH=HIGH

19、1);u3 : Speakera PORT MAP(clk=CLK12MHZ,Tone=Tone,SpkS=SPKOUT);通过两星期的紧张工作,最后完成了我的设计任务基于VHDL语言的智能密码锁设计。希望学校以后多安排一些类似的实践环节,让同学们学以致用。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

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

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