li311 发表于 2013-3-15 10:47:08

新手求助

下面是CRC校验码产生程序,求大神解释它是怎么实现他的功能的。我研究两天了都没搞明白。
module CRC16_SER(
    Reset,Gclk,Soc,Data_in,Crc_out);
       input Reset,Gclk,Soc,Data_in;
       output Crc_out;
       wire Reset,Gclk,Soc,Data_in;
       reg Crc_out;
       reg Temp;
       integer i,j,k,l;
       parameter U_DLY=1;
       always@(posedge Reset or posedge Gclk)
      begin
       if(Reset)
         Crc_out<=#U_DLY 16'b0;
       else if(Soc==1'b1)
         Crc_out<=#U_DLY 16'b0;
      else
          begin
            Temp=Data_in^Crc_out;
            for(j=15;j>12;j=j-1)
               Crc_out<=#U_DLY Crc_out;
             Crc_out<=#U_DLY Temp^Crc_out;
             for(k=11;k>5;k=k-1)
                Crc_out<=#U_DLY Crc_out;
            Crc_out<=#U_DLY Temp^Crc_out;
            for(l=4;l>0;l=l-1)
               Crc_out<=#U_DLY Crc_out;
               Crc_out<=#U_DLY Temp;
end
end                                       


endmodule
页: [1]
查看完整版本: 新手求助