您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术循环冗余校验在SOPC中的自定义指令实现 正文
循环冗余校验在SOPC中的自定义指令实现

循环冗余校验在SOPC中的自定义指令实现

点击数:7316 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   DSP/FPGA技术

图4  CRC并行算法仿真结果

  2.4  使用Nios II的自定义指令提高系统性能

  CRC校验算法需要大量的逻辑运算,如果用软件实现要占很多个时钟周期,系统的效率降低,而用硬件完成则仅需几个时钟周期。

  定制指令逻辑和Nios II的连接在 SOPC Builder 中完成。Nios II CPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导入设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,Nios II IDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C(或C++)应用程序代码中直接调用这个宏。表1为 Nios II软件实现CRC算法和自定义指令实现性能对比。

表1  Nios II软件实现CRC算法和自定义指令实现性能对比

Nios II软件实现CRC算法和自定义指令实现性能对比

  可见,对于2字节数据,自定义指令的运算速度是软件法的2~10倍,且使用的资源大大降低。表1中的自定义指令是对16位数据而言的。我们所采用的帧结构,数据段有2字节,控制段1字节,地址段1字节,因此CRC计算时采用32位。从仿真图4中可以看到,从输入数据到计算完成用了7~8ns,而工作频率50MHz的Nios II系统一个时钟周期为20ns。这样,完全可以在一个周期内完成计算,加上装载及返回时所需的额外周期,根据表1的数据进行近似的线性分析,可知最终一次CRC校验需要16~20个周期,比软件法提高了4~40倍,大大提高了系统处理的速度。

  3 结语

  CRC校验由于检错能力强,被广泛应用在各种数据校验中。本文研究了CRC并行算法,并且通过增加自定义指令的方法,把用软件处理耗时多的CRC校验算法在Nios II系统中用硬件逻辑电路来实现,极大提高了系统的效率。实验结果也表明了该方法的优势。

  本文作者创新点: 

  1、技术手段的创新:使用新型的SOPC技术实现了自定义指令,大大提高了系统的效率。

  2、CRC算法的创新:采用CRC并行计算法来实现适用于各种数据宽度的CRC 校验。



上一页  [1] [2] 


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

《循环冗余校验在SOPC中的自定义指令实现》相关文章>>>