1、 FPGA 课程设计报告课程设计报告 题 目:简易电子琴设计及 FPGA 功能验证 院 系: 专业班级: 学生姓名: XX 导师姓名: XX 起止时间: 2012、6、18 至 2012、6、29 一一、课程课程设计设计任务任务: 本设计一个简易电子琴,具体功能如下: 1、具有手动弹奏和自动播放功能; 2、以按键或开关作为电子琴的琴键,输出 7 个音节的音阶; 3、可以自动播放曲目至少两首。 二、二、课程课程设计目的:设计目的: 1、培养综合运用知识和独立开展实践创新的能力; 2、深入学习 Verilog HDL,了解其编程环境; 3、学会运用 Modelsim和 Quartus II 等编程
2、仿真软件; 4、将硬件语言编程与硬件实物功能演示相结合,加深理解 Verilog HDL 的学习; 三、使用环境:三、使用环境: 1、软件:Modelsim和 Quartus II 等编程仿真软件; 2、硬件:FPGA 开发板。 四、四、课程设计详细方案及功能验证:课程设计详细方案及功能验证: 1、总体总体实现实现方案方案: 1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9 个按键、LED、蜂鸣器等,软件资源包括编写 Verilog HDL 程序的应用软件 Modelsim 和仿真软件 Quartus II。电子琴有按键代替琴键的弹奏功能和自动播放 功能。 2、整个程序总共分
3、 5 个模块:主模块,按键模块,曲目 1 模块,曲目 2 模块, 曲目 3 模块。 整个方案总共用了 9 个按键(key1key9) ,按键 key1key7 作为琴键,通过 这七个按键键入不同的音阶。主模块中 key8、key9 两个按键用于选择是自动播 放还是弹奏曲目,令 mm=(key8、key9) ,用 mm 值的不同选择调用不同模块。 如果 mm=00,则程序调用按键模块;如果 mm=01,则调用曲目 1 模块,播放曲 目 1;如果 mm=10,则调用曲目 2 模块,播放曲目 2;如果 mm11,则调用曲目 3 模块,播放曲目 3。 本次设计的框图: 2、输入输出信号描述:、输入输出
4、信号描述: 具体功能描述: 信号源 输入/输出 功能描述 inclk Input 时钟频率 50M key(19) Input 键入以及选择曲目 num Output 数码管显示 out_r Output 根据 r 选择不同模块 3、顶层划分:顶层划分: 主模块主模块 (key1.key2.key3.key4.key5.key6.key7.key8.key9) outclk beep_r 主模块 9个 按 键 (key1key9) 控制播放曲目 以及手动弹奏 手 动 弹 奏 (key1key7) 播 放 曲 目 (key8、key9) 按键模块 即琴键键入音阶, Key1key7 mm=00
5、mm=11 曲目 3 曲目 1 曲目 2 mm=01 mm=10 电 子 琴 Key (19) Inclk 7:0num Out_r(beep) 4、主要模块:、主要模块: 主模块: 功能描述:是四个子模块的核心,通过主模块分别调用四个不同的子模块。 管脚描述: 信号名称 输入 / 输出 源 功能描述 inclk Input Pin 系统时钟 50MHz Key(19) Input Pin 按键选择,键入作用 outclk Output Pin 模块选择输出 按键模块: 功能描述:通过按键 key1key7 键入不同的 7 个音阶,频率不同则蜂鸣器发音 就不同;通过 mm=(key8、key9
6、)的值选择调用不同曲目模块。 管脚描述: 信号名称 输入 / 输出 源 功能描述 inclk Input Pin 系统时钟 50MHz Key(17) Input Pin 按键键入 7 个不同音阶 Beep4 Output Pin 输出 7 个不同音阶 inclk 50MHZ 分 频 clk_6M mm num7:0 Key (89) 分 频 clk_6M Key (17) beep4 分 频 clk_6M clk_4HZ count state beep1 分 频 clk_6M clk_4HZ count state clk_4HZ beep2 分 频 clk_6M clk_4HZ count clk_4HZ state clk_4HZ beep3 曲目模块: 功能描述:不同的曲目模块输出不同的曲调,根据高低音对应的频率不同输出 不同曲调的曲目。在 50MHZ 的情况下对主时钟分频得到 6MHZ 的频率,得到