劉新紅
(北京信息職業(yè)技術(shù)學(xué)院,北京,100018)
循環(huán)碼編解碼電路結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)。有廣泛應(yīng)用。
根據(jù)糾錯(cuò)位數(shù)的多少,解碼器復(fù)雜程度不同,糾多位錯(cuò)的解碼器電路實(shí)現(xiàn)復(fù)雜一般用查表法實(shí)現(xiàn)[1-3],糾1位錯(cuò)一般用電路實(shí)現(xiàn)[4-5],當(dāng)然糾1位錯(cuò)也可用查表法[6-7]。
糾1位錯(cuò)的電路實(shí)現(xiàn)方法文獻(xiàn)[4-5]給出了實(shí)現(xiàn)電路但并未分析電路結(jié)構(gòu)。本文以(7,3)循環(huán)碼為例基于Simulink仿真對(duì)編解碼電路工作過(guò)程進(jìn)行詳細(xì)分析,得出基于移位寄存器的循環(huán)碼編解碼電路的設(shè)計(jì)方法。
(7,3)循環(huán)碼生成多項(xiàng)式如式(1)所示。
信息多項(xiàng)式m(x)、生成多項(xiàng)式g(x)、監(jiān)督多項(xiàng)式(余數(shù)多項(xiàng)式)r(x)滿足式(2)。其中Qx是商多項(xiàng)式。
以m(x)=x2+ 1即輸入信息位101為例列豎式計(jì)算余數(shù)r(x)的過(guò)程如式(3)所示。
編碼器仿真電路圖如圖1所示。
由移位寄存器實(shí)現(xiàn)。4位循環(huán)移位寄存器,輸入編碼信號(hào)101,附加4位監(jiān)督位0000,故輸入信號(hào)設(shè)為1010000。3個(gè)時(shí)鐘周期輸入的3位信息位產(chǎn)生4位監(jiān)督位,4位移位寄存器中的值就是余數(shù),也就是監(jiān)督位的值。
反饋控制信號(hào)取值1110000,也保證前3位真正的信息位反饋進(jìn)入移位寄存器。
輸出控制信號(hào)取值0001111,保證輸出信號(hào)前3位為信號(hào)后4位為移位寄存器中產(chǎn)生的監(jiān)督位。
仿真波形圖如圖2所示。
波形圖的下波形為輸入的被編碼信號(hào),上波形為輸出的產(chǎn)生了監(jiān)督位的編碼后信號(hào)。
從仿真波形看,輸入的編碼信號(hào)為1010000,輸出1011100,產(chǎn)生的監(jiān)督位正確。
前3個(gè)時(shí)鐘周期信息位101送入4位移位寄存器產(chǎn)生4位監(jiān)督位。每個(gè)時(shí)鐘周期低位向高位循環(huán)移1位,第一個(gè)時(shí)鐘周期信息位1和D4中的0模2加后得1和 D2、 D1的值模2加后移入高位,移位后得 D4D3D2D1=0111,同理,第2個(gè)時(shí)鐘周期信息位0和D4中的0模2加后得1和 D2、 D1的值模2加后移入高位,移位后得 D4D3D2D1=1110,第3個(gè)時(shí)鐘周期信息位1和D4中的1模2加后得0和 D2、 D1的值模2加后移入高位,移位后得 D4D3D2D1=1100,這時(shí)的寄存器中的值便是最終的余數(shù)也是編碼時(shí)的4位監(jiān)督位。說(shuō)明循環(huán)移位寄存器這種電路結(jié)構(gòu)能夠?qū)崿F(xiàn)編碼功能。編碼輸出電路控制信號(hào)取值0001111,使輸出7位碼字1011100前3位為信息位101,后4位為監(jiān)督位1100。
根據(jù)上面分析,可以得出,移位寄存器電路仿真除法過(guò)程,移位寄存器位數(shù)為余數(shù)(監(jiān)督位)位數(shù),組合邏輯部分由生成多項(xiàng)式?jīng)Q定,移位寄存器最高位和生成多項(xiàng)式中系數(shù)為1的位對(duì)應(yīng)的寄存器位輸出模2加作為高位寄存器輸入。實(shí)現(xiàn)如果最高位為1,模2加上生成多項(xiàng)式對(duì)應(yīng)的2進(jìn)制序列并移位1位,如果最高位為0直接移1位即可。
接收碼字在不出錯(cuò)時(shí)除法余數(shù)為0,也就是除法器4位移位寄存器最后結(jié)果為 D4D3D2D1=0000,(7,3)循環(huán)碼生成矩陣如式(4)所示。
其系統(tǒng)碼形式如式(5)所示。
圖2 編碼器仿真波形圖
由生成矩陣得到發(fā)送碼字C如式(6)所示。
由此可得監(jiān)督位 c4c3c2c1和信息位 c7c6c5的關(guān)系如下。
可寫(xiě)出監(jiān)督矩陣如式(7)所示。
監(jiān)督矩陣和發(fā)送碼字存在式(8)的關(guān)系。
接收碼字R和監(jiān)督矩陣H、校正子S關(guān)系如式(9)所示。
由此得出校正子各位和接收碼字各位之間的關(guān)系如下。
可得出如表1所示校正子和錯(cuò)誤位置關(guān)系。
表1
1 1 1 0 6 r 1 0 1 1 7 r
解碼仿真電路如圖3所示,仿真波形如圖4所示。
解碼包括校正子產(chǎn)生電路和錯(cuò)誤圖樣產(chǎn)生電路。輸入碼字1111100,正確碼字1011100,輸出1011100,由此看出解碼電路正確識(shí)別并糾正了錯(cuò)誤。
輸入碼字1111100一方面進(jìn)入循環(huán)移位寄存器產(chǎn)生校正子,一方面進(jìn)入7位寄存器,7個(gè)時(shí)鐘周期碼字全部進(jìn)入后產(chǎn)生校正子,在后7個(gè)時(shí)鐘周期輸入碼字依次從寄存器輸出并逐位和錯(cuò)誤位模2加糾錯(cuò)后輸出。
糾錯(cuò)的起始狀態(tài)為糾r7,如果r7有錯(cuò)則S=1011,將s2取反相與輸出為1表明有錯(cuò)模2加到r7上即可糾正該位錯(cuò)誤。如果r7無(wú)錯(cuò),S≠1011,與門(mén)輸出0,r7值無(wú)改變。如果r6有錯(cuò)則S=1110,先在4位移位寄存器中循環(huán)移位1位得 D4D3D2D1=1011將D2取反相與輸出為1表明有錯(cuò)模2加到r6上即可糾正該位錯(cuò)誤。如果r6無(wú)錯(cuò),S≠1011,與門(mén)輸出0,r6值無(wú)改變。分析一下r1有錯(cuò)的情況。如果r1有錯(cuò)則S=0001,經(jīng)過(guò)6個(gè)時(shí)鐘周期r1才移出,D4D3D2D1=0001依次變?yōu)?D4D3D2D1=0010、D4D3D2D1=0100、 D4D3D2D1=1000、 D4D3D2D1=0111、D4D3D2D1=1110、 D4D3D2D1=1011將D2取反相與輸出為1表明有錯(cuò)模2加到r1上即可糾正該位錯(cuò)誤。如果r1無(wú)錯(cuò),S≠0001,與門(mén)輸出0,r1值無(wú)改變。對(duì)每位錯(cuò)誤的情況進(jìn)行一一分析后得出結(jié)論糾錯(cuò)電路能夠糾正各位錯(cuò)誤。糾錯(cuò)電路的邏輯結(jié)構(gòu)基于r7有錯(cuò)的情況分析得出,適用于各位有錯(cuò)的情況。
因此,糾錯(cuò)組合邏輯電路根據(jù)接收碼字最高位有錯(cuò)時(shí)的校正子取值確定。把最高位有錯(cuò)時(shí)校正子各位相與(如某位為0則取反)后作為錯(cuò)誤位模2加到接收碼字相應(yīng)位上糾正錯(cuò)誤。
每個(gè)碼字檢錯(cuò)糾錯(cuò)需14個(gè)時(shí)鐘周期,移位寄存器反饋控制信號(hào)取00001111111111,前4個(gè)時(shí)鐘周期接收碼字的前4位移入4位移位寄存器,此過(guò)程反饋不起作用避免寄存器中原數(shù)據(jù)的影響。輸出控制信號(hào)取00000001111111,保證后7個(gè)時(shí)鐘周期輸出糾錯(cuò)后的碼字。
圖3 解碼器仿真電路圖
圖4 解碼器仿真波形圖
基于移位寄存器的循環(huán)碼編解碼電路結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)。通過(guò)分析電路工作過(guò)程得出,編碼電路結(jié)構(gòu)由生成多項(xiàng)式?jīng)Q定,移位寄存器最高位和生成多項(xiàng)式中系數(shù)為1的位對(duì)應(yīng)的寄存器位輸出模2加作為高位寄存器輸入;解碼器校正子產(chǎn)生電路由生成多項(xiàng)式?jīng)Q定,糾錯(cuò)電路的邏輯結(jié)構(gòu)由接收碼字最高位有錯(cuò)時(shí)的校正子決定。