集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 796|回复: 0

新手求助

[复制链接]
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[15:0] Crc_out;
         wire Reset,Gclk,Soc,Data_in;
         reg[15:0] 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[15];
            for(j=15;j>12;j=j-1)
               Crc_out[j]<=#U_DLY Crc_out[j-1];
             Crc_out[12]<=#U_DLY Temp^Crc_out[11];
             for(k=11;k>5;k=k-1)
                Crc_out[k]<=#U_DLY Crc_out[k-1];
              Crc_out[5]<=#U_DLY Temp^Crc_out[4];
              for(l=4;l>0;l=l-1)
                 Crc_out<=#U_DLY Crc_out[l-1];
               Crc_out[0]<=#U_DLY Temp;
end
end                                       


endmodule
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-27 07:21 , Processed in 0.060461 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表