名称:电子琴模拟设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
电子琴模拟
1、输入7个按键,模拟琴键,对应7个音阶
2、通过控制产生不同频率,发出不同音调的声音
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.仿真图
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ENTITY?music?IS ???PORT?( ??????sysclk?????:?IN?STD_LOGIC;--时钟 ??????keys??:?IN?STD_LOGIC_VECTOR(6?DOWNTO?0);--7个琴键 ??LED???:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--3个LED显示节拍1~7 ??????spkout?????:?OUT?STD_LOGIC--蜂鸣器信号 ???); END?music; ARCHITECTURE?behavioral?OF?music?IS --蜂鸣器控制模块 ???COMPONENT?music_ctrl?IS ??????PORT?( ??????sysclk??????????:?IN?STD_LOGIC; ??????tonestep????????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--频率控制字 ??????spkout??????????:?OUT?STD_LOGIC--蜂鸣器输出 ??????); ???END?COMPONENT; --频率控制字产生模块 ???COMPONENT?musicdec?IS ??????PORT?( ??????keys??:?IN?STD_LOGIC_VECTOR(6?DOWNTO?0);--7个琴键 ??LED???:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--3个LED显示节拍1~7 ??????tonestep??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--输出频率控制字 ??????); ???END?COMPONENT; ???SIGNAL?tonestep???????:?STD_LOGIC_VECTOR(7?DOWNTO?0); BEGIN --调用频率控制字产生模块 ???u_musicdec?:?musicdec ??????PORT?MAP?( ?????????keys??=>?keys,--7个琴键 ?LED???=>?LED,--3个LED显示节拍1~7 ?????????tonestep??=>?tonestep--输出频率控制字 ??????);
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1281
阅读全文