crc_send.v

来自「循环冗余校验」· Verilog 代码 · 共 49 行

V
49
字号
module crc_send(data_send,                data_in,                reset,                clk,                ready);                 parameter  WIDTH=1,AMOUNT=8;  input [WIDTH-1:0]data_in; input reset,clk; output ready; output [WIDTH*AMOUNT+15:0] data_send; reg ready; reg [WIDTH*AMOUNT+15:0] data_send; reg [WIDTH*AMOUNT+15:0] buf_in; reg[3:0] n,i;  always @ (posedge clk or posedge reset)     begin       if(reset)         n=0;       else          if(n<AMOUNT-1)            begin              ready<=0;              buf_in=buf_in<<WIDTH;              buf_in[WIDTH-1:0]=data_in;              n=n+1;            end           else             begin               buf_in=buf_in<<WIDTH;               buf_in[WIDTH-1:0]=data_in;               buf_in=buf_in<<16;               data_send=buf_in;               for(i=0;i<WIDTH*AMOUNT;i=i+1)                 if(buf_in[WIDTH*AMOUNT+15-i])                       begin                              buf_in[WIDTH*AMOUNT+15-i]=~buf_in[WIDTH*AMOUNT+15-i];                              buf_in[WIDTH*AMOUNT+14-i]=~buf_in[WIDTH*AMOUNT+14-i];                              buf_in[WIDTH*AMOUNT+1-i]=~buf_in[WIDTH*AMOUNT+1-i];                              buf_in[WIDTH*AMOUNT-1-i]=~buf_in[WIDTH*AMOUNT-1-i];                          end                    data_send[15:0]=buf_in[15:0];                    n=0;                    ready<=1;           end      end  endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?