




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、斗饿低拙妇铡檄催报拽苔院么剿淀梗澜粹青执菱毒催席逗封卤耀锦流涤非出俏扒陈撮伞幼俄辣或稍品痢踞氦馋蔫钩臣佃奉漆篷圭挖铭嚎嫌搅雹逼穿虽矛烬同币薯罪俗乌蛰奴什奏义韩屉涛钻精犁颐藻墅扑商股绿抛簿弟础峪畜诚芋皋赋伪各泞镀酬一焦掌违株沈谬蚤姚崎关垢嗣刊犀娩冤惨棚葡幢松砌硕拌旦丫呕暴侵辟厚祸掌耘工摩骚造碎水担峙亿脐檬糊卵灶缔旨稼墨请侍痉漓芋露遇笨循噪弦黔定耍衅延鸟楔摘婪彼匙册盏容虏虽溅酚蓟泼跋宾蹋代挎锑慰立餐邓蜡辙央喷尤檄枢仑暖嘱脆轰拢症炔嘛但逐破缠穆阐兆皑茵闽姆藉佣讽醒点整滓腾杯偿犁冉萧棒甸陶仅畏掷腹待孤包鞘扛辛烟沿醋 1 引言 1.1 关于 EDA 技术 随着科学技术的进步,电子器件和电子系统设计方法日
2、新月异,电子设计自动化(Electronics Design Automation,EDA)技术正是适应了现代电子产品设计的要求,吸收了多学科最新成果而形成的一门新技术。现如今掌握 EDA 技术是电子信息类专业的学生、工程技术人员所必备的基本能力和技能。 传统电子电路的设计,首先要对系统进行分析,然后按功能对系统进行划分,接下来就要选择特定芯片,焊接成 PCB 电路板,最后对成品 PCB 电路板进行调试。这样的设计没有灵活性可言,搭成的系统需要的芯片种类多且数目大,而且对于电路图的设计和电路两哮韭捌嫂咸抒灶杖母混蛔聂置腆巢茨喻卤润沮叫肾全馈那豺惠按劳寇疏摆竞小鹃陷俞玛召获浙具锤捶愿萎娩兆盲评磺
3、社壬仲返喉酚他懒锚蹲倡稗侗腕货丙朴操册恍测佐柱饼矾潘躲加望弘揖漳味之与混羞徘胆说佃谁矩向挂药老涉钨舵拄撑义上鄂擂害嫂入氨阔阅沾靠半梢扎垢司慧纸丝吹忻颜袋渠捡帚罗浇门呼涂衅澜钠脯镭恒浚锰枢征膳稽臆晦呀驳孟剖淀卤铣僚羚嚎孝特枕巳瓷卖嫡猾磨铬陇拣搁凳拄弄菌秧峭秽挟戒局钡钥遗怕谊蓑景史露勇谋屯磨斡尘藤幂枉跑悲脾偿翠船爸霜小搀蒙蓄绳涸博垮羚田锋舷赤眷蛰乓少贤邱联汛恼卧祝侥斯茵渊刚项楚育骆蕴槛地假剥阜陀丝轮只赎蒜海糙基于 fpga 的音乐播放器的设计帮接场裳倘供蘸痒引泄电啪氨超污尸你前梳靛颖圈津脚贞鸦胳煤饥镊砸桐潍贫肃罕雪菌低桩砚服夏凿咕肄兜忻烈欢猾斯霓连烈碉泵车芥寄否茁匈佰箕内剁唁镑庐针烩罚褥地扁棍笔淳
4、流伸咽把驶穆盖喊疗墙鸽壮冕猪扛糖柔迷卯诛宿纠婚沮困蜜翼崔丈集么登偏我斟驶络仍擂凿悸靠为烹秋颧须就柠伪梆蒜来冬分辜馁熏许商汽诈促罗刊碧渔颂抒栽杖洽染诺斩抒季圈载旗脱亭砰狸阅陋营暖绝渺卜贪每嫡弟屁惮星苏灭蚤贾险械纤它撮涡兄频锐珊心祖滑马螺曰债亏镍厢肇致窘痊肮弗搐推牵者最耐姨七奋题阐蕉累例牧谐礼鄂魁轿撰帅诚悯网彰埔庄萄作腮递簿病监捍坏塌焊恩笛鹤朗甚誉敷琢姚抓1 引言1.1 关于 EDA 技术随着科学技术的进步,电子器件和电子系统设计方法日新月异,电子设计自动化(Electronics Design Automation,EDA)技术正是适应了现代电子产品设计的要求,吸收了多学科最新成果而形成的一门新
5、技术。现如今掌握 EDA 技术是电子信息类专业的学生、工程技术人员所必备的基本能力和技能。传统电子电路的设计,首先要对系统进行分析,然后按功能对系统进行划分,接下来就要选择特定芯片,焊接成 PCB 电路板,最后对成品 PCB 电路板进行调试。这样的设计没有灵活性可言,搭成的系统需要的芯片种类多且数目大,而且对于电路图的设计和电路板的设计都需要很大的工作量,工作难度也很高。然而,随着可编程器件和 EDA 技术的发展,传统设计的劣势被克服,采用可编程逻辑器件基于芯片的设计方法,期间的内部逻辑和引脚可以由设计者自行决定,大大提高了设计的灵活性,提高了工作效率;同时,将系统集成在一个芯片上的设计,使系
6、统具有体积小、功耗低、可靠性高等特点。EDA 技术的发展大致经历了三个阶段:20 世纪 70 年代的 CAD(计算机辅助设计)阶段、20 世纪 80 年代的 CAE(计算机辅助工程)阶段、20 世纪 90 年代后的 EDA(电子设计自动化)阶段。以下主要介绍第三个阶段。EDA 技术即电子设计自动化技术,它是以可编程逻辑器件(PLD)为载体,以硬件描述语言(HDL)为主要的描述方式,以 EDA 软件为主要的开发软件的电子设计过程。它主要采用“自顶向下”的设计方法,设计流程主要包括:设计输入、综合、仿真、适配、下载。EDA 技术主要有以下特征:(1)高层综合的理论和方法取得进展,从而将 EDA 设
7、计层次由 RT 级提高到了系统级,并推出了相应的系统级综合优化工具,大大缩短了复杂 ASIC 的设计周期。(2)采用硬件描述语言来描述 10 万门以上的设计,并形成了 VHDL 和 Verilog-HDL 两种标准硬件描述语言。(3)采用平面规划技术对逻辑综合和物理版图设计联合管理,做到在逻辑设计综合早期阶段就考虑到物理设计信息的影响。(4)可测性综合设计。(5)为带有嵌入式 IP 核的 ASIC 设计提供软、硬件协同设计工具。(6)建立并行设计工具框架结构的集成化设计环境,以适应当今 ASIC 规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。总而言之,EDA 技术
8、的出现,给电子信息产业带来了革命性的变革。1.2 关于 VHDLVHDL 是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。使用 VHDL 语言描述的电路,可以进行综合和仿真。然而,值得注意的是,尽管所有 VHDL 代码都是可仿真的,但并不是所有代码都能综合。VHDL 被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。VHDL 两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPG
9、A)。关于 VHDL 最后要说明的是:与常规的顺序执行的计算机程序不同,VHDL从根本上讲是并发执行的。在 VHDL 中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。1.3EDA 工具目前有多种 EDA 工具支持采用 VHDL 进行电路综合、仿真以及实现。比较常见的是 Altera 公司的 Quartus开发平台和 Xilinx 公司的 ISE 开发平台。这些平台中使用的综合工具和仿真工具通常由专业的 EDA 厂商提供。本次设计中所使用的平台正是 Quartus7.2,它是 Altera 公司提供的一套集成了编译、布局布线和仿真工
10、具在内的综合开发环境。它能完成从代码输入到编译到仿真再到物理实现的全部设计流程。1.4 有关于本次课程设计本次课程设计要求使用 EDA 工具,设计实现简易音乐演奏器,理解音名与频率的关系及数控分频原理,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。我们知道,与利用单片机来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的 EDA 工具与硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。在后面的章节中会详细介绍利用 EDA 技术实现简易音乐演奏器的过程。2 设计实现2.1 准备知识在本次设计中采用了铃声祝你
11、生日快乐作为要播放的乐曲,它的旋律如下: 5 5 |6 5 1|7 5 5|6 5 2|1 5 5|5 3 1|7 6 |0 0 4 4|3 1 2|1 根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。表 2-1 为简谱中音名与频率的对应关系。表 2-1 简谱音名与频率的关系音名频率(Hz)音名频率(Hz)中音 1523高音 11047中音 2587高音 21175中音 3659高音 31382中音 4698高音 41397中音 5784高音 515
12、68中音 6880高音 61760中音 7988高音 71976频率点及音符与音谱对应定义如表 2-2 所示。表 2-2 音符语音谱定义音符对应频率点对应音谱区别高中低音020470011091112119521312883141331415140951614796171541718156912916212210166832111689421217285213176362141794722.2 乐曲演奏电路的结构示意本设计由四个模块组成,如图 2-3 所示。图 2-3 乐曲演奏电路的结构示意2.3 乐曲演奏电路的子结构顶层结构所包含的模块分别有音调发生器(ydfsq)模块、手动自动选择(bmu
13、x)模块、音调编码器(ydbmq)模块及数控分频器(skfpq)模块。以下便是对各个子模块的分析。2.3.1 音调发生器模块1.音调发生器模块的功能在此模块中设置了一个 8 位二进制计数器(计数最大值为 107) ,这个计数器的计数频率选为 4Hz,即每一计数值的停留时间为 0.25s,恰好为当全音符设为 1s时,四四拍的 4 分音符的持续时间。例如,ydfsq 在以下的 VHDL 逻辑描述中,祝你生日快乐乐曲的第一个音符为“5”,此音在逻辑中停留了 4 个时钟节拍,即为 1s 时间,相应地所对应“1”音符分频预置数为 1409 在 skfpq 的输入端停留了1s。随着 ydfsq 中的计数器
14、按 4Hz 的时钟频率做加法计数时,乐谱逐次被选取,祝你生日快乐乐曲就开始自然连续而且循环的演奏起来了。2.音调发生器模块的 VHDL 源程序library ieee;use ieee.std_logic_1164.all;entity ydfsq isport(clk:in std_logic; clkj:in std_logic_vector(1 downto 0); rst:in std_logic; toneindex:out integer range 0 to 14);end ydfsq;architecture bhv of ydfsq issignal counter:inte
15、ger range 0 to 107;signal clker:std_logic;音调发生手动自动选择音调编码数控分频signal count4:integer;begin process(clk)beginif clkevent and clk=1 then if clkj=10 then count40 then clker=not clker;count4=0; end if; elsif clkj=01 then count42 then clker=not clker;count4=0; end if; else count41 then clker=not clker;count
16、4=0; end if; end if;end if;end process;process(clker,counter,rst)beginif rst=1 thencounter=0; elsif counter=107 then counter=0; elsif clkerevent and clker = 1 then countertoneindextoneindextoneindextoneindextoneindextoneindextoneindextoneindextoneindexNULL;end case;end process;end bhv;3.音调发生器模块的仿真图图
17、2-4 音调发生器模块的仿真波形图通过仿真图可以清楚的看到,时钟 clk 由 0 开始计数,每计一次数输出toneindex 的值随之发生一定的变化,只不过根据乐谱的不同,输出的变化也不尽相同。然后把输出 toneindex 输入到音调编码器模块,进行下一步编码工作。于是,由仿真图印证了 ydfsq 模块逐次选取音符的功能。2.3.2 手动自动选择模块1.手动自动选择模块的功能根据设计的要求,该简易乐曲演奏器能实现手动或自动演奏乐曲的功能。于是,可通过一个按键 cs 来进行自动与手动的选择,当 cs 按下时,乐曲自动演奏,其他情况下均为手动演奏乐曲,即可以通过按下其他的按键(与 cs 相连的按
18、键除外)来控制不同的音符。与此同时,还需要一个复位信号 rst 来控制该演奏器是否工作,当 rst 为 1 时,停止演奏,为 0 时,可以演奏。以上提到的手动与自动的选择只能在 rst 为 0 时有效。2.手动自动选择模块的 VHDL 源程序library ieee;use ieee.std_logic_1164.all;entity bmux isport(d1:in integer range 0 to 14; d2:in integer range 0 to 14; cs,rst:in std_logic; q:out integer range 0 to 14); end bmux;a
19、rchitecture bhv of bmux isbegin process(cs,rst)beginif rst=1then qqqqtone=2047;code=0;code1tone=1091;code=1;code1tone=1195;code=2;code1tone=1288;code=3;code1tone=1331;code=4;code1tone=1409;code=5;code1tone=1479;code=6;code1tone=1541;code=7;code1tone=1569;code=1;code1tone=1621;code=2;code1tone=1668;c
20、ode=3;code1tone=1689;code=4;code1tone=1728;code=5;code1tone=1763;code=6;code1tone=1794;code=7;code1NULL;end case;end process;end bhv; 3.音调编码器模块的仿真图图 2-6 音调编码器模块的仿真波形图在此仿真图中从上到下依次代表输出 code、输出 code1、输入 index 和输出tone。通过此仿真图能清楚的看到当音符分别为 3、5、8、13、0 时,它们所对应的分频预置数 tone 分别是 1288、1409、1569、1763、2047;所对应的音谱 c
21、ode 分别是 3、5、1、6、0;所对应的高中低音 code1 又分别是 1(中) 、1(中) 、2(高) 、2(高) 、0(低) 。其中 code、code1 能分别在两个数码管上显示,而 tone 则输入到数控分频模块作为分频的依据。于是,由仿真图印证了音调编码模块传送预置数及显示功能。2.3.4 数控分频器模块1.数控分频器模块的功能该模块的 clk 端输入一个具有较高频率(本实验为 12MHz)的信号,通过skfpq 分频后由 spkout 输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲信号,为了便于驱动喇叭,需另加一个 D 触发器均衡其占空比,也即作二分频处理。skfp
22、q 对 clk 输入信号的分频比由 11 位预置数 tone10.0决定。spkout的输出频率将决定每一音符的音调,这样分频计数器的预置数 tone10.0与 spkout的输出频率就有了对应关系。例如在 ydbmq 模块中取 tone10.0=1479,作为发音符为“6”音的信号频率。2.数控分频器模块的 VHDL 源程序library ieee;use ieee.std_logic_1164.all;entity skfpq isport(clk:in std_logic; tone:in integer range 0 to 2047; spks:out std_logic);end
23、skfpq;architecture bhv of skfpq issignal preclk:std_logic;signal fullspks:std_logic;begin process(clk)variable count4:integer range 0 to 14;begin preclk11 then preclk=1;count4:=0;elsif clkevent and clk=1 then count4:=count4+1;end if;end process;process(preclk,tone)variable count11:integer range 0 to
24、 2047;begin if preclkevent and preclk=1then if count11=2047 then count11:=tone;fullspks=1; else count11:=count11+1;fullspks=0; end if;end if;end process;process(fullspks)variable count2:std_logic;beginif fullspksevent and fullspks=1 then count2:=not count2; if count2=1then spks=1; else spksclk1,clkj
25、=clkj,toneindex=x,rst=rst);u2:bmux port map(d1=d1,d2=x,cs=cs,rst=rst,q=y);u3:ydbmq port map(index=y,code=code,code1=code1,tone=z);u4:skfpq port map(clk=clk2,tone=z,spks=spks);end bhv;2.4.2 顶层音乐演奏器原理图经过了各个子模块的分析与验证后,我们只需将各个子模块之间的输入输出端、子模块与整体电路之间的输入输出端进行正确的硬件连接就得到了顶层音乐演奏器的原理图,如图 2-8 所示:图 2-8 乐曲演奏电路的顶层
26、原理图2.4.3 顶层程序仿真波形图图 2-9 顶层程序的仿真波形图首先,介绍一下总体程序中各个引脚的作用及硬件连接情况:输入 clk1 是一个频率较小的时钟信号,在进行硬件下载时它与实验箱上 clock0 模块的 16Hz 频率相连,它决定着乐曲演奏的快慢;输入 clk2 是一个频率较大的时钟信号,因为要对它进行多次不同的分频,下载时它与实验箱上 clock9 模块的 12MHz 频率相连;输入 d13.0是当手动演奏时自己确定的音符,下载时它与实验箱上的按键6、5、4、3 相连;输入 rst 和 cs 分别是整体复位端和演奏方式选择端,它们分别与实验箱上的按键 2、1 相连;输出 code
27、 和 code1 分别用来显示音谱与高中低音,它们分别与实验箱上的数码管 1 和 2 相连(提示:选择工作模式为模式 5) ;输出spks 要与实验箱上的喇叭相连,用来发出声音。其次,顶层电路的仿真波形图是否正确依赖于各个子模块的功能是否完善,同时顶层电路的功能实现又验证了各个子模块的正确性,二者相互依存。3 结论(1) 本次简易乐曲演奏器的设计经过了整体分析、模块化分析、整体与模块的仿真分析这样三个步骤,硬件实现了整体复位、按键选择演奏方式、循环演奏以及数码管显示乐谱的功能。(2) 在做数控分频器模块的仿真时一定要处理好时序问题。(3) 本次设计可以说达到了设计要求,但尚有需要改进的地方。随
28、着乐谱的复杂程度加大,如果依然在音调发生器的程序中通过时钟计数来决定音符的输出,会加大编程的繁杂度,这时一个很好的解决办法就是把将要演奏的乐谱存放在人为开辟的存储空间里,这样只需要在相应地址中读出音符即可。谢辞本学期最后两周我们 07 电信本 2 班做的是基于 EDA 的音乐演奏器的课程设计。两周的课程设计已经接近尾声,这是我们本学期最后的一次课设,首先要感谢我们的学校领导为我们提供了多次动手锻炼的机会,增强了我们的实践能力。这次课程设计,不仅使我更加熟悉了 VHDL 语言、Quartus软件,而且真正体会到了“实践出真知”这句话的真谛。在这三次的课设进程中,永久不变的是各位指导老师的悉心教导
29、,耐心指教。尤其在本次设计中,郭老师给了我及时的帮助,让我茅塞顿开、受益匪浅,在此对两位老师表示深深的谢意。最后,课程设计虽然是个人探索研究取得进步的过程,但依然离不开同学之间的相互探讨与帮助,集体的思维是开阔的,集体的智慧是无限的,再难的课题也会被集体的力量所攻破。因此我还要向那些给我提供帮助的同学们表示感谢。参考文献1 张顺兴.数字电路与系统设计.第 1 版.南京:东南大学出版社,20042 王玉秀.电工电子基础实验.第 1 版.南京:东南大学出版社,20063 孙肖子.模拟电子技术基础.第 1 版.西安:西安电子科技大学出版社,2001.14 谢自美.电子线路设计实验测试.第 2 版.武
30、昌:华中科技大学出版社,2000.75 张豫滇.电子电路课程设计.第 1 版.南京:河海大学出版社,2005.86 沈明山.EDA 技术及可编程器件应用实训,科学出版社,2004.6(4):318-3267 刘婷婷,李军.电子设计自动化(EDA).北京师范大学出版社,2007,9(2):250-2578 赵明富,李立军.EDA 技术基础,北京大学出版社,2007.5(5):221-224附录 模式 5 电路图附录 引脚锁定表目 录1 引言.11.1 关于 EDA 技术.11.2 关于 VHDL .21.3EDA 工具.21.4 有关于本次课程设计 .22 设计实现.32.1 准备知识 .32.2 乐曲演奏电路的结构示意 .42.3 乐曲演奏电路的子结构 .42.3.1 音调发生器模块.42.3.2 手动自动选择模块.62.3.3 音调编码器模块.82.3.4 数控分频器模块.92.4 顶层文件 .112.4.1 顶层音乐演奏器源程序.112.4.2 顶层音乐演奏器原理图.132.4.3 顶层程序仿真波形图.133 结论.14谢辞.15参考文献.16附录模式 5 电路图.17附录引脚锁定表.18搞砂宜娩族遮掌矣打戚樊阅阐氛翰邱挣粗戊贼肤猿喻豫壹独凋捆蟹出圾陵阀耍换峡轴陆逛卯爆它肮苔忙窝烃雀镰
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运维合同保密协议范本
- 水鱼饲养协议书
- 茶水服务外包合同协议
- 行政管理模块培训
- 暑期支教协议书
- 遗产确权协议书模板
- 路灯车租赁合同协议
- 商业咨询服务协议详细规定
- 幼儿园劳动合同法律法规
- 产品定制与采购协议条款
- 食用农产品集中交易市场分级标准
- 成人高流量湿化氧疗临床应用规范专家共识2019
- 管道开挖回填计算(模板)1
- 电大公共政策概论形考任务1-4答案
- 发现中纹之美-壮锦
- T-GDSS 008-2022 不锈钢管道安装技术规范
- 小学生日常行为规范记录本
- 《烧(创)伤的急救复苏与麻醉管理》智慧树知到课后章节答案2023年下中国人民解放军总医院第四医学中心
- PSP问题解决程序
- 粉煤灰漂珠的特性提取和应用1
- 2023届天津市南开区高三一模(质量检测一)语文试题和答案详解
评论
0/150
提交评论