frequency of the sine wave is 1 khz .

Max Amplitude of the sine wave is 4.97 V in IEEE 754 floating point format

Similarly other values values of the wave which is converted in to 16 bit binary .

Want some ideas to create an alogarithm at first to use this values to find phase difference of the sine wave .

The LUT created till know to read the values :

Memory Created :

module ram_memory_2(clk,add,data);

    input [5:0]add;
    input clk;
    output reg [15:0]data;
   

    always @ (*)
    begin
       case(add)
            0  : data <= 16'b0011011010010011;
            1  : data <= 16'b0011011011111010;
            2  : data <= 16'b0011011011111010;
            3  : data <= 16'b0011011101110001;
            4  : data <= 16'b0011011110101010;
            5  : data <= 16'b0011011111010111;
            6  : data <= 16'b0011011111100111;
            7  : data <= 16'b0011011111110100;
            8  : data <= 16'b0011011111011111;
            9  : data <= 16'b0011011111001111;
            10 : data <= 16'b0011011110011110;
            11 : data <= 16'b0011011101101101;
            12 : data <= 16'b0011011100110011;
            13 : data <= 16'b0011011011100001;
            14 : data <= 16'b0011011001111111;
            15 : data <= 16'b0011011000100001;
            16 : data <= 16'b0011010110100010;
            17 : data <= 16'b0011010100100011;
            18 : data <= 16'b0011010010011100;
            19 : data <= 16'b0011010000001100;
            20 : data <= 16'b0011001011100001;
            21 : data <= 16'b0011000110100010;
            22 : data <= 16'b0011000001010010;
            23 : data <= 16'b0010111000101011;
            24 : data <= 16'b0010101010101110;
            25 : data <= 16'b0010000110100010;
            26 : data <= 16'b1010100000001011;
            27 : data <= 16'b1010110010011000;
            28 : data <= 16'b1010111100111011;
            29 : data <= 16'b1011000011101110;
            30 : data <= 16'b1011001000111101;
            31 : data <= 16'b1011001101011100;
            32 : data <= 16'b1011010001001010;
            33 : data <= 16'b1011010011011101;
            34 : data <= 16'b1011010101100000;
            35 : data <= 16'b1011010111010011;
            36 : data <= 16'b1011011001000010;
            37 : data <= 16'b1011011010101000;
            38 : data <= 16'b1011011011111010;
            39 : data <= 16'b1011011101001100;
            40 : data <= 16'b1011011110001101;
            41 : data <= 16'b1011011110111010;
            42 : data <= 16'b1011011111010011;
            43 : data <= 16'b1011011111011011;
            44 : data <= 16'b1011011111101100;
            45 : data <= 16'b1011011111100011;
            46 : data <= 16'b1011011111000011;
            47 : data <= 16'b1011011110011110;
            48 : data <= 16'b1011011101011100;
            49 : data <= 16'b1011011100100011;
            50 : data <= 16'b1011011011001001;
            51 : data <= 16'b1011011001101010;
            52 : data <= 16'b1011011000000100;
            53 : data <= 16'b1011010110001101;
            54 : data <= 16'b1011010100001010;
            55 : data <= 16'b1011010001111011;
            56 : data <= 16'b1011001111010111;
            57 : data <= 16'b1011001010011000;
            58 : data <= 16'b1011000101011000;
            59 : data <= 16'b1011000000011001;
            default: data <= 16'b0000000000000000; // default case if address not listed
        endcase
    end
endmodule


1

There are 1 best solutions below

0
Mogwaika On

You can search this table to find positions and subtraction of two addresses give you phase difference. Next time you can use some linear approximation for more precise results.