首页 » 互联网 » 教你一种运用FPGA制做纯硬件音乐的方法_模块_音符

教你一种运用FPGA制做纯硬件音乐的方法_模块_音符

乖囧猫 2024-12-29 01:02:36 0

扫一扫用手机浏览

文章目录 [+]

硬件连接

一首乐曲能够连续演奏须要两个基本条件:

教你一种运用FPGA制做纯硬件音乐的方法_模块_音符 教你一种运用FPGA制做纯硬件音乐的方法_模块_音符 互联网

1,组成乐曲的每个音符的发音频率值

教你一种运用FPGA制做纯硬件音乐的方法_模块_音符 教你一种运用FPGA制做纯硬件音乐的方法_模块_音符 互联网
(图片来自网络侵删)

2,每个音符持续的韶光

如果能通过FPGA利用纯硬件的手段来达到所需的条件,那么就可以实现乐曲的演奏效果。

生日快乐歌的简谱如下

生日快乐歌简谱

很明显这是一首G调,一个小节3个四分音符的曲子,那么如何得到这些音符的频率呢?我们先来看一下C调的音符频率对照表

C调音符频率对照

由于C调和G调有如下的关系

C调和G调关系

我们可以推算出生日快乐歌中所有音符的频率,低音5=587HZ,低音6=659HZ,低音7=740HZ,中音1=784HZ,中音2=880HZ,中音3=988HZ,中音4=1046HZ,中音5=1175HZ,休止符=0HZ

有了各音符频率,就可以开始构建播放电路。
全体系统的构造如下图所示:

系统构造

先来看一下全体系统的事情事理:

系统由四个模块组成,Rhythm_clk模块,NoteTabs模块,ToneTabs模块,Speakera模块。

Rhythm_clk模块紧张代码如下

Rhythm_clk模块紧张代码

Rhythm_clk模块卖力将输入的12M时钟分频,产生一个2HZ的低频旗子暗记,作为NoteTabs模块的时钟,这个时钟将决定乐曲的演奏速率。

NoteTabs模块紧张代码如下

NoteTabs模块紧张代码

NoteTabs模块在Rhythm_clk模块产生的时钟的驱动下,产生每一个音符在查表电路中所对应的序列号,并将其送至ToneTabs模块

ToneTabs模块紧张代码如下

ToneTabs模块紧张代码

ToneTabs模块卖力将NoteTabs模块产生的音符对应的序列号转换身分频数,并将其送至Speakera模块

Speakera模块紧张代码如下

Speakera模块紧张代码

Speakera模块是一个数控分频器,它的浸染是将12M的主时钟按ToneTabs模块产生的分频数进行分频,天生相应频率的音符输出。

下面是利用Xilinx ISE仿真波形

仿真波形

标签:

相关文章

联盟互动,构建和谐共生的新时代

随着全球化的不断深入,国际社会之间的互动愈发频繁。联盟互动作为一种新型的国际关系形态,正逐渐成为国际政治舞台上的重要力量。本文将从...

互联网 2025-01-02 阅读0 评论0

肢体语言的魅力,改变自我,塑造他人印象

肢体语言,作为一种非言语沟通方式,是人类表达情感、传递信息的重要途径。在日常生活中,我们常常通过观察他人的肢体语言来了解其内心世界...

互联网 2025-01-02 阅读0 评论0

胖,一个社会标签下的多元解读

自古以来,人们对体型美的认识便各执一词。在我国,胖一度被视为富态的象征,代表着家庭幸福、生活美满。随着时代的发展,胖逐渐成为了一个...

互联网 2025-01-02 阅读0 评论0