• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于verilog的CRC算法的實(shí)現(xiàn)

      2017-05-26 13:09洪向宇
      中國新通信 2017年7期
      關(guān)鍵詞:校驗(yàn)編碼算法

      洪向宇

      【摘要】 循環(huán)校驗(yàn)碼具有良好的誤碼檢測和抗干擾能力,廣泛應(yīng)用于通信系統(tǒng)。本文從CRC原理探究串行算法,利用matlab對CRC串行算法進(jìn)行仿真,利用Verilog語言實(shí)現(xiàn)CRC校驗(yàn)?zāi)K,并最終驗(yàn)證設(shè)計(jì)的正確性。

      【關(guān)鍵字】 循環(huán)校驗(yàn)碼 CRC

      一、引言

      循環(huán)校驗(yàn)碼(cyclic redundancy check, CRC)具有良好的誤碼檢測和抗干擾能力,可廣泛應(yīng)用于通信系統(tǒng)的編解碼技術(shù),提高通信系統(tǒng)的檢錯(cuò)能力。由于CRC為循化冗余檢驗(yàn)碼,因此CRC能夠檢出大部分突發(fā)長度錯(cuò)誤和所有奇數(shù)隨機(jī)錯(cuò)誤1。

      在通信系統(tǒng)中,CRC編碼模塊常常作為通信系統(tǒng)的一部分出現(xiàn)的,因此CRC編碼模塊可使用硬件描述語言進(jìn)行設(shè)計(jì)實(shí)現(xiàn),利用可編程邏輯器件實(shí)現(xiàn)CRC模塊,既滿足了模塊對校驗(yàn)時(shí)鐘及速度的需求,也能夠直接簡便的實(shí)現(xiàn)CRC模塊的硬件電路。本文基于Verilog語言,利用串行算法實(shí)現(xiàn)了16位校驗(yàn)的CRC模塊并利用matlab對算法進(jìn)行驗(yàn)證。

      二、CRC串行算法

      CRC校驗(yàn)碼依據(jù)線性編碼原理2。對于信源為n位的二進(jìn)制數(shù)據(jù)序列,經(jīng)過算法處理,即輸入信源與生成多項(xiàng)式進(jìn)行模二除法,所得余數(shù)生成m位校驗(yàn)碼。將m位校驗(yàn)碼放在信源序列的后面進(jìn)行數(shù)據(jù)傳輸,接收端以相同算法對接收數(shù)據(jù)進(jìn)行校驗(yàn)。收到信源信息,如未發(fā)生誤碼,則接收到的校驗(yàn)位應(yīng)能夠被生成多項(xiàng)式模二整除。算法公式可表示為,

      其中,xnD(x)為做n位移位運(yùn)算的信源序列,g(x)為生成多項(xiàng)式,P(x)|R(x)為模二除法的商和余數(shù)。

      三、CRC算法的FPGA實(shí)現(xiàn)

      由于并行插入16bit信源碼與串行的16bit信源碼序列是等效的,因此CRC串行與并行算法在電路級是等效的3。CRC算法中的模二除法可用硬件電路中的移位寄存器實(shí)現(xiàn)。

      利用matlab可對算法進(jìn)行仿真,其中g(shù)為生成多項(xiàng)式,input為48bit測試向量,因?yàn)楸疚氖褂昧薈RC16校驗(yàn),因此測試向量需在幀尾補(bǔ)足16個(gè)0,變?yōu)?4bit串行數(shù)據(jù)。運(yùn)行代碼,生成測試校驗(yàn)碼R。

      由于需對硬件電路進(jìn)行時(shí)序匹配,因此在verilog語言中分三個(gè)模塊實(shí)現(xiàn)CRC校驗(yàn),其中初始態(tài)idle對輸入進(jìn)行時(shí)序的匹配和對齊,shift狀態(tài)中設(shè)計(jì)移位寄存器,按照上述的算法實(shí)現(xiàn)移位計(jì)算,生成的校驗(yàn)位R(X)和din組成輸出,在信道中予以傳輸。

      移位寄存器的代碼如下所示。其中g(shù)_sequence為生成多項(xiàng)式。

      if shift_reg[15] <= shift_reg[14] ^ g_sequence[15];

      ……

      shift_reg[0] <= dout_ram ^ g_sequence[0];

      else shift_reg <= {shift_reg[14:0],dout_ram};

      值得注意的是,由于硬件電路的時(shí)序特點(diǎn),在開始計(jì)算后的71個(gè)時(shí)鐘周期可輸出64bit數(shù)據(jù),這是由于計(jì)算16位CRC碼需要64個(gè)時(shí)鐘周期,輸出匹配會(huì)延遲3個(gè)時(shí)鐘周期。

      利用modelsim對verilog代碼進(jìn)行仿真,如圖1所示,對比輸出的校驗(yàn)碼,為R=[1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0],與matlab代碼的輸出一致。

      四、仿真與驗(yàn)證

      一般的 CRC 校驗(yàn)碼生成器即可編碼又可解碼, 編碼用于對輸入數(shù)據(jù)計(jì)算 CRC 校驗(yàn)碼, 解碼用于驗(yàn)證接收到的數(shù)據(jù)是否正確, 其兩個(gè)過程對于CRC 校驗(yàn)碼生成器是一樣的4。

      利用modelsim對Verilog代碼進(jìn)行仿真,測試的48bit信源序列通過CRC校驗(yàn)?zāi)K輸出64bit序列,如圖2所示。

      將64bit數(shù)據(jù)導(dǎo)出,導(dǎo)入matlab CRC校驗(yàn)進(jìn)行驗(yàn)證,其中input為modelsim輸出的64bit序列。通過運(yùn)算得出一維0矩陣,有算法可知,本文設(shè)計(jì)的CRC校驗(yàn)?zāi)K能夠?qū)崿F(xiàn)誤碼校驗(yàn)功能。

      參 考 文 獻(xiàn)

      [1]現(xiàn)代通信原理 清華大學(xué)出版社

      [2] CRC - 16算法與 FPGA實(shí)現(xiàn),羅志聰 ,孫奇燕 四川兵工學(xué)報(bào) 35-5

      [3]基于Verilog的CRC并行實(shí)現(xiàn) 黃維超 劉橋 黃初華 微計(jì)算機(jī)信息 2009.25 10-3

      [4] CRC 校驗(yàn)碼并行計(jì)算的 FPGA 實(shí)現(xiàn) 張樹剛, 張遂南, 黃士坦 計(jì)算機(jī)技術(shù)與發(fā)展,2007 2 2

      猜你喜歡
      校驗(yàn)編碼算法
      住院病案首頁ICD編碼質(zhì)量在DRG付費(fèi)中的應(yīng)用
      使用Excel朗讀功能校驗(yàn)工作表中的數(shù)據(jù)
      電能表在線不停電校驗(yàn)技術(shù)
      Travellng thg World Full—time for Rree
      精通文件校驗(yàn)的“門道”
      多種方法快速校驗(yàn)文件
      高效視頻編碼幀內(nèi)快速深度決策算法
      學(xué)習(xí)算法的“三種境界”
      算法框圖的補(bǔ)全
      算法初步知識盤點(diǎn)
      开化县| 友谊县| 汾西县| 延边| 临清市| 礼泉县| 固始县| 广平县| 宜昌市| 长兴县| 吉木乃县| 满城县| 铜山县| 兴宁市| 涞水县| 普洱| 阳曲县| 榆中县| 开封市| 万源市| 渭南市| 盐山县| 庆阳市| 上思县| 扬州市| 珠海市| 灵山县| 兴城市| 金华市| 十堰市| 新密市| 和平县| 精河县| 任丘市| 茶陵县| 桦南县| 娱乐| 关岭| 仁怀市| 长泰县| 额济纳旗|