<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 在Virtex-5 FPGA芯片中使用CRC硬模塊

          在Virtex-5 FPGA芯片中使用CRC硬模塊

          作者: 時間:2010-07-01 來源:網絡 收藏

            剩余法

            實際上,校驗和經過反演后才附加到消息中。這就使接收器上算出的余數(超過m+r位)不為0。在這類情況下,接收器上得到的余數是一個固定值,稱為多項式的剩余值。

            做一點演算有助于更清楚地說明這一概念。

            假定%符號在下列表達式中表示模運算。

            對于未經反演附加校驗和的情況:
          (Mxr–R)xr%G=0

            在這種情況下,接收器會執(zhí)行與發(fā)射器一樣的移位運算。

            現在,考慮校驗和在發(fā)射器上經反演后附加到消息流的情況: (Mxr–Rc)xr% G
          其中,Rc表示經過反演的校驗和。

            還可以將其寫成:(Mxr– R +(xr-1+...+x+ 1)) xr% G

            一個位的反碼與其對1異或運算的結果相同。這里的+號表示模2算法中的加法(另請注意,在模2算法中,加法和減法運算相同)。

            在這種情況下,余數與以下表達式相同:(xr-1+...+x+1) xr% G

            對于給定的生成器多項式來說,此表達式的計算結果將是一個常數。

            最常用的 32生成器多項式是G(x) = x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

            該式在十六進制中是04C11DB7。

            與-32對應的常數剩余值在十六進制中是C704DD7B。對于給定的生成器多項式G來說,無論在輸入端提供何種數據樣式,剩余值仍為常數。

            硬件實現

            校驗和的計算是多項式除法過程。在硬件中實現該過程需要使用一個移位寄存器(亦稱CRC寄存器)。該移位寄存器的長度與生成器多項式的階數相同。

            CRC 計算過程如下:

          1.初始化CRC寄存器。
          2.持續(xù)獲取消息位,直到獲得所有消息位。如果CRC寄存器中的高階位是1,則向左移一位,并且將其結果與G進行異或運算。否則,僅向左移一位。

            對給定消息完成所有這些步驟后,CRC寄存器中剩 下的就是余數。


            可以用一種稱為線性反饋移位寄存器(LFSR)的電路執(zhí)行這些步驟。圖1所示為用CRC32多項式計算 CRC 的 LFSR 實現方法。請注意,異或門的布局取決于生成器多項式中項值為 1 的對應項的系數。圖中的編號方框各代表一個存儲元件(觸發(fā)器)。



          關鍵詞: FPGA Virtex Xilinx CRC

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();