色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

聊一聊CRC算法的硬件電路實現:串行電路和并行電路

8ECz_icstudy ? 來源:lp ? 2019-03-26 10:56 ? 次閱讀

這一篇文章聊一聊CRC算法的硬件電路實現:串行電路和并行電路。

下面的內容還是IC君的朋友文武寫的,IC君稍微做了優化排版和少量的編輯工作提升大家的閱讀體驗。

1

CRC硬件電路的實現很簡單,下圖給出教科書上任意生成多項式G(X)=gnXn+gn-1Xn-1+···+g1X+g0的電路結構:

為什么從右邊輸入data?

因為CRC是除余數,所以從右邊輸入數據,相當于把信息位data先左移位。

以簡單的CRC8舉例,多項式G(x)=X8 +X7 +X6 +X4 +X2 +1 的電路示意圖如下:

對應的Verilog code代碼如下:

上面的Verilog code上用了LFSR這種變量聲明,有沒有感到奇怪?

LFSR(線性移位寄存器)和CRC的算法很像的,有興趣的可去看看LFSR的相關知識。

一位串行輸入的CRC電路實現方法很簡單,每周期的組合邏輯鏈路簡單延時短。它的缺點是輸入位寬只有一位,所以一個clock周期只能算一位,如果是64bit的信息位就要64個clock周期。如果需要傳輸的位數比較多,會對系統的性能產生比較大的影響。

假設要把輸入位寬變成8位(byte)輸入,電路將是什么樣的呢?并行的CRC其實也簡單,可以用提前抽取的概念來實現。

用下圖來解釋一下,CRCM有M個校驗位就是有M個寄存器,現在把輸入變成N位。

提前抽取就是通過關系函數得到下一個clock寄存器的輸入nxt_crc[M-1:0]:

關系函數CN如下:

nxt_crc=CN(crc_out,data),

crc_out是前一個clock的寄存器輸出;

data是當前的輸入數據;

函數CN就是一個組合邏輯網絡,也可叫做所謂的scramble。怎樣得出這個CN呢?如果數字信號處理學的好,可以去推導一下。網上有各種算法,很多很多。下面介紹一種方法。

2

以CRC8,G(x)=X8 +X7 +X6 +X4 +X2 +1為例子產生一個CRC8_8的CN,下面直接給出CRC8_8的Verilog code,后面講怎么得到這個CN。

上面的Verilog code 的代碼是由下面的矩陣得出的

把N_in作為數據,M_in作為CRC的上一個clock的值就有:

LFSR_S[0] =DATA[0]^DATA[1]^DATA[3]^DATA[6]^DATA[7]^LFSR_N[0]^LFSR_N[1]^LFSR_N[3]^LFSR_N[6]^LFSR_N[7];

怎么獲得這個矩陣呢?

CRCM_N(M_in,N_in)= CRCM_N(M_in,0)+ CRCM_N(0,N_in)

可以用crc8_parallel(N_in):輸入data_in 的是8‘b00000001,得到crc8的值,就是H1的第一行8’hd5;輸入data_in 的是8‘b00000010,得到crc8的值,就是H1的第二行8’h7f;以此類推。計算出上面矩陣H1=[]NxM。計算H2=[]MxM的方法和H1是一樣的。

有上面的矩陣就有CN函數。有了CN就可很容易得出CRC硬件電路了。上面的方法其實可寫成一個腳本,實現任意多項式任意位寬輸入的并行CRC硬件電路。www.OutputLogic.com 有自動生成器,不過大家最好自己寫一寫。提醒:上面有LSB和MSB誰先輸入到并行CRC里面去的問題?琢磨一下吧!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120427
  • CRC算法
    +關注

    關注

    0

    文章

    15

    瀏覽量

    8864
  • 串行電路
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6346

原文標題:CRC算法的硬件電路實現:串行電路和并行電路

文章出處:【微信號:icstudy,微信公眾號:跟IC君一起學習集成電路】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    從焊接角度,設計PCB的5個建議

    完成電路板,需要PCB工程師、焊接工藝、焊接工人等諸多環節的把控。今天通過定位孔、MARK點、留邊、焊盤過孔、輔助工具這五個方面從畫板的角度跟大家
    的頭像 發表于 02-06 10:31 ?1999次閱讀
    從焊接角度<b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>,設計PCB的5個建議

    stm32的低功耗調試

    前言:物聯網的大部分設備都是電池供電的,設備本身低功耗對延長設備使用至關重要,今天就實際調試總結stm32的低功耗調試。1、stm32在運行狀態下的功耗上圖截圖自stm32l15x手冊
    發表于 08-11 08:18

    平衡小車代碼的實現

    前言今天代碼,只有直立功能的代碼。代碼總體思路給定個目標值,單片機通過IIC和mpu6050通信,得知數據后,根據角度環計算出個P
    發表于 01-14 08:29

    串行 并行環路報警電路

    串行 并行環路報警電路 兩個SCR分別與兩個傳感器環路相連
    的頭像 發表于 09-04 11:57 ?1797次閱讀
    <b class='flag-5'>串行</b> <b class='flag-5'>并行</b>環路報警<b class='flag-5'>電路</b>

    Xmodem協議中CRC算法的FPAG實現

    基于解決Xmodem協議中CRC校驗的目的,以經典的LFSR硬件電路為基礎,采用了按字節并行運算CRC校驗碼,以及多字節
    發表于 05-07 15:29 ?47次下載
    Xmodem協議中<b class='flag-5'>CRC</b><b class='flag-5'>算法</b>的FPAG<b class='flag-5'>實現</b>

    基于SATAⅡ協議的CRC32并行算法的研究

    在介紹CRC校驗原理和傳統CRC32串行比特算法的基礎上,由串行比特型算法推導出
    發表于 11-07 16:19 ?54次下載
    基于SATAⅡ協議的<b class='flag-5'>CRC</b>32<b class='flag-5'>并行算法</b>的研究

    種基于矩陣的并行CRC校驗算法

    串行編碼原理得到8 位并行數據的CRC 校驗矩陣,之后對矩陣進行迭代簡化,得到32 位并行數據的參數矩陣,此參數矩陣作為該CRC
    發表于 10-30 16:39 ?3次下載
    <b class='flag-5'>一</b>種基于矩陣的<b class='flag-5'>并行</b><b class='flag-5'>CRC</b>校驗<b class='flag-5'>算法</b>

    基于FPGA的并行CRC算法的UART控制器

    基于串行異步收發器(UART)的通信中經常用到循環冗余校驗(CRC),常見的CRC校驗電路多為串行校驗,校驗所需時鐘周期較多,基于查找表或輸
    發表于 11-18 11:24 ?2066次閱讀
    基于FPGA的<b class='flag-5'>并行</b><b class='flag-5'>CRC</b><b class='flag-5'>算法</b>的UART控制器

    使用FPGA實現高速CRC并行算法的設計研究

    環冗余校驗碼作為種檢出概率高并且易于實現的檢錯碼,被廣泛應用于通信及測控領域。本文首先簡要介紹了循環冗余校驗的基本原理,然后從CRC串行實現
    發表于 03-23 15:44 ?13次下載
    使用FPGA<b class='flag-5'>實現</b>高速<b class='flag-5'>CRC</b><b class='flag-5'>并行算法</b>的設計研究

    并行CRC電路HDL代碼的快速生成

    CRC校驗的實現基于串行位移寄存器,如果要處理并行數據,需要對電路進行改進。本文介紹了
    發表于 03-28 09:29 ?16次下載
    <b class='flag-5'>并行</b><b class='flag-5'>CRC</b><b class='flag-5'>電路</b>HDL代碼的快速生成

    USB數據傳輸中CRC校驗碼的并行算法實現

    文章介紹了用于 USB 總線數據傳輸的CRC 校驗的原理和算法,并且采用并行電路實現 USB2.0 中的
    發表于 03-28 09:32 ?11次下載
    USB數據傳輸中<b class='flag-5'>CRC</b>校驗碼的<b class='flag-5'>并行算法</b><b class='flag-5'>實現</b>

    CRC校驗碼并行計算的FPGA實現

    用軟件實現 CRC 校驗碼計算很難滿足高速數據通信的要求 ,基于硬件實現方法中 ,有串行經典算法
    發表于 03-28 09:34 ?30次下載
    <b class='flag-5'>CRC</b>校驗碼<b class='flag-5'>并行</b>計算的FPGA<b class='flag-5'>實現</b>

    FPGA中的彩色轉灰度的算法

    大家好,又到了每日學習的時間了,今天我們來FPGA學習中可以遇到的算法,今天就
    的頭像 發表于 04-15 15:47 ?1962次閱讀

    并行CRC計算的通用算法及其實現

    摘要:本文從已提出的通用數學表達式出發,研究了并行循環冗余校驗(CRC)計算的新算法,該算法
    發表于 02-21 09:45 ?0次下載

    芯片設計的NDR是什么?

    今天突然想route相關的問題,講講NDR是什么,我也梳理總結下我對NDR的認識。
    的頭像 發表于 12-06 15:14 ?2088次閱讀
    主站蜘蛛池模板: 青草影院内射中出高潮-百度| chinesedaddy80老年人| 精品午夜国产福利观看| 99精品免费久久久久久久久日本| 同桌别揉我奶了嗯啊| 免费久久狼人香蕉网| 国产一区免费在线观看| 成人影片迅雷下载| 中文字幕不卡一区二区三区| 我不卡影院手机在线观看| 嗯 用力啊 嗯 c我 啊哈老师| 好男人好资源视频高清| 顶级少妇AAAAABBBBB片| 99久久精品久久久久久清纯| 一二三四高清中文版视频 | 久热人人综合人人九九精品视频| 国产ZZJJZZJJ视频全免费| 99久久婷婷国产麻豆精品电影| 亚洲男人天堂2018av| 无码人妻精品一区二区蜜桃色欲 | 国产成人无码视频一区二区三区 | 伊人久久大香线蕉无码麻豆| 鞋奴的视频VK| 少妇系列之白嫩人妻| 人人听力网mp3下载| 女人高潮特级毛片| 美女议员被泄裸照| 快播h动漫网站| 狼好色有你好看| 久久亚洲AV成人无码动态图| 九九热精品在线观看| 黑人巨茎vide抽搐| 精品国产乱码久久久久久免费| 好大好硬好湿再深一点网站| 韩国黄色影院| 黄色三级视频网站| 精品国产美女AV久久久久| 精品免费视在线视频观看| 精品午夜久久福利大片免费 | 欧美多毛的大隂道| 暖暖在线观看播放视频|