HDL电子琴设计报告(6)

2019-03-22 21:33

case({high,med,low})

'b000000000101:origin=14447; 'b000000000110:origin=13636; 'b000000000111:origin=12149; 'b000000010000:origin=11466; 'b000000100000:origin=10216; 'b000000110000:origin=9101; 'b000001000000:origin=8590; 'b000001010000:origin=7653; 'b000001100000:origin=6818; 'b000001110000:origin=6074; 'b000100000000:origin=5733; 'b001000000000:origin=5108; 'b001100000000:origin=4551; endcase end

always @(posedge clk_4Hz) //歌曲 begin

if(state ==171) state = 0;//计时,以实现循环演奏 else

state = state + 1; case(state)

0: {high,med,low}='b000000000101;//5 1,2,3,4: {high,med,low}='b000000110000;//3 5: {high,med,low}='b000000100000;//2 6: {high,med,low}='b000000010000;//1

7,8,9,10,11,12,13,14,15,16: {high,med,low}='b000000100000;//2 17: {high,med,low}='b000000010000;//1 18: {high,med,low}='b000000000110;//6 19,20,21,22,23,24,25,26,27: {high,med,low}='b000000010000;//1

28: {high,med,low}='b000000000111;//7 29: {high,med,low}='b000000000110;//6 30,31,32,33,34,35,36,37,38: {high,med,low}='b000000000111;//7 39: {high,med,low}='b000000000110;//6 40: {high,med,low}='b000000000101;//5 41,42,43,44,45:

{high,med,low}='b000000000110;//6

24

46: {high,med,low}='b000000000101;//5 47,48,49,50: {high,med,low}='b000000110000;//3 51: {high,med,low}='b000000100000;//2 52: {high,med,low}='b000000010000;//1 53,54,55,56: {high,med,low}='b000000100000;//2

57: {high,med,low}='b000000000101;//5 58,59,60,61: {high,med,low}='b000000100000;//2 62: {high,med,low}='b000000010000;//1 63: {high,med,low}='b000000000110;//6 64,65,66,67: {high,med,low}='b000000010000;//1

68: {high,med,low}='b000000000101;//5 69,70,71,72: {high,med,low}='b000000000111;//7 73: {high,med,low}='b000000000110;//6 74: {high,med,low}='b000000000101;//5 75,76,77,78,79,80:

{high,med,low}='b000000000111;//7

81,82: {high,med,low}='b000000010000;//1 83: {high,med,low}='b000000000110;//6 84: {high,med,low}='b000000100000;//2 85: {high,med,low}='b000000010000;//1 86: {high,med,low}='b000000100000;//2 87,88,89,90,91,92,93,94,95: {high,med,low}='b000000110000;//3

96,97,98: {high,med,low}='b000000110000;//3 99,100,101,102:

{high,med,low}='b000001100000;//6

103: {high,med,low}='b000001010000;//5 104: {high,med,low}='b000001100000;//6 105,106,107,108,109,110: {high,med,low}='b000000110000;//3 111,112,113,114: {high,med,low}='b000001000000;//4 115: {high,med,low}='b000001010000;//5 116: {high,med,low}='b000001100000;//6 117,118,119,120,121,122: {high,med,low}='b000000110000;//3

123,124,125,126: {high,med,low}='b000000100000;//2 127: {high,med,low}='b000000110000;//3 128: {high,med,low}='b000001000000;//4 129,130: {high,med,low}='b000000110000;//3 131: {high,med,low}='b000001100000;//6

25

132: 133: 134:

{high,med,low}='b000000110000;//3 {high,med,low}='b000000100000;//2 {high,med,low}='b000000010000;//1 {high,med,low}='b000000100000;//2 {high,med,low}='b000000010000;//1 {high,med,low}='b000000000111;//7 {high,med,low}='b000000000101;//5 {high,med,low}='b000001010000;//5 {high,med,low}='b000000100000;//2 {high,med,low}='b000001010000;//5

135: 136: 137,138: 139: 140: 141: 142:

143,144,145,146,147,148: {high,med,low}='b000000110000;//3 149,150,151,152: {high,med,low}='b000001100000;//6 153: {high,med,low}='b000001110000;//7 154: {high,med,low}='b000100000000;//1 155,156,157,158,159,160: {high,med,low}='b001100000000;//3 161,162,163,164: {high,med,low}='b001000000000;//2 165: {high,med,low}='b000001110000;//7 166: {high,med,low}='b000100000000;//1 167,168,169,170,171: {high,med,low}='b000001100000;//6 default : {high,med,low}=12'bx; endcase end

三、曲目 二乐谱存储及循环播放模块

//bell2子模块《康定情歌》 module bell2 (inclk,beep3); input inclk; //系统时钟 output beep3; //蜂鸣器输出端 reg [3:0]high,med,low; reg [15:0]origin; reg beep_r; //寄存器 reg [7:0]state; reg [15:0]count;

assign beep3=beep_r; //输出音乐

//时钟频率6MHz reg clk_6MHz; reg [2:0] cnt1;

always@(posedge inclk) begin

if(cnt1<3'd4)

26

cnt1<=cnt1+3'b1; else

begin

cnt1<=3'b0;

clk_6MHz<=~clk_6MHz; end end

//时钟频率4MHz reg clk_4Hz;

reg [24:0] cnt2;

always@(posedge inclk) begin

if(cnt2<25'd6250000) cnt2<=cnt2+25'b1; else

begin cnt2<=25'b0; clk_4Hz<=~clk_4Hz; end end

always @(posedge clk_6MHz) begin

count <= count + 1'b1; if(count == origin) begin count <= 16'h0; beep_r <= !beep_r; end end

always@(posedge clk_4Hz) begin

case({high,med,low})

'b000000000011:origin<=7281; 'b000000000101:origin<=8730; 'b000000000110:origin<=9565; 'b000000000111:origin<=10310; 'b000000010000:origin<=10647; 'b000000100000:origin<=11272; 'b000000110000:origin<=11831; 'b000001010000:origin<=12556; 'b000001100000:origin<=12974; 'b000100000000:origin<=13516; 'b000000000000:origin<=16383; //计数器加1 //计数器清零 //输出取反 //低音3 //低音5 //低音6 //低音7 //中音1 //中音2 //中音3 //中音5 //中音6 //高音1 //休止符

27

endcase end

always @(posedge clk_4Hz) begin

if(state ==151) state = 0; else state = state + 1; //《梁祝》 case(state)

0: {high,med,low}<='b000000000011; 1: {high,med,low}<='b000000000011; 2: {high,med,low}<='b000000000011; 3: {high,med,low}<='b000000000011;

4: {high,med,low}<='b000000000101; 5: {high,med,low}<='b000000000101; 6: {high,med,low}<='b000000000101;

7: {high,med,low}<='b000000000110; 8: {high,med,low}<='b000000010000; 9: {high,med,low}<='b000000010000; 10: {high,med,low}<='b000000010000;

11: {high,med,low}<='b000000100000; 12: {high,med,low}<='b000000000110; 13: {high,med,low}<='b000000010000; 14: {high,med,low}<='b000000000101; 15: {high,med,low}<='b000000000101;

16: {high,med,low}<='b000001010000; 17: {high,med,low}<='b000001010000; 18: {high,med,low}<='b000001010000;

19: {high,med,low}<='b000100000000; 20: {high,med,low}<='b000001100000; 21: {high,med,low}<='b000001010000; 22: {high,med,low}<='b000000110000; 23: {high,med,low}<='b000001010000; 24: {high,med,low}<='b000000100000; 25: {high,med,low}<='b000000100000; 26: {high,med,low}<='b000000100000; 27: {high,med,low}<='b000000100000; 28: {high,med,low}<='b000000100000; 29: {high,med,low}<='b000000100000; 30: {high,med,low}<='b000000100000; 31: {high,med,low}<='b000000100000; 32: {high,med,low}<='b000000100000; 33: {high,med,low}<='b000000100000;

28

//低音“3”

//持续4个时钟节拍 //低音“5”

//发3个时钟节拍 //低音“6” //中音“1”

//发3个时钟节拍 //中音“2” //低音“6” //中音“1” //低音“5” //中音“5”

//发3个时钟节拍 //高音“1” //中音“6” //中音“5” //中音“3” //中音“5” //中音“2”

//持续11个时钟节拍


HDL电子琴设计报告(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考物理复习之各知识点汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: