简易乐曲发生器VHDL代码Quartus AX301开发板

名称:Quartus简易乐曲发生器VHDL代码AX301开发板

软件:Quartus

语言:VHDL

代码功能:

12、简易乐曲发生器

利用音名与频率的关系制作简易乐曲发生器,要求能循环播放一首乐曲,并显示乐曲演奏时对应的音符。


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配:AX301开发板照片.png



演示视频:


设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. Testbench

7. 仿真图

整体仿真图

频率控制字产生模块

音乐控制模块

显示模块

部分代码展示:


LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--音乐播放器
ENTITY music IS
   PORT (
      sysclk      : IN STD_LOGIC;--50M晶振
      stop_key    : IN STD_LOGIC;--reset
      start_key   : IN STD_LOGIC;--开始
      led         : OUT STD_LOGIC;--指示灯
      spkout      : OUT STD_LOGIC;--蜂鸣器输出
      bit_select  : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);--数码管位选
      seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选
   );
END music;
ARCHITECTURE trans OF music IS
   COMPONENT music_ctrl IS
      PORT (
         sysclk      : IN STD_LOGIC;
         stop_key    : IN STD_LOGIC;
         start_key   : IN STD_LOGIC;
         tonecode    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         tonestep    : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
         led         : OUT STD_LOGIC;
         spkout      : OUT STD_LOGIC
      );
   END COMPONENT;
   
   COMPONENT display IS
      PORT (
         clk         : IN STD_LOGIC;
         tonecode    : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         bit_select  : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
         seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
   
   COMPONENT musicdec IS
      PORT (
         tonecode    : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         tonestep    : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
      );
   END COMPONENT;
   
   
   SIGNAL tonestep         : STD_LOGIC_VECTOR(9 DOWNTO 0);
   SIGNAL tonecode         : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL music_num        : STD_LOGIC_VECTOR(3 DOWNTO 0);
   
   SIGNAL clk_valid        : STD_LOGIC;
   
   SIGNAL led_buf        : STD_LOGIC;
BEGIN
   clk_valid <= sysclk;
    
 --频率控制字产生模块
   u_musicdec : musicdec
      PORT MAP (
         tonecode  => tonecode,--输入简谱
         tonestep  => tonestep--输出频率控制字
      );
   
   
   --音乐控制模块
   i_music_ctrl : music_ctrl
      PORT MAP (
         sysclk     => sysclk,
         start_key  => start_key,
         stop_key   => stop_key,
         tonecode   => tonecode,--简谱
         tonestep   => tonestep,--频率控制字
         spkout     => spkout,
         led        => led
      );
   
   
   --显示模块
   i_display : display
      PORT MAP (
         clk         => sysclk,
         tonecode    => tonecode,
         bit_select  => bit_select,--数码管位选
         seg_select  => seg_select--数码管段选
      );
   
END trans;




代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 简易乐曲发生器VHDL代码Quartus AX301开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员