CRC校验

一、CRC规律。

       CRC校验的规律非常赞许地复杂,如下图所示。

外面的,扩大多项式的是由理论上的代数的已确定的正规军导出的。,并添加了榜样2。,对应于受宪法限制的域的除法。

二、CRC算法。

       因而在FPGA,有几种算法。

1、位典型算法。


       该算法,上面将近是同样的的。,处置仪表的仪表公转,一阵慢,但面积很小。。

       或许你会有个成绩,它填装是第十五位(对应于x ^ 15)。,再换算为第十六。,多少将第十六位替换为不足16位?

       应用扩大多项式的是可能性的。,crc16 : 1+x^2+x^15+x^16,与初等学校算学使巩固的分。

      上面的密谋是核心信号。


2、音节型算法。

       其规律是生长前述的位典型算法。,列表上列出了整个8位的境遇。,单纯化,如下图所示(仅列出核心信号)。


       音节的应用类似地位典型。,只需一次处置8位,锻炼的CRC,留在登记册(LSFR),太。

3、查表法。

       类似地音节型算法,数清整个的事实,外面有一种使格式化,查找音节并查找表。

三、用具。

       引见分别的经用的crc器(前4个为在线器),不计计算CRC,已确定的依然C可以不自觉动作扩大、verilog、VHDL信号。  

1、CRC calculation

2、CRC Generator

3、On-line CRC calculation

4、Easics

5、CRC对着干

6、正西对着干

四、CRC决定因素榜样。



       从结束两幅图片,可以看出,CRC-DNP计算的成功实现的事责任0(这与敝的两样)。。

       实则,这简单地CRC的小小偏离。,去,敝得到了CRC的决定因素榜样。,如下图所示。


       Name:CRC明确。

       Width:CRC暂存存储器的宽度。

       Poly:多项式的的扩大(喂用16位十进制记数制表现)。

       Init:CRC暂存存储器的启动装置(图中整个0个)。

       RefIn:Tror表现每个出口音节的颠倒的事物(起形成作用的人是BIT0)。,变为少量7;起形成作用的人是BIT1,更代替BIT6)。假表现非反演。

       RefOut:CRC成功实现的事出口前的真值表现,快速旋转CRC暂存存储器。假表现非反演。

       XorOut:器械使完满后,两样或整个0或整个1,(图0两样)。

       好了,担心CRC决定因素榜样,这是对CRC的真正担心。,不同的书上说的这么浅薄。

       已确定的CRC暂存存储器的启动装置设置为1个。,以太网的CRC32,专心的是检测最高纪录后面的0编号。。1234的CRC,生产01234,两样样的,这可以处置后面0的最高纪录。。

       再说,CRC的扩大多项式的,也有可能性变坏它。,去,效劳在决定因素榜样中取Poy的值。。

五、Verilog/VHDL的错觉与并联。

如下图所示,出口2 0x30,锻炼的CRC32成功实现的事与器同上。。


核心获名次,反演中。

错觉器与合成物,遭受的基本原理分叉,因而当你写快速旋转时,尝试各式各样的两样的使安定办法是可能性的。,免得应用器不遭受的基本原理,成功实现的事可能性是未知的。。

上面产生了外面的的已确定的,使安定的尝试。

1、reg [7:0] A;
reg [0:7] B;
assign A=B;
2、reg [7:0] A,B;
     assign A = {B[0],B[1],B[2],B[3],B[4],B[5],B[6],B[7]};

3、reg [7:0] A,B;
     assign A〔0〕 = B[7];

    assign
A〔1〕 = B[6];

    assign
A〔2〕 = B[5];

    assign
A〔3〕 = B[4];

    assign
A〔4〕 = B[3];

    assign
A〔5〕 = B[2];

    assign
A〔6〕 = B[1];

    assign
A〔7〕 = B[0];

4、reg
[7:0] A,B;

    
integer i = 0;

     
for (i = 0; i <= 7; i = i + 1) begin
[我] <= B[7-i] ^ 1''b1; // 当RefIn是假的,应用[我]
<= B[7-i];

end

是否快速旋转出口最高纪录,还是快速旋转CRC暂存存储器,原则是同样的的。

结束第三点用具扩大的信号,这一步的作用也不起作用。。应用时,请注意。

再说,在逻辑分析仪中间的应用,当您查看CRC暂存存储器的最高纪录时(如,我在喂的32位RG变量OCRCUT),直接查看OCRCUT成功实现的事是错误的。,但是看看下一个模块的出口端口,这是正确的(电路在中间产生一个合成物)。

六、其它。

      用CRC计算值,不一定是0。,0也不应用同样的办法。。

     一般,书上写的CRC决定因素榜样启动装置为全0,改装和改装都是假的,XorOut全是0。这样,接收机计算的CRC成功实现的事为0。。

      更多决定因素榜样,你可以下载第三分,用具的第五种器,该器包含21个CRC决定因素榜样。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注