3、仿真与下载
对于上述编译码算法,采用Verilog HDL可综合语言来描述,整个程序分为顶层模块和底层模块,顶层模块很简单,主要完成底层模块的调用和数据的复位,编码算法主要由底层模块完成。其中包括编译码算法主程序,拨码开关控制程序,液晶显示程序,系统函数PLL(锁相环)程序。系统利用两个拨码开关sw1,sw2来控制编码结果或译码结果的下载与显示。
图2和图3是编码和译码的仿真图,仿真工具用的是modelsim 6.0,编码结果CX=0x69d8ba0e,译码过程中,根据接收多项式RX=0x79caba0e以及最小多项式f1=0x25,f3=0x3d,f5=0x37,译码后得出错误多项式EX=0x10120000,最后RX与EX相与得出CX_dec=0x69d8ba0e,与原码一致。图4和图5是下载后显示到液晶屏的结果CX=0x69d8ba0e,EX=0x10120000,所用编译工具是quartusⅡ5.0,FPGA芯片采用的是Altera Cyclone EP1C6,用到1个PLL,引脚数15个,芯片资源耗用不超过5万门。
4、结束语
BcH(31,16)编译码算法,可以纠正3位错误,用VerilogHDL可综合语言描述以上的编码纠错过程,软件仿真和硬件下载都证明了算法的正确性和可行性。整套试验系统是模拟空间存储器受到高能粒子的干扰而发生错误,这对于我们AMS实验也是很关键的一步,现阶段我们用到的防护措施是三倍冗余编码纠错,但它占用的硬件资源比较多,而本文中所研究的循环BCH码能够节省资源,纠错效果也很明显,所以它将会在AMS项目中得到实际的应用。