FPGA大作业设计报告.pdf

FPGA大作业设计报告.pdf

ID:57064841

大小:353.01 KB

页数:14页

时间:2020-07-31

FPGA大作业设计报告.pdf_第1页
FPGA大作业设计报告.pdf_第2页
FPGA大作业设计报告.pdf_第3页
FPGA大作业设计报告.pdf_第4页
FPGA大作业设计报告.pdf_第5页
资源描述:

《FPGA大作业设计报告.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字电子技术实验课程FPGA创新实验设计报告设计名称电子琴与音乐盒姓名学号xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx专业班级xxxxxxxx系指导教师xxx日期xxxx年x月xx日摘要本次设计借数电实验课的机会,基于FPGA可编程逻辑器件实现了电子琴和音乐发生器的功能,使用ALTERA公司的CYCLONEⅢ芯片构成系统主体,软件部分应用VHDL语言,在QuartusⅡ8.1设计平台上完成。本方案整合了PS2键盘接口和音乐发生模块,具有一定的灵活性和创新性。关键词:电子琴;音乐发生器;FPGA;VHDL-1-目录一、设计任务与要求----

2、-----------------------------3二、总体框图---------------------------------------3三、选择器件---------------------------------------3四、功能模块---------------------------------------3五、总体设计电路图--------------------------------11六、实现功能--------------------------------------11七、心得体会-----------------------

3、---------------13一、设计任务与要求:设计一个能够实现音乐发生功能以及能够通过键盘弹奏的电子琴。要求:选择功能一时能够通过键盘弹奏出三个八度的21个音符,每个音符发音时间相同;选择功能二时能够自动播放一段音乐,并有暂停和继续的功能。二、总体框图:1、总体框图如下所示:键盘接口模块音调转换模块总体控制与发声模块2、各模块功能:键盘接口模块键盘接口模块用于接收键盘按键输出的断码,将信息输送到音调转换模块,以便其将键盘按键与不同的音符进行对应。音调转换模块音调转换模块将输入进来的按键通码与断码信息与不同的音符对应起来,并将结果传递给下一级模块。总体控

4、制与发声模块总体控制与发声模块实现按键发声时长的控制、播放音乐的编辑以及电子琴与音乐发生器模式切换的功能。三、选择器件:设计开发软件:QuartusⅡ8.1;FPGA功能板;主芯片:ALTERACYCLONEⅢ;PS2接口键盘;扬声器。四、功能模块:1、键盘接口模块:ps2clk是键盘自身的的时钟信号输入;ps2data是键盘的数据输入,即按键信息;clr是清零输入;sysclk接系统的CLOCK_50时钟信号;hbyteh[3..0]、hbytel[3..0]、lbyteh[3..0]、lbytel[3..0]是不同按键所对应的四位通码和断码输出。其VHDL程序如

5、下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYps2keyboardISPORT(ps2clk:INSTD_LOGIC;--PS/2键盘时钟输入ps2data:INSTD_LOGIC;--PS/2键盘数据输入clr:INSTD_LOGIC;--清零输入控制sysclk:INSTD_LOGIC;--50MHz系统时钟,大大高于PS/2键盘时钟hbyteh,hbytel,lbyteh,lbytel:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--输出四位通码或断码ENDps2keyboard;ARCHIT

6、ECTUREfwmOFps2keyboardISSIGNALclk_int:STD_LOGIC:='0';SIGNALbyte_temp:STD_LOGIC_VECTOR(21DOWNTO0);--记录两帧键盘数据信号BEGINP1:PROCESS(sysclk,clr)--用系统时钟信号sysclk监视PS/2时钟VARIABLEh_temp,l_temp:integer:=0;BEGINIFclr='0'THENclk_int<='0';h_temp:=0;l_temp:=0;--清零ELSIFRISING_EDGE(sysclk)THEN--系统时钟上升沿IF

7、ps2clk='1'THEN--检测PS/2时钟高电平时间是否达到8个系统时钟周期IFh_temp=8THENclk_int<='1';h_temp:=0;l_temp:=0;--内部时钟高电平ELSEh_temp:=h_temp+1;ENDIF;ELSEIFl_temp=8THEN--检测PS/2时钟低电平时间是否达到8个系统时钟周期clk_int<='0';h_temp:=0;l_temp:=0;--内部时钟低电平ELSEl_temp:=l_temp+1;ENDIF;ENDIF;ENDIF;ENDPROCESSP1;-4-P2:PROCESS(clk_int

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。