基于FPGA的电子琴设计

/Filename :TONE_TABLE.v
//modulename:TONE_TABLE
//Author :xp.wu
//Date :2011-4-2
//Function :This is PWM music player module.
//Uesedfor :RedCore_EP2C8Q_V1_EVB, made by redcore.
//Taobao :www.wendangwang.com
//E-mail :xingping99@163.com
//QQ :109019299
//==========================================================================

`define UD #1

`define BETA_TIME 24'h7270E0 //0.15s

`define TONE_LOW_1_CNT 20'h2E978 //0131HZ. CNT = 50M/(131*2)
`define TONE_LOW_2_CNT 20'h29854 //0147HZ.
`define TONE_LOW_3_CNT 20'h24FDB //0165HZ.
`define TONE_LOW_4_CNT 20'h22E09 //0175HZ.
`define TONE_LOW_5_CNT 20'h1F23F //0196HZ.
`define TONE_LOW_6_CNT 20'h1BBE4 //0220HZ.
`define TONE_LOW_7_CNT 20'h18B5F //0247HZ.
`define TONE_NML_1_CNT 20'h174BC //0262HZ.
`define TONE_NML_2_CNT 20'h149EB //0296HZ.
`define TONE_NML_3_CNT 20'h127EE //0330HZ.
`define TONE_NML_4_CNT 20'h117D1 //0349HZ.
`define TONE_NML_5_CNT 20'hF920 //0392HZ.
`define TONE_NML_6_CNT 20'hDDF2 //0440HZ.
`define TONE_NML_7_CNT 20'hC5AF //0494Hz.
`define TONE_HIG_1_CNT 20'hBAB9 //0523HZ.
`define TONE_HIG_2_CNT 20'hA65D //0587HZ.
`define TONE_HIG_3_CNT 20'h9430 //0659HZ.
`define TONE_HIG_4_CNT 20'h8BE9 //0698HZ.
`define TONE_HIG_5_CNT 20'h7C90 //0784HZ.
`define TONE_HIG_6_CNT 20'h6EF9 //0880HZ.
`define TONE_HIG_7_CNT 20'h62D8 //0988HZ.

module PWM_MUSIC
(
//Global ports.
SYSCLK,
RST_B,

//PWM output.
PWM_MUSIC
);

//============================================================================
//Input and output declaration.
//============================================================================

input SYSCLK;
input RST_B;

output PWM_MUSIC;

//============================================================================
//Wire and reg declaration.
//============================================================================

wire SYSCLK;
wire RST_B;

reg PWM_MUSIC;

//============================================================================
//Wire and reg in the module.
//============================================================================

reg [19:0] FREQ_TIME_CNT;
reg [19:0] FREQ_TIME_CNT_N;

reg [23:0] BEAT_TIME_CNT;
reg [23:0] BEAT_TIME_CNT_N;

reg [6:0] ROM_ADDR;
reg [6:0] ROM_ADDR_N;

reg PWM_MUSIC_N;

wire [7:0] ROM_DATA;

parameter TONE_LOW_1 = 8'h0 ;
parameter TONE_LOW_2 = 8'h1 ;
parameter TONE_LOW_3 = 8'h2 ;
parameter TONE_LOW_4 = 8'h3 ;
parameter TONE_LOW_5 = 8'h4 ;
parameter TONE_LOW_6 = 8'h5 ;
parameter TONE_LOW_7 = 8'h6 ;
parameter TONE_NML_1 = 8'h7 ;
parameter TONE_NML_2 = 8'h8 ;
parameter TONE_NML_3 = 8'h9 ;
parameter TONE_NML_4 = 8'hA ;
parameter TONE_NML_5 = 8'hB ;
parameter TONE_NML_6 = 8'hC ;
parameter TONE_NML_7 = 8'hD ;
parameter TONE_HIG_1 = 8'hE ;
parameter TONE_HIG_2 = 8'hF ;
parameter TONE_HIG_3 = 8'h10;
parameter TONE_HIG_4 = 8'h11;
parameter TONE_HIG_5 = 8'h12;
parameter TONE_HIG_6 = 8'h13;
par

基于FPGA的电子琴设计相关文档

最新文档

返回顶部