信道编码的FPGA实现_第1页
信道编码的FPGA实现_第2页
信道编码的FPGA实现_第3页
信道编码的FPGA实现_第4页
信道编码的FPGA实现_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计论文任务书、题目信道编码的FPGA实现、研究主要内容(1) 了解信道编码理论和其发展状况。(2)掌握线性分组码编码原理,并基于 MATLAB和FPGA进行实现(3)掌握Turbo码编码原理,并基于 MATLAB和FPGA进行实现。(4)掌握RS码编码原理,并基于 MATLAB和FPGA进行实现。三、主要技术指标(1)分别禾用MATLAB和Quartus II对同一组随机产生的数据序列进行(7,4) 线性分组码编码,并使得编码结果一致。(2)分别利用 MATLAB和Quartus II对同一组随机产生的数据序列进行 Turbo码编码,并使得编码结果一致。-可编辑修改-(3)分别利用 MA

2、TLAB和Quartus II对同一随机产生的数据序列进行RS(10,8)码编码,并使得编码结果一致四、进度和要求第1周-第4周 搜集相关资料、复习有关MATLAB和信道编码知识第5周-第6周查阅资料、选定研究方向、翻译文献第7周-第9周学习Verilog语言并完成Quartus II软件的下载和安装第10周-第11周 熟悉Quartus II仿真工具的操作、进行试编程第12周-第14周 使用MATLAB和Quartus II完成各种编码的仿真实验第15周-第17周撰写毕业设计论文及答辩五、主要参考书及参考资料1田耘,徐文波,张延伟著.无线通信FPGA设计.北京:电子工业出版社,2009.72

3、樊昌信,曹丽娜著.通信原理.北京:国防工业出版社,2006.93张莲,周登义,余成波著.信息论与编码.北京:中国铁道出版社,2008.44刘皖,何道君,谭明著.FPGA设计与应用.北京:清华大学出版社,2006.65刘冬华著.Turbo码原理与应用技术.北京:电子工业出版社,2004.16何秋阳著.基于FPGA的RS编码器的设计与实现.EDN电子设计技术,2009.3-可编辑修改-7赵琦著编码理论.北京:北京航空航天大学出版社,2009.3-可编辑修改-学生 指导教师 系主任信道编码发展迅速,应用越来越广泛,而信道编码的好坏对众多工程技术领 域的发展有着重要影响,所以对信道编码的研究工作有着非

4、常重要的意义。本论文从阐述信道编码理论出发,介绍了编码理论的背景和其发展状况; 分 析了一般编码原理和流程,并着重对线性分组码、 Turbo码和RS码编码原理以 及编码器设计进行了详细介绍。本文是基于FPGA的信道编码实现。选取三种典型编码方式:线性分组码、-可编辑修改-Turbo码和RS码分别进行Quartus II平台的仿真实现,为了检验仿真的正确性,在另一种仿真环境-MATLAB 下进行验证。并尽量使 MATLAB设计与FPGA 设计采用相同的设计思想。关键词:线性分组码,Turbo码,RS码,FPGA, MATLAB-可编辑修改-ABSTRACTChannel coding used

5、more widely and developed rapidly, while channel coding is good or bad on the development of a number of engineering technology have an important impact , so the channel coding research has very important significance.The thesis expounded the theory of channel coding, introduced the background and i

6、ts coding theory development; analysis of a general coding principles and processes, focusing on linear block codes, Turbo codes and RS coding principle and the detailed design of the encoder.This article is based on FPGA implementation of channel coding. Select the encoding of three typical ways: l

7、inear block codes, Turbo codes and RS codes and Simulate on Quartus II platform separately, to test the accuracy of simulation, verify under another simulation environment - MATLAB. And to make MATLAB&FPGA design use the same design idea.KEY WORDS : Linear block codes, Turbo codes, RS codes, FPGA, M

8、ATLAB-可编辑修改-第一章绪论11-可编辑修改-o1.1本课题的研究意义 TOC o 1-5 h z HYPERLINK l bookmark26 o Current Document FPGA与信道编码 .12. HYPERLINK l bookmark28 o Current Document 本论文研究目的和主要内容 1.3.第二章信道编码简介15引言16. HYPERLINK l bookmark30 o Current Document 数字通信系统和信道编码 16. HYPERLINK l bookmark32 o Current Document 信道编码的基本思想和分类 1

9、.9.信道编码的发展2.1. HYPERLINK l bookmark36 o Current Document FPGA 简介24. HYPERLINK l bookmark38 o Current Document FPGA工具简介28 HYPERLINK l bookmark40 o Current Document FPGA 语言(VERILOG HDL)简介30. HYPERLINK l bookmark47 o Current Document 第三章线性分组码编码原理和仿真实现 36 HYPERLINK l bookmark49 o Current Document 线性分组码简

10、介36.汉明码37.循环码38.BCH 码39. HYPERLINK l bookmark60 o Current Document 线性分组码编码原理40. HYPERLINK l bookmark62 o Current Document 线性分组码的 MATLAB实现42 . HYPERLINK l bookmark64 o Current Document 线性分组码的FPGA实现.4.4.结论分析 4.7.第四章 TURBO码编码原理和仿真实现48-可编辑修改- TOC o 1-5 h z HYPERLINK l bookmark72 o Current Document Turbo

11、特点和发展现状49.Turbo码编码原理 5.1.Turbo码的编码结构5.1.RSC递归系统卷积码54.Turbo码的交织器55.Turbo码的截余模块 5.7.Turbo码译码原理 5.8.Turbo码的译码结构58.MAP 算法以及 Log-MAP 算法、Max-Log-MAP 算法.6 0Turbo码编码的MATLAB实现63TURBO码编码的FPGA实现 65.结论分析68i.第五章RS码编码原理和仿真实现69RS 码特点69.RS码编码算法 7.1.RS码编码器7.2.基于乘法形式的 RS编码器72.基于除法形式的 RS编码器72RS码译码算法 75.RS码编码的MATLAB实现7

12、.6.RS码编码的FPGA实现79.结论分析 82.-可编辑修改- TOC o 1-5 h z 第六章全文总结83参考文献84致谢87毕业设计小结88-可编辑修改-第一章绪论本课题的研究意义信息时代的来临使得高效可靠的数据传输成为一个重要课题。随着现代通信技术和计算机技术的迅速发展,每天都在不断涌现新的通信业务和信息业务,同时用户对通信质量和数据传输速率的要求也在不断提高。从第三代移动通信系统 方案来看,普通要求提供中速或高速的数据业务,一般的数据业务信道为64kbps、 144kbps、384kbps。3G移动通信系统所提供的业务种类的多样性、灵活性, 对差错控制编译码提出更高的要求。但是由

13、于通信信道固有的噪声和衰落特性, 信号在经过信道传输到达通信接 收端的过程中不可避免会受到干扰而出现信号失真。 通常需要采用差错控制码来 检测和校正由信道失真引起的信息传输错误。由于差错控制码主要用于实现信道 纠错,因此又称为纠错码或信道码-可编辑修改-图1.1纠错码的分类最早的纠错控制码主要用于深空通信和卫星通信,随着数字蜂窝电话、数字电视以及高分辨率数字存储设备的出现,信道编码技术的应用已经不仅仅局限于 科研和军事领域,而是逐渐在各种实现信息交流和存储的设备中得到成功应用, 与我们的生活联系更加密切。可以说,现代信息社会是离不开信道编码技术的, 而信道编码技术的好坏决定着这个社会文明的进步

14、速度。FPGA与信道编码信道编码也就是纠错编码,他是为了降低信息码元的传输误码率, 提高数字 通信的可靠性而采取的编码技术。信道编码的实现主要可分为软件实现和硬件实 现两种,目前主流的是通过可编程逻辑器件的硬件技术来实现。FPGA (FieldProgrammable Gate Array),即现场可编程门阵列作为专用集成电路 (ASIC)领 域中的一种半定制电路,解决了定制电路的不足和原有可编程器件门电路数有限 的缺点。发展迅速,应用越来越广泛,在通信、数据处理、网络、仪器、工业控-可编辑修改-制、军事和航空航天等众多领域都有涉及信道编码器的作用是在信息序列中嵌入冗余码元,提高其纠错能力,在

15、有限的信号功率、系统带宽和硬件复杂性要求下提高系统的可靠性,因此对硬件速度 和精度要求较高。目前主流的 FPGA是基于查找表(Look Up Table , LUT)技术 的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬块。FPGA的集成度很高,其器件密度从数万门到数千万门不 等,可以完成及其复杂的时序与逻辑组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域,用于信道编码器的制作具有很大优势,并且 FPGA 发展趋势是朝着大容量、低电压、低功耗方向,对于灵巧便携的移动通信系统更 是必不可少。并且FPGA在设计阶段,完全由用户通过软件进行配置

16、和编程, 不需额外地 改变PCB电路板,只是在计算机上修改和更新程序,使得硬件设计工作成为软 件开发工作,缩短了系统设计周期,提高了实现的灵活性并降低了设计过程中的 成本。本论文研究目的和主要内容目前针对信道编解码的研究已经比较成熟,各种新的理论也在不断出现,适用于不同领域的信道编解码方案也在不断推出和完善,诸多成果已经用于实践环 节。本论文以信道编码理论为主要研究方向,选取三种典型编码方式线性分组码、 RS码和Turbo码进行功能性验证,首先根据上述编码理论进行编码器的结构设 计,继而进行硬件仿真,所选用的仿真工具为Xilinx公司的Foundation Series ISE,设计语言选用V

17、iewlogic公司开发的Verilog HDL。最后分别对三种编码-可编辑修改- 方式的仿真结果进行评估和对比。本论文分为六部分:第一章 主要介绍信道编码背景,设计实现和文章概要;第二章介绍了数字通信系统和信道编码理论及其发展,简要介绍了 FPGA和仿 真软件及其语言;第三章研究线性分组码编码理论和设计思想,并进行 MATLAB和基于FPGA 的仿真实现。第四章研究Turbo码编码理论和设计思、想,并进行基于 FPGA和MATLAB的 设计以及仿真实现第五章 研究RS码编码理论和设计思想,并进行MATLAB和基于FPGA的仿真 实现。第六章全文总结-可编辑修改-第二章信道编码简介-可编辑修改

18、-2.1引言自从1948年香农(C.E.Shannon)给出有噪信道编码定理-在有噪信道中, 当信息传送速率小于信道容量时, 就存在一种编码、解码方法,能够使译码的错 误概率任意小,广大通信工程师和数学家都致力于寻找纠错能力强、编译码复杂 度低和硬件实现简单的信道纠错编码方法。信道编码的主要目的是消除或降低信息传输错误概率,从其发展历程来看,主要可以分为分组码和卷积码两类。 为了 进一步提高码字的纠错性能和宽带效率,又相继提出了级联码及格形编码调制 (TCM)等方法。在过去的60年间,信道编码取得了飞速的发展,已成为现代通 信系统不可或缺的一项标准技术。随着无线通信系统的快速发展和个人通信的全

19、 球化,数据速率也越来越高,对信道编码技术的要求也越来越严格。虽然性能良好的码层出不穷,但都是在分组码和卷积码的基础之上构建而成 的。由于时间和本人水平有限,本论文仅对线性分组码的一种-RS码和现有信道编码方案中最好的Turbo码编码器进行功能性验证。数字通信系统和信道编码图2.1给出了数字通信系统的模型和信息流的传输过程。下面对其中的各个组成模块进行简单的介绍。-可编辑修改-图2.1数字通信系统模型在数字通信系统中,发送端的主要组成部分为信源编码器、信道编码器、数 字调制器。进入信源编码器的信源可以是模拟信号也可以是数字信号。如果信源是模拟信号,则在送入数字系统传输之前需要进行采样和量化等数

20、字化处理。信源编码 器的作用是提高传输带宽的利用率和信息传输的效率,因为在信源中,相邻的符号之间存在一定的相关性,或者符号出现的概率具有一定的统计特性, 利用信源编码器可以提取符号间的相关性及其统计特性, 在信源译码器中利用这 些符号间的相关性以及统计特性,还原出信源,这样信源编码器可以剔除一些冗 余信息,提高了每个符号所带的信息量。传输信道通常是存在一定的噪声和衰落, 为了抗击传输过程中的各种干扰,通常需要采取一些差错控制措施。信道编码器的作用就是在信息序列中人为地增加一些冗余度,使其具有自动检错或者纠错能力。信道编码的基本思想是将每 k个连续的信息比特分为一组, 经过适当的数字运算(编码)

21、后得到那组比特的输出,这n个比特组成的序列称为 一个码字。好的差错控制码所生成的码字应该是在码字集合中,所有码字之间的区别尽可能大,从而使通信系统中的无法纠正或检测的信道错误尽可能少。差错-可编辑修改-控制码的基本目标是在有限的信号功率、系统带宽和硬件复杂性要求下使通信的 可靠性最大。比特形式的信息不适合在物理信道上传输,因此需要利用数字调制 器将这些编码信息比特转换成适合于在信道上传输的连续波形信号。调制器的基本思想是将编码的数字序列映射成适合在信道上传输的模拟连 续信号。信号经过调制器后送入物理信道进行传输。典型的传输信道包括有线信道、 光纤信道、无线信道、卫星信道、磁记录信道等。无论是那

22、种传输媒体,都会引 入一定的传输噪声。信号经过信道传输后到达接收端。接收端包括 :数字解调器、信道译码器、 信源译码器。数字解调器的作用是通过对接收的调制信号序列或传输码字进行最 优估计,然后输出数字编码序列到信道译码器。 信道译码器对传输信息进行估计 和判决,估计准则是跟据编码准则和信道特性而定的,目的是使信道噪声所造成的信号判决错误最小化。最后信源译码器根据信源编码准则将得到的信道译码器 输出的编码信息序列经过信源译码后,得到信宿。作为提高数字传输可靠性的重要技术之一, 信道编码在数字通信中得到了广 泛的应用。比如在移动通信系统中, GSM系统采用了奇偶校验码和卷积码;第 三代移动通信系统

23、中,采用了卷积码和 Turbo码;在卫星通信系统中,空间数 据咨询委员会(CCSDS)则推荐Turbo码为遥测标准码;在计算机通信中,采用 了简单检错码和循环码。由此可见,信道编码技术在数字通信中有着举足轻重的 作用,不可忽视,而一种优秀的编码技术往往可以带来通信技术的变革。-可编辑修改-信道编码的基本思想和分类在讨论信道编码的基本思想之前,我们要知道信道编码在工程实践中提出的 主要技术指标有传输速率、差错率、可靠性与经济性等。1.传输速率(1)码元传输速率 码元是指携带数据信息的信号单元。每秒通过信道传输的码 元数称为码元传输速率,单位是波特,简称波特率。码元传输速率又称调制速率。(2)比特

24、传输速率 每秒通过信道传输的信息量称为比特传输率,单位是比特/秒,简称比特率。这两种传输速率的定义不同,但都是衡量系统传输能力的主要指标。对于二 进制来说,每个码元的信息含量为1比特,因此,二进制的码元传输速率与比特 传输速率在数值上是相等的。对于M进制来说,每一码元的信息含量为M版g特,因此,如果码元传输速率为r s波特,则相应的比特传输速率r b为ib = rslog M。差错率是衡量传输质量的重要指标之一。它有以下几种不同的定义:码元差错率 指在传输的码元总数中发生差错的码元数所占的比例(平均值),简称误码率,一般用符号p。表示。e比特差错率 指在传输的比特总数中发生差错的比特数所占的比

25、例(平均值),用符号p BE表示。在二进制传输系统中,码元差错率就是比特差错率。(3)码组差错率 指在传输的码组总数中发生差错的码组书所占的比例(平均值)。系统的设计者和用户根据不同的应用场合对差错率有不同的要求。3.可靠性可靠性是衡量传输系统质量的又一重要指标。而降低误码率以满足系统的要-可编辑修改-求通常有两种途径:一是降低信道(包括调制解调器、传输媒介)本身所引起的误 码率;二是采用信道编码,在数字通信系统中增加差错控制设备。了解信道中产生差错的特点以后,我们来讨论信道编码的基本思想。 信道编 码的编码对象是信源编码器输出的数字序列M ,又称信息序列。通常是由二兀符号0.、1组成的序列,

26、而且符号1和0是独立等概率的。所谓信道编码,就是 按一定得规律在待发送的信息码中加入一些人为多作的码元,以保证传输过程的可靠性。即信道编码的任务就是通过构造出以最小多余度代价换取最大抗干扰性 能的好码”,即通过选择地发射的数据中引入冗余,防止数据出现差错。用于检 测差错的信道码称为检错码;而可以检测和校正差错的信道码称为纠错码。采用简单重复方式增加人为多余度, 可以实现提高抗干扰性,但并不是好的 方法。从原理上看,增加人为多余度的规则和方法是多种多样的,可划分为两大类型:如果规则是线性的,即码元之间的关系是线性关系,则称这类信道编码为 线性码,否则称为非线性码。另外,从信源信息序列所对应的编码

27、方式上也可进 一步划分为两种类型:如果将信源的信息序列按照独立分组进行处理和编码,则称为分组码,否则称为非分组码。此外,信道编码从功能上也可以分为 3类仅具有发现差错功能的检错码,如循环冗余校验 (CRC)码、自动请求重传(ARQ) 码等;具有自动纠正差错功能的纠错码,如循环码中的BCH码、RS码以及卷积码、级联码、Turbo码;既有检错功能又有纠错功能的信道编码, 最典型的是混合ARQ ,又称为HARQ。-可编辑修改-o2.4信道编码的发展1948年信息论的开创者C.E.Shannon在他的开创性论文A mathematical theory of communication”中首次提出著名

28、的信道编码定理,阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理。从理论上为信息编 码的研究指出了明确的方向,莫定了纠错码的基石。对于离散信道,Shannon编码定理告诉我们:任意给定平稳离散无记忆信 道,都存在信道容量C,当信息传输速率RC时,任何编码方式都不能使 P-0.对于非离散信道也是如此。Shannon同时证明了信道容量C取决于传输信号的信噪比SNR,C是SNR 的增函数。设某信道的容量 C确定时,当信信息传输速率 R-C为实现无差错 传输,R所对应的SNR称为Shannon容限。在信道编码定理证明过程中引入了三个基本条件 :.采用随机编码方式.码字长度趋向于无穷大

29、.采用最大似然译码算法并指出随机选择的码以很高的概率为好码。对于随机码的最大似然译码,其译码算法复杂度与所传输的码字长度和码率呈指数关系,可见随机码是不实用 的。但是这三个条件为今天的信道编译码的构造和译码算法的研究指明了方向。由于编码定理的证明是非构造性的,没有给出如何构造能逼近Shannon限的编 码方法,构造逼近Shannon限的纠错码和对其性能的研究,成为竞相研究的课-可编辑修改- 题之一,形成了信息论的一个重要分支-信道编码理论。信道编码的发展大致可以由以下几种编码的产生而分为各个阶段。1950年,汉明码由汉明提出,它是可以纠正一个错误的完备码。1959年, 霍昆格姆(Hocgeng

30、hem)和1960年博斯(Bose)及雷 查德胡里(Ray Chaudhuri) 分别提出了纠正多个随机错误的循环码 BCH码。1960年Peterson找到了二元 BCH码的第一个有效算法,从而将它从理论推向实用。同年,Reed和Solomon 发现了 BCH在基于素数的有限域中的一个子类 RS码的构造方法,从来将分组 码的理论推到了一个高峰。1955年,爱里斯(Elias)提出了卷积码,由于它在编码过程中充分利用了前 后比特的相关性,因此性能优于同等码率的分组码,并且在同等码率和相似的纠 错能力下,卷积码的实现要比分组码简单。1967年Viterbi提出卷积码的一种最大似然译码算法,无论从

31、理论还是实际应用上都极大的推动了卷积码的发展。 卷积码在各种通信系统中都得到了广泛的应用。1966年,Forney首先提出了由两个确定的短码来构造长码的串行级联结构, 实现了质量好的长码和译码复杂度的良好结合,并采用准最佳的广义最小距离译码推到了级联码的性能界限。在目前的无线通信系统中,包括卫星通信和陆地移 动通信系统,很多都采用级联码作为信道编码方案。上世纪九十年代以前,信道编码的设计一直是沿着 Shannno信息论的后两 个方向发展。针对Shannon信息论指出的信道编码设计的第三个要素-最大 似然译码算法,由于其译码复杂度高,不适合工程实现。而 Viterbi提出的最大 后验概率译码算法

32、是目前真正能达到最佳译码性能的算法, 它在信源等概率的条 件下等效于最大似然译码算法。但是, Viterbi算法也只适合于约束长度较小的-可编辑修改-卷积码和短的或低纠错能力的分组码,对于长码来说,由于其运算复杂度过高, 使得实时译码不可实现。针对信道编码设计的第二个要素-编码器的构造,由于长码的译码复杂度 太高,而性能优异的短码能达到的传输速率 R System Verilog 等。ModelSim 最大的特点是其强大的调试功能:先进的数据流窗口,可以迅 速追踪到产生不定或错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的Si

33、gnal Spy功能,可以方便的访问VHDL或VHDL和Verilog混合设计中的底层信号; 支持加密IP;可以实现与MATLAB中Simulink的联合仿真。实现工具包含的工具比较多,面也比较广。如果能够较好的掌握这些工具, 将大幅度提高设计者的能力,缩短设计周期。ISE和Quartus II中集成的实现工 具主要有约束编辑器、引脚与区域编辑器、时序分析器、底层编辑器、芯片观察 窗和布局规划器等。实现的过程主要分为翻译(Transplate)、映射(Map)和布局布线(Place&Route)3个步骤。一般都必须选择芯片生产商所提供的工具软件进 行实现。FPGA 语言(Verilog HDL

34、)简介Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言-可编辑修改-(Hardware Description Language , HDL),均为 IEEE标准,被广泛应用于基于可编程逻辑器件的项目开发中。二者都是在20世纪80年代中期开发出来的, 前者由Gateway Design Automation(GDA) 公司开发,后者由美国军方研发。 其中,HDL以文本形式来描述数字系统硬件结构和行为的语言,用它可以表示 逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。本论文主要使用Verilog HDL语言,故接下来对其进行简单介绍。HDL是一种用形式化方法

35、来描述数字电路和系统的语言,可以从上层到下 层来逐层描述自己的设计思想,用一系列分层次的模块来表示复杂的数字系统, 并逐层进行验证仿真,再把具体的模块组合由综合工具转化成门级网标。接下来再利用布局布线工具把网表转化为具体电路结构的实现。目前,这种自顶向下的方法已被广泛使用。概括的讲,HDL语言包含以下主要特征:HDL语言既包含一些高级程序设计语言的结构形式,同时也兼顾描述硬件 线路连接的具体结构。通过使用结构级行为描述,可以在不同的抽象层次描述设计。HDL语言采用自顶向下的数字电路设计方法,主要包括 3个领域5个抽象层次。HDL语言是并行处理的,具有同一时刻执行多任务的能力。这和一般高级 设计

36、语言串行执行的特征是不同的。HDL语言具有时序的概念。一般的高级编程语言是没有时序概念的,但在 硬件电路中从输入到输出总是有延时存在的,为了描述这一特征,需要引入时延的概念。因此HDL语言不仅可以描述硬件电路的功能,还可以描述电路的时序。自从1983年GDA硬件描述语言公司的 Philip Moorby 首创了 Verilog HDL语言,经过数十年的发展和进一步完善,Verilog HDL的应用越来越广泛。-可编辑修改-Verilog HDL既是一种行为描述语言,也是一种结构描述语言。如果按照一 定的规则和风格编写代码,可以将功能行为模块通过工具自动转化为门级互联的 结构模块。这意味着利用V

37、erilog语言所提供的功能,就可以构造一个模块间的 清晰结构来描述复杂的大型设计,并对所作设计的逻辑电路进行严格的设计。Verilog HDL语言和C语言风格有很多的相似之处,学习起来比较容易。表2-1 给出了 Verilog HDL 语言的表述能力。表2-1 Verilog HDL语言的表述能力描述级别抽象级别功能描述物理模型行为级系统级用语言提供的高级结构能够实现所设计模块外部性能的模型芯片、电路板和物理划分的子模块算法级用语言提供的高级功能能够实现算法运行的模型部件之间的物理连接,电路板RTL级描述数据如何在寄存器之间流动和如何处理、控制这些数据流动的模型芯片、宏单元逻辑级门级描述逻辑

38、门和逻辑门之间连接的模型标准单兀布图电路级开关级描述器件中三极管和存储节点以及它们之间连接的模型晶体管布图Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言。 Verilog HDL和VHDL的相同点在于:都能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可以简化电路行为的描述;具有电路仿真和验证机制;-可编辑修改-支持电路描述由高层到底层的综合转换;与实现工艺无关;偏于管理方面和设计 重用但Verilog HDL和VHDL又有各自的特点,由于 Verilog HDL推出较早, 因而拥有更广泛的客户群体、更丰富的资源。Verilog HDL还有一个优点就是容 易

39、掌握,如果具有C语言学习的基础,很快就能够掌握。而 VHDL需要Ada编 程语言基础,一般需要半年以上的专业培训才能够掌握。传统观点认为VerilogHDL在系统抽象方面较弱,不太适合特大型的系统,但经过 Verilog 2001标准 的补充之后,系统级表述性能和可综合性能有了大幅度提高。用Verilog HDL描述的电路设计就是该电路的 Verilog HDL 模型,也称为 模块,是Verilog的基本描述单位。用模块描述某个设计的功能或结构,以及与 其他模块通信的外部接口,一般来说,一个文件就是一个模块,但并不绝对如此。模块是并行运行的,通常需要一个高层模块通过调用其他模块的实例来定义一个

40、 封闭的系统,包括测试数据和硬件描述。一个模块的基本架构如下module module_name(port_list)regwireparameterinputoutputinoutfunctiontask/声明变量和信号/寄存器/线网/参数/输入信号/输出信号输入/输出信号/函数/任务-可编辑修改-/Statements initial assignment always assignmentmodule assignment gate assignmentUDP assignment coninous assignmentendmodule说明部分用于定义不同的项,比如模块描述中使用的寄存

41、器和参数。 语句用 于定义设计的功能和结构。说明部分可以分散于模块的任何地方,但是变量、寄 存器、线网和参数等的说明必须在使用前出现。Verilog HDL语言的基本要素,包括标识符、数据类型、模块端口、常量集 合及运算符和表达式等。Verilog HDL可以完成实际电路不同抽象级别的建模, 具体而言,有三种描述形式:如果从电路结构的角度来描述电路模块,则称为结构描述形式;如果对线型变量进行操作,就是数据流描述形式;如果只从功能和 行为的角度来描述一个实际电路,就成为行为级描述形式。电路具有5种不同模 型,其中,系统级、算法级、RTL级属于行为描述;门级属于结构描述;开关级 涉及模拟电路,在数

42、字电路中一般不考虑。-可编辑修改-可编辑修改-第三章线性分组码编码原理和仿真实现3.1线性分组码简介线性分组码中的分组是指编码方法是按信息分组来进行的,而线性则是指编码规律即监督位与信息位之间的关系遵从线性规律。线性分组码是一组固定长度的码组,可表示为(n , k),通常它用于前向纠错。 在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。当分组码的 信息码元与监督码元之间的关系为线性关系时,这种分组码就称为线性分组码。对于长度为n的二进制线性分组码,它有2 n种可能的码组,从2 n种码组中, 可以选择M= 2k个码

43、组(kn)组成一种码。这样,一个k比特信息的线性分组码 可以映射到一个长度为n码组上,该码组是从M= 2k个码组构成的码集中选出来 的,这样剩下的码组就可以对这个分组码进行检错或纠错。线性分组码是建立在代数群论基础之上的, 各许用码的集合构成了代数学中 的群,它们的主要性质如下:(1)任意两许用码之和(对于二进制码这个和的含义是模二和)仍为一许用码, 也就是说,线性分组码具有封闭性;(2)码组间的最小码距等于非零码的最小码重。线性分组码种类众多,下面对其中的典型代表进行简单介绍。-可编辑修改-3.1.1汉明码当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码 来检测并纠错,简单

44、的说,汉明码是一个错误校验码码集,由 Bell实验室的 R.W.Hamming 发明,因此定名为汉明码。与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念, 通过在数据 位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码 不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。 汉明码利 用奇偶块机制降低了前向纠错的成本。进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为 校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共 是4个比特位,包括2个1, 1的数目是偶数,因此,如果是偶校验,那么增加 的校验位就是一个0,反之

45、,增加一个1作为校验位。通过异或”运算来实现偶 校验,同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否 正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传 输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错, 每一位的检错都通过数据中不同的位组合来计算出来。 校验位的数目与传输数据 的总位数有关,可以通过汉明规则进行计算:d+p+1 =3,t2 m-1),存在着能纠正t个以内错误的BCH码,其参数为:码长n=2m-1(3-3)监督元位数:n-k=2t+1-可编辑修改-(3-5)其生成多项式g(x)为GF(2m)上最小多项式mi(x), m

46、2(x),m2t(x)的最小公倍式,即 g(x)=LCMm i(x), m 2(x),m2t(x)。3.2线性分组码编码原理编码原理的介绍以最简单的(7,3)线性分组码为例进行说明。以每 3位信息比特作为一组进行编码,即输入编码器的信息位长度k=3 ,完成编码后输出编码器的码组长度为n=7 ,显然监督位长度n-k=4位,编码效率r=k/n=3/7 。(1)编码方程设输入的信息码元为:U=( U0, Ui, U 2)输出的码组为:C=(C0, C 1 , C 2 , C 3 , C 4 , C 5 , C 6)输出码组中信息位为:Co= U0 , C 1 = U1 , C 2= U2监督位为:C

47、3 = U0 U2,,4=U0 U1 U2,,5=U0 U,。6=5 U2在输出的码组中,前3位即为信息位,后4位是监督位。其中监督位是由前3个信息位构成的线性组合。将信息位和监督位写成相应的矩阵形式为:10 0 1110C=(Co ,C1,C2 ,C3,C4,C5,C6)=(Uo,U1,U2)0 1 0011 1=U G (3-6)0011101若G=(I:G),其中I为单位矩阵,则称C为系统码。G为生成矩阵,可见,-可编辑修改-如已知信息码组U与生成矩阵G,即可生成码组。生成矩阵主要用于编码器产 生码组。(2)监督方程组若将式()中的后4位监督方程组改为:C3=U0U 2 =C0C2C4

48、=U0U1U2 二C0 C1C2C5=U0U1 =C0 C1(C6=U1U 2 =C1C2(3-7)将上述线性方程改写为下列矩阵形式为:C0Ci1011000 C 01110 1001/ _必ii 0 0 0 i0 C3=01 1 1 0 0 0 1 C40C5C6(3-8)它可以表示为:H CT=0TO称H为监督矩阵,若H=(P : I),其中I为单位 矩阵,则称C为系统码。监督矩阵一般用于译码器的译码过程。(3)校正子方程若在接收端,接收信号为:Y=(y0,y,yn-1尸x+n=c e(3-9)式中,C=(C0, C1,,Cn-1)为发送的码组,e=(e, 1,,51)为传输 中的误码,由

49、H CT= 0T可知,若传输中无差错,即 e=0 ,则接收端必然要满足 监督方程H CT=0T;若传输中有差错,即e为,则接收端监督方程应改为:H YT=H(C e)T=H CT HeT= H eT= ST-可编辑修改-(3-10)由式(3-9)求得校正子S为:S= (ST)T= ( HYT)t=Y HT=C HT+e HT(3-11)称式(3-10)和式(3-11 )为校正子方程,接收端利用它们来进行译码。其中S 仅与e有关,而与码字C无关。由于H矩阵是个(n-k)行n列的矩阵,所以S是 一个(n-k)维矢量,它可以给出(n-k)个独立的方程,然而传输的差错 e则是一个 n维矢量,有n个待定

50、值,所以S并不能唯一地确定e。由某个给定的S,可以 有2k个e的解,即同一个伴随式可以得到2 k个错误图样,而真正的错误图样应该 是2 k中的其中一个,所以译码器必须从这2卜个候选错误矢量中决定出一个真正的 错误矢量。为了使译码平均错误概率最小,在二进制对称信道的条件下,最可能 的错误图样是译码汉明重量最小的接受码组,即非零个数最小的码组。3.3线性分组码的MATLAB实现本论文主要以(7,4)汉明码为例,实现线性分组码的 MATLAB仿真。汉明码是指能纠正单个随机错误的线性分组码,主要参数为:码长:n=2m-1信息位:k= 2m -1-m监督位:n-k=m,且mm最小距离:d min =3下

51、面进行MATLAB仿真。(1)主程序名为hamming7_4.m输入信息比特 msg=1 0 0 1-可编辑修改-A = 1 1 1;1 1 0;1 0 1;0 1 1 ;G = eye(k) A ;%生成矩阵H = A eye(n-k) ;%校验矩阵jnsg 二10011图3.1输入序列取第二个码字发(2)调用mod函数进行编码,这里在信道传输中加了一个错误,生错误。编码后输出为code=1 1 0 1 1 0 0 二1101100图3.2编码错误输出序列(3)译码后指示错误码字位置imdu冗-2 I图3.3错误码字位置-可编辑修改-(4)纠正错误后的译码结果correctedca de =

52、图3.4译码结果纠错后(5)去除校验码,得到和输入信息序列一样的输出信息序列g_decade-d =图3.5输出信息序列线性分组码的FPGA实现使用Verilog实现一个(7,4)汉明码的编码电路,其编码矩阵如下所示:1011000G=0 10 00 0 100110001编码电路的Verilog 程序linearcoder.v 如下:-可编辑修改-omodule linearcode(reset, u, c);input reset;input 3:0 u;output 6:0 c;assign c3:0 = reset?4b000: u3:0;assign c4=reset ?0:(u0Au2 Au3);assign c5=reset ?0:(u0au1 au2);assign c6=reset ?0:(u1au2 au3);endmodule上述程序经过Integrated Synthesis综合后,可以得到如图3.6所示的RTL结构图。-可编辑修改-上述程序经过QuartusII Simulator仿真后,在输入序列为1 0 0 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论