| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

基于VHDL的电子琴设计(含完整程序)

文***享

贡献于2019-06-05

字数:22776


课程设计报告




题 目
专业学号
授课班号
学生姓名
指导教师
完成时间





课程设计(报告)务书
(理 工 科 类)
Ⅰ课程设计(报告)题目:
电子琴
Ⅱ课程设计(文)工作容
课程设计目标
1培养综合运知识独立开展实践创新力
2提高独立发现问题分析问题解决问题力
3更加解掌握Verilog HDL基知识基编写程序更加深入解门课程
4理学基础通完成涉时序逻辑组合逻辑声光输出具实性趣味性系统设计
5理知识实际应结合起够独立进行某数字应系统开发设计工作定基础
二研究方法手段应
1务分成干模块查阅相关文资料分模块调试完成务
2Verilog HDL语言编写程序
3Modesim60 Quartus II软件进行仿真
4硬件完成实验效果调试演示
三课程设计预期效果
1熟练掌握Verilog HDL语言
2实现功电子琴FPGA实验箱查效果
3键盘key1key7输入中音七音符发音DOREMIFASOLASI控制应音响
4户编制乐曲存入电子琴电子琴完成动演奏功通第八键key8动演奏曲子两老虎第九键key9演奏梁祝第八第九键时蜂鸣器动播放曲子天空城
5数码实时显示音调值
学生姓名: 专业年级:

着EDA技术进展基编程数字电子系统设计完整方案越越受重视利微处理器(CPUMCU)实现乐曲演奏相纯硬件完成乐曲演奏电路逻辑复杂果助功强EDA工具硬件描述语言仅传统数字逻辑技术简单演奏电路难实现课程设计Modesim60利Verilog HDL语言完成软件编写 Quartus Ⅱ软件台编译载FPGA实验箱采FPGA器件驱动扬声器构成乐曲演奏电路该电子琴设计体三模块构成分控制模块乐曲存储循环播放模块顶层模块设计实现手动电子琴动播放音乐功

关键词 EDA Verilog HDL FPGA Quartus Ⅱ 电子琴


ABSTRACT
With the progress of EDA technology based on programmable digital electronic system design complete solutions more and more attention And the use of a microprocessor (CPU or MCU) to achieve the music play compared to the pure hardware logic circuit to play complete songs much more complex without the help of powerful EDA tools and hardware description language the mere number of traditional logic technology even the simplest circuit performance is difficult to achieve This course is designed primarily to use Verilog HDL language in Modesim60 complete software development software platform in the Quartus Ⅱ downloaded to the FPGA compile test cases the use of FPGA devices drive a small speaker to play music to form a circuit The design of the keyboard in general consists of three modules namely control module music storage and playback module cycle the top module The design of manual and automatic keyboard to play music









Key words:EDA Verilog HDL FPGA Quartus ⅡElectronic keyboard

















目录

第章 系统设计 4
第节 设计目标 4
基功 4
二 提高部分 4
第二节 设计语言 4
Verilog HDL语言介绍 4
第三节 设计原理 5
乐曲演奏原理 5
第四节 设计方案较 7
方案较 7
二方案选择 8
第五节 总体设计方案 8
第二章 单元模块设计 9
第节 电子琴输入控制模块 9
基原理 9
二原理框图分频系数产生 9
第二节 乐曲存储循环播放模块 10
第三节 顶层模块 11
第三章 软件设计 12
第四章 实验结果讨 14
第节 调试步骤 14
第二节 调试现象出现问题分析 15
第五章 总结 15
致谢 17
参考文献 18
附 录 18
电子琴程序: 18
顶层模块 18
二输入控制模块 21
三曲目1乐谱存储循环播放模块 22
三曲目 二乐谱存储循环播放模块 26


第章 系统设计

第节 设计目标
基功
设计电子琴键盘输入中音七音符发音(DOREMIFASOLASI)控制蜂鸣器发出应音响

二 提高部分
数码显示出发出音调值说:发出DO’音调显示1设计歌曲动演奏器户编制乐曲存入电子琴电子琴完成动演奏功

第二节 设计语言
Verilog HDL语言介绍
Verilog HDL种硬件描述语言算法级门级开关级种抽象设计层次数字系统建模建模数字系统象复杂性介简单门完整电子数字系统间数字系统够层次描述相描述中显式进行时序建模[2]
作种通化硬件描述语言Verilog HDL语言具述描述力:设计行特性设计数流特性设计结构组成包含响应监控设计验证方面时延波形产生机制种建模语言外Verilog HDL语言提供编程语言接口通该接口模拟验证期间设计外部访问设计包括模拟具体控制运行[3]
Verilog HDL语言仅定义语法语法结构定义清晰模拟仿真语义种语言编写模型够Verilog仿真器进行验证语言C编程语言中继承种操作符结构Verilog HDL提供扩展建模力中许扩展初难理解Verilog HDL语言核心子集非常易学数建模应说已足够然完整硬件描述语句足复杂芯片完整电子系统进行描述
Verilog HDL语言已成种标准硬件描述语言具特点:
(1)作种途硬件描述语言具易学性易性
(2)Verilog HDL语言允许模块中进行抽象层次描述
(3)数逻辑综合工具支持Verilog HDL成设计员选择
(4)制造厂商提供Verilog HDL工艺库支持仿真
(5)Verilog HDL程序语言接口拥强功允许户C语言部数结构进行描述[3]
正优点Verilog HDL语言广泛流行

第三节 设计原理
乐曲演奏原理
组成乐曲音符频率值(音调)持续时间(音长)乐曲连续演奏需两基数控制输出扬声器激励信号频率高低持续时间扬声器发出连续乐曲声

1音调控制
频率高低决定音调高低音乐十二均率规定:两8度音(简谱中中音1高音1)间频率相差倍两8度音间分12半音两半音频率12√2 外音名A(简谱中低音6)频率440Hz音名BC间EF间半音余全音[4]计算出简谱中低音1高音1间音名应频率表131示:
表131 简谱中音名频率关系
音名
频率Hz

音名
频率Hz

音名
频率Hz
低音1
2616

中音1
5233

高音1
10465
低音2
2937

中音2
5873

高音2
11747
低音3
3296

中音3
6593

高音3
13185
低音4
3492

中音4
6985

高音4
13969
低音5
392

中音5
784

高音5
1568
低音6
440

中音6
880

高音6
1760
低音7
4939

中音7
9878

高音7
19755
频率信号基准频率分频音阶频率非整数分频系数数必须计算分频数四舍五入取整基准频率低分频太四舍五入取整误差较基准频率高然误差变分频数变实际设计综合考虑两方面素量减频率误差前提取合适基准频率[4]例中选取6MHz基准频率6MHz基准频率先分频6MHz换新基准频率实际音名间相频率关系变演奏出乐曲听起会走调
例需演奏梁祝乐曲该乐曲音阶频率相应分频表2示减输出偶次谐波分量输出扬声器波形应称方波达扬声器前二分频分频器表2中分频6MHz频率二分频3MHz频率基础计算出分频系数9102采14位二进制计数器分频满足需表2中出分频外出应音阶频率时计数器预置数分频系数加载预置数采加载预置数实现分频方法采反馈复零法节省资源实现起容易表132示:

表132 音阶频率应分频预置数
音名
分频
预置数

音名
分频
预置数
低音3
9102
7281

中音2
5111
11272
低音5
7653
8730

中音3
4552
11831
低音6
6818
9565

中音5
3827
12556
低音7
6073
10310

中音6
3409
12974
中音1
5736
10647

高音1
2867
13516
外乐曲中休止符分频系数设0初始值214116383时扬声器会发声

2音长控制
音符持续时间必须根乐曲速度音符节拍数确定果全音符持续时间设1s话需提供4Hz时钟频率产生4分音符时长
图131示乐曲演奏电路原理框图中乐谱产生电路控制音乐音调音长控制音调通设置计数器预置数实现预置数值计数器产生频率信号产生音调控制音长通控制计数器预置数停留时间实现预置数停留时间越长该音符演奏时间越长音符演奏时间025s整数倍节拍较长音符2分音符记谱时该音名连续记录两次
预置数

6MHZ 扬声器



乐谱产生电路

4HZ音调名显示电路

数码

图131乐曲演奏电路原理图

演奏循环进行需外设置时长计数器乐曲演奏完成时保证动头开始演奏

第四节 设计方案较
方案较
方案:采单逻辑器件组合实现样然较直观逻辑器件分工鲜明思路清晰目然元器件种类数繁复杂硬件电路容易引起系统精度高体积等利素例八音符八频率控制发出采方案运分频器信号进行程度分频仪器显易见
方案二:采Verilog HDL语言编程实现电子琴项功系统输入控制电路顶层模块乐曲存储循环播放模块模块组成

二方案选择
方案相较方案二显较笼统整系统分干模块牵涉具体硬件电路必须硬件描述语言Verilog HDL优势仅具良电路行描述系统描述力通俗易懂   
两种方案分析较总结选方案二进行电子琴设计

第五节 总体设计方案

利EDA软件中Verilog HDL硬件描述语言编程进行控制然烧程序FPGA实验箱实现系统原理图图151示
控制输入模块
(手动输入音符功)





()






顶层模块
(调功)




乐曲存储循环播放模块
(动循环播放)





乐曲1模块
乐曲3模块

乐曲2模块



图151 系统总体设计方框图

中输入控制模块户设计起输入控制作通该模块通键输入音符乐曲乐曲存储循环播放模块储存事先编写乐谱通循环播放部分产生频率驱动扬声器输出顶层模块实现调功通调输入控制模块乐曲存储循环播放模块选择手动播放者动播放曲目1曲目2曲目3三模块相互联系实现电子琴基功发挥功



第二章 单元模块设计

第节 电子琴输入控制模块

基原理
  电子输入控制模块电子琴核心部分程序控制分频模块分频系数部集成1分频器输出端口外部扩音器接受处理外部输入命令(端功控制键乐曲存入写出控制键命令)部分中分频器根分频系数分出七频率发出相应七音符声音通数码观察音符输出里定义秒节拍

二原理框图分频系数产生

基原理图图211

50MHz基准脉
6MHz分频
状态预置
控制分频系数分频模块
选择音符输出

图211输入控制模块基原理
输入控制模块目基准脉分频1234567七音符应频率该模块Verilog HDL描述中包含三进程首先50MHz基准脉进行分频6MHz脉然tone1输入分频系数6MHz脉次分频便需频率终根状态预置情况选择音符输出中音符相应分频系数根音符频率计算

第二节 乐曲存储循环播放模块
该模块实现音调存储发生循环播放功音调发生器作产生获音阶分频预置值12位(高音中音低音分4位)发声输入控制中某位某两位某三位高电时应某音阶数值端口{highmidlow}输出作获该音阶分频预置值该值作数控分频器输入4Hz脉进行分频音阶相应频率例输入{ highmidlow } 12'b000000100000应音符中音RE产生分频系数便10216根已知乐谱利分频系数产生方法实现乐谱存储存储乐谱时计数器state蜂鸣器输出音调计数达值时计数器清零(state<0)计数器0开始重新计数实现循环播放中具体原理框图图221示
4Hz分频

6MHz分频
50MHz基准脉
音调发生器
乐谱存储
循环播放

图221乐曲存储循环播放模块原理图

第三节 顶层模块
该模块电子琴系统设计核心模块通该模块实现两节子模块调模块包括两进程:进程50MHz基准脉分频产生6MHz进程二曲目方式进行控制选择该部分采两位状态标识寄存器mm应实验箱开关key8key9key8拨低电0时调循环演奏曲目1模块输出曲目1dip9拨低电0时调循环演奏曲目2模块输出曲目2key8key8时拨低电0时调循环演奏曲目3模块输出曲目3key8key9时处高电1时调手动演奏模块通键key1~key7实现手动演奏曲目
中顶层模块原理图图231示

控制选择曲目演奏方式
6MHz分频
50MHz基准脉
手动演奏
动演奏曲目1
动演奏曲目2
动演奏曲目1
调循环演奏曲目1模块
调循环演奏曲目2模块
调循环演奏曲目3模块
调手动演奏模块

图231 顶层模块原理图


第三章 软件设计
设计EDA软件系统Quartus Ⅱ完成采顶[2]设计方法图311软件流程图


图311 系统软件流程图
软件设计采结构化程序设计方法功模块独立实际设计中键输入乐曲存储分放四模块中(中动循环播放三曲目原理相)软件设计核心部分数控分频器键输入乐曲储存提供相应分频输入基准时钟进行次分频终输出想音阶频率Verilog HDL描述语言见附录



第四章 实验结果讨

第节 调试步骤

设计采FPGA器件驱动扬声器构成乐曲演奏电路图411典型FPGACPLD设计流程:

图411系统调试图
设计求Quartus IIEDA软件台运Verilog HDL语言进行编程实现相应功
调试时采分模块调试首先子模块调试顶层模块调试总体分三步骤:
1电子琴输入控制模块调试
2乐曲存储循环播放模块调试:
(1)曲目1存储循环播放模块调试
(2)曲目2存储循环播放模块调试
(3)曲目3存储循环播放模块调试
3顶层模块调试

第二节 调试现象出现问题分析

问题:进行电子琴输入控制模块调试时编译正确成功载[2]实验箱DOREMEFASOLASI应键时蜂鸣器发出音调检查程序误猜想问题出实验箱检查音符应引脚发现键开关引脚拨动开关蜂鸣器发出音调开关均拨高电键蜂鸣器发出相应音调
问题二:进行乐曲存储循环播放模块调试时程序载实验箱曲目够动播放蜂鸣器发出音调音调刺耳发现时硬件蜂鸣器换蜂鸣器
问题三:调试数码电路时发现数码乱码观察数码编码引脚分配改编码
问题四:子模块顶层模块实例引中输入输出匹配反复确认顶层模块误曲目1播放猜想问题出曲目1子模块检查发现曲目1子模块中输入设置复位端口信号顶层模块调时没连接该端口信号曲目1子模块调没产生曲目1子模块中复位信号重新编译载够播放曲目1子模块
调试发现问题解决问题够实现基功发挥功


第五章 总结
设计利硬件描述语言Verilog HDL实现电子琴动演奏键盘输入发音简易功编程综合仿真载芯片烧制终做出成品通系统测试结果数分析计算测试结果符合预期结果测试情况良够基实现音阶发音功切换动演奏存储乐曲根需更改程序实现乐曲存储
课程设计培养综合运学知识发现提出分析解决实际问题锻炼实践力重环节学生实际工作力具体训练考察程着科学技术发展日新月异EDA技术已成计算机应中空前活跃领域生活中说处作二十世纪学生说掌握EDA技术十分重
第次接触课程设计开始窍通慢慢解历长时间回顾起次HDL课程设计感慨良确审题编程理实践三星期日子里受益匪浅仅巩固前学知识学书没学知识通次课程设计懂理实际相结合重理知识远远够学理知识实践相结合起理中出结解决实际中问题提高实际动手力独立思考力毕竟第次做课程设计难免会遇种样问题时设计程中发现足处前学知识理解够深刻掌握够牢固通次课程设计进步加深HDL解更加浓厚兴趣
复杂工程分成干基模块进行分步设计测试模块连接起实验基设计思想然测试时遇困难终实现感觉扩展方说播放乐曲时显示出音调加复位暂停快进等功













致谢
课程设计程中知识理解遇困难然设计存足处通学老师帮助问题步步解决课程设计程中学知识解HDL编程精深程断调试断实践断付出努力预期结果课程设计学老师支持深表感谢



参考文献
[1] 潘松黄继业EDA技术教程北京:科学出版社2002
[2] 王伟Verilog HDL程序设计应 北京:民邮电出版社2005
[3] 刘秋云王佳Verilog HDL设计实践指导北京:机械工业出版社2005
[4] 王金民 数字系统设计Verilog HDL(第二版) 北京:电子工业出版社2005
[5] 李国洪沈明山胡辉.编程器件EDA技术实践[M].北京:机械工业出版社2004年7月.
[6] 付家.EDA工程实践技术[M].北京:工业出版社2005年1月.

附 录

电子琴程序:
顶层模块
module yiranliang(inclkoutclkkey1key2key3key4key5key6key7key8key9shumaguan)
input inclk
input key1key2key3key4key5key6key7key8key9
output outclk
output [110] shumaguan
reg outclkclk_6M
reg [110] shumaguan
reg [30]c
wire out1out2out3out4
wire[80] key
reg [10]mm
wire [30]num
assign key {key1key2key3key4key5key6key7key8key9} 键拼键变量key
调子调块
digital_piano m1(inclk(inclk)key1(key1)key2(key2)key3(key3)key4(key4)
key5(key5)key6(key6)key7(key7)beep2(out2)num(num))

bell m2(inclk(inclk)beep1(out1))
bell2 m3(inclk(inclk)beep3(out3))
bell3 m4(inclk(inclk)beep4(out4))

always @(num)
begin
if(num3'd1)
shumaguan<{4'b11101'b1led7(1)}
else if(num4'd2)
shumaguan<{4'b11101'b1led7(2)}
else if(num4'd3)
shumaguan<{4'b11101'b1led7(3)}
else if(num4'd4)
shumaguan<{4'b11101'b1led7(4)}
else if(num4'd5)
shumaguan<{4'b11101'b1led7(5)}
else if(num4'd6)
shumaguan<{4'b11101'b1led7(6)}
else if(num4'd7)
shumaguan<{4'b11101'b1led7(7)}
end

always @(posedge clk_6M) 时钟升检测否键
begin
if(key 9'b111111110)
mm < 2'b01
else if(key9'b111111101)
mm < 2'b10
else if(key9'b111111100)
mm < 2'b11
else mm < 2'b00
end
always@(posedge inclk)
begin
if(c<4'd4)
c else
begin
c<4'd0
clk_6M~clk_6M
end
end

always @(posedge clk_6M)
begin
if(mm 2'b01)
outclk < out1
else if(mm 2'b00)
outclk < out2
else if(mm 2'b10)
outclk < out3
else outclk < out4
end

*数码段码表*
function [60] led7
input [30] dis_input
begin
case (dis_input)
0 led7 ~7'b011_1111
1 led7 ~7'b000_0110
2 led7 ~7'b101_1011
3 led7 ~7'b100_1111
4 led7 ~7'b110_0110
5 led7 ~7'b110_1101
6 led7 ~7'b111_1101
7 led7 ~7'b000_0111
8 led7 ~7'b111_1111
9 led7 ~7'b110_0111
default led7 ~7'b111_1111
endcase
end
endfunction

endmodule


二输入控制模块

digital_piano子模块
module digital_piano(inclkkey1key2key3key4key5key6key7beep2num)
input inclkkey1key2key3key4key5key6key7
output[30]num
output beep2
wire [60] key_code
reg [30]c
reg clk_6M
reg beep_r
reg [30]num
reg [150] count
reg [150] count_end
parameter Do 7'b1111110 状态机7编码分应中音7音符
re 7'b1111101
mi 7'b1111011
fa 7'b1110111
so 7'b1101111
la 7'b1011111
si 7'b0111111
assign key_code {key7key6key5key4key3key2key1}
assign beep2 beep_r 输出音乐

always@(posedge inclk)
begin
if(c<4'd4)
c else
begin
c<4'd0
clk_6M~clk_6M
end
end

always@(posedge clk_6M) 分频模块出乐谱
begin
count < count + 16'd1 计数器加1
if(count count_end)
begin
count <16'd0 计数器清零
beep_r < beep_r
end
end

always@(posedge clk_6M) 状态机根键状态选择音符输出
begin
case(key_code)
Do count_end < 16'd11450
re count_end < 16'd10204
mi count_end < 16'd09090
fa count_end < 16'd08571
so count_end < 16'd07802
la count_end < 16'd06802
si count_end < 16'd06060
defaultcount_end < 16'd0
endcase
end

always @ (posedge clk_6M)
begin
case(key_code)
Do num<4'b0001
re num<4'b0010
mi num<4'b0011
fa num<4'b0100
so num<4'b0101
la num<4'b0110
si num<4'b0111
endcase
end
endmodule

三曲目1乐谱存储循环播放模块
bell子模块 两老虎
module bell (inclkbeep1)
input inclk 系统时钟
output beep1 蜂鸣器输出端
reg [30]highmedlow
reg [150]origin
reg beep_r 寄存器
reg [70]state
reg [150]count
assign beep1beep_r 输出音乐

时钟频率6MHz
reg clk_6MHz
reg [20] cnt1
always@(posedge inclk)
begin
if(cnt1<3'd4)
cnt1 else
begin
cnt1<3'b0
clk_6MHz<~clk_6MHz
end
end
时钟频率4MHz
reg clk_4Hz
reg [240] cnt2
always@(posedge inclk)
begin
if(cnt2<25'd6250000)
cnt2 else
begin
cnt2<25'b0
clk_4Hz<~clk_4Hz
end
end

always @(posedge clk_6MHz)
begin
count < count + 1'b1 计数器加1
if(count origin)
begin
count < 16'h0 计数器清零
beep_r < beep_r 输出取反
end
end

always@(posedge clk_4Hz)
begin
case({highmedlow})
'b000000000101origin14447
'b000000000110origin13636
'b000000000111origin12149
'b000000010000origin11466
'b000000100000origin10216
'b000000110000origin9101
'b000001000000origin8590
'b000001010000origin7653
'b000001100000origin6818
'b000001110000origin6074
'b000100000000origin5733
'b001000000000origin5108
'b001100000000origin4551
endcase
end


always @(posedge clk_4Hz) 歌曲
begin
if(state 171) state 0计时实现循环演奏
else
state state + 1
case(state)
0 {highmedlow}'b0000000001015
1234 {highmedlow}'b0000001100003
5 {highmedlow}'b0000001000002
6 {highmedlow}'b0000000100001

78910111213141516 {highmedlow}'b0000001000002
17 {highmedlow}'b0000000100001
18 {highmedlow}'b0000000001106
192021222324252627 {highmedlow}'b0000000100001

28 {highmedlow}'b0000000001117
29 {highmedlow}'b0000000001106
303132333435363738 {highmedlow}'b0000000001117
39 {highmedlow}'b0000000001106
40 {highmedlow}'b0000000001015
4142434445 {highmedlow}'b0000000001106

46 {highmedlow}'b0000000001015
47484950 {highmedlow}'b0000001100003
51 {highmedlow}'b0000001000002
52 {highmedlow}'b0000000100001
53545556 {highmedlow}'b0000001000002

57 {highmedlow}'b0000000001015
58596061 {highmedlow}'b0000001000002
62 {highmedlow}'b0000000100001
63 {highmedlow}'b0000000001106
64656667 {highmedlow}'b0000000100001

68 {highmedlow}'b0000000001015
69707172 {highmedlow}'b0000000001117
73 {highmedlow}'b0000000001106
74 {highmedlow}'b0000000001015
757677787980 {highmedlow}'b0000000001117

8182 {highmedlow}'b0000000100001
83 {highmedlow}'b0000000001106
84 {highmedlow}'b0000001000002
85 {highmedlow}'b0000000100001
86 {highmedlow}'b0000001000002
878889909192939495 {highmedlow}'b0000001100003

969798 {highmedlow}'b0000001100003
99100101102 {highmedlow}'b0000011000006
103 {highmedlow}'b0000010100005
104 {highmedlow}'b0000011000006
105106107108109110 {highmedlow}'b0000001100003
111112113114 {highmedlow}'b0000010000004
115 {highmedlow}'b0000010100005
116 {highmedlow}'b0000011000006
117118119120121122 {highmedlow}'b0000001100003

123124125126 {highmedlow}'b0000001000002
127 {highmedlow}'b0000001100003
128 {highmedlow}'b0000010000004
129130 {highmedlow}'b0000001100003
131 {highmedlow}'b0000011000006
132 {highmedlow}'b0000001100003
133 {highmedlow}'b0000001000002
134 {highmedlow}'b0000000100001

135 {highmedlow}'b0000001000002
136 {highmedlow}'b0000000100001
137138 {highmedlow}'b0000000001117
139 {highmedlow}'b0000000001015
140 {highmedlow}'b0000010100005
141 {highmedlow}'b0000001000002
142 {highmedlow}'b0000010100005

143144145146147148 {highmedlow}'b0000001100003
149150151152 {highmedlow}'b0000011000006
153 {highmedlow}'b0000011100007
154 {highmedlow}'b0001000000001
155156157158159160 {highmedlow}'b0011000000003
161162163164 {highmedlow}'b0010000000002
165 {highmedlow}'b0000011100007
166 {highmedlow}'b0001000000001
167168169170171 {highmedlow}'b0000011000006
default {highmedlow}12'bx
endcase
end
三曲目 二乐谱存储循环播放模块
bell2子模块康定情歌
module bell2 (inclkbeep3)
input inclk 系统时钟
output beep3 蜂鸣器输出端
reg [30]highmedlow
reg [150]origin
reg beep_r 寄存器
reg [70]state
reg [150]count
assign beep3beep_r 输出音乐

时钟频率6MHz
reg clk_6MHz
reg [20] cnt1
always@(posedge inclk)
begin
if(cnt1<3'd4)
cnt1 else
begin
cnt1<3'b0
clk_6MHz<~clk_6MHz
end
end
时钟频率4MHz
reg clk_4Hz
reg [240] cnt2
always@(posedge inclk)
begin
if(cnt2<25'd6250000)
cnt2 else
begin
cnt2<25'b0
clk_4Hz<~clk_4Hz
end
end

always @(posedge clk_6MHz)
begin
count < count + 1'b1 计数器加1
if(count origin)
begin
count < 16'h0 计数器清零
beep_r < beep_r 输出取反
end
end
always@(posedge clk_4Hz)
begin
case({highmedlow})
'b000000000011origin<7281 低音3
'b000000000101origin<8730 低音5
'b000000000110origin<9565 低音6
'b000000000111origin<10310 低音7
'b000000010000origin<10647 中音1
'b000000100000origin<11272 中音2
'b000000110000origin<11831 中音3
'b000001010000origin<12556 中音5
'b000001100000origin<12974 中音6
'b000100000000origin<13516 高音1
'b000000000000origin<16383 休止符

endcase
end
always @(posedge clk_4Hz)
begin
if(state 151)
state 0
else
state state + 1 梁祝
case(state)
0 {highmedlow}<'b000000000011 低音3
1 {highmedlow}<'b000000000011 持续4时钟节拍
2 {highmedlow}<'b000000000011
3 {highmedlow}<'b000000000011
4 {highmedlow}<'b000000000101 低音5
5 {highmedlow}<'b000000000101 发3时钟节拍
6 {highmedlow}<'b000000000101
7 {highmedlow}<'b000000000110 低音6
8 {highmedlow}<'b000000010000 中音1
9 {highmedlow}<'b000000010000 发3时钟节拍
10 {highmedlow}<'b000000010000
11 {highmedlow}<'b000000100000 中音2
12 {highmedlow}<'b000000000110 低音6
13 {highmedlow}<'b000000010000 中音1
14 {highmedlow}<'b000000000101 低音5
15 {highmedlow}<'b000000000101
16 {highmedlow}<'b000001010000 中音5
17 {highmedlow}<'b000001010000 发3时钟节拍
18 {highmedlow}<'b000001010000
19 {highmedlow}<'b000100000000 高音1
20 {highmedlow}<'b000001100000 中音6
21 {highmedlow}<'b000001010000 中音5
22 {highmedlow}<'b000000110000 中音3
23 {highmedlow}<'b000001010000 中音5
24 {highmedlow}<'b000000100000 中音2
25 {highmedlow}<'b000000100000 持续11时钟节拍
26 {highmedlow}<'b000000100000
27 {highmedlow}<'b000000100000
28 {highmedlow}<'b000000100000
29 {highmedlow}<'b000000100000
30 {highmedlow}<'b000000100000
31 {highmedlow}<'b000000100000
32 {highmedlow}<'b000000100000
33 {highmedlow}<'b000000100000
34 {highmedlow}<'b000000100000
35 {highmedlow}<'b000000110000 中音3
36 {highmedlow}<'b000000000111 低音7
37 {highmedlow}<'b000000000111
38 {highmedlow}<'b000000000110 低音6
39 {highmedlow}<'b000000000110
40 {highmedlow}<'b000000000101 低音5
41 {highmedlow}<'b000000000101
42 {highmedlow}<'b000000000101
43 {highmedlow}<'b000000000110 低音6
44 {highmedlow}<'b000000010000 中音1
45 {highmedlow}<'b000000010000
46 {highmedlow}<'b000000100000 中音2
47 {highmedlow}<'b000000100000
48 {highmedlow}<'b000000000011 低音3
49 {highmedlow}<'b000000000011
50 {highmedlow}<'b000000010000 中音1
51 {highmedlow}<'b000000010000
52 {highmedlow}<'b000000000110 低音6
53 {highmedlow}<'b000000000101 低音5
54 {highmedlow}<'b000000000110 低音6
55 {highmedlow}<'b000000010000 中音1
56 {highmedlow}<'b000000000101 低音5
57 {highmedlow}<'b000000000101 持续8时钟节拍
58 {highmedlow}<'b000000000101
59 {highmedlow}<'b000000000101
60 {highmedlow}<'b000000000101
61 {highmedlow}<'b000000000101
62 {highmedlow}<'b000000000101
63 {highmedlow}<'b000000000101
64 {highmedlow}<'b000000110000 中音3
65 {highmedlow}<'b000000110000 发3时钟节拍
66 {highmedlow}<'b000000110000
67 {highmedlow}<'b000001010000 中音5
68 {highmedlow}<'b000000000111 低音7
69 {highmedlow}<'b000000000111
70 {highmedlow}<'b000000100000 中音2
71 {highmedlow}<'b000000100000
72 {highmedlow}<'b000000000110 低音6
73 {highmedlow}<'b000000010000 中音1
74 {highmedlow}<'b000000000101 低音5
75 {highmedlow}<'b000000000101 持续4时钟节拍
76 {highmedlow}<'b000000000101
77 {highmedlow}<'b000000000101
78 {highmedlow}<'b000000000000 休止符
79 {highmedlow}<'b000000000000
80 {highmedlow}<'b000000000011 低音3
81 {highmedlow}<'b000000000101 低音5
82 {highmedlow}<'b000000000101
83 {highmedlow}<'b000000000011 低音3
84 {highmedlow}<'b000000000101 低音5
85 {highmedlow}<'b000000000110 低音6
86 {highmedlow}<'b000000000111 低音7
87 {highmedlow}<'b000000100000 中音2
88 {highmedlow}<'b000000000110 低音6
89 {highmedlow}<'b000000000110 持续6时钟节拍
90 {highmedlow}<'b000000000110
91 {highmedlow}<'b000000000110
92 {highmedlow}<'b000000000110
93 {highmedlow}<'b000000000110
94 {highmedlow}<'b000000000101 低音5
95 {highmedlow}<'b000000000110 低音6
96 {highmedlow}<'b000000010000 中音1
97 {highmedlow}<'b000000010000 发3时钟节拍
98 {highmedlow}<'b000000010000
99 {highmedlow}<'b000000100000 中音2
100 {highmedlow}<'b000001010000 中音5
101 {highmedlow}<'b000001010000
102 {highmedlow}<'b000000110000 中音3
103 {highmedlow}<'b000000110000
104 {highmedlow}<'b000000100000 中音2
105 {highmedlow}<'b000000100000
106 {highmedlow}<'b000000110000 中音3
107 {highmedlow}<'b000000100000 中音2
108 {highmedlow}<'b000000010000 中音1
109 {highmedlow}<'b000000010000
110 {highmedlow}<'b000000000110 低音6
111 {highmedlow}<'b000000000101 低音5
112 {highmedlow}<'b000000000011 低音3
113 {highmedlow}<'b000000000011 持续4时钟节拍
114 {highmedlow}<'b000000000011
115 {highmedlow}<'b000000000011
116 {highmedlow}<'b000000010000 中音1
117 {highmedlow}<'b000000010000 持续4时钟节拍
118 {highmedlow}<'b000000010000
119 {highmedlow}<'b000000010000
120 {highmedlow}<'b000000000110 低音6
121 {highmedlow}<'b000000010000 中音1
122 {highmedlow}<'b000000000110 低音6
123 {highmedlow}<'b000000000101 低音5
124 {highmedlow}<'b000000000011 低音3
125 {highmedlow}<'b000000000101 低音5
126 {highmedlow}<'b000000000110 低音6
127 {highmedlow}<'b000000010000 中音1
128 {highmedlow}<'b000000000101 低音5
129 {highmedlow}<'b000000000101 持续6时钟节拍
130 {highmedlow}<'b000000000101
131 {highmedlow}<'b000000000101
132 {highmedlow}<'b000000000101
133 {highmedlow}<'b000000000101
134 {highmedlow}<'b000000110000 中音3
135 {highmedlow}<'b000001010000 中音5
136 {highmedlow}<'b000000100000 中音2
137 {highmedlow}<'b000000110000 中音3
138 {highmedlow}<'b000000100000 中音2
139 {highmedlow}<'b000000010000 中音1
140 {highmedlow}<'b000000000111 低音7
141 {highmedlow}<'b000000000111
142 {highmedlow}<'b000000000110 低音6
143 {highmedlow}<'b000000000110
144 {highmedlow}<'b000000000101 低音5
145 {highmedlow}<'b000000000101 持续8时钟节拍
146 {highmedlow}<'b000000000101
147 {highmedlow}<'b000000000101
148 {highmedlow}<'b000000000101
149 {highmedlow}<'b000000000101
150 {highmedlow}<'b000000000101
151 {highmedlow}<'b000000000101

endcase
end
endmodule
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

基于VHDL语言的交通灯设计

 基于VHDL语言的 交通灯设计 专业班级: 应电班 作 者: 指导老师: 完成时间: 电子信息工程系 应用电子技术专业 一、 设计要求及实现功能 1、设计相关要求 (1)留意自己走过的交通灯指示路口,选取一个进行数据采集,并模拟

文***享 5年前 上传1276   0

基于单片机的电子琴设计

综合课程设计题 目:可演奏的电子琴 学 院:管理科学与工程学院可演奏的电子琴摘要:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音

天***猩 1个月前 上传99   0

基于VHDL语言的HDB3编译码器的设计毕业论文

数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能在基带信道中传输,必须选择合适的码型,HDB3码因具有无直流成分,低频成分少,连0的个数最多不超过三个,功能强大,有纠错能力,具有时钟恢复等性能优势而成为CCITT协会推荐使用的基带传输码型之一。

z***u 5年前 上传972   0

veriloghdl电子琴课程设计

XX学院课程设计报告 题 目 Verilog hdl课程设计专 业 自动化 学生姓名 指导教师 完成时间 2015 课程设计(报告)任务书(理 工 科 类)课程设计(报告)题目:电子

文***享 3年前 上传611   0

基于微信小程序的测试设计与分析

基于微信小程序的测试设计与分析Testing Design and Analysis Based on WeChat Mini Program日成绩评定 成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于6

平***苏 3年前 上传970   0

基于FPGA的键盘扫描程序的设计毕业设计

X X 学 院 CHANGSHA UNIVERSITY本科生毕业设计设计(论文)题目: 基于FPGA的键盘扫描程序的设计 系    部: 专 业:

知***享 4年前 上传877   0

基于DS18B20的温度显示及其报警控制系统(含完整原理图及C程序)毕业论文

 XX 大 学 毕 业 设 计( 论 文 ) 题目 基于单片机的数字温度计及其报警系统 作者 学院 物理学院 专业 电子信息科学与技术 学号 指导教师 二〇XX 年 X 月 X日 XX 大 学 毕业设计(论文)任务书 物理学 院 电子 系(教研室) 系(教研室)主任:

z***u 5年前 上传1720   0

基于微信小程序的游戏玩家互动社区的设计与实现

 基于微信小程序的游戏玩家互动社区的设计与实现 Design and Implementation of Gamer Interactive Community Based on WeChat Mini Program

平***苏 11个月前 上传363   0

基于“过程创新”的《VB程序设计》实验教学改革

从世界上第一台电子计算机诞生直至今天,经过几十年的发展计算机已近广泛应用到人们生活的各个领域,改变着大众原有的生活、学习和工作方式。CNNIC第35次中国互联网络发展统计报告指出,随着互联网技术的普及和推广,互联网已经存在于大众生活的每个角落,成为人们生活密不可分的一部分。

x***2 2年前 上传366   0

电子琴教学心得

电子琴教学心得  音乐教师要通过一系列的电子琴教学活动,使学生掌握基础知识和基本技能,进而发展音乐智力与音乐的审美能力,培养其团结协作的集体主义思想品德与高尚的情操。要达到这个目的,首先要撰写电子琴教学计划,钻研教材,分析与了解学生学习电子琴的基本状况,并与本学期音乐教学工作计划相联系起来,进行全面的安排,做到心中有数,合理安排使电子琴教学任务落到实处。其次,要认真把握《电子琴考级大纲》认真

h***i 11年前 上传423   0

eda课程设计vhdl语言的简易出租车计费器设计

XX 学 院《EDA技术》课 程 设 计 题 目 简易出租车计费器设计 系 (部) 信息工程系 班 级 电本班 姓 名 学 号 指导教师

文***享 3年前 上传546   0

基于51单片机的电子秒表实训报告(含有程序和图)

实 训 报 告题 目:基于AT89C51单片机的电子秒表的设计与制作专 业: 计算机科学与技术 班 级: 计算机科学与技术本科班 姓 名: 学 号: 组 长:

z***u 1年前 上传630   0

基于单片机的音乐喷泉论文(含原理图、PCB图、程序)

咅乐喷泉控制器是咅乐喷泉的核心部分。在咅乐喷泉中,喷头的多姿造型和 缤纷的水下灯光都受喷泉控制器的控制。由于不同的喷泉对水泵和彩灯组数的要 求各不相同,因此可以设计一种简单、通用、组数可灵活扩充的喷泉控制器。木 喷泉控制器采用全数字集成电路设计,可以灵活改变水泵和彩灯的组数。

雅***韵 5年前 上传1844   0

单片机简易电子琴单片机课程设计

XX学院课程设计报告课程名称:单片机原理及应用课程设计设计题目: 电子琴设计 系 别: 通信与控制工程系 专 业: 电子信息工程 班 级: 学生姓名:

文***品 2年前 上传498   0

基于TCPIP协议的网络通信小应用程序课程设计

XX大学理学院( 计算机网络 )课程设计实验时间: 2010学年第二学期 专业年级: 2008级应数X班 实验题目: 基于TCP/IP协议的网络通信应用程序 学生姓名: 学号 自评成绩_95教师评成绩___学生姓名: 学号

文***享 3年前 上传596   0

基于单片机的出租车计价器设计(附源程序)

基于单片机的出租车计价器设计(附源程序)摘 要本设计的是一个基于单片机AT89S52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以

文***品 2年前 上传292   0

全自动电热水壶的设计(包含原理图和程序)

单片机控制电热水壶温度的设计中文摘要随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括STC8

文***享 3年前 上传610   0

基于UML的图书管理系统设计课程设计

滨江学院 统一建模语言课程设计报告( 2013 -- 2014 年度第 二 学期)课程名称: 统一建模语言课程设计 题 目: 图书馆管理系统 院 系: 计算机系 班 级: 学 号: 姓 名:

文***品 1年前 上传418   0

基于8051的智能小车设计课程设计

测控电路课程设计题目名称: 智能循迹小车 专业班级: 学生姓名: 学 号:

文***品 2年前 上传592   0

基于plc的交通灯的设计课程设计

任务说明书一、 控制要求:1、系统控制示意图由十字路口交通灯示意图可以知道,在南北和东西主干道上各有一盏红绿灯;在南北和东西人行道上各有一盏红灯和绿灯。2、控制要求 启动及停止按钮的控制,当按下启动按钮时,信号灯系统开始工作,并且周而复始的开始工作,当按下停止按钮时信号灯停止工作,且信号灯的状态回复到初始状态。

文***品 3年前 上传910   0

基于PLC的小型电动清洁车设计

题 目: 基于PLC的小型电动清洁车设计 目录摘要··································1一、 前言································3(一)研究现状和发展趋势二、 设计准备·····························6(一) 市场调研(二) 选择PLC的原因(三) 设计思路及可行

平***苏 2年前 上传502   0

基于单片机的时钟设计

随着时间的推移,事物的发展越来越趋向于高科技,单片机的出现,受到了社会各界的广泛关注,这是由于单片机具备丰富的功能。单片机的特点为:尺寸小,价格低,抗干扰强,开发容易等。运用的范围也很广,如检测,仪表,电子,机电等设备的各方面都有不可或缺的作用。

王***朝 4年前 上传1050   0

基于SpringBoot博客系统的设计与实现

 基于SpringBoot博客系统的设计与实现Design and implementation of blog system based on SpringBoot中文摘要互联网随着社会的进步也渐渐得到普及,给人们带来很多便利,可以提供更多的服务,在互联网还没有发展起来之前,人们需要购买纸质报

平***苏 2年前 上传987   0

基于逆向设计的STEM教育

基于逆向设计的STEM教育 蒋雄超 1986年,在《本科的科学、数学和工程教育》的报告中,美国国家科学基金会(NSF)首次明确提出“科学、数学、工程和技术教育集成”的纲领性建议。STEM教育逐步进入各国课堂,受到人们的关注和重视。2017年,中国教育科学研究院发布了《中国STEM教育白皮书》,指出“STEM教育应该纳入国家创新型人才培养战略,是跨学科、跨学段的连贯课程群,是面

x***q 3年前 上传614   0

基于LabVIEW的数据采集系统设计

基于LabVIEW的数据采集系统设计--图像采集基于LabVIEW的数据采集系统设计 ——图像采集摘 要数字图像处理技术的应用越来越广泛,在国防建设、工农业生产、人们的日常生活中,都用到了数字图像处理技术。图像识别是数字图像处理技术的一个组成部分,在卫星遥感、航拍等领域的应用也比较广泛。本文主要介绍了在LabVIEW软件下,利用摄像头完成图像的采集和处理的虚拟仪器

平***苏 2年前 上传688   0