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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

EDA期末大作业设计.docx

1、EDA期末大作业设计宁波理工学院 EDA课程设计报告 题 目 简易电子琴 组 员 王维婷(3110403128) 郑雅亿(3110403131) 专业班级 电子信息工程112班 1、实验目的1.学习利用数控分频器、键盘实验。2.理解PS/2键盘的基本原理。2、实验原理本实验利用键盘的数字按键部分来控制电子琴的C调,DO RA,MI,FA,SO,LA,SI,分别用0,1,2,3,4,5,6,7来进行控制。们使用了键盘的介入来进行控制。组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率的关系。乐曲的12平均率规定:每2个八度音(如简谱中的中音

2、1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如图所示。 简谱中音符与频率的关系如图所示,为PS/2键盘的接口引脚图。下图为PS/2键盘的通信时序图。主系统由4个模块组成:TOP是顶层设计文件,其内部有三个功能模块:Tone.VHD、Speaker.VHD、enc16_4.VHD.、PS2VHDL.VHD、clkdiv10.VHD、clkdiv50.VHD以及PULSE12.VHD模块TONE是音阶

3、发生器,当4位发声控制输入INDEX中某一位为高电平时,则对应某一音阶的数值将从端口TONE输出,作为获得该音阶的分频预置值;同时由CODE输出对应该音阶简谱的显示数码,如5,并由HIGH输出指示音阶高8度显示。由例6-28可见,其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone Y Y Y Y Y Y Y Y Y Tone = CONV_STD_LOGIC_VECTOR(2047,11);-CONV_STD_LOGIC_VECTOR(139,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LO

4、GIC_VECTOR(347,11); CODE = CONV_STD_LOGIC_VECTOR(2,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(533,11); CODE = CONV_STD_LOGIC_VECTOR(3,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(615,11);CODE = CONV_STD_LOGIC_VECTOR(4,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(773,11); CODE = CONV_STD_LOGIC_VECTOR(5,4); HIGH Tone =

5、CONV_STD_LOGIC_VECTOR(912,11); CODE = CONV_STD_LOGIC_VECTOR(6,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1036,11); CODE = CONV_STD_LOGIC_VECTOR(7,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1092,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1197,11); CODE = CONV_STD_LOGIC_VECTOR(1,4

6、); HIGH Tone = CONV_STD_LOGIC_VECTOR(1290,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1372,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1410,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1480,11); CODE = CONV_STD_

7、LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1542,11); CODE Tone = CONV_STD_LOGIC_VECTOR(1622,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(1728,11); CODE = CONV_STD_LOGIC_VECTOR(1,4); HIGH Tone = CONV_STD_LOGIC_VECTOR(2047,11); CODE = CONV_STD_LOGIC_VECTOR(0,4);

8、HIGH = 0; END CASE; END PROCESS;END;PS2VHDL- VHDL library Declarations LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;- The Entity Declarations ENTITY PS2VHDL IS PORT(ClkFilter: IN STD_LOGIC;-1MHzRESET: IN STD_LOGIC;KBDATA: IN STD_LOGIC; KBCLK:

9、IN STD_LOGIC;EOC: OUT STD_LOGIC;PDATA: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END PS2VHDL;- The Architecture of Entity Declarations ARCHITECTURE Behavioral OF PS2VHDL ISSIGNAL spdata: STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL TT: STD_LOGIC;SIGNAL cnt8: INTEGER RANGE 0 TO 10;BEGIN- Optimize PROCESS( RESET, KBCL

10、K, ClkFilter )VARIABLE Count : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF(RESET = 0 OR KBCLK = 0)THEN TT 0);ELSIF( ClkFilterEVENT AND ClkFilter = 1 ) THEN IF( Count 1100 ) THEN Count := Count + 1; TT = 0;ELSECount := 1100; TT = 1;END IF; END IF; END PROCES- Recevie Recevie: PROCESS( RESET, TT, KBDATA, spd

11、ata, cnt8 )BEGINIF RESET = 0 THEN cnt8 = 0; spdata 0);ELSIF TTevent AND TT = 0 THEN IF( cnt8 10 ) THEN spdata(cnt8) = KBDATA;cnt8 = cnt8 + 1; ELSE cnt8 = 0; END IF; END IF; END PROCESS; - End of recevie PROCESS( RESET, cnt8 )BEGINIF RESET = 0 THEN EOC = 0;ELSIF cnt8 /= 0 THEN EOC = 1;ELSE EOC = 0;EN

12、D IF; END PROCESS; -PDATA = spdata( 8 downto 1 );END Behavioral; clkdiv10-占空比为1:1的任意偶数倍分频Library IEEE;Use IEEE.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity clkdiv10 is Port( clk: in std_logic; clk_out: out std_logic);end clkdiv10;architecture arch of clkdiv10 issignal count : integer ra

13、nge 0 to 49; -分频倍数-1beginprocess (clk) -分频器begin if clkevent and clk=1 then if count=counthigh then count=0; else countcounthigh/2 then clk_out=1; else clk_out=0; end if; end if;end process;-count_out = count;end arch;clkdiv50-占空比为1:1的任意偶数倍分频Library IEEE;Use IEEE.std_logic_1164.all;Use ieee.std_logi

14、c_unsigned.all;Entity clkdiv50 is Port( clk: in std_logic;-count_out :out integer range 0 to 119; clk_out: out std_logic);end clkdiv50;architecture arch of clkdiv50 issignal count : integer range 0 to 49; -分频倍数-1beginprocess (clk) -分频器begin if clkevent and clk=1 then if count=counthigh then count=0;

15、 else countcounthigh/2 then clk_out=1; else clk_out=0; end if; end if;end process;-count_out = count;end arch;PULSE12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PULSE12 IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(10 DOWNTO 0); FOUT : OUT STD_LOGIC );END;

16、ARCHITECTURE one OF PULSE12 ISSIGNAL FULL : STD_LOGIC;SIGNAL CNT8 : STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL CNT2 : STD_LOGIC;BEGINP_REG: PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111111 THEN CNT8 = D; -当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL = 1; -同时使溢出标志信号FULL输出为高电平 ELSE CNT8 = CNT8 +

17、1; -否则继续作加1计数 FULL = 0; -且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 = NOT CNT2; -如果溢出标志信号FULL为高电平,D触发器输出取反 END IF;END PROCESS P_DIV ;FOUT = CNT2;END;4、实验总结 通过本次实验,使我对使用VHDL编写模块来实现音乐播放有了更深一步的了解,在本次实验中,在原先的基础上加入了播放暂停的功能,并更换了歌曲。使仿真更具有功能性,并且更加熟悉了利用数控分频器设计硬件,受益匪浅。

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

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