音乐发生器及简单电子琴eda设计方案

合集下载

EDA课程设计——音乐发生器

EDA课程设计——音乐发生器

PLD与数字系统实训设计题目:音乐发生器系别:班级:指导老师:姓名:学号:完成时间:年月日课程设计题目、内容、要求目录1、课程设计题目、内容、要求………………………………1.1 设计目的 (1)1.2 设计要求 (1)2、设计思路 (1)2.1 音名与频率的关系 (2)2.2 音长的控制 (3)2.3 演奏时音名的动态显示 (3)3、VHDL代码 (3)4、仿真结果 (10)5、硬件下载验证 (11)6、心得体会(总结) (11)7、附录 (12)8、附图1 (14)9、附图2 (15)题目:音乐发生器1.1 设计目的:利用可编程逻辑器件和一个小扬声器设计一个音乐发生器。

1.2 设计要求:利用PLD器件设计一个音乐发生器,可演奏“梁祝”片段,可重复演奏。

2. 设计思路:组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过可编程逻辑器件的手段来利用这些数值所希望乐曲的演奏效果。

扬声器数码管音乐产生器原理框图2.1 音名与频率的关系音乐的十二平均率规定:每两个八音度(如简谱中的中音1与高音1)之间的频率相差一倍。

在两个八音度之间,又可分为十二个半音,每两个半音的频率比为2的12方根。

另外,音名(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1到高音1之间每个音名的频率如下表所示。

各音阶频率对应的分频值由于最大的分频系数诶6067,故采用13位二进制计数器已能满足分频要求。

在上表中,除给出了分频比以外,还给出了对应于各个音阶频率时计数器不同的初始值。

对于不同的分频系数,只要加载不同的初始值即可。

采用加载初始值而不是将分频输出译码反馈,可以有效地减少本设计占用可编程逻辑器件的资源,这也是同步计数器的一个常用设计技巧。

对于乐曲中的休止符,只要将分频系数设为0,即初始值为213-1=8191即可,此时扬声器将不会发声。

eda课程设计简易电子琴

eda课程设计简易电子琴

eda课程设计简易电子琴一、课程目标知识目标:1. 让学生了解EDA(电子设计自动化)的基本概念,掌握简易电子琴的设计原理;2. 使学生掌握电子琴电路的组成、工作原理和编程方法;3. 帮助学生理解电子琴音调、音量调节的电路实现方式。

技能目标:1. 培养学生运用EDA工具进行电路设计和编程的能力;2. 提高学生动手实践、团队合作和问题解决的能力;3. 让学生学会使用电子琴演奏简单曲目,培养音乐素养。

情感态度价值观目标:1. 激发学生对电子设计的兴趣和热情,培养创新精神和实践能力;2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯;3. 引导学生关注科技发展,认识电子技术在生活中的应用,增强社会责任感。

课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手能力和创新能力。

学生特点:学生处于初中阶段,具有一定的物理、数学基础,对新鲜事物充满好奇心,但可能缺乏实际操作经验。

教学要求:结合学生特点,采用任务驱动法,引导学生主动探究、实践,注重理论与实践相结合,提高学生的综合能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 理论知识:- 电子元件基本原理:电阻、电容、二极管、三极管等;- 电子琴工作原理:振荡器、分频器、放大器、键盘扫描电路等;- EDA软件使用:原理图绘制、PCB设计、仿真测试等。

2. 实践操作:- 简易电子琴电路搭建:指导学生动手搭建电子琴电路;- EDA软件操作:教授学生使用EDA软件进行原理图绘制和PCB设计;- 编程与调试:教授学生编程方法,对电子琴进行调试。

3. 教学大纲:- 第一周:电子元件基本原理学习;- 第二周:电子琴工作原理学习;- 第三周:EDA软件使用教学;- 第四周:简易电子琴电路搭建与调试;- 第五周:总结与展示,学生进行作品展示,分享心得。

4. 教材章节:- 《电子技术基础》中关于电子元件、电路原理的相关章节;- 《电子设计自动化》中关于EDA软件使用的相关章节;- 《电子琴设计与制作》中关于电子琴工作原理和制作过程的相关章节。

EDA课程设计报告--音乐发生器设计

EDA课程设计报告--音乐发生器设计

EDA课程设计报告一音乐发生器设计电子课程设计------- 音乐发生器设计学院:电子信息工程学专业班级:通信工程101501姓名:孔翔学号:201015030109指导教师: 李东红2012年12月音乐发生器设计目录-=设计任务与要求二:总体框图三:选择器件1: Songer 模块l)music模块(程序)2) NoteTabs模块(程序仿真图)3) ToneTaba模块(程序仿真图)4) Speakera模块(程序仿真图)2= div模块(程序仿真图)123:七段译码器模块(程序)14五=总体设计电路1.顶层设计VHDL描述songer模块 (16)2.顶层文件的仿真结果...............................3.管脚分配图...............................4.EDA硬件验证..............................六:心得体会19七:参考资料21乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。

实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。

如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。

使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。

FPGA预装了很多已构造好的参数化库单元LPM器件。

通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。

本文介绍在EDA开发平台上利用VHDL语言设计数控分频器电路,用数控分频的原理设计音乐硬件演奏电路,并定制LPM-ROM存储音乐数据,以《挥着翅膀的女孩儿》《菊花台》乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。

音乐发生器及简单电子琴的eda设计 2

音乐发生器及简单电子琴的eda设计 2

音乐发生器及简单电子琴的eda设计摘要本系统是采用EDA技术设计的一个简易的八音符电子琴和音乐发生器,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

系统由乐曲自动演奏模块、乐器演示模块琴/乐功能选择模块、音调发生模块和数控分频模块五个部分组成。

系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。

本系统功能比较齐全,有一定的使用价值。

关键字电子琴;EDA;VHDL;音调发生;QuartusII;1 引言:1.1设计目的1)利用数控分频器设计一个电子琴硬件电路和音乐发生器2)演奏时可以选择是手演奏(键盘输入)或自动演奏已存入的乐曲,并且能自动重复演奏1.2设计的基本内容运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工具对各模块进行仿真验证。

本设计包含如下三个模块:乐曲自动演奏模块,音调发生模块,数控分频模块,最后把各个模块整合后,通过电路的输入输出对应关系连接起来2.1 EDA技术EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

2.2 硬件描述语言——VHDL2.2.1 VHDL的简介VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。

乐曲硬件演奏电路EDA设计

乐曲硬件演奏电路EDA设计

摘要随着科学技术的飞速发展,微电子技术、集成技术和计算机技术也有了迅速的发展,电子系统的设计方法也随之发生变革,基于EDA技术的设计方法也成为现代电子系统设计的主流。

大规模可编程逻辑器件FPGA/CPLD是当今应用最广泛的两类可编程专用集成电路(ASIC)。

由于结构和工艺的改进,可编程ASIC 芯片上包含的资源越来越丰富,可实现的功能越来越强,它已成为实现电子系统集成化的重要手段。

特别是可编程逻辑器件的功能和容量的不断扩大,如FPGA(Field Programmable Gate Array,现场可编程门阵列)使集成电路的设计进入片上系统(System on a Chip,SOC)或可编程片上系统(System on a Programmable Chip,SOPC)的设计时代。

同时采用超高速集成电路硬件描述语言VHDL (Very High Speed Integrated Circuit Hard—ware Description Language),其具有多层次描述系统硬件功能的能力,既支持模块化设计,也支持层次化设计,使各种数字化电子系统的设计通过描述芯片功能实现系统功能,从而有效地缩短了产品开发周期,减少了设计芯片的数量,缩小了系统体积,降低了系统能耗,提高了系统的灵活性和可靠性。

关键词FPGA, 音乐节拍发生器模块,音乐译码电路模块,数控分频模块AbstractTechnically fly to soon develop along with science, micro-electronics technique, integration technique and calculator technique also had a quick development and the design method of electronics system also immediately took place a change and also become modern main current of design of the electronics system according to the EDA technical design rge-scale and programmable FPGA/CPLD of the logic spare part is nowadays to apply two types of most extensive programmable appropriation integrated circuits(ASIC).Because of the improvement of structure and craft, include on the programmable ASIC chip of the resources be more and more abundant, can carry out of the function be more and more strong, it has become to carry out electronics system the integration turn of important means.Function and capacity of especially programmable logic spare part continuously extend and make the design of integrated circuit get into a slice of top system(the System on a Chip, SOC) or programmable slice the top system(a Programmable of the System on Chip, SOPC) such as the FPGA(the Gate Array of the Field Programmable, the spot programmable door array) of design ages.Adopt in the meantime extremely high soon the integrated circuit hardware describe language VHDL(the Circuit Description Language of the Hard-ware of the Speed Integrated of the Very High), it has the system hardware of the multilayers description the ability of the function, since support the mold piece turn a design, also support layer's turn a design and make various numeral turn the design of electronics system to pass description chip function to carry out system function, thus and availably shortenned a product a development a period, reduced to design chip of amount, contracted a system physical volume, lowering system can consume and raised the vivid and credibility of the system.Keywords FPGA, the music rhythm occurrence machine mold piece, music translates the code electric circuit mold piece and the number controls the Pin mold of cent a piece目录摘要 (I)ABSTRACT (II)1引言 (1)1.1 ASIC技术 (1)1.2可编程专用集成电路ASIC (1)1.2.1 概述 (1)1.2.2主要特点 (1)1.2.3发展前景 (2)1.3EDA技术 (2)1.3.1概述 (2)1.3.2 EDA技术的发展趋势 (2)2乐曲演奏系统设计原理分析 (3)2.1乐曲演奏基本要求 (3)2.2乐曲演奏原理 (3)3系统硬件设计 (6)3.1FPGA的介绍 (6)3.1.1 FPGA的基本结构 (6)3.1.2 Altera公司的FPGA (6)3.2FLEX系列的结构特点 (7)3.2.1 概述 (7)3.2.2 FLEX的特点 (7)4乐曲硬件演奏电路的层次化设计方案 (8)4.1音乐节拍发生器N OTE T ABS (8)4.2音符译码电路T ONE T ABA模块 (13)4.3数控分频模块S PEAKERA设计 (15)4.4乐曲硬件演奏电路的顶层设计和仿真 (17)总结 (20)致谢 (21)参考文献 (22)附录 (23)1引言1.1ASIC技术ASIC(Application Specific Integrated Circuits)专用集成电路,与通用集成电路相比,它是面向专门用途的电路,以此区别于标准逻辑(Standard Logic)、通用寄存器、通用微处理器等电路。

eda简易电子琴课程设计

eda简易电子琴课程设计

eda简易电子琴课程设计一、课程目标知识目标:1. 学生能理解并掌握EDA简易电子琴的基本组成结构及其工作原理。

2. 学生能掌握基础电子元件的使用,如电阻、电容、二极管、三极管等,并能运用到电子琴的制作中。

3. 学生能理解并运用基础的电子音乐理论知识,如音符、音阶、和弦等。

技能目标:1. 学生能够独立完成EDA简易电子琴的组装和调试。

2. 学生能够通过编程实现对电子琴音调的控制,具备初步的编程能力。

3. 学生能够运用所学的电子琴知识创作简单的音乐作品,提高动手实践能力。

情感态度价值观目标:1. 学生通过动手实践,培养对电子科技的兴趣,提高创新意识和团队合作精神。

2. 学生在创作过程中,体验科技与艺术的结合,培养审美观念和艺术修养。

3. 学生在课程学习过程中,树立正确的价值观,认识到科技发展对生活的改善,增强社会责任感。

课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新意识和团队合作精神。

学生特点:六年级学生具备一定的认知能力和动手能力,对新鲜事物充满好奇,喜欢动手实践。

教学要求:教师需注重理论与实践相结合,关注学生的个体差异,鼓励学生主动探究,培养学生的创新思维和解决问题的能力。

同时,注重课程目标的分解与落实,确保学生能够达到预期学习成果。

二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识- 了解EDA简易电子琴的组成结构,包括键盘、主控板、音源、功放等。

- 学习基础电子元件(电阻、电容、二极管、三极管等)的功能和选型。

- 掌握基础的电子音乐理论知识,如音符、音阶、和弦等。

教学内容关联教材章节:第二章 电子元件与电路基础2. 电子琴制作与调试- 学习使用面包板进行电路搭建,掌握EDA简易电子琴的组装方法。

- 学习编程控制电子琴音调,实现不同音符的演奏。

- 学习调试电子琴,解决制作过程中遇到的问题。

教学内容关联教材章节:第三章 数字电路与编程基础、第四章 电子琴设计与制作3. 音乐创作与展示- 运用所学知识创作简单的音乐作品,进行小组内分享与评价。

EDA实验7lxm简易音乐发生器综合设计

EDA实验7lxm简易音乐发生器综合设计

实验七简易音乐发生器设计一、实验目的1、学习存储器的定制与应用。

2、学习数控分频器涉及硬件乐曲演奏电路。

3、要求学生独立查阅资料、编制实验方案、按实验方案进行实验操作,编写出合乎要求的实验方案、实验报告。

二、实验仪器PC机、EDA实验箱一台Quartus II 6.0软件三、实验原理组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素。

乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。

在2个八度音之间,又可分为12个半音,每2个半音的频率比为。

另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如下表所示:(2)、系统由3个模块组成:ToneTata(乐曲简谱码对应得分频预置数查询表电路)、Speakera (数控分频器)、Notetabs(用于产生节拍控制和音阶选择信号),硬件电路如下:四、实验内容1:根据例9-30、9-31,及以上的设计原理,完成乐曲硬件演奏电路的设计,仿真测试及实验系统上的硬件测试。

建议选电路模式5。

4Hz与12MHz的信号单独选取进行锁定。

五、实验步骤:1、代码编写,具体参考教材中相关章节。

2、波形仿真。

综合编译成功后,建立波形文件进行波形仿真,启动仿真器Simulator,观察输出波形的情况,在软环境下验证设计的正确性。

3、引脚锁定和程序下载。

参选实验电路模式5和附表一中的 FLEX10K20 EP1K30/50144-PIN TQFP目标芯片,确定输入引脚并在开发环境中进行引脚锁定操作后重新综合编译,成功后进行下载操作。

六、实验报告内容:1、设计流程图。

2、VHDL代码。

3、仿真波形图。

4、硬件测试数据表。

5、分析实验结果。

6、心得体会。

七、实验思考题:1、如果ROM中存放多首曲目,应该如何修改程序?2、如果确定输出频率?与时钟频率有何关系?-- 硬件演奏电路顶层设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer ISPORT ( CLK12MHZ : IN STD_LOGIC; --音调频率信号CLK8HZ : IN STD_LOGIC; --节拍频率信号CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);-- 简谱码输出显示HIGH1 : OUT STD_LOGIC; --高8度指示SPKOUT : OUT STD_LOGIC);--声音输出END Songer;ARCHITECTURE one OF Songer ISCOMPONENT NoteTabsPORT ( clk : IN STD_LOGIC;ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END COMPONENT;COMPONENT ToneTabaPORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ;HIGH : OUT STD_LOGIC;Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0));END COMPONENT;COMPONENT SpeakeraPORT ( clk : IN STD_LOGIC;Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC);END COMPONENT;SIGNAL Tone : STD_LOGIC_VECTOR (10 DOWNTO 0);SIGNAL ToneIndex : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINu1 : NoteTabs PORT MAP (clk=>CLK8HZ, ToneIndex=>ToneIndex);u2:ToneTaba PORT MAP(Index=>ToneIndex,Tone=>Tone,CODE=>CODE1,HIGH=>HIGH1);u3 : Speakera PORT MAP(clk=>CLK12MHZ,Tone=>Tone, SpkS=>SPKOUT );END one;--NoteTabs部分--LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs ISPORT ( clk : IN STD_LOGIC;ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END;ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC --音符数据ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END COMPONENT;SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINCNT8 : PROCESS(clk, Counter)BEGINIF Counter=138 THEN Counter <= "00000000";ELSIF (clk'EVENT AND clk = '1') THEN Counter <= Counter+1;END IF;END PROCESS;u1 : MUSIC PORT MAP(address=>Counter , q=>ToneIndex, inclock=>clk); END;--ToneTaba部分--LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba ISPORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ;HIGH : OUT STD_LOGIC;Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END;ARCHITECTURE one OF ToneTaba ISBEGINSearch : PROCESS(Index)BEGINCASE Index IS -- 译码电路,查表方式,控制音调的预置数WHEN "0000" => Tone<="11111111111" ; CODE<="0000"; HIGH <='0';-- 2047WHEN "0001" => Tone<="01100000101" ; CODE<="0001"; HIGH <='0';-- 773;WHEN "0010" => Tone<="01110010000" ; CODE<="0010"; HIGH <='0';-- 912;WHEN "0011" => Tone<="10000001100" ; CODE<="0011"; HIGH <='0';--1036;WHEN "0101" => Tone<="10010101101" ; CODE<="0101"; HIGH <='0';--1197;WHEN "0110" => Tone<="10100001010" ; CODE<="0110"; HIGH <='0';--1290;WHEN "0111" => Tone<="10101011100" ; CODE<="0111"; HIGH <='0';--1372;WHEN "1000" => Tone<="10110000010" ; CODE<="0001"; HIGH <='1';--1410;WHEN "1001" => Tone<="10111001000" ; CODE<="0010"; HIGH <='1';--1480;WHEN "1010" => Tone<="11000000110" ; CODE<="0011"; HIGH <='1';--1542;WHEN "1100" => Tone<="11001010110" ; CODE<="0101"; HIGH <='1';--1622;WHEN "1101" => Tone<="11010000100" ; CODE<="0110"; HIGH <='1';--1668;WHEN "1111" => Tone<="11011000000" ; CODE<="0001"; HIGH <='1';--1728;WHEN OTHERS => NULL;END CASE;END PROCESS;END;--Speakera部分--LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera ISPORT ( clk : IN STD_LOGIC;Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC);END Speakera;ARCHITECTURE one OF Speakera ISSIGNAL PreCLK, FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk)V ARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0) ;BEGINPreCLK <= '0'; -- 将CLK进行16分频,PreCLK为CLK的16分频IF Count4>11 THEN PreCLK <= '1'; Count4 := "0000";ELSIF clk'EVENT AND clk = '1' THEN Count4 := Count4 + 1;END IF;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone)-- 11位可预置计数器V ARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);BEGINIF PreCLK'EVENT AND PreCLK = '1' THENIF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS <= '1';ELSE Count11 := Count11 + 1; FullSpkS <= '0';END IF;END IF;END PROCESS;DelaySpkS : PROCESS(FullSpkS)--将输出再2分频,展宽脉冲,使扬声器有足够功率发音V ARIABLE Count2 : STD_LOGIC;BEGINIF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2;IF Count2 = '1' THEN SpkS <= '1';ELSE SpkS <= '0';END IF;END IF;END PROCESS;END;-- megafunction wizard: %LPM_ROM%-- GENERATION: STANDARD-- VERSION: WM1.0-- MODULE: lpm_rom-- ============================================================-- File Name: music.vhd-- Megafunction Name(s):-- lpm_rom-- ============================================================-- ************************************************************-- THIS IS A WIZARD-GENERA TED FILE. DO NOT EDIT THIS FILE!---- 6.0 Build 202 06/20/2006 SP 1 SJ Full Version-- ************************************************************--Copyright (C) 1991-2006 Altera Corporation--Your use of Altera Corporation's design tools, logic functions--and other software and tools, and its AMPP partner logic--functions, and any output files any of the foregoing--(including device programming or simulation files), and any--associated documentation or information are expressly subject--to the terms and conditions of the Altera Program License--Subscription Agreement, Altera MegaCore Function License--Agreement, or other applicable license agreement, including,--without limitation, that your use is for the sole purpose of--programming logic devices manufactured by Altera and sold by--Altera or its authorized distributors. Please refer to the--applicable agreement for further details.------ music文件,由宏功能模块生成LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY music ISPORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END music;ARCHITECTURE SYN OF music ISSIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0);COMPONENT lpm_romGENERIC (intended_device_family : STRING;lpm_address_control : STRING;lpm_file : STRING;lpm_outdata : STRING;lpm_type : STRING;lpm_width : NATURAL;lpm_widthad : NATURAL);PORT (address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END COMPONENT;BEGINq <= sub_wire0(3 DOWNTO 0);lpm_rom_component : lpm_romGENERIC MAP (intended_device_family => "ACEX1K",lpm_address_control => "REGISTERED",lpm_file => "music.hex",lpm_outdata => "UNREGISTERED",lpm_type => "LPM_ROM",lpm_width => 4,lpm_widthad => 8)PORT MAP (address => address,inclock => inclock,q => sub_wire0);END SYN;。

乐曲自动演奏器及简易电子琴的设计

乐曲自动演奏器及简易电子琴的设计

乐曲自动演奏器及简易电子琴的设计所做的作品2007-01-28 21:23:49 阅读245 评论1 字号:大中小乐曲自动演奏器及简易电子琴的设计设计制作者:毛传林,张红,胡根水,聂剑飞,王塞中,钱明刚制作时间:2006年12月20日—31日一、设计要求:1.设计并实现简易电子琴和音乐发生器。

2.理解音名与频率关系,可变分频器原理。

3.画出原理框图,设计并实现简易电子琴和音乐发生器。

4.能用简易电子琴弹奏一首乐曲,自动播放一首歌曲。

二、方案论证与比较方案一.使用用现有的EDA实验箱所提供的矩阵键盘,扬声器,EPF10K10TC144-4,脉源等硬件资源,程序设计使用VHDL语言来编制。

VHDL语言有如下优点:1.设计技术齐全、方法灵活、支持广泛VHDL语言可以支持自上至下和基于库的设计方法,而且还支持同步电路、异步电路、FPGA 以及其它随机电路的设计。

2.系统硬件描述能力强VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。

另外,高层次的行为描述可以与低层次的RTL描述和结构描述混合使用。

VHDL语言能进行系统级的硬件描述,这是它的最突出优点。

还可以自定义数据类型,给编程人员带来较大的自由和方便。

3.VHDL语言可以与工艺无关编程在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息。

当门级或门级以上层次的描述通过仿真检验之后,再用相应的工具将设计映射成不同的工艺(如MOS、CMOS)。

在工艺更新时,就无须修改原设计程序,只要改变相应的映射工具就行了。

无论修改电路还是修改工艺相互之间不会产生不良影响。

4.VHDL语言标准、规范、易于共享和复用VHDL语言已作为一种IEEE的工业标准,便于复用和交流。

方案二.使用单片机制作需要使用汇编语言或是用C语言来编制程序,无法像VHDL语言一很好的支持层次化设计,这就加大了程序的编制难度。

无法像VHDL语言一样在EDA工具中进行逻辑综合和优化。

EDA课程设计报告--音乐发生器设计

EDA课程设计报告--音乐发生器设计

EDA课程设计报告--音乐发生器设计电子课程设计————音乐发生器设计学院:电子信息工程学院专业班级:通信工程101501姓名: 孔翔学号: 201015030109指导教师: 李东红2012年12月音乐发生器设计目录一:设计任务与要求 (3)二:总体框图 (3)三:选择器件 (4)四:功能模块 (5)1:Songer模块 (6)1)music模块(程序) (9)2)NoteTabs模块(程序仿真图) (6)3)ToneTaba模块(程序仿真图) (7)4)Speakera模块(程序仿真图) (9)2:div模块(程序仿真图) (12)3:七段译码器模块(程序) (14)五:总体设计电路图 (1)1.顶层设计VHDL描述songer模块 (16)2.顶层文件的仿真结果…………………………………………3.管脚分配图…………………………………………4.EDA硬件验证…………………………………………六:心得体会 (19)七:参考资料 (21)前言乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。

实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。

如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。

使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。

FPGA预装了很多已构造好的参数化库单元LPM器件。

通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。

本文介绍在EDA开发平台上利用VHDL语言设计数控分频器电路,用数控分频的原理设计音乐硬件演奏电路,并定制LPM-ROM存储音乐数据,以《挥着翅膀的女孩儿》《菊花台》乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。

eda电子琴课程设计

eda电子琴课程设计

eda电子琴课程设计一、课程目标知识目标:1. 学生能理解EDA电子琴的基本工作原理,掌握电子琴的构造及各部分功能。

2. 学生能掌握基本的电子琴演奏技巧,如音阶、和弦的演奏。

3. 学生能了解并运用电子琴的音色、节奏变化进行创作。

技能目标:1. 学生能运用电子琴进行简单的曲目演奏,提高演奏技能。

2. 学生能通过电子琴进行音乐创作,培养创新意识和动手能力。

3. 学生能通过小组合作,与他人协作完成一首乐曲的演奏。

情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,增强审美能力。

2. 学生在课程中培养耐心、细心和团队协作精神,提升个人品质。

3. 学生通过音乐表达自己的情感,学会尊重他人,培养良好的人际交往能力。

课程性质:本课程以实践操作为主,理论讲解为辅,注重培养学生的动手能力和创新能力。

学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的音乐基础,喜欢动手实践。

教学要求:结合学生特点,注重课程趣味性,激发学生学习兴趣,鼓励学生积极参与,培养创新意识和团队协作精神。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识:- 电子琴的构造及各部分功能- 电子琴的基本工作原理- 音色、节奏的选择与运用关联教材章节:第一章 电子琴概述2. 电子琴演奏技巧:- 音阶、和弦的演奏方法- 基本指法训练- 简单曲目的演奏关联教材章节:第二章 电子琴演奏技巧3. 音乐创作与团队协作:- 运用电子琴进行音乐创作- 小组合作完成乐曲的演奏- 舞台表现与情感表达关联教材章节:第三章 音乐创作与团队协作教学进度安排:1. 电子琴基础知识(2课时)2. 电子琴演奏技巧(4课时)3. 音乐创作与团队协作(4课时)教学内容注重科学性和系统性,结合教材章节,由浅入深地展开。

在教学过程中,教师需根据学生的接受程度,适时调整教学进度,确保学生充分掌握所学知识。

EDA音乐发生器课程设计报告书

EDA音乐发生器课程设计报告书

1.软件硬件1 EP3C40Q240C8芯片2 实验箱底板电路(包括蜂鸣器、7段数码管、Led灯1个、拨码开关3个、Key按键7个)3 QuartusⅡ9.04 计算2. 总体模块功能1使用两个时钟分别为12MHz和8Hz的时钟,分别供分频驱动器(数控分频器)与计数器使用。

2计数器完成计数功能,分为两个计数器counter1和counter2,counter1计数到269,counter2计数到163,都是在上升沿来临时计数。

3四个音乐模块分别记录了2首歌的乐谱。

根据上一模块计数器所计的数读取相应地址里的数据传递给下一模块。

4选择器完成选择歌曲的功能。

5数据翻译模块将选择器所选择的歌曲里的地址的数据翻译成分频驱动器(数控分频器)分频所需的控制数据、1个led灯数据(中低音)、以及译码器所需的数据。

6分频驱动器也就是一个数控分频器,完成分频的功能,并驱动蜂鸣器。

7译码器将乐谱数据在led数码管上显示。

3.各个模块图形及程序3.1 计数器及歌曲存储模块(notetabs)计数器完成计数功能,分为两个计数器,分别计到269和163,因为两首歌曲的最大字符分别为269和163,存储的两首歌是《采蘑菇的小姑娘》、《小糊涂神》,曲谱如下:1模块图形模块如图3-3所示:2 程序由于此程序较多,在附录中给出,见附录3 仿真波形图仿真图如图3-4所示:通过仿真图可以清楚的看到,每计一次数输出toneindex的值随之发生一定的变化,只不过根据乐谱的不同,输出的变化也不尽相同。

例如在本次设计中,自第8个时钟上升沿来临到第15个时钟上升沿,输出toneindex2均选取音符“5”。

然后把输出toneindex2输入到音调编码器模块,进行下一步编码工作。

3.2 手动模块(tone)可通过7个按键手动的进行演奏,7个按键分别代表7个音。

1模块图形模块如图3-5所示:rstCLKdtoneindex2[3..0]notetabsinstVCCpin_name INPUTVCCpin_name1INPUTVCCpin_name2INPUTpin_name3OUTPUT图3-3 notetabs模块图形key[6..0]toneindex1[3..0]toneinstVCCpin_name INPUT pin_name4OUTPUT图3-4 notetabs仿真波形图4.程序library ieee;use ieee.std_logic_1164.all;entity tone isport(key:in std_logic_vector(6 downto 0); toneindex1:out std_logic_vector(3 downto 0)); end;architecture one of tone isbeginsearch:process(key)begincase key iswhen"0000001"=>toneindex1<="0001"; when"0000010"=>toneindex1<="0010"; when"0000100"=>toneindex1<="0011"; when"0001000"=>toneindex1<="0100"; when"0010000"=>toneindex1<="0101"; when"0100000"=>toneindex1<="0110"; when"1000000"=>toneindex1<="0111";when others=>toneindex1<="0000";end case;end process;end;3 仿真波形图仿真图如图3-6所示:在此仿真图中不同的key相当于对应不同的琴键,当按下不同的琴键时输出相对应的toneindex1,toneindex1在输入音调编码器中进行下一步编码。

eda电子琴课程设计

eda电子琴课程设计

eda电子琴课程设计一、课程目标知识目标:1. 学生能够理解并掌握EDA电子琴的基本结构和工作原理;2. 学生能够运用电子琴演奏简单的旋律,并识别不同音符的音高和时值;3. 学生能够了解并运用基本的音乐理论知识,如音阶、和弦等;4. 学生掌握音乐创作的基本方法,能够创作简单的电子琴曲目。

技能目标:1. 学生能够熟练操作EDA电子琴,进行基本演奏;2. 学生能够运用所学音乐理论知识,进行简单的曲目分析和创作;3. 学生能够在团队合作中,与他人共同演奏和创作音乐作品;4. 学生能够运用电子琴进行即兴演奏,提高音乐表现力。

情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,树立正确的审美观念;2. 学生在学习和创作过程中,培养创新精神和实践能力;3. 学生通过团队合作,培养协作精神和沟通能力;4. 学生通过音乐学习,增强自信,勇于展示自我。

本课程针对小学四年级学生,结合电子琴教学实际,以趣味性和实用性为导向,注重培养学生的动手操作能力、音乐素养和团队协作精神。

通过本课程的学习,使学生能够在轻松愉快的氛围中掌握电子琴演奏技巧,提高音乐创作能力,激发学生对音乐的热爱和兴趣。

同时,课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 电子琴基础知识:介绍EDA电子琴的结构、功能键及操作方法,使学生了解电子琴的基本构成和演奏方式。

- 教材章节:第一章 电子琴概述- 内容列举:电子琴结构、功能键、演奏操作2. 音乐理论基础:学习基本的音乐符号、音阶、和弦等知识,为演奏和创作打下基础。

- 教材章节:第二章 音乐理论基础- 内容列举:五线谱、音符、音阶、和弦3. 电子琴演奏技巧:教授基本演奏技巧,如指法、音色选择、节奏控制等,提高学生的演奏能力。

- 教材章节:第三章 电子琴演奏技巧- 内容列举:指法、音色、节奏、动态4. 简单曲目演奏:选取适合学生程度的曲目,指导学生进行演奏练习,巩固所学知识。

EDA电子琴课程设计

EDA电子琴课程设计

EDA 电子琴课程设计1000字(As an AI language model, I can only provide the text in simplified Chinese as I am not able to generate texts in languages I am not trained for.)EDA电子琴课程设计一、课程背景与目标EDA电子琴课程是一门面向初学者的音乐教育课程。

该课程的主要目标是帮助学生了解电子琴的基本演奏方法和音乐知识,培养学生的音乐素养和演奏能力。

二、课程内容1. 电子琴的基本知识电子琴的基本构造、键盘的结构和尺寸、音色和声音效果的表达方式等相关基础知识。

2. 手指的基本运动包括手指的按键方法、按键力度、手指运动的节奏和速度等,以及在不同曲目中的应用。

3. 流行曲演奏方法基础曲目的演奏方法,并教授不同曲风和音乐风格的演奏方法,如流行、民谣、摇滚等。

4. 音乐基础知识包括音符、音阶、节奏、和弦、记号等,以及有关音乐表达和文化的一些知识。

三、课程特点1. 实用性强EDA电子琴课程以实用性为主要目标,帮助学生在最短时间内成功地学会电子琴的基本演奏技巧和音乐知识。

2. 用户体验好该课程采用现代化的在线教育理念,采用互动式教学方法,利用多媒体手段提高学生学习质量和体验。

3. 强调个性化针对不同年龄段和不同学生的个性,提供个性化的教学方案和教学内容。

同时,教师还会根据学生的进步和需求进行动态调整。

四、课程评价方式1. 以学生为中心EDA电子琴课程注重以学生为中心的教学模式,让学生成为课堂的主要参与者,在教师的引导下自主学习和探究。

2. 多元化评价对学生的成绩和表现采取多元化的评价方式,包括考试、作业、实践和上课表现等,使学生能够全面地了解自己的学习状况并不断提高。

五、总结EDA电子琴课程是一门具有实用性、个性化和多元化特点的音乐教育课程。

通过该课程的学习,学生可以快速初步掌握电子琴的基本演奏技巧和音乐知识,为开展音乐素养和演奏能力的培养打下基础。

EDA简易电子琴的设计

EDA简易电子琴的设计

课程设计说明书题目EDA简易电子琴的设计姓名专业班级系(部)指导教师2011年 1 月 3 日EDA 课程设计、课程(学年)论文任务书课程编号课内/外周数(学时数)1周指导地点 1-501 集中□分散□.注:本表打印,一式三份,学生个人、系(部)(归档)、教务处(备案)各一份摘要本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它可通过按键输入来控制音响从而演奏出已存入的乐曲。

在课程设计中,系统开发平台为Windows XP,程序设计采用VHDL语言,程序运行平台为MAX+plu sⅡ。

然后编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音。

程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标。

关键词电子琴;EDA;VHDL;音阶;频率Abstract The main use of this curriculum design EDA technology to design a simple eight-note organ, it can be key to control the audio input so as to have been deposited in a concert of music. In the course design, system development platform for Windows 2000, the procedures VHDL design language, platform for running MAX + plus Ⅱ. And then program to achieve the various functions of the organ, so that different scale corresponds to a different frequency sine wave, press different keys when the voice of the corresponding frequency. Running through the debugging process, timing simulation, functional verification circuit, successfully achieved the goal of the design.Key Words Electric piano; EDA; VHDL; scale; frequency1引言随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。

EDA简易电子琴设计报告

EDA简易电子琴设计报告

,、题目分析1、分析要求,确定总体方框图本设计基本部分是用VHDL语言设计一个简易的八音符电子琴,在Quartus II 平台下下载到Cyclone系列的EP1C12Q240C芯片中,该电路设计能够实现DO RE Ml、FA等八个音调的电子琴,发挥部分是设计一乐曲自动演奏器,用户自己编制乐曲存入电子琴,电子琴可以完成自动演奏。

电子琴音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。

根据系统设计要求,系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图1所示,它由乐曲自动演奏模块AUTO音调发生模块TONE和数控分频模块FENPIN三部分组成。

图1系统的整体组装设计原理图2、最终完成的技能指标(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。

(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲】、选择方案通过可编程逻辑器件(PLD和VHDL硬件描述引言来实现电子琴的基本部分和发挥部分的设计。

对于基本部分,设计的主体是数控分频器,对输入的频率进行分频,得到各个音阶对应的频率最为输出。

当按下不同的键时发出不同的声音。

对于发挥部分,则在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制(index数据存留时间)和音阶选择信号,即在此模块中可存放一一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。

方案一:由单片机来完成设计。

可用单片机控制键盘的输入,以及产生相应的频率信号作为输出。

目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。

但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,如锁存器,译码器等都需要单独的电路,因此整个系统显得十分复杂,抗干扰性差,在运行过程中容易死机或进入死循环,可靠性降低,而功耗费用增高。

数电EDA简易电子琴Verilog设计

数电EDA简易电子琴Verilog设计

数电EDA简易电子琴Verilog设计数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:一、日期:设计任务用Verilog HDL语言设计简易电子琴。

(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。

二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。

三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。

题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。

低8度音:基本音频率/2,例如低音1的频率为523/2=。

高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。

不同的频率产生利用给定的时钟脉冲来进行分频实现。

(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。

(3)原理框图四、程序设计消抖模块module xiaodou(key_in,key_out,clk);input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0; elsepresta<=s1; ends1:beginkey_out<=0; if(q>9999) presta<=s2; elseq<=q+1; ends2:beginkey_out<=0; q<=0;if(key_in==1) presta<=s0; elsepresta<=s3; ends3:beginkey_out<=1; q<=0;if(key_in==0) presta<=s3; elsepresta<=s4; ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) begin q[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b000000011:qout<=11'b00000000000;9'b000000001:qout<=11'b00000000000;9'b000000000:qout<=11'b00000000000;9'b000000010:qout<=11'b00000000000;default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out);input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)< p="">beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000;pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。

EDA实现电子琴的程序文件

EDA实现电子琴的程序文件

实验十五电子琴设计一、音名与频率的关系:音乐上的十二平均律规定:每两个八度音之间的频率相差一倍。

在这两个八度音之间,分成十二个半音,每两个相邻伴音的频率比为12 2。

另外还规定,音名A的频率为440Hz。

音名B到C、E到F之间为半音,其余为全音。

这样,可计算得从A(简谱的低音6)到a1(简谱的高音6)之间每个音名的频率为:A(6):440Hz a(6):880Hz a1(6):1760HzB(7):493.88Hz b(7):987.76Hzc(1):523.25Hz c1(1):1046.50Hzd(2):587.33Hz d1(2):1174.66Hze(3):659.25Hz e1(3):1318.51Hzf(4):698.46Hz f1(4):1396.92Hzg(5):783.99Hz g1(5):1567.98Hz二、设计要求:设计一个电子琴,要求能演奏音名A到a1之间的全部音阶。

按下一个键,则演奏该音名,并用数码管显示音名,用发光二极管指示高、中、低音。

三、设计提示:本实验由键盘编码,音频输出译码器、分频器组成。

取10MHz信号作为基准。

以基准频率除以上述频率,可得各音名频率的分频系数。

注意,为了减少输出的偶次谐波成分,最后输出应为对称方波。

音频输出译码器实质上是一个多路选择器,根据键盘编码的输出,选择音阶发生器的不同的预置数,分频后输出音频。

分频器可以为加法计数器,以可以为减法计数器,计算预置数时稍有不同,应加以注意。

另外,应根据基准频率和输出频率,来确定计数器的位数。

设计框图如下图所示:电子琴框图四、实验步骤1、启动ISE集成开发环境,创建工程并输入设计源文件。

2、对设计进行时序仿真,分析设计的正确性。

3、锁定引脚,完成设计实现过程。

并在实验箱上连线,利用iMPACT进行程序下载。

4、在实验箱上验证电子琴的功能,观察并记录实验结果.五、实验报告1.music的VHDL 源程序:library ieee;use ieee.std_logic_1164.all;entity music isport(kin: std_logic_vector(0 to 15);spk_out: out std_logic;led_out: out std_logic_vector(6 downto 0);index: out std_logic_vector(2 downto 0);clk: in std_logic);end music;architecture stru of music iscomponent tonetabport(index : in INTEGER range 0 to 15;tone : out INTEGER range 0 to 16#3fff#;code : out INTEGER range 0 to 15;high : out STD_LOGIC_VECTOR(2 DOWNTO 0));end component;component tonegenport(clk : in STD_LOGIC;tone : in integer range 0 to 16#3fff#;spks : out STD_LOGIC);end component;component hex2ledport(hex : in integer range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0));end component;component keybordport(kin : in STD_LOGIC_VECTOR(0 to 15);kout : out INTEGER range 0 to 15);end component;signal kout: integer range 0 to 15;signal tone: INTEGER range 0 to 16#3fff#;signal digit: integer range 0 to 15;beginu1: keybord port map (kin=>kin,kout=>kout);u2: tonetab port map (index=>kout,tone=>tone,code=>digit,high=>index); u3: tonegen port map (clk=>clk,tone=>tone,spks=>spk_out);u4: hex2led port map (hex=>digit,led=>led_out);end stru;2. hex2led的VHDL 源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity hex2led isport(hex : in integer range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0));end hex2led;architecture rtl of hex2led issignal data : std_logic_vector(6 downto 0);beginled<=not data;with hex selectdata<= "1111001" when 1, --1"0100100" when 2, --2"0110000" when 3, --3"0011001" when 4, --4"0010010" when 5, --5"0000010" when 6, --6"1111000" when 7, --7"0000000" when 8, --8"0010000" when 9, --9"0001000" when 10, --A"0000011" when 11, --b"1000110" when 12, --C"0100001" when 13, --d"0000110" when 14, --E"0001110" when 15, --F"1000000" when others; --0end rtl;3. keybord 的VHDL 源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity keybord isport(kin : in STD_LOGIC_VECTOR(0 to 15);kout : out INTEGER range 0 to 15 );end keybord;architecture rtl of keybord issignal data:std_logic_vector(0 to 15); begindata<=kin;process(data)beginif data(0)='0' then kout<=0;elsif data(1)='0' then kout<=1;elsif data(2)='0' then kout<=2;elsif data(3)='0' then kout<=3;elsif data(4)='0' then kout<=4;elsif data(5)='0' then kout<=5;elsif data(6)='0' then kout<=6;elsif data(7)='0' then kout<=7;elsif data(8)='0' then kout<=8;elsif data(9)='0' then kout<=9;elsif data(10)='0' then kout<=10;elsif data(11)='0' then kout<=11;elsif data(12)='0' then kout<=12;elsif data(13)='0' then kout<=13;elsif data(14)='0' then kout<=14;elsif data(15)='0' then kout<=15;else NULL;end if;end process;end rtl;4. tonegen的VHDL源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity tonegen isport(clk : in STD_LOGIC;tone : in integer range 0 to 16#3fff#;spks : out STD_LOGIC);end tonegen;architecture rtl of tonegen issignal fullspks:std_logic;begingenspks:process(clk,tone)variable count14: integer range 0 to 16#3fff#;--std_logic_vector(0 to 13);beginif clk'event and clk='1' thenif count14=16#3fff# then --"1111" thencount14:=tone;fullspks<='1';elsecount14:=count14+1;fullspks<='0';end if;end if;end process;delayspks:process(fullspks)variable count2:std_logic;beginif fullspks'event and fullspks='1' thencount2:=not count2;end if;spks<=count2;end process;end rtl;5. tonetab 的VHDL源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity tonetab isport(index : in INTEGER range 0 to 15;tone : out INTEGER range 0 to 16#3fff#;code : out INTEGER range 0 to 15;high : out STD_LOGIC_VECTOR(2 DOWNTO 0) );end tonetab;architecture rtl of tonetab isbeginprocess(index)begincase index iswhen 0 =>tone<=5021;code<=6;high<="100";when 1 =>tone<=6262;code<=7;high<="100";when 2 =>tone<=6829;code<=1;high<="010";when 3 =>tone<=7872;code<=2;high<="010";when 4 =>tone<=8801;code<=3;high<="010";when 5 =>tone<=9226;code<=4;high<="010";when 6 =>tone<=10007;code<=5;high<="010";when 7 =>tone<=10703;code<=6;high<="010";when 8 =>tone<=11323;code<=7;high<="010";when 9 =>tone<=11607;code<=1;high<="001";when 10 =>tone<=12129;code<=2;high<="001";when 11 =>tone<=12593;code<=3;high<="001";when 12 =>tone<=12805;code<=4;high<="001";when 13 =>tone<=13196;code<=5;high<="001";when 14 =>tone<=13544;code<=6;high<="001";when 15 =>tone<=16383;code<=0;high<="001";when OTHERS=>NULL;end case;end process;end rtl;实验记录:1、设计记录表,记录引脚锁定与连线情况。

EDA电子琴设计

EDA电子琴设计

EDA电子琴设计简介EDA电子琴,是一种基于电子技术的模拟乐器,利用数字信号处理技术实现各种音色的效果。

本文档将介绍EDA电子琴的设计流程,并提供相关的电路图和PCB布局文件。

设计流程EDA电子琴的设计流程主要包括以下几个步骤:1.需求分析:根据客户需求和市场需求确定所需的功能和性能参数。

例如,音色的种类和数量、键盘的大小和布局、输出接口等。

2.原理设计:根据需求分析确定的功能和性能参数,设计EDA电子琴的原理电路图。

例如,采样电路、滤波电路、AD/DA转换电路、MIDI接口等。

3.电路图设计:根据原理电路图,绘制EDA电子琴的各个电路组成部分的电路图。

例如,PWM输出电路、混响电路、调制电路等。

4.PCB设计:将电路图转换为PCB布局图,设计EDA电子琴的PCB布局。

需要考虑电路板大小、部件数量、功率消耗、电源接口等因素。

5.制造和测试:将PCB布局导出为Gerber文件,送至PCB厂家制造出EDA电子琴的电路板。

然后进行电子元件的贴装、引脚焊接、测试等制造过程。

6.调试和优化:对EDA电子琴进行软件和硬件的调试和优化,检查各种功能和效果是否正常工作。

7.批量生产:对EDA电子琴进行批量生产,并配备说明书和保修服务。

电路图与布局电路图以下是EDA电子琴的主要电路图://请在此处插入电路图,采用Markdown语法。

PCB布局以下是EDA电子琴的PCB布局文件://请在此处插入PCB布局文件,采用Markdown语法。

设计一款EDA电子琴需要经过多个环节的精心设计和制造,涉及到硬件和软件方面的知识。

本文档提供EDA电子琴的主要设计流程和相关的电路图和布局文件,希望能够为对此感兴趣的读者提供一些参考和帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

音乐发生器及简单电子琴的eda设计摘要本系统是采用EDA技术设计的一个简易的八音符电子琴和音乐发生器,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

系统由乐曲自动演奏模块、乐器演示模块琴/乐功能选择模块、音调发生模块和数控分频模块五个部分组成。

系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。

本系统功能比较齐全,有一定的使用价值。

关键字电子琴;EDA;VHDL;音调发生;QuartusII;1 引言:1.1设计目的1)利用数控分频器设计一个电子琴硬件电路和音乐发生器2)演奏时可以选择是手演奏<键盘输入)或自动演奏已存入的乐曲,并且能自动重复演奏1.2设计的基本内容运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工具对各模块进行仿真验证。

本设计包含如下三个模块:乐曲自动演奏模块,音调发生模块,数控分频模块,最后把各个模块整合后,通过电路的输入输出对应关系连接起来2.1 EDA技术EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教案部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

2.2 硬件描述语言——VHDL2.2.1 VHDL的简介VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

VHDL语言是一种用于电路设计的高级语言,主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体<可以是一个元件,一个电路模块或一个系统)分成外部<或称可是部分,及端口>和内部<或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

2.2.2 VHDL语言的特点功能强大、设计灵活。

支持广泛、易于修改。

强大的系统硬件描述能力。

独立于器件的设计、与工艺无关。

很强的移植能力。

2.2.3 VHDL的设计流程用VHDL语言设计电路的流程:在用VHDL语言来设计电路时,主要的过程是这样的:<1)使用文本编辑器输入设计源文件。

<2)使用编译工具编译源文件。

VHDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。

<3)功能仿真。

对于某些人而言,仿真这一步似乎是可有可无的。

但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。

另外,对于作为一个独立的设计工程而言,仿真文件的提供足可以证明你设计的完整性。

<4)综合。

综合的目的是在于将设计的源文件由语言转换为实际的电路。

这一部分的最终目的是生成门电路级的网表<Netlist)。

<5)布局、布线。

这一步的目的是生成用于烧写的编程文件。

在这一步,将用到第<4)步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。

这就好像在设计PCB 时的布局布线一样。

先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。

然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。

<6)后仿真。

这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。

3 简易电子琴设计过程3.1简易电子琴的工作原理音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

该电子琴可以实现两个功能,用按键CS来选择不同功能,第一种功能是用手动即通过按键的形式输入不同音名,第二种功能是音乐发生器,可以自动重复播放“梁祝”音乐。

当CS为高电平1时,选择功能二,当CS为低电平0时,选择功能一,由于本设计是利用的GW48EDA_PK3实验系统,选择的是NO.3方案,所以要长按实验箱上的八键,才会选择功能二。

其硬件原理图如图一<图一)3.2简易电子琴的工作流程图如图二所示<图二)3.3简易电子琴中各模块的设计系统内部结构图如下图图三所示<图三)3.3.1琴/乐功能选择器BMUX模块程序:library ieee。

use ieee.std_logic_1164.all。

entity bmux is port(index1:in std_logic_vector(3 downto 0>。

index2:in std_logic_vector(3 downto 0>。

cs :in std_logic。

toneindex:out std_logic_vector(3 downto 0>>。

end。

architecture arc_bmux of bmux isbeginprocess(cs>begincase cs iswhen '0'=>toneindex<=index1。

when '1'=>toneindex<=index2。

when others=>toneindex<=null。

end case。

end process。

end arc_bmux。

3.3.2乐曲自动演奏notetabs模块程序:library ieee。

use ieee.std_logic_1164.all。

entity notetabs isport(CLK:in std_logic。

toneindex2:out std_logic_vector(3 downto 0>>。

end notetabs。

architecture one of notetabs issignal counter:integer range 0 to 138。

begincnt8:process(clk>beginif counter=138 thencounter<=0。

elsif clk'event and clk='1'thencounter<=counter+1。

end if。

end process。

search:process(counter>begincase counter iswhen 00=>toneindex2<="0011"。

when 01=>toneindex2<="0011"。

when 02=>toneindex2<="0011"。

when 03=>toneindex2<="0011"。

when 04=>toneindex2<="0101"。

when 05=>toneindex2<="0101"。

when 06=>toneindex2<="0101"。

when 07=>toneindex2<="0110"。

when 08=>toneindex2<="1000"。

when 09=>toneindex2<="1000"。

when 10=>toneindex2<="1000"。

when 11=>toneindex2<="1001"。

when 12=>toneindex2<="0110"。

when 13=>toneindex2<="1000"。

when 14=>toneindex2<="0101"。

when 15=>toneindex2<="0101"。

when 16=>toneindex2<="1100"。

when 17=>toneindex2<="1100"。

when 18=>toneindex2<="1100"。

when 19=>toneindex2<="1111"。

when 20=>toneindex2<="1101"。

when 21=>toneindex2<="1100"。

when 22=>toneindex2<="1010"。

when 23=>toneindex2<="1100"。

when 24=>toneindex2<="1001"。

when 25=>toneindex2<="1001"。

when 26=>toneindex2<="1001"。

when 27=>toneindex2<="1001"。

when 28=>toneindex2<="1001"。

相关文档
最新文档