四川理工学院本科生毕业(论文)设计
图4-6 CRC编解码模块连接
联合仿真波形图:
将CRC编码器与CRC解码器两个程序模块进行组合,编码和解码一次仿真中完成,从仿真波形整数据可以看出数据结果与两个模块单独工作时产生的数据相吻合,经过多组数据的验证,表明CRC编解码模块联合工作正常,数据结果正确可靠。
图4-7 CRC编解码联合仿真
- 27 -
第5章 结束语
本文详细的介绍了循环冗余校验码的编解码器的基本理论和方法,通过仿真实验验证正确无误,方案切实可行。在进行本设计之初对CRC知之甚少,在设计的开始阶段感到非常的迷茫,常常感觉无从下手,在大量查阅资料之后慢慢的找到了一点突破口,了解到设计循环冗余校验码需要深厚的理论基础,而且涉及的理论学科范围较广囊括了大学期间的多门重要基础课程。首先进行了CRC的理论学习,系统地对《信息论基础》做了学习,也再一次复习了《通信原理》、《线性代数》、《数字电子技术》、《EDA技术》。通过本次设计可以看出自己在基础理论知识方面上存在的薄弱环节,看到了自己理论联系实际的不足。
通过本次设计增强了自己的动手能力,提高了自学能力。
28
四川理工学院本科毕业(设计)论文
致 谢
大学生活即将告一段落,在四川理工学院学习的四年将是我终身难忘,母校对我的培养和各位老师的付出我不甚感激,再此更要特别感谢我的导师陈彬老师,本设计的完成是在我们的导师陈彬老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了陈老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!其次在此还要感谢我的室友,在设计中遇到问题我们互相学习,共同讨论,使我受益匪浅。
总之,感谢每一位关心过我,爱护过我的人。滴水之恩,当涌泉相报。最后,再次感谢我的导师陈彬老师。此外,我还要对在这次设计中,帮助和支持我的同学,表示感谢!
- 29 -
此外,我还要对在这次设计中,帮助和支持我的同学,表示感谢!
参考文献
[1] 樊昌信,曹丽娜 通信原理 北京:国防工业出版社,2009
[2] 李斗,殷悦,罗燕 信息论与编码理论 北京:电子工业出版社,2004
[3] 廖海红,通信系统的CRC算法的研究和工程实现[D] 北京:北京邮电大学信息工程学院,2006 [4] 王新梅,肖国镇 纠错码-原理与方法(修订版) 西安:西安电子科技大学出版社,2001 [5] 张宗橙 纠错编码原理和应用 北京:电子工业出版社,2003
[6] 刘春阳 基于FPGA的串行通信实现与CRC校验 北京:北京化工大学,2006 [7] 傅祖芸 信息论-基础理论与应用 北京:电子工业出版社,2001 [8] 万哲先 代数与编码 北京:科学出版社,1980 [9] 曹雪虹 信息论与编码 北京:清华大学出版社,2009
[10] 同济大学应用数学系 线性代数 北京:高等教育出版社,2008 [11] 徐秀娟 线性代数 北京:科学出版社,2007 [12] 潘松,王国栋 VHDL实用教程(第二版)【M】.成都:电子科技大学出版社,2001 [13] 潘松 EDA技术实用教程(第四版)[M].北京:科学出版社,2005
[14] 张宇,刘凤荣,杨瑞朋 基于FPGA的CRC算法和VHDL设计 郑州:防空兵指挥学院,2010 [15] 井海明,高占凤 用VHDL设计CRC发生器和校验器 石家庄:石家庄铁道学院,2004
[16] Berrou C,Glavieux A,Tthitimajshima P. Near Shannon Limit Error Correcting Coding and Decoding:Turbo Codes.Proc.IEEE Int.Conf. Commun.,1993:1064-1070
[17] Gallager R,Low-density Parity-check codes,IRE Trans.on IT,1962,8(1):21-28 [18] John G.Proakis.Digital Communications.Third Edition 1995
[19] Lucky R W,Salz J,Weldon,EJ.Principles of Data Communication,McGraw-Hill,1968
30
四川理工学院本科毕业(设计)论文
附 录A
程序代码
CRC校验生成模块:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY CRCSEND IS
PORT( SDATA:IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK,DATALD: IN STD_LOGIC;
DATACRCO:OUT STD_LOGIC_VECTOR(16 DOWNTO 0); HSEND:OUT STD_LOGIC); END CRCSEND;
ARCHITECTURE COMM OF CRCSEND IS
CONSTANT MULTI_COEF : STD_LOGIC_VECTOR(5 DOWNTO 0) := \ SIGNAL CNT :STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL DTEMP,SDATAM :STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL RDATACRC:STD_LOGIC_VECTOR(16 DOWNTO 0); SIGNAL ST :STD_LOGIC; BEGIN
PROCESS(CLK)
VARIABLE CRCVAR : STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
IF(CLK'EVENT AND CLK = '1')THEN
IF(ST='0'AND DATALD='1')THEN DTEMP<=SDATA;
SDATAM<=SDATA;
CNT<=(OTHERS=>'0'); HSEND<='0'; ST<='1';
- 31 -