Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module onda_exemplo(
- bot1,
- bot2,
- bot3,
- bot4,
- chav1,
- chav2,
- endereco_audio,
- taxa_amostragem,
- incremento_audio,
- largura_endereco,
- Sin_Out,
- clock
- );
- /////////////////////////////////////
- input clock;
- input bot1;
- input bot2;
- input bot3;
- input bot4;
- input chav1;
- input chav2;
- input [8:0] endereco_audio;
- output [16:0] taxa_amostragem;
- output [4:0] incremento_audio;
- output [8:0] largura_endereco;
- output reg [15:0] Sin_Out;
- /////////////////////////////////////
- reg [50:0] cont;
- reg [3:0] nota;
- reg [4:0]incremento;
- reg [4:0]volctrl;
- reg [12:0]frequencia;
- /////////////////////////////////////
- parameter taxa = 32000;
- /////////////////////////////////////
- assign taxa_amostragem = taxa;
- assign incremento_audio = incremento;
- assign largura_endereco = taxa_amostragem / frequencia;
- /////////////////////////////////////
- always @(posedge clock)
- begin
- if(chav2) begin
- nota = 0;
- end
- else if(!chav1) begin
- if(!bot1)
- nota = 1;
- else if(!bot2)
- nota = 2;
- else if(!bot3)
- nota = 3;
- else if(!bot4)
- nota = 4;
- else
- nota = 0;
- end
- else begin
- if(!bot1)
- nota = 5;
- else if(!bot2)
- nota = 6;
- else if(!bot3)
- nota = 7;
- else if(!bot4)
- nota = 8;
- else
- nota = 0;
- end
- end
- /////////////////////////////////////
- always @(endereco_audio)
- begin
- if(nota == 0)
- Sin_Out <= 0 ;// 3d
- else if(nota == 1) begin
- incremento = 1;
- frequencia = 294 * incremento; // 3d
- case(endereco_audio)//signal frequency = 294, sampling rate = 32000, number of points = 108
- 0 : Sin_Out <= 16'b0000000000000000;
- 1 : Sin_Out <= 16'b0000011110000011;
- 2 : Sin_Out <= 16'b0000111011111111;
- 3 : Sin_Out <= 16'b0001011001101110;
- 4 : Sin_Out <= 16'b0001110111001010;
- 5 : Sin_Out <= 16'b0010010100001011;
- 6 : Sin_Out <= 16'b0010110000101011;
- 7 : Sin_Out <= 16'b0011001100100101;
- 8 : Sin_Out <= 16'b0011100111110001;
- 9 : Sin_Out <= 16'b0100000010001010;
- 10 : Sin_Out <= 16'b0100011011101010;
- 11 : Sin_Out <= 16'b0100110100001100;
- 12 : Sin_Out <= 16'b0101001011101010;
- 13 : Sin_Out <= 16'b0101100001111110;
- 14 : Sin_Out <= 16'b0101110111000101;
- 15 : Sin_Out <= 16'b0110001010111000;
- 16 : Sin_Out <= 16'b0110011101010101;
- 17 : Sin_Out <= 16'b0110101110010110;
- 18 : Sin_Out <= 16'b0110111101111000;
- 19 : Sin_Out <= 16'b0111001011111000;
- 20 : Sin_Out <= 16'b0111011000010011;
- 21 : Sin_Out <= 16'b0111100011000101;
- 22 : Sin_Out <= 16'b0111101100001101;
- 23 : Sin_Out <= 16'b0111110011101000;
- 24 : Sin_Out <= 16'b0111111001010101;
- 25 : Sin_Out <= 16'b0111111101010011;
- 26 : Sin_Out <= 16'b0111111111100000;
- 27 : Sin_Out <= 16'b0111111111111100;
- 28 : Sin_Out <= 16'b0111111110100111;
- 29 : Sin_Out <= 16'b0111111011100010;
- 30 : Sin_Out <= 16'b0111110110101101;
- 31 : Sin_Out <= 16'b0111110000001000;
- 32 : Sin_Out <= 16'b0111100111110111;
- 33 : Sin_Out <= 16'b0111011101111001;
- 34 : Sin_Out <= 16'b0111010010010011;
- 35 : Sin_Out <= 16'b0111000101000101;
- 36 : Sin_Out <= 16'b0110110110010011;
- 37 : Sin_Out <= 16'b0110100110000001;
- 38 : Sin_Out <= 16'b0110010100010010;
- 39 : Sin_Out <= 16'b0110000001001001;
- 40 : Sin_Out <= 16'b0101101100101011;
- 41 : Sin_Out <= 16'b0101010110111101;
- 42 : Sin_Out <= 16'b0101000000000100;
- 43 : Sin_Out <= 16'b0100101000000011;
- 44 : Sin_Out <= 16'b0100001111000010;
- 45 : Sin_Out <= 16'b0011110101000100;
- 46 : Sin_Out <= 16'b0011011010010001;
- 47 : Sin_Out <= 16'b0010111110101101;
- 48 : Sin_Out <= 16'b0010100010011111;
- 49 : Sin_Out <= 16'b0010000101101110;
- 50 : Sin_Out <= 16'b0001101000011111;
- 51 : Sin_Out <= 16'b0001001010111001;
- 52 : Sin_Out <= 16'b0000101101000010;
- 53 : Sin_Out <= 16'b0000001111000001;
- 54 : Sin_Out <= 16'b1111110000111111;
- 55 : Sin_Out <= 16'b1111010010111110;
- 56 : Sin_Out <= 16'b1110110101000111;
- 57 : Sin_Out <= 16'b1110010111100001;
- 58 : Sin_Out <= 16'b1101111010010010;
- 59 : Sin_Out <= 16'b1101011101100001;
- 60 : Sin_Out <= 16'b1101000001010011;
- 61 : Sin_Out <= 16'b1100100101101111;
- 62 : Sin_Out <= 16'b1100001010111100;
- 63 : Sin_Out <= 16'b1011110000111110;
- 64 : Sin_Out <= 16'b1011010111111101;
- 65 : Sin_Out <= 16'b1010111111111100;
- 66 : Sin_Out <= 16'b1010101001000011;
- 67 : Sin_Out <= 16'b1010010011010101;
- 68 : Sin_Out <= 16'b1001111110110111;
- 69 : Sin_Out <= 16'b1001101011101110;
- 70 : Sin_Out <= 16'b1001011001111111;
- 71 : Sin_Out <= 16'b1001001001101101;
- 72 : Sin_Out <= 16'b1000111010111011;
- 73 : Sin_Out <= 16'b1000101101101101;
- 74 : Sin_Out <= 16'b1000100010000111;
- 75 : Sin_Out <= 16'b1000011000001001;
- 76 : Sin_Out <= 16'b1000001111111000;
- 77 : Sin_Out <= 16'b1000001001010011;
- 78 : Sin_Out <= 16'b1000000100011110;
- 79 : Sin_Out <= 16'b1000000001011001;
- 80 : Sin_Out <= 16'b1000000000000100;
- 81 : Sin_Out <= 16'b1000000000100000;
- 82 : Sin_Out <= 16'b1000000010101101;
- 83 : Sin_Out <= 16'b1000000110101011;
- 84 : Sin_Out <= 16'b1000001100011000;
- 85 : Sin_Out <= 16'b1000010011110011;
- 86 : Sin_Out <= 16'b1000011100111011;
- 87 : Sin_Out <= 16'b1000100111101101;
- 88 : Sin_Out <= 16'b1000110100001000;
- 89 : Sin_Out <= 16'b1001000010001000;
- 90 : Sin_Out <= 16'b1001010001101010;
- 91 : Sin_Out <= 16'b1001100010101011;
- 92 : Sin_Out <= 16'b1001110101001000;
- 93 : Sin_Out <= 16'b1010001000111011;
- 94 : Sin_Out <= 16'b1010011110000010;
- 95 : Sin_Out <= 16'b1010110100010110;
- 96 : Sin_Out <= 16'b1011001011110100;
- 97 : Sin_Out <= 16'b1011100100010110;
- 98 : Sin_Out <= 16'b1011111101110110;
- 99 : Sin_Out <= 16'b1100011000001111;
- 100 : Sin_Out <= 16'b1100110011011011;
- 101 : Sin_Out <= 16'b1101001111010101;
- 102 : Sin_Out <= 16'b1101101011110101;
- 103 : Sin_Out <= 16'b1110001000110110;
- 104 : Sin_Out <= 16'b1110100110010010;
- 105 : Sin_Out <= 16'b1111000100000001;
- 106 : Sin_Out <= 16'b1111100001111101;
- 107 : Sin_Out <= 16'b0000000000000000;
- default :
- Sin_Out <= 0 ;
- endcase
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement