模拟技术
首先,了解实验的大体要求,该实验要求我们对16位数据进行CRC编码,生成22位数据;再将22位CRC编码进行解码成16位数据,且判断数据是否在传输过程中发生一位错,两位错的情况,若出错,则必须对数据进行纠正。因此该实验要进行两个的电路图的设计。
一、16位CRC并行编码电路设计
1.解题思路
①已知该实验输入的是16位数据,输出22位CRC编码数据,其中包括16位原始数据,6位校验位,其中一位为总的奇偶校验位(校验位的位数也可由k+r<=2^r-1得到)。因此此时的r=5(不包含奇偶校验位),选择的多项式G(x)位数则为r+1=6位,此时我选择的多项式是G(x)=100101(该多项式不固定,选择其它六位的多项式也是可以的)。
②CRC编码原理:原始16位数据Q(X),左移r=5位成21位Q’(x)(即后面补r个0),再与多项式100101做模2运算,得到的r位的余数,将该余数替换掉Q’(X)后面的r位,即将它后面的r个0替换成该余数。如图所示r5r4r3r2r1便是得到的余数,而r6是总的奇偶校验位,对所有数据进行异或便可得到该偶校验位r6。
③由于要采用并行编码,又有以下公式
因此可先对该16位数据按位与该多项式进行模2除运算,再根据其实际数据进行异或操作。
举个例子:
因此根据该思路,先将16位原始数据所对应位置上取1时,与G(x)进行模2除运算得到各自的5位余数,再用选择器进行根据每一位数据选择输入的是余数还是0,最后将16个输入数据进行异或,即可得到5位最终的余数。
③选择器的使用原理:
此时选择器的选择端连接的是D1,由于D1数据位宽为1,则选择器有2^1=2个输入端。当D1为0,则输入0端的数据即00;若D1为1时,则输入1端的数据即0a。
因此根据选择器的选择原理,将16位数据Di(i=1,2…16)作为选择端控制每位数据输入的是00还是该位与多项式进行模2运算后的余数,最后将最终输入的16个5位数据进行异或,即可得到最终的余数。
2.求16位与多项式的余数
如上图所示,Di(i=1,2…16)分别位数CRC编码的第7,8,9…22位上,因此其各自取1时与多项式模2除运算后的余数如下所示:
3.电路图设计
(r6是总的偶校验位)
二、16位CRC并行解码电路设计
该电路会比较难理解,要进行检错以及数据纠正得到原始的16位数据。
1.检错原理
① 接收方在接受到CRC编码后,将该编码与多项式进行模2除运算,得到余数r’,再根据q(假设q为总的奇偶检验位,将所有数据进行异或可得)的值进行判断数据是否产生错误,及产生错误后是一位错还是两位错。其检查原理同海明码的检错原理相同。
有以下情况:
①当r’ =0,q=0,表示数据无出错;
②r’ !=0,q=1,表示发生一位数据出错;
③r’ =0,q=1,表示该奇偶校验位出错,即发生一位出错;
④r’ !=0,q=0,表示发生两位数据出错。
②求余数时,可参照设计CRC编码时求余数的方法
因为CRC编码最后的r位少于多项式位数,因此可将最后r位看作一个整体,让它与多项式进行模2除运算后,得到的余数显然是它本身,因此让它与其它16位数据与G(x)模2除后所得的余数进行异或,即可得最后接收方检验的余数。
如下图所示,箭头所指的该5位数据位便是其最终得到的余数(异或门输出位宽为5)。
2.纠错,得原始16位数据
①若CRC编码发生出错,而它的出错位可能为第7,8,9…22位(不考虑第1到6位,因为我们要得的原始16位数据处于第7…22位上,因此只需要判断这些位是否出错,若出错对它们进行纠正,再输出即可)。因此将CRC编码按位取反后再与G(x)进行模2除运算,若余数为0,则说明该位出错,因此将余数取反为1,再与该位数据进行异或从而纠正该位的数据;若余数不为0,则说明该数据位并未发生传输错误,因此对该余数取反为0,再与该位的数据进行异或得到的数据仍为该数据位。(x异或0=x,x异或1=x反)
②CRC编码按位取反(即按位异或1)后再与G(x)进行模2除运算,根据公式可化成
CRC编码%G(x)异或该数据位取1%G(x)。
例如:假设第7位出错
CRC%100101异或100 0000%100101=CRC%100101异或0a。
3.电路图设计:
以下为完整电路图
以下分开截图
4.通过测试
注:①(“老母亲帮的叮嘱‘)希望好好理解下实验原理,再去做,就不会产生太多的错误短路什么的!!!
②做编码的实验时,注意要检查下该隧道是否连接上了数据
③在解码的电路设计,常量0和余数都是五位,所以设置其对应器件位宽是五位的。
例如以下的器件(不止这些数据位是5位,就不一一举出了)
如果设置位宽不对,后面可能会产生短路即显示红线!!!
④太多用错逻辑门的,要好好理解下原理再去做就不会花太多时间卡在这一关啦
以下是常被用错的逻辑门,至于原理为何用这些门,上面解题思路讲到了,这里就不说了哈
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !