欢迎光临散文网 会员登陆 & 注册

FPGA:nco_fsdiv12

2023-03-28 20:12 作者:hawk  | 我要投稿

`timescale 1ns / 1ps

module nco_fsdiv12

#(

    parameter LANE    =  8,

    parameter IN_WIDTH= 12

)

(

    input clk,

    input rst,

    output [LANE*IN_WIDTH-1:0] m_axis_nco_tdata ,

    output reg                 m_axis_nco_tvalid

);

    //

    genvar i;

    //2047        1773        1023          0       -1024    -1773   -2047    -1773

    //-1023          0       1024        1773        2047     1773    1023     0

    //-1024      -1773       -2047      -1773       -1023     0       1024     1773

    reg [         2:0] cnt;

    reg [IN_WIDTH-1:0] nco_initial[LANE-1:0];

    //

    generate

        for(i=0;i<LANE;i=i+1)

        begin:assign_res

            assign m_axis_nco_tdata[IN_WIDTH*(i+1)-1:IN_WIDTH*i] = nco_initial[i];

        end

    endgenerate

    //

    always@(posedge clk or posedge rst)

    begin

        if(rst)

            begin

                cnt<=0;

                m_axis_nco_tvalid<=0;

            end

        else

            begin

                m_axis_nco_tvalid<=1;

                if(cnt<2)

                    begin

                        cnt<=cnt+1'b1;

                    end

                else

                    begin

                        cnt<=0;

                    end

            end

    end

    //

    always@(posedge clk or posedge rst)

    begin

        if(rst)

            begin

                nco_initial[7]<=0;nco_initial[6]<=0;

                nco_initial[5]<=0;nco_initial[4]<=0;

                nco_initial[3]<=0;nco_initial[2]<=0;

                nco_initial[1]<=0;nco_initial[0]<=0;

            end

        else

            begin

                case(cnt)

                    3'b00:begin

                        nco_initial[7]<=-1773;

                        nco_initial[6]<=-2047;

                        nco_initial[5]<=-1773;

                        nco_initial[4]<=-1024;

                        nco_initial[3]<=    0;

                        nco_initial[2]<= 1023;

                        nco_initial[1]<= 1773;

                        nco_initial[0]<= 2047;

                    end

                    3'b01:begin

                        nco_initial[7]<=    0;

                        nco_initial[6]<= 1023;

                        nco_initial[5]<= 1773;

                        nco_initial[4]<= 2047;

                        nco_initial[3]<= 1773;

                        nco_initial[2]<= 1024;

                        nco_initial[1]<=    0;

                        nco_initial[0]<=-1023;

                    end

                    3'b10:begin

                        nco_initial[7]<= 1773;

                        nco_initial[6]<= 1024;

                        nco_initial[5]<=    0;

                        nco_initial[4]<=-1023;

                        nco_initial[3]<=-1773;

                        nco_initial[2]<=-2047;

                        nco_initial[1]<=-1773;

                        nco_initial[0]<=-1024;

                    end

                endcase

            end

    end


endmodule


FPGA:nco_fsdiv12的评论 (共 条)

分享到微博请遵守国家法律