“VLSI 电路与系统”课程设计项目报告
姓名
朱健华
学号
200921030322
设计题目要求
设计一个 CRC 校验码发生电路与校验电路,电路可以通过
预置的方式将 n 阶(n
£
16)的生成函数置入从而构成 n 阶
CRC 校验码发生电路和校验电路。
设计工具及版本
Quartus II V7.2
设计原理及结构方案
一、CRC 校验码原理简介
1.1、CRC 基本思想:
CRC(Cyclic Redundancy Check)循环冗余校验,是一种数字通信中的信道编
码技术。经过 CRC 方式编码的串行发送序列可称为 CRC 码,共由两部分组成:
k
位有效信息数据和
r
位 CRC 校验码。其中
r
位 CRC 校验码是通过
k
位有效信
息序列被一个事先选择的
1r +
位“生成多项式”相“除”后得到的(
r
位余数即是
CRC 校验码),这里的除法是“模 2 运算”。CRC 校验码一般在有效信息发送时
产生,拼接在有效信息后被发送;在接收端 CRC 码用同样的生成多项式相除,
除尽表示无误,去掉
r
位 CRC 校验码,接收有效信息;反之,则表示传输出错,
纠错或请求重复。循环冗余校验的 CRC 模块框图如下:
图 1:CRC 模块
1.2、CRC 的计算过程:
要传输的长度为
k
的数据块可以看成是
1k -
次二进制多项式:
1 2
1 2 1 0
( )
n n
n n
M x a x a x a x a
- -
- -
= + + + +L
最基本的 CRC 校验方法是用待发送的二进制
( )M x
除以生成多项式
( )g x
,将最
后的余数作为 CRC 校验码,实现步骤如下:
(1) 设待发送的数据块是
k
位的二进制多项式
( )M x
,生成多项式为
r
阶的
( )g x
。
在数据块的末尾添加
r
个 0,数据块的长度增加到
k r+
位,对应的二进制多
CRC 校 验
生成模块
CRC 校 验
检错模块
sdata
rdata
datacrc
error