CRC迴圈編碼的Verilog實現

2022-04-05 07:32:39 字數 840 閱讀 6875

迷茫了幾天,痛苦了幾天,今天終於把crc迴圈編碼的verilog**搞定了,也許是心情好轉的緣故吧,不管怎麼說,終究是做出來了,之前寫的**,也沒找出是什麼原因,不管輸入什麼,編碼輸出總是同一碼元,鬱悶~~今天重新寫了一遍,原理還是一樣,結果卻是意料之中的,不管了,以後有時間再找原因吧,現在把寫好的**分享一下,希望大家提出意見

verilog**如下:

module code_crc(clk,reset,data,out);

input clk,reset;

input[7:0] data;

output[15:0] out;

reg[15:0] out;

//變數宣告

reg[16:0] s;

integer i;

always@(posedge clk)

begin

if(!reset)

begin

s=17'b0;

out=16'b0;

endelse

begin

s=;begin

for(i=7;i>0;i=i-1)

begin

if(s[16]==0)              //若第一位為0,左移一位;

s=s<<1; 

else begin

s=s^17'b11000000000000101;/*若第一位為1,則與生成多項式進行異或操作;*/

s=s<<1;        //左移一位;

endend

out=s[15:0];               //s的後16位即為校驗位;

endend

endendmodule

迴圈冗餘校驗編碼(CRC校驗)

計算機資料通訊中,由於干擾等各種內外因素,資料出現差錯不可避免,在資料通訊中需要對資料進行差錯檢測。實現差錯檢測的基本原理是 傳送方在傳送資料的基礎上生產某些編碼,然後將校驗編碼附加在資料後面一起傳送,接收方在收到資料和校驗碼之後,用校驗碼對資料進行校驗,確認傳輸的資料是否正確。差錯檢測技術的核心是...

卷積編碼verilog實現

完成 2,1,7 編碼方式 多項式為 133,171 也可以完成 2,1,5 編碼方式多項式 23,35 的verilog實現 對應 中的注釋的位置。相應的解碼器也寫已寫完,後續。相關的卷積編碼的基礎知識請參看 timescale 1ns 1ps company engineer create da...

迴圈冗餘校驗CRC

網上搜到的內容不全面,維基百科講的比較好,原理很清楚傳送門 其實對於程式設計師來講,不用太在意它的數學原理,另外生成碼的選擇不是隨意的,這可能影響到校驗的效能。注意其中的加法不進製,減法不借位,類似是異或邏輯。關於怎樣產生crc,有這樣乙個演算法 下面為crc的計算過程 1 設定crc暫存器,並給其...