- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA全参数化CRC推导及实现
基于FPGA全参数化CRC推导及实现
摘 要: 提出一种新型的全参数化CRC算法。详细地介绍全参数化CRC的算法原理,并给出算法公式的推理过程及结果,通过Verilog语言设计实现,给出了基于FPGA平台的仿真波形图,并成功应用于工程项目当中,最后详细分析了全参数化CRC算法在实现过程中的优势。这里提出的全参数化CRC算法,可以通过参数化配置,实现CRC?4、CRC?8、CRC?12等任何CRC?X的运算,亦可以实现任何数据位宽(数据位宽小于等于CRC校验码位宽)、任意生成多项式的CRC运算。
关键词: 全参数化; CRC算法; Verilog; FPGA; 以太网
中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2015)08?0154?05
0 引 言
在现行的数字通信系统中要进行稳定可靠并且快速的通信,同时又要保证数据在传输过程的准确性,这就需要对通信过程添加差错控制机制[1]。
循环冗余校验码(Cyclic Redundancy Check,CRC)是数据通信领域中比较常应用到的一种差错校验码,它的明显特征就是整个数据包文的信息位和校验码位的位宽可以任意改变。但是现行的CRC校验技术都是针对某一特定领域,或者指定生成多项式,校验码位宽等,具有很大的约束性。如果进行不同CRC校验时就需要重新设计模块,浪费时间精力的同时,多个校验模块又浪费了宝贵的FPGA逻辑资源,同时传统串行CRC算法效率低,很难满足视频信号实时处理的要求[2]。本文即以这个问题为突破口,设计出一个可以在各个领域通用的CRC校验机制。本设计在传统CRC的FPGA串行编码[3]的基础上,通过分析、整理、归纳最终得到适用于不同领域,不同校验码位宽,不同数据位宽,不同生成多项式的CRC运算通用算法,该通用CRC校验算法大大地减少了资源的利用率,仅仅用到极少数目的寄存器,同时又没有借助任何ROM去存储数据,结论证实全参数化的CRC校验算法能够跑到较高的时钟频率。设计通过Verilog进行硬件描述[4],在基于FPGA平台实现了指定CRC校验功能,并成功应用于工程项目当中。
1 全参数化CRC算法原理
在现有的数字通信系统中CRC校验分为两个部分,即发送方和接收方[5]。发送方用于对接收到的指定位宽包文数据(数据位)进行CRC运算得到指定位宽的CRC校验码;接收方用于对接收到的新包文数据(数据位和校验码位)进行同样的CRC运算,如果结果为0,则代表CRC校验通过,否则不通过。在本设计中通过参数化设计很好地将发送方和接收方的CRC运算逻辑结合到了一个模块当中,即CRC运算模块如图1所示。
1.1 CRC运算串行编码
以g(x)=X8+X6+X5+X3+X+1为例,串行CRC运算的实现如图2所示。编码前要先将电路中的寄存器初始化,然后将串行数据依次从input端输入图2电路,当所有串行数据输入完毕,每个寄存器的最终值即为CRC校验码[3]。
(1) 全参数化CRC的初始值。CRC校验的应用非常广泛,不同领域CRC计算的初始值是不相同的,例如以太网领域,初始值为全1,而在其他领域,初始值为全0或其他值。本文设计的全参数化CRC为了适应这种应用需求,在模块中定义一个参数INIT_VALUE,这样就可以在复位或重新运算时,直接加载INIT_VALUE即可。
(2) 全参数化CRC的生成多项式。多项式g(x)的项系数直接影响数据异或的位置(去除最高次项)。例如g(x)=X8+X6+X5+X3+X+1中,在X6,X5,X3,X、1(X0),项系数为1的项前加上异或,就得到了图2对应的电路。
因此不失一般性,可以假设生成多项式为:
g(x)=X8+P7X7+P6X6+P5X5+P4X4+P3X3+P2X2+P1X+P01
式中:P7~P0表示生成多项式各项前面的系数(最高次项和最低次项固定为1,故P0=1),其对应的电路结构如图3所示。当生成多项式项系数为1时即相应位的P=1,表示当前输入要与前一个寄存器的输出相异或,得到下一时刻的CRC值,例如图2中X6项系数为1即P6=1,而X4的项系数为0即P4=0。
经过对比图2和图3电路,会发现如果去掉图3电路相应位置的异或门(圈内部分)即可变换成图2生成多项式的电路。因此,本设计通过控制P值,进而控制图3中相应位置异或门有无,最终使算法达到覆盖任意形式的生成多项式。
1.2 全参数化CRC并行编码
为了提高CRC校验速度,现将由单比特输入改为多比特同时输入,此时的CRC校验机制和串行编码相同,因此,可由CRC串行编码推导出最终的并行编码,步骤如下:
1.2.1 k(x)公式推导
假
您可能关注的文档
- 基于Eviews分析银行家信心指数与大型商业银行不良贷款余额研究.doc
- 基于EViews图书馆知识服务案例研究.doc
- 基于Eviews苏州城镇常住居民收入和消费研究.doc
- 基于EVILS平台DSB调制解调系统设计.doc
- 基于EVM挣值管理技术项目绩效测量方法研究.doc
- 基于Evotherm温拌再生沥青混合料路用性能试验研究.doc
- 基于EVTCopula操作风险度量お.doc
- 基于EWB共射极放大电路非线性失真仿真.doc
- 基于EWB电工电子技术仿真分析探索.doc
- 基于EWB电路课程教学改革与实践.doc
- 2024年奥迪XX区潜客提升专项活动-重点车型-集客类-Brand.pptx
- 中建科技西部公司《装饰装修施工工艺手册》325P.pdf
- 大模型时代的分布式推理平台.pptx
- 2026年的主要数据趋势 行业专家分享他们对未来一年的预测 The Top Data Trends for 2026 Industry experts share their predictions for the year ahead.pdf
- 汇丰-中国工业软件:需求温和复苏下亮点犹存-China Industrial Software:Bright Spots Remain amid a Mild Demand Recovery-20251224.pdf
- 2025年带电作业技术会议:带电作业机器人的拓展及实战案例.pptx
- 能源新纪元虚拟电厂行业趋势洞察.pdf
- AI+产业重启介绍.pptx
- 虚拟电厂市场发展近况与盈利模式实践.pdf
- 2025年带电作业技术会议:低压不停电作业全绝缘手工工具研发与应用.pptx
原创力文档


文档评论(0)