毕业设计论文—基于FPGA的信道编码技术的研究.doc

上传人:仙人指路1688 文档编号:4137528 上传时间:2023-04-07 格式:DOC 页数:33 大小:1.23MB
返回 下载 相关 举报
毕业设计论文—基于FPGA的信道编码技术的研究.doc_第1页
第1页 / 共33页
毕业设计论文—基于FPGA的信道编码技术的研究.doc_第2页
第2页 / 共33页
毕业设计论文—基于FPGA的信道编码技术的研究.doc_第3页
第3页 / 共33页
毕业设计论文—基于FPGA的信道编码技术的研究.doc_第4页
第4页 / 共33页
毕业设计论文—基于FPGA的信道编码技术的研究.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计论文—基于FPGA的信道编码技术的研究.doc》由会员分享,可在线阅读,更多相关《毕业设计论文—基于FPGA的信道编码技术的研究.doc(33页珍藏版)》请在三一办公上搜索。

1、第一章 绪论随着电子技术的快速发展,对通信系统功能的要求不断提高。基于同样的硬件环境,由软件来完成不同的通信功能的方式趋于成熟。于是,可编程高速器件如DSP、ARM、FPGA等成了现代通信系统的主要角色1。FPGA即现场可编程门阵列,它是在PLA、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种高度集成的可编程逻辑器件,它是作为ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点2。FPGA的结构灵活,其逻辑单元、可编程内部连线和IO单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求。其速度快,功耗低,通用性强,特别适用于

2、复杂系统的设计。使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。数字调制解调是无线通信中一个重要技术之一。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合成的芯片; 2)FPGA可做其它全定制或半定制ASIC电路的中试样片; 3)FPGA内部有丰富的触发器和IO引脚; 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一; 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPG

3、A芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。与传统的DSP或GPP相比,FPGA在某些信号处理任务中表现出非常强的性能,具有高吞吐率、架构和算法灵活、并行计算、分配存储以及动态配置等优势,因此能够解决设计者在通信领域尤其是无线通信方面需要一个高速通用硬件平台来实现并验证自己通信系统和相关算法的需求3。通信系统的目的是将信息从发送端高效、可靠、安全地传送到接收端。因而就引出了衡量通信系统性能的两个主要指标有效性和可靠性。通常,有效性用传输速率

4、R(比特/信道符号)衡量,可靠性用错误比特率(BER)衡量。但是,实际信道中噪声的存在总会对传输信息产生干扰,从而可能降低通信可靠性4。为了保证通信的可靠性,需要采取一定的措施来减少干扰的影响,信道编码就是一种保证通信可靠性的重要技术。对于数字通信系统,其具体做法为:在消息序列中加入一定的冗余,使得编码器输出序列之间满足一定的约束关系,接收端可以根据这些约束关系将受干扰而出现的错误检测或纠正过来。因此,消息从发送端发出后,首先要经过信道编码,之后再经过调制才能发送出去;当然,接收端在解调后,也要经过译码才可以恢复出原始消息。可见作为通信系统的重要一环,信道编码是较合理的解决通信有效性和可靠性这

5、对矛盾的关键,也是实现通信系统经济性所必需的5。本课题正是基于FPGA的开发周期短、使用灵活、采用高速(HCMOS)工艺、功耗低且可与CMOS电平、TTL电平兼容等优点,利用FPGA技术来研究信道编码。通过课题的研究深入了解FPGA技术以及信道编码技术,同时锻炼了完整的系统设计能力。本论文安排如下:第一章概括的叙述了FPGA和信道编码的有关内容;第二章详细的介绍了信道编码的知识,特别是线性分组码、CRC码、卷积码和RS码;第三章介绍了FPGA技术和Verilog语言以及开发工具Quartus;第四章对信道编码的FPGA实现进行了理论验证。第二章 信道编码2.1信道编码2.1.1信道编码的简介移

6、动传输信道中存在着一定的噪声和衰落,必然会对其中传输的信息引入失真和信号判决错误,因此需要采用信道差错控制码来检测和纠正这些错误比特。信道编码器的作用就是在信息序列中嵌入冗余码元,提高其纠错能力。与信源编码不同,经过信道编码添加冗余码元的目的是为了减小传输中发生的信号和码元错误,在有限信号功率、系统带宽和硬件复杂性的要求下提高系统的可靠性6。2.1.2信道编码的基本思想信道编码的基本思想是将每k个连续的信息比特分成一组,经过适当的数字运算(编码)后得到n个比特的输出,这n个比特组成的序列就被称为一个码字。好的纠错编码所产生的码字应具有的特性是:在所有的码字集合中,所有码字之间的区别尽可能大,从

7、而使通信系统中无法纠正或检测的信道错误尽可能少。定义: 其中R为编码速率,简称为码率。从20世纪40年代以来,已经相继提出了乘积码、代数几何码、分组码、卷积码、Turbo码和低密度校验码(LDPC)等编码方法,序列译码、Viterbi译码、软判决译码和迭代译码等译码方法,以及编码与调制相结合的TCM技术。2.1.3信道编码的分类信道编码可以从不同的角度进行分类,主要有以下两类:从功能上分,信道编码可以分为以下三类: (1)仅具有发现差错功能的检错码,如循环冗余校验CRC码、自动请求重传ARQ等;(2)具有自动纠正差错功能的纠错码,如循环码中的BCH码、RS码及卷积码、级联码、Turbo码;(3

8、)既能检错又能纠错的信道编码,最典型的是混合ARQ,又称为HARQ。从结构和规律上分,信道编码编码可以分为两类:(1)线性码:监督关系方程是线性方程的信道编码,称为线性码。目前大多数实用化的信道编码均属于线性码,如线性分组码、线性卷积码都是经常采用的信道编码; (2)非线性码:一切监督关系方程均不满足线性规律的信道编码称为非线性码。2.2线性分组码2.2.1线性分组码的概念既是线性码又是分组码的编码称为线性分组码。线性分组码中信息码元和监督码元是用线性方程联系起来的。线性码建立在代数学群论基础上,线性码各许用码组的集合构成代数学中的群,因此,又称群码。 (2-1)式2-1 称为监督方程式。式中

9、,an-1-a1为信息码元,a0为监督码元。2.2.2线性分组码的主要性质(1)封闭性:任意两许用码组之和(模2和)仍为一许用码组;(2)码的最小距离等于非零码的最小重量。2.2.3线性分组码的基本原理下面以(7,3)分组码为例介绍线性分组码的基本原理。1.编码方程设输入的信息码元为: (2-2)输出的码组为: (2-3)输出码组中信息位为: (2-4)监督位: (2-5)将式2-4和式2-5写成相应的矩阵形式为: 1 0 0 1 1 1 0 (2-6) 0 1 0 0 1 1 1 =UG 0 0 1 1 1 0 1 若G=(I:Q),其中I为单位矩阵,则称Q为系统(组织)码。G为生成矩阵,可

10、见,如已知信息码组U与生成矩阵G,即可生成码组。2监督方程组将式2-6中后4位监督方程组改为: 将上述线性方程改写成为下列矩阵形式为: 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 = 0 (2-7)1 1 0 0 0 1 0 01 1 1 0 0 0 1 0式2-7可以表示为:HCT=0T。称H为监督矩阵,若H=(P I)其中I为单位矩阵,则称C为系统(组织)码。3.校正子方程若在接收端,接收信号为:Y=(y0,y1,yn-1)=X+n=Ce (2-8) 式2-8中:C=(C0,C1,,Cn-1) 为发送的码组,e=(e0,e1,en-1)为传输中的误码,由HCT=0T可知,若

11、传输中无差错,即e=0,则接收端必然要满足监督方程HCT=0T,若传输中有差错,即e0,则接收端监督方程应改为: (2-9)由式2-9求得校正子S为: (2-10)2.3循环冗余校验码(CRC码)2.3.1循环冗余校验码的概念 CRC(Cyclic Redundancy Check)又叫循环冗余校验码。是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠,如电磁波通信时受雷电等因素的影响。不可靠的通信就会带来“确认信息”的困扰。对通信的可靠性检查就需要“校验”,校验是从数据本身进行检查8。2.3.2循环冗余校验码的编码规则 CRC码是由两部分组成,前部分是信息码,就是需要校验的信

12、息,后部分是校验码,如果CRC码长共长n个bit,信息码长k个bit,就称为(n,k)码。它的编码规则:移位:将原信息码(kbit)左移r位(k+r=n)。相除:运用一个生成多项式g(x)(也可以看成二进制数)用模2除上面的式子,得到的余数就是校验码。 生成多项式应满足以下原则:(1)生成多项式的最高位和最低位必须为1;(2)当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0;不同位发生错误时,应该使余数不同;(3)对余数继续做模2除,应使余数循环。2.3.3 CRC码校验的原理CRC校验的基本思想是利用线性编码理论,串行传送的信息M(x)是一串k位二进制序列,

13、在它被发送的同时,被一个先选择“生成多项式”相除,“生成多项式”长r+1位,相除后得到r位的余数就是校验位,它拼接到原k位有效信息后面,即形成了CRC码9。CRC码到达接受方时,接受方的设备一方面接受CRC码,一方面用同样的方法与“生成多项式”相除,如果正好除尽,表示无信息差错,接受方去掉CRC码后面的r位校验,收下k位有效信息;如果不能除尽时,说明有信息的状态发生了转变,即出错了,一般要求重新传送一次或者立即纠错。2.4卷积码2.4.1卷积码的概念卷积码(又称为连环码)首先由麻省理工学院的Elias于1955年提出。卷积码不同于分组码之处在于:在任意给定单元时刻,编码器输出的n个码元中,每一

14、个码元不仅和此时刻输入的k个信息元有关,还与前面连续m个时刻输入的信息元有关10。2.4.2卷积码的编码原理卷积码通常用(n,k,m)表示,它是把k个信息比特编成n个编码比特,通常k和n很小,特别适宜于以串行方式传输信息,延时小。m为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n个码元不仅与当前组的k个信息比特有关,而且与前m-1个输入的信息比特有关,这样编码过程中相互关联的码元有个。定义为卷积码的码率,码率和约束长度是衡量卷积码性能的两个重要参数。2.4.3卷积码的描述方法卷积码的编码描述方法分为两大类型:解析表示法和图形表示法。1.解析表示法解析表示法包括离散卷积法、生成

15、矩阵法、码多项式法等。下面以(2,1,2)卷积码为例,详细介绍离散卷积法。其余方法可参考相关文献,在此不再赘述。通常卷积码通过移位寄存器组成的网格结构来描述,(2,1,2)卷积码是由k=1即一个输入端,n=2即两个输出端,m=2即两级移位寄存器所组成的有限状态的有记忆系统。如图2-1所示。 图2-1 (2,1,2)卷积码的编码框图若输入信息序列为: (2-11)则对应输出为两个码字序列: (2-12)其相应编码方程可写为: (2-13)其中“”表示卷积运算,g1 g2表示编码器的两个脉冲冲激响应,即编码可由输入信息序列u和编码器的两个脉冲冲激响应,即编码可由输入信息序列u和编码器的两个冲激响应

16、的卷积得到。由于编码器有m=2级寄存器,当输入信息为u=(100)时,所观察到的两个输出序列的冲激响应至多可持续到k=m+1=2+1=3位,且可写成: =(111) (2-14) =(101) (2-15)若输入信息序列为: u=(10111)则有: (2-16)2图形表示法-状态图法利用FPGA设计中常用的有限状态机来描述卷积码的编码过程。首先,说明卷积编码器的状态。卷积编码器在下一时刻的输出取决于编码器当前的状态以及下一时刻的输入,是一种典型的米利状态机。其中编码器的当前状态就是目前各个移位寄存器中所存储的内容,随着信息序列的不断输入,编码器就不断地从一个状态跳转到另一个状态,并输出相应的

17、码序列。因此,编码器的可能状态数为2mk个。对于一个(2,1,2)卷积码编码器,已知k=1,m=2,mk=2,则其可能的状态数是22=4个。假设si表示某状态,i=0,1,2,3。在某j时刻,卷积码的输出可以表示为: (2-17) 由2-17式可知卷积码的输出取决于uj uj-1 uj-23个值,其中uj是当前的输入值,uj-1和uj-2是以前输入的两个值。如果要求出下一时刻的输出值,则需要知道当前的uj以及uj-1的值,当输入下一时刻的uj+1值时,就可以求出以及的值。所以为决定下一时刻编码器的输出。用当前时刻状态表示即可,如表2-1所示。表2-1 寄存器状态表 0 0 a 0 1 c 1

18、0 b 1 1 d 下面给出二元(2,1,2)卷积码的状态图,如图2-2所示。图2-2卷积码状态图图2-2中圆圈中的数字表示状态,状态之间的连线与箭头表示转移方向,成为分支,分支上的数字表示由一个状态到另一个状态时的输出码字,而括号中数字表示相应的输入信息位。例如,若当前的状态为11,即d状态,则当下一时刻的输入信息位u1=0时,输出码字c1=01,下一个状态为状态c。如输入信息位u1=1,则输出码字为c1=10,下一时刻的状态为d。2.5 RS码2.5.1有限域的基本概念定义 设F是一个非空集,F的成员叫作元素或简称元。假设在F中规定了加法和乘法两种运算,对于F中任意两个元素a和b,记加法运

19、算的结果为a+b,叫作他们的和,记乘法运算的结果为ab,叫作它们的积,F对于加法和乘法运算是自封闭的,即要求:(1)对任意a,bF,有a+bF;(2)对任意a,bF,有abF。如果以下运算规则都成立:1.对任意a,bF,有a+b=b+a(加法交换律);2.对任意a,bF,有(a+b)+c=a+(b+c)(加法结合律);3.F中有一个元素,把它记作0,具有性质a+0=a,对一切aF;4.对任意aF,F中有一个元,把它记作-a,具有性质a+(-a)=0;1.对任意a,bF,有ab=ba(乘法交换律);2.对任意a,bF,有(ab)c=a(bc)(乘法结合律);3.F中有一个不为零的元,把它记作1,

20、具有性质a1=a;4.对任意aF,而a0,F中有一个元,把它记作a-1,具有性质aa-1=1;对任意a,b,cF,有a(b+c)=ab+ac(分配律)。则称F对于所规定的加法运算和乘法运算是一个“域”13。由上述定义可知,域是集合元素间的一种代数结构。域中任意两个元素的和仍是域中的元素,并且满足交换律和分配律。域中必定包括一个零元素(记作0)和一个单位元素(记作1)。域中每一个元素都有唯一的负元素使得任一元素与它的负元素之和为零。域中任意一个非零元素都有唯一的一个逆元素,使得任何元素与它的逆元素的积等于1。域F中元素的个数叫作F的阶,如果F的阶是无限的,就把F叫作无限域。如果F的阶是有限的,就

21、把F叫作有限域。有限域又称为伽罗华(Galois)域。同样我们可以看出,由0和1两个元素组成的二元集对模2加法和乘法来说也是一个域,并且是十分重要的有限域。可以证明,任何有限域元素的个数一定是某一素数的幂。2.5.2有限域举例有限域也叫伽罗华域,它的元素个数一定是pn,p是素数,通常记为GF(pn)。模p(p是素数)运算的剩余构成有限域GF13。 设p是一个给定的素数。令Fp表示所有小于p的非负整数的集合即: Fp=0,1,2,p-1 虽然,对于普通的加法和乘法,Fp不封闭,所以它不是域。但是对于模p加法和乘法运算即: ab=(a+b)p ab=(ab)p可见对所有的整数进行模p运算,只有p种

22、余数,即0,1,2,p-1,当p时素数时,可以证明Fp是一个域。它正好包含p个元素,所以它是一个p元有限域。特别当p=2时,就得到我们前面提到的二元有限域F2。可以证明,若q不是素数,则Fq对模q加法和乘法也不是域。2.5.3有限域的乘法群定义1.设G是一个非空集,假定在G中规定了一种通常叫做乘法的运算,并设a,bG,记此种运算是ab,叫做它们的积。要满足: abG,对任意a,bG即G对于所规定的乘法运算是封闭的,我们就称G对于所规定的乘法运算是一个交换群。如果以下运算规则成立:(1)对任意a,bG,有ab=ba;(2)对任意a,b,cG,有(ab)c=a(bc);(3)G中有一个元,把它记作

23、1,具有性质a1=a,对一切aG;(4)对任意aG,G有一元,把它记a-1作,具有性质aa-1=1。上述(1)(2)(3)(4)运算规则往往被称作交换群公理。若去掉(1)就称为一般群的公理。显然,任意一个域F中的全体元组成的集,对于F中的加法运算来说是一个交换群,这个交换群叫作域F的加法群。而域F中不为零的元所组成的集对于F中的乘法运算来说也是一个交换群,这个交换群叫作域F的乘法群,并用符号表示。与域的情况相似,若G含有无限多个元素,则G叫作无限交换群。若G仅含有限个元素,则G就叫作有限交换群。G中元素的个数就叫作G的阶。定义2.设G是交换群,而a是G中任意一个元素,如果对于任意一个元素,如果

24、对于任意整数n,都有an=1,a就叫做一个有限阶元素,而具有性质an=1的最小正整数n就叫做a的阶。可以证明,若G是有限交换群,则G中任一元素都是有限阶的。如果a是G中的一个n阶元素,那么下面这n个元素: 就是G中的n个不同元素,并且: a=对于G中的运算来说是一个n阶交换群。定义3.若G是一个n阶交换群,并且G中有一个n阶元素a存在,则 G=a=就叫做(n阶)循环群,而a就叫做G的一个生成元。不难证明,任一有限域的乘法群都是循环群。而将有限域乘法群的生成元成为这个有限域的本原元。2.5.4多项式域GF()中元素间的关系 为了表示GF()中元素间的关系,首先要介绍本原多项式的概念。 设p(x)

25、是n次不可约,如果p(x)的根就是和+1,因为将(和+1)代入p(x)均等于零,事实上从乘法表可知= =1。再根据加法表可得 p(x)= 1=11=0而且它的根(或+1)的阶是,即=1,是本原元,所以x2+x+1就是本原多项式。有限域GF(2n)的元素可以用所有次数低于n的多项式来代表;有限域GF(2n)中的2n -1个非零元素又可以用本原元的各次(从12n -1)幂来代表。2.5.5一个有关多项式的定理设有多项式f(x)=。式中系数是二元域的元素(即=0或1;i=0,1,n)。对于任意正整数l均有: =2.5.6最小多项式 设为有限域GF(2n)中任一元素,则具有二元域系数并以为根的最低多项

26、式m(x)就称为的最小多项式。对于GF(2n)中的任一元素都有一个次数等于或小于n的最小多项式,并且这个多项式是既约的又是唯一的,也就是说必定是二元域系数的某一多项式的根。以GF(24)域为例,来说明最小多项式的求法。 先求元素的最小多项式:可以看出根的序列从开始重复,因此的最小多项式的全部根是也就是说的最小多项式是四次的。并且:利用表2-2将上式展开得同样可求得最小多项式 最小多项式 最小多项式表2-2 GF(24)的非零元素 2.5.7 BCH码BCH码是一类最重要的循环码,能纠正多个随机错误。BCH码具有纠错能力强,它的特点是将纠错能力t与生成多项式发生关系。这种关系是通过近代代数理论,

27、找出多项式的根与码距的确定关系。二进制BCH码的主要参数由两个正整数m和t决定,t2m-1是纠错能力。其它码参数为:码长 n2m-1 (n必为2m-1的一个因子);监督位 n-kmt;最小距离 dmin2t+1。2.5.8 RS码 RS码是一类有很强纠错能力的多进制BCH码。它最早由Reed和Solomon提出,称为ReedSolomon码,简称为RS码。在RS码元中的码元符号不是二进制而是多进制符号。其中2m进制应用更为广泛。能纠正t个错的RS码具有如下参数:码长 n=2m-1个多进制符号; 监督位 n-k=mt;最小距离 dmin=2t+1。由于RS码是对多进制符号纠错,RS码可用于纠正突

28、发错误。第三章 FPGA及其开发工具3.1 FPGA简介FPGA通常被称为现场可编辑门阵列,它最初是由Xilinx公司提出的。自从20世纪80年代中期Xilinx公司生产了世界上第一片FPGA器件起,这种新型的可编程逻辑器件便以其优越的性能获得了业界设计人员的青睐,应用迅速普及起来。与其他的可编程逻辑器件相比,FPGA的规模可以做得很大,一片芯片集成几十万乃至上百万的逻辑门是常有的事。另外它的逻辑功能绝不限于逻辑门,而是可以具有较为复杂的逻辑功能,从而使得整个芯片的功能大大加强11。随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快性能高容量大体积小和微功耗的方向发

29、展。这种发展必将导致集成电路的设计规模日益增大,复杂程度日益增高。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的设计方法,这种方法使得电子系统设计变得更加简单方便,灵活快速现在随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。3.1.1 FPGA的基本结构简化的FPGA基本由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。每个单元的基本概念介绍如下12:(1)可编程输入/输出单元输入/输出(Input/Output)单元简称I/O单元,它们是芯片与外界电路的接口部分,完成不同电气

30、特性下对输入/输出信号的驱动与匹配需求。为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电路的大小等。可编程I/O单元支持的电气标准因工艺而异,不同器件商不同器件族的FPGA支持的I/O标准也不同,一般来说,常见的电气标准有LVTTL、LVCMOS、SSTL、HSTL、LVDS、LVPECL和PCI等。值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高,一些高端FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的

31、数据速率。(2)可编程编辑单元基本可编程逻辑单元式可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。(3)嵌入式块RAM目前大多数FPGA都有内嵌的块RAM(Block RAM)。FPGA内部嵌入可编程RAM模块,大大地拓展了FPGA的应用范围和使用灵活性。FPGA内嵌的块RAM一般可以灵活配置为单端口RAM(SPRAM,Single Port RAM)、双端口RAM(DPRAM,Double Ports RAM)、伪双端口RAM(Pseudo DPRAM)、CAM(Content Addressable Memory)、FIFO(First In First Ou

32、t)等常用存储结构。(4)丰富的布线资源布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。(5)底层嵌入功能单元底层嵌入功能单元的概念比较笼统,这里我们指的是那些通用程度较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP、CPU等。(6)内嵌专用硬核这里的内嵌专用硬核主要指那些通用性相对较弱,不是所有FPGA器件都包含硬核(Hard Core)。3.1.2 FPGA的优缺点FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。兼容了PLD和通用门阵列的优点,可实现较大规

33、模的电路,编程也很灵活。与门阵列等其它ASIC相比,它又具有设计开发周期短、设计制造成本低、开发工具先进标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA。 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 FPGA的基本特点

34、主要有: 一是采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。二是FPGA可做其它全定制或半定制ASIC电路的中试样片。三是FPGA内部有丰富的触发器和IO引脚。四是FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。五是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可操作性的最佳选择之一。鉴于本次毕业设计的需求,我选择了FPGA中的开发工具QuartusII。3.2开发工具QuartusIIQuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHD

35、L、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程13。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使

36、用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: (1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件; (2)芯片(电路)平面布局连线编辑; (3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; (4)功能强大的逻辑综合工具; (5)

37、完备的电路功能仿真与时序逻辑仿真工具; (6)定时/时序分析与关键路径延时分析; (7)可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; (8)支持软件源文件的添加和创建,并将它们链接起来生成编程文件; (9)使用组合编译方式可一次完成整体设计流程; (10)自动定位编译错误; (11)高效的期间编程与验证工具; (12)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件; (13)能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。3.3 Verilog语言Verilog HDL语言是1983年由GDA(Gateway Design Au

38、tomation)公司的Phil Moorby首创的,之后Moorby又设计了VerilogXL仿真器,VerilogXL仿真器大获成功,也使得Verilog HDL语言得到推广使用。1989年,Cadence收购了GDA,1990年,Cadence公司发表了Verilog HDL,并成立了OVI组织(Open Verilog International)专门负责Verilog HDL的发展。由于这种语言有简洁、高效、易用、功能强等优点,因此逐渐为众多设计者接受和喜爱。Verilog HDL于1995年成为IEEE标准,称为IEEE Standard 1364-199514。在本次毕业设计中我

39、采用了Verilog语言对信道编码进行编程。3.3.1采用硬件描述语言进行设计采用硬件描述语言(Hardware Description Language,HDL)进行电路与系统的描述是当前EDA技术的一个特征。与传统的原理图设计设计方法相比,HDL语言更适合描述规模大的数字系统,它能够使设计者在比较抽象的层次上对所设计系统的结构和功能进行描述。采用HDL语言设计的突出优点是:语言的公开可利用性;设计与工艺的无关性;大范围的描述能力;便于组织大规模系统的设计;便于设计的复用、交流、保存和修改等。目前常用的硬件描述语言有VHDL和Verilog HDL,它们都已经成为IEEE标准。3.3.2 V

40、erilog HDL语言的结构 Verilog HDL程序是由模块构成的。每个模块的内容都是嵌在 module和 endmodule 两个语句之间,每个模块实现特定的功能,模块是可以进行层次嵌套的。 每个模块首先要进行端口定义,并说明输入(input)和输出(output),然后对模块 的功能进行逻辑描述。Verilog HDL 程序的书写格式自由,一行可以写几个语句,一个语句也可以分多行写。 除了 endmodule 语句外,每个语句的最后必须有分号。 可以用/*/和/ 对 Verilog HDL 程序的任何部分作注释。3.3.3Verilog HDL语言的历史及与C语言的比较Verilog

41、 HDL语言是在C语言的基础上发展而来的。从语法结构上看,Verilog HDL语言与C语言有许多相同相似之处,继承和借鉴了C语言的很多语法结构,表3-1中列举了两种语言的许多相似之处,表3-2中对比了两者的运算符,可以看出两者的运算符几乎相同。当然Verilog HDL作为一种硬件描述语言,与C语言还是有着本质的区别的。表3-1 C语言与Verilog HDL的相似表 C语言 Verilog HDL function module,function If-then-else If-then-else for for while while case case break break define define printf printf int int表3-2 C语言与Verilog HDL的运算符比较 C语言 Verilog HDL 功能 + + 加 - - 减 * * 乘 / / 除 % % 取模 ! ! 逻辑非 & & 逻

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号