本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種循環(huán)冗余校驗碼(cycleredundancycheck,crc)的生成方法和裝置。
背景技術(shù):
在數(shù)據(jù)通信領(lǐng)域中通常采用并行算法來計算crc值,根據(jù)多項式生成crc計算函數(shù),在一個周期內(nèi)就可以計算出crc結(jié)果。
現(xiàn)有技術(shù)中當(dāng)需要處理的數(shù)據(jù)位寬很寬,并行算法不能滿足頻率要求,可以采用分離計算的方式實現(xiàn)pipeline操作,即對并行算法中的異或表達(dá)式進(jìn)行分離計算,再對分離計算出的多個結(jié)果進(jìn)行異或運算得到最終的crc值。
現(xiàn)有技術(shù)的這種計算高位寬crc值的方法,其計算時間長,占用芯片的資源和功耗大。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于解決現(xiàn)有技術(shù)中高位寬數(shù)據(jù)的crc值計算時間長,占用的芯片資源和功耗大的技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明提供的一種循環(huán)冗余效驗碼的生成方法,所述循環(huán)冗余效驗碼的生成方法包括:
獲取數(shù)據(jù)信息,根據(jù)所述數(shù)據(jù)信息中每一級數(shù)據(jù)的比特數(shù)m,將所述每一級數(shù)據(jù)劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組;
針對每一級數(shù)據(jù),根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;并同時針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;
根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果;
將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc輸出值;所述輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,或者包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果;
定義所述數(shù)據(jù)信息中最后一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元對應(yīng)的crc輸出值為所述數(shù)據(jù)信息的crc值;
當(dāng)所述數(shù)據(jù)信息為待發(fā)送類型,所述crc值用于嵌入所述數(shù)據(jù)信息,與所述數(shù)據(jù)信息一并發(fā)送至接收端,以使數(shù)據(jù)接收端根據(jù)自身生成的第一crc值與所述crc值的比對結(jié)果,判斷所接收的數(shù)據(jù)信息是否出錯;當(dāng)所述數(shù)據(jù)信息為已接收類型,所述crc值用于與所述數(shù)據(jù)信息中嵌入的第二crc值進(jìn)行大小比對,以使數(shù)據(jù)接收端根據(jù)比對結(jié)果判斷所述數(shù)據(jù)信息是否出錯。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成方法,在所述根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果之前還包括:
為第1幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù);
針對第i幀數(shù)據(jù)單元,i為自然數(shù),且m/n≥i≥2,計算第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第一計算函數(shù);
所述根據(jù)crc輸入值以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果具體包括:
定義前一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元所對應(yīng)的crc輸出值為當(dāng)前級的crc輸入值;根據(jù)每幀所述數(shù)據(jù)單元的有效性情況,為當(dāng)前級數(shù)據(jù)中每幀數(shù)據(jù)單元分配相應(yīng)的第一計算函數(shù)的輸入數(shù)據(jù);
針對第1幀數(shù)據(jù)單元,通過相應(yīng)的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算所述第1幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;
針對第i幀數(shù)據(jù)單元,根據(jù)第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況,查找相應(yīng)的第一計算函數(shù),根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第一計算函數(shù), 計算所述第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成方法,所述針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效情況,計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果之前還包括:
為每一組數(shù)據(jù)單元中的第1幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù);
針對每一組數(shù)據(jù)單元中的第j幀數(shù)據(jù)單元,每組中數(shù)據(jù)單元總幀數(shù)≥j≥2,計算第1幀至第(j-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第二計算函數(shù);
確定每一組中每一幀數(shù)據(jù)單元相應(yīng)的第二計算函數(shù)的輸入數(shù)據(jù);
所述針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效情況,計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果具體包括:
針對每一組的第1幀數(shù)據(jù)單元,根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第二計算函數(shù),計算本組中第1幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;
針對每一組中第j幀數(shù)據(jù)單元,根據(jù)本組中第1幀至第(j-1)幀數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第二計算函數(shù),通過相應(yīng)的第二計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算本組中第j幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成方法,所述根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該最后一幀數(shù)據(jù)單元至(m/n-1)幀數(shù)據(jù)單元的有效情況,計算每該組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果之前還包括:
針對以第f組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第f+1組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的情況,確定所述第f組最后一幀數(shù)據(jù)單元至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;
為每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的每一種組合配置一個相應(yīng)的第三計算函數(shù),確定每個第三計算函數(shù)的輸入數(shù)據(jù);
所述根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該最后一幀數(shù)據(jù)單元至(m/n-1)幀數(shù)據(jù)單元的有效情況,計算每該 組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果具體包括:
確定當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元w;
若該數(shù)據(jù)單元為第f+1組中第1幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元中的任何一幀數(shù)據(jù)單元,根據(jù)第f組最后一幀數(shù)據(jù)單元至當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第三計算函數(shù);
通過相應(yīng)的第三計算函數(shù)以所述輸入數(shù)據(jù)作為輸入值,計算所述數(shù)據(jù)單元w對應(yīng)位置的第三輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成方法,所述對每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc值包括:
當(dāng)某一幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值;
當(dāng)某一幀數(shù)據(jù)單元計算出的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值。
此外,為實現(xiàn)上述目的,本發(fā)明還提供一種循環(huán)冗余效驗碼的生成裝置,所述循環(huán)冗余效驗碼的生成裝置包括:
劃分模塊,用于獲取數(shù)據(jù)信息,根據(jù)所述數(shù)據(jù)信息中每一級數(shù)據(jù)的比特數(shù)m,將所述每一級數(shù)據(jù)劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組;
第一輸出結(jié)果計算模塊,用于針對每一級數(shù)據(jù),根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;
第二輸出結(jié)果計算模塊,用于針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;
第三輸出結(jié)果計算模塊,用于根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù) 據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果;
crc值計算模塊,用于將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc輸出值;所述輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,或者包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果;
定義模塊,用于定義所述數(shù)據(jù)信息中最后一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元對應(yīng)的crc輸出值為所述數(shù)據(jù)信息的crc值;
當(dāng)所述數(shù)據(jù)信息為待發(fā)送類型,所述crc值用于嵌入所述數(shù)據(jù)信息,與所述數(shù)據(jù)信息一并發(fā)送至接收端,以使數(shù)據(jù)接收端根據(jù)自身生成的第一crc值與所述crc值的比對結(jié)果,判斷所接收的數(shù)據(jù)信息是否出錯;當(dāng)所述數(shù)據(jù)信息為已接收類型,所述crc值用于與所述數(shù)據(jù)信息中嵌入的第二crc值進(jìn)行大小比對,以使數(shù)據(jù)接收端根據(jù)比對結(jié)果判斷所述數(shù)據(jù)信息是否出錯
所述第一輸出結(jié)果計算模塊與所述第二輸出結(jié)果計算模塊同步執(zhí)行相關(guān)操作;
所述第一輸出結(jié)果計算模塊與所述第二輸出結(jié)果計算模塊同步執(zhí)行相關(guān)操作。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成裝置還包括:
第一計算函數(shù)配置模塊,用于為第1幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù);以及針對第i幀數(shù)據(jù)單元,i為自然數(shù),且m/n≥i≥2,計算第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第一計算函數(shù);
所述第一輸出結(jié)果計算模塊包括:
輸入數(shù)據(jù)確定單元,用于定義前一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元所對應(yīng)的crc輸出值為當(dāng)前級的crc輸入值;根據(jù)每幀所述數(shù)據(jù)單元的有效性情況,為當(dāng)前級數(shù)據(jù)中每幀數(shù)據(jù)單元分配相應(yīng)的第一計算函數(shù)的輸入數(shù)據(jù);
第一輸出結(jié)果計算單元,用于針對第1幀數(shù)據(jù)單元,通過相應(yīng)的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算所述第1幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;以及針對第i幀數(shù)據(jù)單元,根據(jù)第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況,查找相應(yīng)的第一計算函數(shù),根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第一計算函數(shù),計算所述第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成裝置還包括:
第二計算函數(shù)配置模塊,用于為每一組數(shù)據(jù)單元中的第1幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù);以及針對每一組數(shù)據(jù)單元中的第j幀數(shù)據(jù)單元,每組中數(shù)據(jù)單元總幀數(shù)≥j≥2,計算第1幀至第(j-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第二計算函數(shù);
輸入數(shù)據(jù)確定模塊,用于確定每一組中每一幀數(shù)據(jù)單元相應(yīng)的第二計算函數(shù)的輸入數(shù)據(jù);
所述第二輸出結(jié)果計算模塊,具體用于針對每一組的第1幀數(shù)據(jù)單元,根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第二計算函數(shù),計算本組中第1幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;以及針對每一組中第j幀數(shù)據(jù)單元,根據(jù)本組中第1幀至第(j-1)幀數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第二計算函數(shù),通過相應(yīng)的第二計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算本組中第j幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成裝置還包括:
確定模塊,用于針對以第f組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第f+1組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的情況,確定所述第f組最后一幀數(shù)據(jù)單元至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;
第三計算函數(shù)配置模塊,用于為每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的每一種組合配置一個相應(yīng)的第三計算函數(shù),確定每個第三計算函數(shù)的輸入數(shù)據(jù);
所述第三輸出結(jié)果計算模塊包括;
確定單元,用于確定當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元w;
第三計算函數(shù)查找單元,用于若該數(shù)據(jù)單元為第f+1組中第1幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元中的任何一幀數(shù)據(jù)單元,根據(jù)第f組最后一幀數(shù)據(jù)單元至當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第三計算函數(shù);
第三輸出結(jié)果計算單元,用于通過相應(yīng)的第三計算函數(shù)以所述輸入數(shù)據(jù)作為輸入值,計算所述數(shù)據(jù)單元w對應(yīng)位置的第三輸出結(jié)果。
優(yōu)選地,所述的循環(huán)冗余效驗碼的生成裝置,所述crc值計算模塊,具體用于當(dāng)某一幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值;以及當(dāng)某一幀數(shù)據(jù)單元計算出的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值。
本發(fā)明所提供的循環(huán)冗余效驗碼的生成方法和裝置,通過根據(jù)數(shù)據(jù)信息的比特數(shù)m,將所述數(shù)據(jù)信息劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組;根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;在計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果的同時,同步執(zhí)行針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的操作;然后根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果;將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算的方式,得到每幀數(shù)據(jù)單元對應(yīng)的crc值,大大地縮短了每幀數(shù)據(jù)單元對應(yīng)位置的crc值的計算時間,提高了crc值的計算頻率,降低了芯片計算crc值所占的資源和功耗。
附圖說明
圖1為本發(fā)明的的循環(huán)冗余效驗碼的生成方法一實施例的流程示意圖;
圖2為圖1中步驟s20的具體細(xì)化流程示意圖;
圖3為圖1中步驟s20的具體數(shù)據(jù)信號和控制信號的走向示意圖;
圖4為圖1中步驟s30的具體數(shù)據(jù)信號和控制信號的走向示意圖;
圖5為圖1中步驟s40的具體數(shù)據(jù)信號和控制信號走向示意圖;
圖6為圖1中步驟s40的另一具體數(shù)據(jù)信號和控制信號的走向示意圖;
圖7為本發(fā)明的循環(huán)冗余效驗碼的生成裝置一實施例的功能模塊示意圖;
圖8為本發(fā)明的循環(huán)冗余效驗碼的生成裝置另一實施例的功能模塊示意圖;
圖9為圖8中第一輸出結(jié)果計算模塊的具體細(xì)化功能模塊示意圖;
圖10為本發(fā)明的循環(huán)冗余效驗碼的生成裝置又一實施例的功能模塊示意圖;
圖11為本發(fā)明的循環(huán)冗余效驗碼的生成裝置又一實施例的功能模塊示意圖;
圖12為圖11中第三輸出結(jié)果計算模塊的具體細(xì)化功能模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。
具體實施方式
以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
本發(fā)明提供一種循環(huán)冗余效驗碼的生成方法。參照圖1,圖1為本發(fā)明的的循環(huán)冗余效驗碼的生成方法一實施例的流程示意圖。在一實施例中,所述循環(huán)冗余效驗碼的生成方法包括:
步驟s10、獲取數(shù)據(jù)信息,根據(jù)所述數(shù)據(jù)信息中每一級數(shù)據(jù)的比特數(shù)m,將所述每一級數(shù)據(jù)劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組。
本發(fā)明中所述q組中的每組中數(shù)據(jù)單元幀數(shù)可以相同也可以不同,本實施例優(yōu)選為相同。
步驟s20、針對每一級數(shù)據(jù),根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
本實施例中在計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果之前需要為每幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù)。即在本步驟s20之前還包括如下處理:為第1幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù);針對第i幀數(shù)據(jù)單元,i為自然數(shù),且m/n≥i≥2,確定第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合, 為每一種組合配置一個相應(yīng)的第一計算函數(shù)。本發(fā)明中每幀數(shù)據(jù)單元可能是有效的也可能是無效的,每幀數(shù)據(jù)單元的有效性情況包括兩種:一種是該幀數(shù)據(jù)單元有效,另一種是該幀數(shù)據(jù)單元無效。當(dāng)i為大于等于3的自然數(shù)時,則第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合包括多種。本發(fā)明中可以“0”作為有效標(biāo)識、“1”作為無效標(biāo)識;假設(shè)i=3,則第1幀至第(i-1)幀數(shù)據(jù)單元包括:第1幀數(shù)據(jù)單元和第2幀數(shù)據(jù)單元,其中第1幀數(shù)據(jù)單元的有效性情況為有效“0”或無效“1”;第2幀數(shù)據(jù)單元的有效性情況為有效“0”或無效“1”。因此第1、2幀數(shù)據(jù)單元的有效性情況可能的組合包括以下四種:第1幀數(shù)據(jù)單元有效“0”、第2幀數(shù)據(jù)單元有效“0”;第1幀數(shù)據(jù)單元有效“0”、第2幀數(shù)據(jù)單元無效“1”;第1幀數(shù)據(jù)單元有效“0”;第2幀數(shù)據(jù)單元無效“1”;第1幀數(shù)據(jù)單元無效“1”;第2幀數(shù)據(jù)單元無效“1”。
參見圖2,圖2為圖1中步驟s20的具體細(xì)化流程示意圖。所述步驟s20具體包括:
步驟s21、定義前一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元所對應(yīng)的crc輸出值為當(dāng)前級的crc輸入值;根據(jù)每幀所述數(shù)據(jù)單元的有效性情況,為當(dāng)前級數(shù)據(jù)中每個幀數(shù)據(jù)單元分配相應(yīng)的第一計算函數(shù)的輸入數(shù)據(jù)。
本發(fā)明中每幀數(shù)據(jù)單元的有效性情況包括兩種:有效、無效,其中可以“0”作為有效標(biāo)識、“1”作為無效標(biāo)識。
步驟s22、針對第1幀數(shù)據(jù)單元,通過相應(yīng)的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算所述第1幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
步驟s23、針對第i幀數(shù)據(jù)單元,根據(jù)第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況,查找相應(yīng)的第一計算函數(shù),根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第一計算函數(shù),計算所述第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
參見圖3,圖3為圖1中步驟s20的具體數(shù)據(jù)信號和控制信號的走向示意圖。圖3以比特數(shù)m為1536的數(shù)據(jù)信息為例,將數(shù)據(jù)信息劃分為1536/64=24幀數(shù)據(jù)單元,每幀數(shù)據(jù)單元的比特位寬為64,將24幀數(shù)據(jù)單元劃分為幀數(shù)相同的三組:第一組包括第1幀數(shù)據(jù)單元data0至第8幀數(shù)據(jù)單元data7;第二組包括第9幀數(shù)據(jù)單元data8至第16幀數(shù)據(jù)單元data15;第三組包括第17幀數(shù)據(jù)單元data16至第24幀數(shù)據(jù)單元data23。首先判斷控制信號中的前一級數(shù)據(jù)的最后一幀數(shù)據(jù)單元的有效性信號“前一級ctrlin[23]” 的值為“0”還是“1”,若為“0”則pre_crc=crc輸入值;若為“1”則pre_crc=32‘hffffffff;并將該pre_crc作為輸入數(shù)據(jù)供每個第一計算函數(shù)選擇。對于第1幀數(shù)據(jù)單元data0直接配置第一計算函數(shù)為c63_0,并選擇確定pre_crc作為c63_0的輸入數(shù)據(jù)。針對第i(i≥2)幀數(shù)據(jù)單元,預(yù)先確定第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第一計算函數(shù)。以第3幀數(shù)據(jù)單元data2為例,第2幀數(shù)據(jù)單元data1無效“1”,配置第一計算函數(shù)為c63_0,選擇確定32'hffff_ffff作為第一計算函數(shù)c63_0的輸入數(shù)據(jù)。第2幀數(shù)據(jù)單元data1有效“0”,第1幀數(shù)據(jù)單元data0無效“1”,配置第一計算函數(shù)為c127_0,選擇確定32'hffff_ffff作為第一計算函數(shù)c127_0的輸入數(shù)據(jù)。其他有效性情況下,配置第一計算函數(shù)為c191_0,選擇確定pre_crc作為第一計算函數(shù)c191_0的輸入數(shù)據(jù)。而在實際計算過程中輸入的控制信號ctrlin[23:0]包含第1幀數(shù)據(jù)單元data0至第24幀數(shù)據(jù)單元data23的實際有效性標(biāo)識。第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況有且只有一種,首先根據(jù)控制信號ctrlin[23:0]查找第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況組合屬于哪何種組合,然后查找該組合對應(yīng)的第一計算函數(shù),再通過所查找到的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值計算該第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。以第3幀數(shù)據(jù)單元data2為例,當(dāng)控制信號中的ctrlin[1:0]的值為“2'b01”,則表示計算第3幀數(shù)據(jù)單元data2對應(yīng)位置的第一輸出結(jié)果所需要的第1幀數(shù)據(jù)單元data0至第2=(3-1)幀數(shù)據(jù)單元data1實際有效性情況為:第2幀數(shù)據(jù)單元data1有效“0”,第1幀數(shù)據(jù)單元data0無效“1”,其對應(yīng)的第一計算函數(shù)為c127_0,輸入數(shù)據(jù)為32'hffff_ffff,即通過第一計算函數(shù)為c127_0,以輸入數(shù)據(jù)32'hffff_ffff作為輸入值計算第3幀數(shù)據(jù)單元data2的第一輸出結(jié)果c_out2。另外計算第2幀數(shù)據(jù)單元及其后續(xù)的數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果原理與計算所述第3幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果的原理基本相同,具體參見圖3,在此不再贅述。
步驟s30、針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。
本發(fā)明中所述步驟s20與所述步驟s30同步進(jìn)行。
本實施例中,所述本實施例中在計算每組中的每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果之前需要為每組中的每幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù)。即在本步驟s30之前還包括如下處理:為每一組數(shù)據(jù)單元中的第1幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù);針對每一組數(shù)據(jù)單元中的第j幀數(shù)據(jù)單元,每組中數(shù)據(jù)單元總幀數(shù)≥j≥2,計算第1幀至第(j-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第二計算函數(shù);確定每一組中每一幀數(shù)據(jù)單元相應(yīng)的第二計算函數(shù)的輸入數(shù)據(jù)。所述步驟s30針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效情況,計算該組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果具體包括:針對每一組的第1幀數(shù)據(jù)單元,通過相應(yīng)的第二計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算本組中第1幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;針對每一組中第j幀數(shù)據(jù)單元,根據(jù)本組中第1幀至第(j-1)幀數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第二計算函數(shù),通過相應(yīng)的第二計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算本組中第j幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。參見圖4,圖4為圖1中步驟s30的具體數(shù)據(jù)信號和控制信號的走向示意圖。圖4中涉及的數(shù)據(jù)信息與圖3中所述的數(shù)據(jù)信息一致?,F(xiàn)結(jié)合圖4計算第一組中第3幀(data2)數(shù)據(jù)單元的第二輸出結(jié)果為例,對本步驟s30進(jìn)行進(jìn)一步的描述。第一組中第1幀(data0)至第2幀(data1)數(shù)據(jù)單元的有效性情況的可能組合包括:第2幀無效“1”;第2幀有效“0”、第1幀無效“1”;其他有效性情況。第2幀無效“1”,對應(yīng)配置的第二計算函數(shù)為d63_0,輸入數(shù)據(jù)為(data2);第2幀有效“0”、第1幀無效“1”,對應(yīng)配置的第二計算函數(shù)為d63_0^d127_64,其中d63_0的輸入數(shù)據(jù)為data2;d127_64的輸入數(shù)據(jù)data1;其他有效性情況,對應(yīng)配置的第二計算函數(shù)為d63_0^d127_64^d191_128,其中d63_0的輸入數(shù)據(jù)為data2;d127_64的輸入數(shù)據(jù)為data1;d191_128的輸入數(shù)據(jù)為data0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[1:0]的值為“2'b01”,表示針對計算第3幀數(shù)據(jù)單元(data2)對應(yīng)位置的第二輸出結(jié)果,第2幀數(shù)據(jù)單元data1有效“0”、第1幀數(shù)據(jù)單元無效“1”,選擇采用d63_0^d127_64作為計算第3幀數(shù)據(jù)單元(data2)對應(yīng)位置的第二輸出結(jié)果的第二計算函數(shù),其中d63_0的輸入數(shù)據(jù)為data2,d127_64的輸入數(shù)據(jù)為data1。本組中計算其他幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果原理一致, 同時計算其他組的數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果與第1組原理一致,在此不再贅述。另外本發(fā)明中每一組的數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的計算過程為同步進(jìn)行,如此設(shè)計大大地縮短了所有數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的計算時間,提高第二輸出結(jié)果的計算頻率,減少了資源的使用。
步驟s40、根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果。
本實施例中,在本步驟s40之前還包括如下處理:針對以第f組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第f+1組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的情況,確定所述第f組最后一幀數(shù)據(jù)單元至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;為每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的每一種組合配置一個相應(yīng)的第三計算函數(shù),確定每個第三計算函數(shù)的輸入數(shù)據(jù)。所述步驟s40根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該最后一幀數(shù)據(jù)單元至(m/n-1)幀數(shù)據(jù)單元的有效情況,計算出該組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果具體包括如下處理:確定當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元w;若該數(shù)據(jù)單元為第f+1組中第1幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元中的任何一幀數(shù)據(jù)單元,則根據(jù)第f組最后一幀數(shù)據(jù)單元至當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第三計算函數(shù);通過相應(yīng)的第三計算函數(shù)以所述輸入數(shù)據(jù)作為輸入值,計算所述數(shù)據(jù)單元w對應(yīng)位置的第三輸出結(jié)果。
參見圖5,圖5為圖1中步驟s40的具體數(shù)據(jù)信號和控制信號走向示意圖。圖5中涉及的數(shù)據(jù)信息為圖3中所述的數(shù)據(jù)信息一致。現(xiàn)以第1組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第2組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果為例對本步驟s40進(jìn)行進(jìn)一步的描述。首先確定所述第1組最后一幀數(shù)據(jù)單元(data7)至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;例如以第1組中最后一幀數(shù)據(jù)單元(data7)對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù), 針對計算第三組的第7幀數(shù)據(jù)單元(data22)的第三輸出結(jié)果,其中data7至data22的有效性情況的可能組合包括:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”;其他有效性情況。data7至data22的有效性情況的組合為:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”,對應(yīng)配置的第三計算函數(shù)為c959_0,第三計算函數(shù)c959_0的輸入數(shù)據(jù)為第1組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果d_out7。data7至data22的有效性情況為其他有效性情況,第三輸出結(jié)果直接取值為32'h0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[22:7]的值為“16'b1000000000000000”,表明data7至data22的有效性情況的組合為:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”,則通過第三計算函數(shù)c959_0以輸入數(shù)據(jù)d_out7作為輸入值計算出data22對應(yīng)位置的第三輸出結(jié)果。
參見圖6,圖6為圖1中步驟s40的另一具體數(shù)據(jù)信號和控制信號的走向示意圖。圖6中涉及的數(shù)據(jù)信息為圖3中所述的數(shù)據(jù)信息一致?,F(xiàn)結(jié)合圖6以第2組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第3組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果為例對本步驟s40進(jìn)行進(jìn)一步的描述。首先確定所述第2組最后一幀數(shù)據(jù)單元(data15)至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;例如以第2組中最后一幀數(shù)據(jù)單元(data15)對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),針對計算第三組的第7幀數(shù)據(jù)單元(data22)的第三輸出結(jié)果,其中data15至data22的有效性情況的可能組合包括:data22無效“1”、data21有效“0”、…data16有效“0”、data15有效“0”;其他有效性情況。data15至data22的有效性情況組合為:data22無效“1”、data21有效“0”、…data16有效“0”、data15有效“0”,對應(yīng)配置的第三計算函數(shù)為c447_0,第三計算函數(shù)c447_0的輸入數(shù)據(jù)為第2組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果d_out15。data15至data22的有效性情況組合為其他有效性情況,第三輸出結(jié)果直接取值為32'h0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[22:15]的值為“8'b10000000”,表明data15至data22的有效性情況組合為:data22無效“1”、data21有效 “0”、…data16有效“0”、data15有效“0”,則通過第三計算函數(shù)c447_0以輸入數(shù)據(jù)d_out15作為輸入值計算出data22的第三輸出結(jié)果。
從圖5和圖6可知第三組中每個數(shù)據(jù)單元的第三輸出結(jié)果包括兩個,即本發(fā)明中第l組的每個數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果個數(shù)為(l-1)個。
本發(fā)明中以不同組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),對應(yīng)組的下一組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的計算過程為同步進(jìn)行,如此設(shè)計大大地縮短了所有數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的計算時間,提高了第三輸出結(jié)果的計算頻率,減少了資源的使用。
步驟s50、將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc輸出值;所述輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,或者包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果。
本步驟s50對每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc值具體處理如下:當(dāng)某一幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值;當(dāng)某一幀數(shù)據(jù)單元計算出的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值。其中不同組中的數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果個數(shù)不同,第l組的數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果為(l-1)個。
現(xiàn)以第一組的第1幀數(shù)據(jù)單元(data0)、第二組的第1幀數(shù)據(jù)單元(data8)、第三組的第1幀數(shù)據(jù)單元(data16)為例對本步驟s50進(jìn)行舉例式說明,由于第一組的第1幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果只包括第一輸出結(jié)果c_out0、第二輸出結(jié)果d_out0,則對該c_out0與d_out0進(jìn)行異或計算得到該第1幀數(shù)據(jù)單元(data0)的crc值。第二組的第1幀數(shù)據(jù)單元(data8)對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果c_out8、第二輸出結(jié)果d_out8、第三輸出結(jié)果c_d2_out8,則對該c_out8、d_out8、c_d2_out8進(jìn)行異或計算得到該第二組的第1幀數(shù)據(jù)單元(data8)的crc值。第三組的第1幀數(shù)據(jù)單元(data16)對應(yīng)位置的輸出結(jié)果包括第一輸出 結(jié)果c_out16、第二輸出結(jié)果d_out16、第三輸出結(jié)果c_d2_out16和c_d1_out16,則對該c_out16、d_out16、c_d2_out16、c_d1_out16進(jìn)行異或計算得到該第三組的第1幀數(shù)據(jù)單元(data16)的crc值。
步驟s60、定義所述數(shù)據(jù)信息中最后一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元對應(yīng)的crc輸出值為所述數(shù)據(jù)信息的crc值。
本實施例中,當(dāng)所述數(shù)據(jù)信息為待發(fā)送類型,所述crc值用于嵌入所述數(shù)據(jù)信息,與所述數(shù)據(jù)信息一并發(fā)送至接收端,以使數(shù)據(jù)接收端根據(jù)自身生成的第一crc值與所述crc值的比對結(jié)果,判斷所接收的數(shù)據(jù)信息是否出錯;當(dāng)所述數(shù)據(jù)信息為已接收類型,所述crc值用于與所述數(shù)據(jù)信息中嵌入的第二crc值進(jìn)行大小比對,以使數(shù)據(jù)接收端根據(jù)比對結(jié)果判斷所述數(shù)據(jù)信息是否出錯。
以上實施例所提供的循環(huán)冗余效驗碼的生成方法,通過根據(jù)數(shù)據(jù)信息的比特數(shù)m,將所述數(shù)據(jù)信息劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組;根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;在計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果的同時,同步執(zhí)行針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的操作;然后根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果;將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算的方式,得到每幀數(shù)據(jù)單元對應(yīng)的crc值,大大地縮短了每幀數(shù)據(jù)單元對應(yīng)位置的crc值的計算時間,提高了crc值的計算頻率,降低了芯片計算crc值所占的資源和功耗。
本發(fā)明進(jìn)一步提供一種循環(huán)冗余效驗碼的生成裝置,參照圖7,圖7為本發(fā)明的循環(huán)冗余效驗碼的生成裝置一實施例的功能模塊示意圖。在一實施例中,該循環(huán)冗余效驗碼的生成裝置100包括:劃分模塊110、第一輸出結(jié)果計算模塊120、第二輸出結(jié)果計算模塊130、第三輸出結(jié)果計算模塊140、crc值計算模塊150、定義模塊160。其中,所述劃分模塊110,用于獲取數(shù)據(jù)信 息,根據(jù)所述數(shù)據(jù)信息中每一級數(shù)據(jù)的比特數(shù)m,將所述每一級數(shù)據(jù)劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組。所述第一輸出結(jié)果計算模塊120,用于針對每一級數(shù)據(jù),根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。所述第二輸出結(jié)果計算模塊130,用于針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。所述第三輸出結(jié)果計算模塊140,用于根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果。所述crc值計算模塊150,用于將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算,得到每幀數(shù)據(jù)單元對應(yīng)的crc輸出值。所述定義模塊160,用于定義所述數(shù)據(jù)信息中最后一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元對應(yīng)的crc輸出值為所述數(shù)據(jù)信息的crc值;所述第一輸出結(jié)果計算模塊與所述第二輸出結(jié)果計算模塊同步執(zhí)行相關(guān)操作。。
本實施例中,當(dāng)所述數(shù)據(jù)信息為待發(fā)送類型,所述crc值用于嵌入所述數(shù)據(jù)信息,與所述數(shù)據(jù)信息一并發(fā)送至接收端,以使數(shù)據(jù)接收端根據(jù)自身生成的第一crc值與所述crc值的比對結(jié)果,判斷所接收的數(shù)據(jù)信息是否出錯;當(dāng)所述數(shù)據(jù)信息為已接收類型,所述crc值用于與所述數(shù)據(jù)信息中嵌入的第二crc值進(jìn)行大小比對,以使數(shù)據(jù)接收端根據(jù)比對結(jié)果判斷所述數(shù)據(jù)信息是否出錯。
上述循環(huán)冗余效驗碼的生成裝置100實施例中所述輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,或者包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果。其中第1組的每個數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果只包括第一輸出結(jié)果、第二輸出結(jié)果。只有第2組及其后續(xù)組的每個數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果包括有第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果。另外本發(fā)明中所述q組中的每組中數(shù)據(jù)單元幀數(shù)可以相同也可以不同,本實施例優(yōu)選為相同。
本實施例中在計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果之前需要為每幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù)。參見圖8,圖8為本發(fā)明的循環(huán)冗余效驗碼的生成裝置另一實施例的功能模塊示意圖。本實施例中所述循環(huán)冗余效 驗碼的生成裝置100還包括:第一計算函數(shù)配置模塊170。所述第一計算函數(shù)配置模塊170,用于為第1幀數(shù)據(jù)單元配置相應(yīng)的第一計算函數(shù);以及針對第i幀數(shù)據(jù)單元,i為自然數(shù),且m/n≥i≥2,確定第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第一計算函數(shù)。本發(fā)明中每幀數(shù)據(jù)單元可能是有效的也可能是無效的,每幀數(shù)據(jù)單元的有效性情況包括兩種:一種是該幀數(shù)據(jù)單元有效,另一種是該幀數(shù)據(jù)單元無效。當(dāng)i為大于等于3的自然數(shù)時,則第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合包括多種。本發(fā)明中可以“0”作為有效標(biāo)識、“1”作為無效標(biāo)識;假設(shè)i=3,則第1幀至第(i-1)幀數(shù)據(jù)單元包括:第1幀數(shù)據(jù)單元和第2幀數(shù)據(jù)單元,其中第1幀數(shù)據(jù)單元的有效性情況為有效“0”或無效“1”;第2幀數(shù)據(jù)單元的有效性情況為有效“0”或無效“1”。因此第1、2幀數(shù)據(jù)單元的有效性情況可能的組合包括以下四種:第1幀數(shù)據(jù)單元有效“0”、第2幀數(shù)據(jù)單元有效“0”;第1幀數(shù)據(jù)單元有效“0”、第2幀數(shù)據(jù)單元無效“1”;第1幀數(shù)據(jù)單元有效“0”;第2幀數(shù)據(jù)單元無效“1”;第1幀數(shù)據(jù)單元無效“1”;第2幀數(shù)據(jù)單元無效“1”。
參見圖9,圖9為圖8中第一輸出結(jié)果計算模塊的具體細(xì)化功能模塊示意圖。所述第一輸出結(jié)果計算模塊120包括:輸入數(shù)據(jù)確定單元121和第一輸出結(jié)果計算單元122。其中所述輸入數(shù)據(jù)確定單元121,用于定義前一級數(shù)據(jù)中最后一幀數(shù)據(jù)單元所對應(yīng)的crc輸出值為當(dāng)前級的crc輸入值;根據(jù)每幀所述數(shù)據(jù)單元的有效性情況,為當(dāng)前級數(shù)據(jù)中每個幀數(shù)據(jù)單元分配相應(yīng)的第一計算函數(shù)的輸入數(shù)據(jù)。所述第一輸出結(jié)果計算單元122,用于針對第1幀數(shù)據(jù)單元,通過相應(yīng)的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值,計算所述第1幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;以及針對第i幀數(shù)據(jù)單元,根據(jù)第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況,查找相應(yīng)的第一計算函數(shù),根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第一計算函數(shù),計算所述第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。
上述實施例中每幀所述數(shù)據(jù)單元的有效性情況包括兩種:有效、無效,其中可以“0”作為有效標(biāo)識、“1”作為無效標(biāo)識。
參見圖3,圖3以比特數(shù)m為1536的數(shù)據(jù)信息為例,將數(shù)據(jù)信息劃分為1536/64=24幀數(shù)據(jù)單元,每幀數(shù)據(jù)單元的比特位寬為64,將24幀數(shù)據(jù)單元劃分為幀數(shù)相同的三組:第一組包括第1幀數(shù)據(jù)單元data0至第8幀數(shù)據(jù)單元 data7;第二組包括第9幀數(shù)據(jù)單元data8至第16幀數(shù)據(jù)單元data15;第三組包括第17幀數(shù)據(jù)單元data16至第24幀數(shù)據(jù)單元data23。首先判斷控制信號中前一級數(shù)據(jù)的最后一幀數(shù)據(jù)單元的有效性信號“前一級ctrlin[23]的值為“0”還是“1”,若為“0”則pre_crc=crc輸入值;若為“1”則pre_crc=32‘hffffffff;并將該pre_crc作為輸入數(shù)據(jù)供每個第一計算函數(shù)選擇。對于第1幀數(shù)據(jù)單元data0直接配置第一計算函數(shù)為c63_0,并選擇確定pre_crc作為c63_0的輸入數(shù)據(jù)。針對第i(i≥2)幀數(shù)據(jù)單元,預(yù)先確定第1幀至第(i-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第一計算函數(shù)。以第3幀數(shù)據(jù)單元data2為例,第2幀數(shù)據(jù)單元data1無效“1”,配置第一計算函數(shù)為c63_0,選擇確定32'hffff_ffff作為第一計算函數(shù)c63_0的輸入數(shù)據(jù)。第2幀數(shù)據(jù)單元data1有效“0”,第1幀數(shù)據(jù)單元data0無效“1”,配置第一計算函數(shù)為c127_0,選擇確定32'hffff_ffff作為第一計算函數(shù)c127_0的輸入數(shù)據(jù)。其他有效性情況下,配置第一計算函數(shù)為c191_0,選擇確定pre_crc作為第一計算函數(shù)c191_0的輸入數(shù)據(jù)。而在實際計算過程中輸入的控制信號ctrlin[23:0]包含第1幀數(shù)據(jù)單元data0至第24幀數(shù)據(jù)單元data23的實際有效性標(biāo)識。第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況有且只有一種,首先根據(jù)控制信號ctrlin[23:0]查找第1幀至第(i-1)幀數(shù)據(jù)單元實際有效性情況組合屬于哪何種組合,然后查找該組合對應(yīng)的第一計算函數(shù),再通過所查找到的第一計算函數(shù)以相應(yīng)的輸入數(shù)據(jù)作為輸入值計算該第i幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果。以第3幀數(shù)據(jù)單元data2為例,當(dāng)控制信號ctrlin[1:0]的值為“2'b01”,則表示計算第3幀數(shù)據(jù)單元data2對應(yīng)位置的第一輸出結(jié)果所需要的第1幀數(shù)據(jù)單元data0至第2=(3-1)幀數(shù)據(jù)單元data1實際有效性情況為:第2幀數(shù)據(jù)單元data1有效“0”,第1幀數(shù)據(jù)單元data0無效“1”,其對應(yīng)的第一計算函數(shù)為c127_0,輸入數(shù)據(jù)為32'hffff_ffff,即通過第一計算函數(shù)為c127_0,以輸入數(shù)據(jù)32'hffff_ffff作為輸入值計算第3幀數(shù)據(jù)單元data2的第一輸出結(jié)果c_out2。另外計算第2幀數(shù)據(jù)單元及其后續(xù)的數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果原理與計算所述第3幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果的原理基本相同,具體參見圖3,在此不再贅述。
上述任何一個實施例中在計算每組中的每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果之前需要為每組中的每幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù)。參見圖10,圖10為本發(fā)明的循環(huán)冗余效驗碼的生成裝置又一實施例的功能模塊示意圖。本實施例中所述循環(huán)冗余效驗碼的生成裝置100還包括:第二計算函數(shù)配置模塊180和輸入數(shù)據(jù)確定模塊190。所述第二計算函數(shù)配置模塊180,用于為每一組數(shù)據(jù)單元中的第1幀數(shù)據(jù)單元配置相應(yīng)的第二計算函數(shù);以及針對每一組數(shù)據(jù)單元中的第j幀數(shù)據(jù)單元,每組中數(shù)據(jù)單元總幀數(shù)≥j≥2,計算第1幀至第(j-1)幀數(shù)據(jù)單元的有效性情況的可能組合,為每一種組合配置一個相應(yīng)的第二計算函數(shù)。所述輸入數(shù)據(jù)確定模塊190,用于確定每一組中每一幀數(shù)據(jù)單元相應(yīng)的第二計算函數(shù)的輸入數(shù)據(jù)。上述循環(huán)冗余效驗碼的生成裝置100實施例中所述第二輸出結(jié)果計算模塊130,具體用于針對每一組的第1幀數(shù)據(jù)單元,根據(jù)相應(yīng)的輸入數(shù)據(jù)通過相應(yīng)的第二計算函數(shù),計算本組中第1幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果;以及針對每一組中第j幀數(shù)據(jù)單元,根據(jù)本組中第1幀至第(j-1)幀數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第二計算函數(shù),根據(jù)相應(yīng)的輸入結(jié)果通過相應(yīng)的第二計算函數(shù),計算本組中第j幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果。參見圖4,圖4為圖2中步驟s30的具體數(shù)據(jù)信息和控制信號的走向示意圖。圖4中涉及的數(shù)據(jù)信息與圖3中所述的數(shù)據(jù)信息一致。現(xiàn)結(jié)合圖4計算第一組中第3幀(data2)數(shù)據(jù)單元的第二輸出結(jié)果為例對所述第二輸出結(jié)果計算模塊130針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,計算該組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的過程進(jìn)行進(jìn)一步的描述。第一組中第1幀(data0)至第2幀(data1)數(shù)據(jù)單元的有效性情況的可能組合包括:第2幀無效“1”;第2幀有效“0”、第1幀無效“1”;其他有效性情況。第2幀無效“1”,對應(yīng)配置的第二計算函數(shù)為d63_0,輸入數(shù)據(jù)為(data2);第2幀有效“0”、第1幀無效“1”,對應(yīng)配置的第二計算函數(shù)為d63_0^d127_64,其中d63_0的輸入數(shù)據(jù)為data2;d127_64的輸入數(shù)據(jù)data1;其他有效性情況,對應(yīng)配置的第二計算函數(shù)為d63_0^d127_64^d191_128,其中d63_0的輸入數(shù)據(jù)為data2;d127_64的輸入數(shù)據(jù)為data1;d191_128的輸入數(shù)據(jù)為data0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[1:0]的值為“2'b01”,表示針對計算第3幀數(shù)據(jù)單元(data2)對應(yīng)位置的第二輸出結(jié)果, 第2幀數(shù)據(jù)單元data1有效“0”、第1幀數(shù)據(jù)單元無效“1”,選擇采用d63_0^d127_64作為計算第3幀數(shù)據(jù)單元(data2)對應(yīng)位置的第二輸出結(jié)果的第二計算函數(shù),其中d63_0的輸入數(shù)據(jù)為data2,d127_64的輸入數(shù)據(jù)為data1。本組中計算其他幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果原理一致,同時計算其他組的數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果與第1組原理一致,在此不再贅述。另外本發(fā)明中每一組的數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的計算過程為同步進(jìn)行,如此設(shè)計大大地縮短了所有數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的計算時間,提高第二輸出結(jié)果的計算頻率,減少了資源的使用。
參見圖11,圖11為本發(fā)明的循環(huán)冗余效驗碼的生成裝置又一實施例的功能模塊示意圖。上述任何一個實施例中所述循環(huán)冗余效驗碼的生成裝置100還包括:確定模塊201和第三計算函數(shù)配置模塊101。所述確定模塊201,用于針對以第f組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第f+1組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的情況,確定所述第f組最后一幀數(shù)據(jù)單元至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1。所述第三計算函數(shù)配置模塊101,用于為每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的每一種組合配置一個相應(yīng)的第三計算函數(shù),確定每個第三計算函數(shù)的輸入數(shù)據(jù)。
參見圖12,圖12為圖11中第三輸出結(jié)果計算模塊的具體細(xì)化功能模塊示意圖。所述第三輸出結(jié)果計算模塊140包括:確定單元141、第三計算函數(shù)查找單元142、第三輸出結(jié)果計算單元143。所述確定單元141,用于確定當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元w。所述第三計算函數(shù)查找單元142,用于若該數(shù)據(jù)單元為第f+1組中第1幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元中的任何一幀數(shù)據(jù)單元,根據(jù)第f組最后一幀數(shù)據(jù)單元至當(dāng)前需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的實際有效性情況,查找相應(yīng)的第三計算函數(shù)。所述第三輸出結(jié)果計算單元143,用于通過相應(yīng)的第三計算函數(shù)以所述輸入數(shù)據(jù)作為輸入值,計算所述數(shù)據(jù)單元w對應(yīng)位置的第三輸出結(jié)果。
參見圖5,圖5中涉及的數(shù)據(jù)信息為圖3中所述的數(shù)據(jù)信息一致。現(xiàn)結(jié)合圖5以第1組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第2組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果為例對第三輸 出結(jié)果計算模塊140根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,計算出該組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的具體過程進(jìn)行進(jìn)一步的描述。首先確定所述第1組最后一幀數(shù)據(jù)單元(data7)至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;例如以第1組中最后一幀數(shù)據(jù)單元(data7)對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),針對計算第三組的第7幀數(shù)據(jù)單元(data22)的第三輸出結(jié)果,其中data7至data22的有效性情況的可能組合包括:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”;其他有效性情況。data7至data22的有效性情況的組合為:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”,對應(yīng)配置的第三計算函數(shù)為c959_0,第三計算函數(shù)c959_0的輸入數(shù)據(jù)為第1組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果d_out7。data7至data22的有效性情況為其他有效性情況,第三輸出結(jié)果直接取值為32'h0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[22:7]的值為“16'b1000000000000000”,表明data7至data22的有效性情況的組合為:data22無效“1”、data21有效“0”、…data9有效“0”、data8有效“0”、data7有效“0”,則通過第三計算函數(shù)c959_0以輸入數(shù)據(jù)d_out7作為輸入值計算出data22對應(yīng)位置的第三輸出結(jié)果。
參見圖6,圖6為圖2中步驟s40的另一具體數(shù)據(jù)信息和控制信號的走向示意圖。圖6中涉及的數(shù)據(jù)信息為圖3中所述的數(shù)據(jù)信息一致?,F(xiàn)結(jié)合圖6以第2組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),計算第3組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果為例,對第三輸出結(jié)果計算模塊140根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,計算出該組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的具體過程進(jìn)行進(jìn)一步的描述。首先確定所述第2組最后一幀數(shù)據(jù)單元(data15)至每個需要計算對應(yīng)位置的第三輸出結(jié)果的數(shù)據(jù)單元的有效性情況的可能組合,(q-1)≥f≥1;例如以第2組中最后一幀數(shù)據(jù)單元(data15)對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),針對計算第三組的第7 幀數(shù)據(jù)單元(data22)的第三輸出結(jié)果,其中data15至data22的有效性情況的可能組合包括:data22無效“1”、data21有效“0”、…data16有效“0”、data15有效“0”,其他有效性情況。data15至data22的有效性情況組合為:data22無效“1”、data21有效“0”、…data16有效“0”、data15有效“0”,對應(yīng)配置的第三計算函數(shù)為c447_0,第三計算函數(shù)c447_0的輸入數(shù)據(jù)為第2組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果d_out15。data15至data22的有效性情況組合為其他有效性情況,第三輸出結(jié)果直接取值為32'h0。在實際計算過程中當(dāng)輸入的控制信號ctrlin[22:15]的值為“8'b10000000”,表明data16至data22的有效性情況組合為:data22無效“1”、data21有效“0”、…data16有效“0”、data15有效“0”,則通過第三計算函數(shù)c447_0以輸入數(shù)據(jù)d_out15作為輸入值計算出data22的第三輸出結(jié)果。
從圖5和圖6可知第三組中每個數(shù)據(jù)單元的第三輸出結(jié)果包括兩個,即本發(fā)明中第l組的每個數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果個數(shù)為(l-1)個。
本發(fā)明中以不同組中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果作為輸入數(shù)據(jù),對應(yīng)組的下一組至第q組中每幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的計算過程為同步進(jìn)行,如此設(shè)計大大地縮短了所有數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果的計算時間,提高了第三輸出結(jié)果的計算頻率,減少了資源的使用。
上述循環(huán)冗余效驗碼的生成裝置任何一個實施例中,所述crc值計算模塊150,具體用于當(dāng)某一幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果進(jìn)行異或計算,得出該幀數(shù)據(jù)單元對應(yīng)位置的crc值;以及當(dāng)某一幀數(shù)據(jù)單元計算出的輸出結(jié)果包括第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果,則通過對所述第一輸出結(jié)果、第二輸出結(jié)果、第三輸出結(jié)果進(jìn)行異或計算,得出幀數(shù)據(jù)單元對應(yīng)位置的crc值。
現(xiàn)以第一組的第1幀數(shù)據(jù)單元(data0)、第二組的第1幀數(shù)據(jù)單元(data8)第三組的第1幀數(shù)據(jù)單元(data16)為例對本步驟s50進(jìn)行舉例式說明,由于第一組的第1幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果只包括第一輸出 結(jié)果c_out0、第二輸出結(jié)果d_out0,則對該c_out0與d_out0進(jìn)行異或計算得到該第1幀數(shù)據(jù)單元(data0)的crc值。第二組的第1幀數(shù)據(jù)單元(data8)對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果c_out8、第二輸出結(jié)果d_out8、第三輸出結(jié)果c_d2_out8,則對該c_out8、d_out8、c_d2_out8進(jìn)行異或計算得到該第二組的第1幀數(shù)據(jù)單元(data8)的crc值。第三組的第1幀數(shù)據(jù)單元(data16)對應(yīng)位置的輸出結(jié)果包括第一輸出結(jié)果c_out16、第二輸出結(jié)果d_out16、第三輸出結(jié)果c_d2_out16和c_d1_out16,則對該c_out16、d_out16、c_d2_out16、c_d1_out16進(jìn)行異或計算得到該第三組的第1幀數(shù)據(jù)單元(data16)的crc值。
以上實施例所提供的循環(huán)冗余效驗碼的生成裝置100,通過根據(jù)數(shù)據(jù)信息的比特數(shù)m,將所述數(shù)據(jù)信息劃分為m/n幀比特位寬為n的數(shù)據(jù)單元,將所述m/n幀數(shù)據(jù)單元劃分為q組;根據(jù)crc輸入值,以及每幀所述數(shù)據(jù)單元的有效性情況,計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果;在計算每幀數(shù)據(jù)單元對應(yīng)位置的第一輸出結(jié)果的同時,同步執(zhí)行針對每一組數(shù)據(jù)單元,根據(jù)該組中所有數(shù)據(jù)單元的數(shù)據(jù)內(nèi)容,以及該組中每幀數(shù)據(jù)單元的有效性情況,同步計算每組中每幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果的操作;然后根據(jù)每一組數(shù)據(jù)單元中最后一幀數(shù)據(jù)單元對應(yīng)位置的第二輸出結(jié)果,以及該組中最后一幀數(shù)據(jù)單元至第(m/n-1)幀數(shù)據(jù)單元的有效性情況,同步計算出每組的下一組所有幀數(shù)據(jù)單元至第m/n幀數(shù)據(jù)單元對應(yīng)位置的第三輸出結(jié)果;將每幀數(shù)據(jù)單元對應(yīng)位置的輸出結(jié)果進(jìn)行異或計算的方式,得到每幀數(shù)據(jù)單元對應(yīng)的crc值,大大地縮短了每幀數(shù)據(jù)單元對應(yīng)位置的crc值的計算時間,提高了crc值的計算頻率,降低了芯片計算crc值所占的資源和功耗。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。