资源描述
,第二级,第三级,第四级,第五级,第,8,章,FPGA,电路设计实例,第8章,FPGA,电路设计实例,8.1,m,序列产生器,8.2 任意序列产生器,8.3 数字相关器,8.4 汉明距离的电路计算,8.5 交织编码器,8.6 直接数字频率合成,8.7 误码率在线测试,8.1,m,序列产生器,在扩展频谱通信系统中,伪随机序列起着十分关键的作用。在直接序列扩频系统的发射端,伪随机序列将信息序列的频谱扩展,在接收端,伪随机序列将扩频信号恢复为窄带信号,进而完成信息的接收。因此,伪随机序列产生器是扩频系统的核心单元。在实际的扩频通信系统中,伪随机序列一般用二进制序列表示,每个码片(即构成伪随机序列的元素)只有“1”和“0”两种取值,分别对应电信号的高电平和低电平。,m,序列又称为最长线性反馈移位寄存器序列,该序列具有很好的相关性能,所以在直接序列扩频系统中应用十分广泛。,m,序列的产生比较简单,可以利用,r,级移位寄存器产生长度为2,r,-1,的,m,序列。,m,序列产生器的结构主要分为两类,一类称为简单型码序列发生器(,SSRG,Simple Shift Register Generator),,另一类称为模块型码序列发生器(,MSRG,Modular,Shift Register Generator)。,图8.1给出了这两种产生器的基本结构,其中(,C,r,C,r-1,.,C,0,),和(,D,0,D,1,.,D,r,),为反馈系数,也是特征多项式系数。这些系数的取值为“1”或“0”,“1”表示该反馈支路连通,“0”表示该反馈支路断开。,图8.1,m,序列产生器的两种结构,r,级移位寄存器的反馈路径由,m,序列的特征多项式决定,对于,SSRG,结构,,m,序列特征多项式的一般表达式为,f,SSRG,(,x,),=,G,r,x,r,+,C,r,-1,x,r,-1,+.+,C,3,x,3,+,C,2,x,2,+,C,1,x,1,+,C,0,x,0,(8,-,1),对于,MSRG,结构,,m,序列特征多项式的一般表达式为,f,MSRG,(,x,),=,D,0,x,r,+,D,1,x,r,-1,+.+,D,r,-3,x,3,+,D,r,-2,x,2,+,D,r,-1,x,1,+,D,r,x,0,(8,-,2),可以看出,,SSRG,结构的特征多项式系数,(,C,r,C,r,-1,.,C,0,),与,MSRG,结构特征多项式系数(,D,0,D,1,.,D,r,),之间的对应关系为,C,i,=,D,r,-i,其中,i,=0,1,2,.,r,特征多项式系数决定了一个,m,序列的特征多项式,同时也就决定了一个,m,序列。表8.1给出了部分,m,序列的反馈系数,这些反馈系数实际上就是,m,序列特征多项式系数的八进制表示。,例如想要产生一个码长为31的,m,序列,码序列产生器的寄存器级数为5,从表8.1中查到有“45、67、75”三个反馈系数,可从中选择反馈系数“45”来构成,m,序列产生器。反馈系数“45”是一个八进制数,转换为二进制数为“100101”,这就是特征多项式的系数,对于,SSRG,结构,特征多项式系数的取值为,C,5,=,C,2,=,C,0,=1,C,4,=,C,3,=,C,1,=0,对于,MSRG,结构,特征多项式系数的取值为,D,5,=,D,3,=,D,0,=1,D,4,=,D,2,=,D,1,=0,表8.1,m,序列产生器反馈系数表,寄存器级数厂,m,序列长度,m,序列产生器反馈系数,3,7,13,4,15,23,5,3,l,45,67,75,6,63,103,147,155,7,127,203,211,217,235,277,313,325,345,367,8,255,435,453,537,543,545,551,703,747,9,511,1021,1055,1131,,t157,1167,1175,10,1023,2011,2033,2157,2443,2745,3471,ll,2047,4005,4445,5023,5263,6211,7363,12,4095,10123,11417,12515,13505,14127,15053 :,13,8191,20033,23261,24633,30741,32535,37505,寄存器级数,r,m,序列长度,m,序列产生器反馈系数,14,16383,42103,51761,55753,60153,71147,67401,15,32767,100003,110013,120265,133663,142305,164705,16,65535,210013,233303,307572,311405,347433,375213,17,131071,400011,411335,444257,527427,646775,714303,18,262143,1000201,1000241,1025711,1703601,19,524287,2000047,2020471,2227023,2331067,2570103,3610353,20,1048575,4000011,4001051,4004515,600003,l,根据特征多项式的系数可以构造出该,m,序列,图8.2是采用,SSRG,结构的,m,序列产生器电路。在这里,利用,D,触发器级联的方式完成移位寄存器的功能。在系统清零后,,D,触发器输出状态均为低电平,为了避免,m,序列产生器输出“全0”信号,图8.2在“模二加”运算后添加了一个,“非门”,这与图8.1中,SSRG,典型结构稍有不同。,图8.3是该电路的仿真波形,“,C,LRN”,为系统清零端(低电平有效),“,C,LK”,为输入时钟,“,OUT”,为,m,序列输出端口。图中还给出了“,A、B、,C,、,D,”,四个节点的波形,从这些点均可得到同一,m,序列,只是序列的初始相位不同。,图8.2,SSRG,结构的,m,序列产生器,图8.3,SSRG,结构,m,序列产生器的仿真波形,图8.4是采用,MSRG,结构实现的,m,序列产生器,图中在每个,D,触发器的输出端口上加了一个“非门”,使系统清零后各级,D,触发器的初始状态均为高电平,这样做同样可以避免输出“全0”情况的出现。图8.5是该电路的仿真波形。,图8.4,MSRG,结构的,m,序列产生器,图8.5,MSRG,结构,m,序列产生器的仿真波形,m,序列虽然有很好的伪随机性和相关特性,但是数量太少,而基于,m,序列产生的,Gold,码继承了,m,序列的许多优点,更重要的是,Gold,码序列的数量较多,因此广泛应用于扩频通信系统中。利用,m,序列产生器可以很容易地构造出,Gold,码产生器,篇幅所限,这里就不详细介绍了,感兴趣的读者可参阅有关文献。,8.2,任意序列产生器,m,序列产生器的结构可由特征多项式得到,但对于非,m,序列的产生电路的设计就比较复杂。很多有关脉冲与数字逻辑电路设计的书籍中都介绍了任意序列产生器的结构设计,如移存型序列产生器和计数器型序列产生器。这些方法虽然能够以最少的硬件产生所需的序列,但在设计时需要写出状态转移表,并通过组合逻辑运算产生所需序列。如果序列很长的话,整个设计过程是非常繁琐的,而且输出信号有可能出现毛刺。,利用,FPGA,器件产生任意序列有很多种方法,上面提到的移存型和计数器型序列产生器的设计方法当然是可行的,但在这里将介绍一种存储型任意序列产生器的设计方法。在设计存储型任意序列产生器时,设计人员不需要写状态转移表,也不需要进行组合逻辑运算,设计十分简便,而且不会出现逻辑冒险,保证了输出序列的质量。,存储型任意序列产生器就是将所需的序列事先存储到序列产生器中,序列产生器在时钟的激励下将存储的序列循环输出。它有两种实现形式,一种是利用移位寄存器实现,另一种是基于查找表(利用,FPGA,内的存储器)实现。,“00110000011111011010100100010111”是一个长度为32位的伪随机序列,下面就分别利用移位寄存器和查找表设计该序列的产生器。,图8.6是基于寄存器的32位任意序列产生器电路,它将4个8位并入串出移位寄存器“,cshi,fr,eg,”,模块级联,构成一个32位循环移位寄存器。32位数据放在寄存器的输入端口上,其中“0”接“,GN,D,”,,为低电平信号,“1”接“,V,CC,”,,为高电平信号。当“,STL,D,”,为低电平时,时钟脉冲将32位数据并行送入移位寄存器中,当“,STL,D,”,保持为高电平状态时,在时钟信号的激励下,32位数据在移位寄存器内循环移位,同时序列从“,D,ATAOUT”,端口输出。图8.7给出了仿真波形。,图8.6 基于寄存器的32位任意序列产生器,图8.7 基于寄存器的32位任意序列产生器仿真波形,图8.8是基于查找表的32位任意序列产生器,整个电路由两部分组成:地址产生器和基于,ROM,的查找表。,“,lpm,_,r,om,”,的参数设置为,LPM,_,WI,D,TH1,LPM,_,WI,D,THA,D,5,LPM,_,FILEe:max2wo,r,km.,mi,f,在“,m.,mi,f,”,文件中,从32位序列“00110000011111011010100100010111”的,MSB,到,LSB,依次对应地址“0000011111”。,地址产生器由“8,count”,构成,在时钟的激励下,“8,count”,的“,QEQA”,端口循环产生信号“0000011111”,将该信号作为地址信息在,ROM,中寻址,从而将32位序列从查找表中依次读出。,图8.8 基于查找表的32位任意序列产生器,图8.9是基于查找表的32位任意序列产生器仿真波形。“,A4.0”,是地址信号,取值,区间是“0000011111”,它与查找表中的32位数据一一对应。,存储型任意序列产生器与移存型和计数器型序列产生器相比较,设计过程十分简单,但需要消耗较多的硬件,如触发器和存储器。由于,FPGA,拥有大量的逻辑单元和存储单元,因此,FPGA,器件非常适合于实现存储型任意序列产生器。,在存储型任意序列产生器两种实现形式中,基于移位寄存器的实现方法,适于产生码长较短的序列,而基于查找表的实现方法,适于产生码长较长的序列。,图8.9 基于查找表的32位任意序列产生器仿真波形,8.3,数字相关器,数字相关器在通信信号处理中实质上是起到数字匹配滤波器的作用,它可对特定码序列进行相关处理,从而完成信号的解码,恢复出传送的信息。数字相关器与模拟相关器相比,其灵活性强、功耗低、易于集成,广泛用于帧同步字检测、扩频接收机、误码校正以及模式匹配等领域。,数字相关器一般包括:输入序列移位寄存器、参考序列移位寄存器、相关运算阵列和相关求和网络。图8.10给出了数字相关器的结构框图。,图8.10 数字相关器结构框图,在数字相关器工作时,参考序列首先被送入参考序列移位寄存器中,而输入数据流则在时钟驱动下被送入输入序列移位寄存器中。相关运算阵列对输入序列与参考序列之间进行相关运算,输入序列移位寄存器每更新一位数据,相关运算阵列就进行一次相关运算,然后将相关运算结果送入相关求和网络,由相关求和网络计算出相关值。,一般情况下,相关求和网络输出的相关值还需要与一个检测门限做比较,判断是否出现相关峰。当求和网络计算出的相关值高于检验门限时,就认为出现了相关峰。因此,检测门限的高低决定了相关峰虚警检测概率和漏警检测概率的大小。所谓虚警是指没有相关峰时,相关器误认为此时有相关峰出现,而漏警则是指当相关峰出现时,相关器误认为此时没有相关峰。最理想的情况是相关峰检测的虚警概率和漏警概率都较小,这样就能得到可靠的判决结果,,但是虚警概率和漏警概率不会同时减小。,如果把检测门限设置得较低,漏警概率降低,但虚警概率增大,反之,如果提高检测门限,虚警概率降低,但漏警概率却增大了。例如相关数据长度为32位,如果把门限设为32,则不会发生虚警,但是如果这32位中任意一位数据在传输中发生差错,即使有相关峰出现,由于此时的相关峰值低于32,就会误认为此时没有相关峰,以至于发生漏警。,合理设置检测门限,在相关器的虚警概率与漏警概率之间取一个折衷值是十分必要的,这样既不会明显降低相关器性能,又使得通信系统能够容忍少量的传输错误。在实际应用中,数字相关器前端一般都有一个预处理电路,如完成对接收信号的数字化处理、防混叠滤波、下采样等,进入到数字相关器中的样点值是用一定字长的二进制数表示的。本地参考序列如果包含有幅度信息的话,它的各个样点也是用一定字长的二进制数来表示的,。,输入数据序列与本地参考序列做相关运算,实际上就是这两个序列的对应位做乘法运算,然后再利用求和网络得到相关值。最简单的一种情况是序列中的各个样点都用一位二进制,数表示,这样就可以用逻辑运算(如模二加)来取代复杂的乘法运算。,我们知道,帧同步字用于指示帧的起始位置或结束位置,在典型的数字通信系统中,接收机需要在已解调的数据流中搜寻帧同步字,以确定帧的位置和帧定时信息。将数字相关器用于帧同步字检测的方法,特别适用于突发通信协议,如,T,D,M。,数字相关器是实现快速同步和锁定数据突发的关键。下面以一次群信号的帧同步字检测为例,讨论数字相关器的基本设计方法。,根据,CC,ITT G.732,建议,,A,律30/32路(一次群),T,D,M,-,P,C,M,传输标准的一个复帧包含16帧,一帧长为125,s,,每一帧含256位,分成32个时隙(时隙0时隙31),每个时隙包含8位数据。帧分为奇数帧和偶数帧,偶数帧时隙0的后7位为帧定位信号(,FAS,F,r,ame Alignment Signal)“0011011”。,也就是说,相邻的两个帧有一个帧同步码,相邻两个帧定位信号间距为512位。对一次群进行分接,首先要实现帧头的捕获,帧头捕获电路采用的数字相关检测方法,是数字相关器的一个典型作用。,表8.2 一次群帧同步码检测电路引脚,引 脚,功 能,DATAIN,数据输入,CLK,数据时钟输入,CLRN,系统复位端口,DETECTION,相关峰信号输出,SIGl,显示相关峰极性,SIG0,图8.11是一次群帧同步码检测电路,其中与“,VCC”,相连的线处于高电平,为“1”;与“,GND”,相连的线处于低电平,为“0”。表8.2给出了一次群帧同步码检测电路的引脚说明。,该电路可以有效地检测出一次群信号数据流中的特殊码字“0011011”。输入一次群数据流首先进入7位移位寄存器中,然后与本地参考序列“0011011”的对应位进行“异或”逻辑运算,然后再统计7位输出结果中“1”和“0”的数目。,需要指出的是,在二进制数据传输中,高电平信号“1”与低电平信号“0”只是一个相对的概念。如果相关结果全部为“1”,表明出现了相关峰;如果相关结果全部为“0”,同样也表明出现了相关峰,只不过是极性发生了翻转。认识到这一点,对于检测门限的设置是十分重要的。,为了简便起见,这里将相关峰检测门限设为7,也就是说只有在输入数据流中出现“0011011”或“1100100”字段时,才会判决输出正或负的相关峰。因此在图8.11中用一个七输入的“与门”完成正极性相关峰的检测,用一个七输入的“或非门”完成负极性相关峰的检测。输出引脚“,SIG1”,和“,SIG0”,分别表示相关峰的极性,当出现正相关峰时,“,SIG1”,为高电平;当出现负相关峰时,“,SIG0”,为高电平。,一次群帧同步码检测电路的波形仿真结果如图8.12所示,其中分别仿真了输入数据流中出现“0011011”和“1100100”字段时检测电路的输出结果。,图8.11 一次群帧同步码检测电路,图8.12 一次群帧同步码检测电路仿真波形,由于参考序列“0011011”是一个固定序列,因此在电路设计中没有使用参考序列移位寄存器,这样可以节省片内资源。如果要求参考序列是可在线编程的,就需要将参考序列放入到移位寄存器中,以便实时更新。,在上面的例子中,将相关峰检测门限设置为7是一种最简单的情况,在实际应用中如果将相关峰的检测门限设置为其它值,就需要用计数器或其它逻辑电路来统计相关结果中“1”或“0”的数目,从另一个角度看,也就是要计算相关结果的汉明距离。有关汉明距离的电路计算方法,将在8.4节中做详细介绍。,8.4,汉明距离的电路计算,汉明距离是编码理论中的一个重要概念,它的定义是两个长为,N,的二元序列,S,和,U,之间对应位不相同的位数,用,d(S,U),来表示。,在扩频通信和数字突发通信(如,TDMA),系统中,接收机进行的数字相关检测或独特码(,UW),检测,实际上就是计算本地一组确定序列与接收到的未知序列之间汉明距离的过程。将汉明距离与事先确定的门限相比较,就可以得到检测结果,检测器结构如图8.13所示。设检测的序列长度为,N,,本地码型确定的序列为,U,(,U,1,,,U,2,,,U,N,),图8.13 检测器结构图,接收机将接收到的数据连续不断地送入,N,位串行移位寄存器中,任一瞬间移位寄存器的内容为,S,(,S,1,,,S,2,,,S,N,),S,与,U,的对应位进行模二加,当,S,与,U,的对应位相同时结果为“0”,不同时结果为“1”,最后得到,D,(,D,1,,,D,2,,,D,N,),其中,D,i,S,i,U,i,(,i,1,2,,N,),(8,-,3),序列,D,中“1”的数目就是,S,与,U,之间的汉明距离,可表示为,(8,-,4),二元序列,D,是序列,S,与,U,的比较结果,要得到汉明距离的数值,必须从序列,D,中,计算出“1”的个数,其电路的实现方法有多种,下面一一进行分析。,8.4.1,计数法,在某一时刻,我们得到了一个二元序列,D,(,D,1,,,D,2,,,D,N,),,它存在的时间基本上为一个时钟周期,在下一个时钟到来时,由于序列,S,发生了变化,从而将序列,D,更新。为了计算出每一个时钟周期内序列,D,中“1”的数目,首先将序列,D,并行送入一个“并入串出”的,N,位移位寄存器中,然后用一个高速时钟将数据送出,同时利用计数器来统计“1”的数目,最后用清洗脉冲将计数器清零,为下一周期的计数做好准备,参见图8.14。,假设接收到的数据速率为,R,0,,,每位时间宽度为,T,0,,,则有,(8,-,5),由此可以确定计数时钟的最低速率为,(8,-,6),周期为,(8,-,7),计数法的实现电路比较简单,但是当数据速率,R,0,较高或,N,值较大时,计数时钟的速率,R,会很大,导致电路难以实现。因此,这种方法适合于低速数据,码序列不宜很长,而且需要有高速率的时钟和高速器件。,图8.14 计数法原理图,8.4.2,逻辑函数法,将序列,D,作为逻辑函数的输入变量,汉明距离作为输出变量,则输出变量的个数,I,为:,I,INT(log,2,N)1,(8,-,8),这里,,N,为序列,D,的长度,,INT(X),表示取,X,的整数部分。根据输入变量值写出对应的输出变,量值,得到其真值表,从而建立逻辑函数表达式。,但它不是最简的,通常采用公式法或卡诺图法对其进行简化,得到最简的逻辑计算电路。在,N,值较大的情况下可采用系统简化法(又称,Q,-,M,法),这种方法适用于化简任意多变量的函数,并且具有较严格的算法,可以将此函数的简化问题编程,借助于计算机进行化简。,逻辑函数法的计算电路使用了大量的与或非门,其计算速度决定于信号通过逻辑门的延迟时间及布线距离的长短,一般说来,可以达到较高的计算速度。但是随着,N,的增大,计算电路将越来越复杂,并且,N,值不同,实际电路结构也不相同,必须重新设计。同时,在电路设计中,必须消除逻辑冒险。,8.4.3,查找表法,所谓查找表法,就是将存储器做成一个查找表,把序列,D,作为地址信号,从表中查找出其对应的汉明距离。图8.15说明了这种方法。,序列,D,的长度为,N,,,存储单元的数据宽度为,P,,,则,P,INT(log,2,N,)1,(8,-,9),从而要求存储器的容量,M,为,M,2,N,P,(8,-,10),图8.15 查找表法,可见,随着序列长度,N,的增加,存储器容量成几何级数增长,当,N,30,时,存储量将超过5,Gb,,,实际电路难以实现。所以,在码序列较短的情况下,使用查找表法比较方便。此方法的计算速度与存储器的寻址时间有关,选用高速器件,可以达到较高的计算速度。,8.4.4,求和网络法,求和网络法的原理图见图8.16所示,它的工作原理很简单,即将序列,D,中的各项逐个加在一起,最终累加结果便是汉明距离。求和网络法在网络结构上可分为并行求和网络和串行求和网络两种,这两种结构所需加法器的数目,J,是一样的,均为,J,N,-1,(8,-,11),在一般情况下,为了保证计算结果的可靠性,需要将序列,D,用,N,位寄存器锁存。在求和网络中,信号每经过一次加法运算,就引入一定的延迟。但是,串行求和网络与并行求和网络的信号总延迟,是不同的,显然,串行,并行,(8,-,12),因为信号总的延迟时间不能超过数据码元周期,T,0,,,即有,T,0,串行,并行,(8,-,13),所以并行求和网络的工作速度要高于串行求和网络。,图8.16 求和网络法原理图,8.4.5 组合应用,以上介绍了四种计算汉明距离的方法,它们各有优缺点,在具体应用中,如果将几种方法组合使用,计算电路会更加合理、高效。图8.17给出了计数-求和网络法的原理框图,在这里,我们重点讨论图8.18所示的查找表-求和网络法。,图8.17 计数求和网络法原理图,图8.18 查找表-求和网络法原理图,在查找表-求和网络法中,需要解决的问题是:怎样才能使存储器总容量与求和网络中加法器的数目达到最佳。如图8.18所示,可将查找表分解成若干个子查找表,分别由存储器1,K,构成。,首先将长度为,N,的序列,D,等间距地分成,K,段,为了便于分析并不失一般性,令,N,2,m,,,K,2,n,且,m,n,0,,m,,,n,均为整数,,那么存储器的地址线宽度为,2,m,-,n,,,每个存储单元的数据宽度为(,m,-,n,1),,则存储器1,K,的容量均为,M,2,m,-,n,(,m,-,n,1),(8,-,14),进而可以计算出存储器的总容量为,M,总,K,M,2,m,-,n,(,m,-,n,1),(8,-,15),显然,与(8,-,10)式相比,将一个大的查找表分割成若干个子查找表,可以减少存储器的容量。同样,由(8,-,11)式可知,求和网络中加法器的总数目为,J,总,K,-12,n,-1,(8,-,16),图8.19,m-J,总,-,log,2,M,总,关系曲线,在上述讨论中,我们曾令,N,2,m,,,K,2,n,,,且,m,n,0,,m,,,n,均为整数,当2,m,N,2,m,-1,,2,n,K,2,n,-1,,,且,m,n,1,,m,,,n,均为整数时,经同样分析(从略)可知,(8,-,11)、(8,-,16)式给出了此时存储器容量和加法器数目的上限。,由(8,-,15)和(8,-,16)式可知,当,n,m,时,,M,总,2,n,,,J,总,2,m,-1,,原方法等效为求和网络法;当,n,0,时,,M,总,2,N,(,m,1),,J,总,0,原方法等效为查找表法。我们将(8,-,15)和(8,-,16)式结合起来,绘成,m-J,总,-,log,2,M,总,关系曲线,如图8.19所示。值得注意的是,在序列长度确定的条件下(即,m,确定),,M,总与,J,总的大小是可以相互转换的,这个特点对于采用可编,程逻辑器件计算汉明距离尤为重要。,因为可编程逻辑器件的存储单元和逻辑单元属于两种不同的芯片资源,它们是有限的。加法器一般可由逻辑单元构成。在较复杂的专用集成电路设计中,其它功能模块可能已经占用了较多的存储单元,或者占用了较多的逻辑单元,而汉明距离的计算电路则可根据有效的芯片资源,恰当地选择,M,总与,J,总值,使整个系统的资源利用率达到最佳。下面我们给出查找表-求和网络法的一个应用实例。,图8.20 32位序列汉明距离计算电路原理图,在某通信系统的检测单元中,需要实时计算出长度为32位的接收序列与本地序列之间的汉明距离,同时要求实际电路能够充分利用,Altera,公司,EPF10K10,芯片内的存储单元,尽量节省逻辑单元以容纳其它的功能模块。,EPF10K10,芯片的存储单元由三个,EAB,块组成,每个,EAB,块的存储容量为2048位,可以配置成5124的查找表,其中地址线宽度为9,数据线宽度为4,。,设序列,D,(,D,1,,,D,2,,D,32,),,分别将(,D,6,,,D,7,,,D,14,),(,D,15,,,D,16,,,D,23,),(,D,24,,,D,25,,,D,32,),作为查找表的地址线,由此可以计算出序列(,D,6,,,D,7,,,D,32,),的汉明距离。序列(,D,1,,,D,2,,,D,5,),的汉明距离可以采用逻辑函数法获得。图8.20给出了32位序列汉明距离电路计算原理图。,由(8,-,8)式可知,逻辑计算电路有三个二进制输出变量,由最高有效位到最低有效位依次设为,A、B、,C,,,其逻辑表达式为,图8.21是32位汉明距离计算的电路图,其中用三个“,lp,m,_,r,o,m,”,模块构建查找表,用“,c5,in,3out”,模块完成逻辑电路计算功能,最后用三个加法器将各项相加,就得到最终计算结果。整个计算电路使用了芯片100的存储单元和5的逻辑单元,其中,逻辑计算电路占2,加法器占3。如果完全采用逻辑函数法,则需要占用芯片15的逻辑单元,因此图8.21所,示的汉明距离计算电路为该通信系统的检测单元节省了10的逻辑单元。,图8.21 32位序列汉明距离计算电路图,图8.22给出了部分电路仿真波形,其中序列,D,从端口“,DATAIN31.0”,输入,用十六进制数表示,计算结果从“,OUT3.0”,输出,用十进制数表示。,图8.22 32位序列汉明距离计算电路仿真波形,8.5 交织编码器,8.5.1 交织编码的原理,数字通信系统进行数据传输时,不可避免地会在接收端产生差错。在这种情况下,如果单纯通过改进信道的性能来降低误码率,在某些情况下是不切实际或不经济的。因此,数字,通信系统通常采用前向纠错编码的方法来纠正在传输过程中产生的误码。,目前常用的纠错码包括分组码和卷积码,它们都是按一定规律在原始信息序列中有意加上一些不含信息的多余比特,其作用是监督所有码组经过信道传输后是否有差错,以便在接收端根据码组中规定的监督关系对出现差错的码组进行纠错。,每一种纠错码都只具备有限的纠错能力。当连续误码个数超过它的纠错能力之后,接收端的纠错译码便不能有效地降低信道误码率,甚至还会造成某种程度的恶化。为了克服信道中出现突发性差错,需要使用交织编码技术,其作用就是将连续误码分散成非连续误码,增大纠错码的约束长度。数字通信系统采用纠错码和交织编码,就具有了既能纠正随机差错,又能克服突发性差错的功能,大大提高了通信质量。此外,交织编码器在,Tu,r,bo,码设计中也起着十分重要的作用。,图8.23是纠错编码与交织编码电路连接关系图。交织编码根据交织图案形式的不同,可分为线性交织、卷积交织和伪随机交织。其中线性交织编码是一种比较常见的形式,在这里,我们主要向大家讲述线性交织编码器的,F,P,GA,设计。,图8.23 纠错编码与交织编码的连接关系,图8.24,n,m,交织矩阵,所谓线性交织编码器,是指把纠错编码器输出信号均匀分成,m,个码组,每个码组由,n,段数据构成,这样就构成一个,n,m,的矩阵。我们把这个矩阵称为交织矩阵,如图8.24所示。数据以,a,11,,,a,12,,.,,a,1,n,,,a,21,,,a,22,.,,a,2,n,,.,,a,i,j,,.,a,m,1,a,m,2,.,a,mn,(,i,=1,2,.,m,;,j,=1,2,.,n,),的顺序进入交织矩阵,再以,a,11,,,a,21,,.,a,m,1,a,12,a,22,.,a,m,2,.,a,i,j,,.,a,1,n,,,a,2,n,,.,,a,mn,的顺序从交织矩阵中送出,这样就完成了对数据的交织编码。,当然还可以按照其它顺序从交织矩阵中读取数据,不管采用哪种形式,其最终目的都是把输入数据的次序打乱。,如果,a,i,j,只包含一个数据比特,称为按位交织;如果,a,i,j,包含多个数据比特,则称为按字交织。接收端的交织译码同交织编码过程相类似,也是通过图8.24的交织矩阵来完成,它们的结构是一样的。在这里,我们只讨论交织编码器,当然它也可以用来做交织译码。,根据,Alte,ra,公司,FLEX,系列器件的内部结构特点,可以采用两种方法设计交织编码器。一种方法是利用,FLEX,器件的逻辑单元,用移位寄存器完成交织;另一种方法是利用,EAB,资源,用存储器实现交织编码。下面分别进行讨论。,8.5.2,利用移位寄存器实现交织编码,图8.25所示为利用移位寄存器实现44交织编码器(,m,n,4),工作原理方框图,输入移位寄存器和输出移位寄存器的容量均为16比特,该交织器每次完成16比特数据的交织编码。图8.26为44交织编码器的交织矩阵。设“015”为输入16比特数据的编号,输入数据在时,钟的作用下,,按照“0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15”的顺序进入“输入移位寄存器”,在时序控制单元的控制下,经过交织网络,进入“输出移位寄存器”,然后以“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的顺序输出,从而完成交织编码。,图8.25 基于移位寄存器的交织编码器工作原理方框图,表8.3 基于移位寄存器的交织编码器引脚,引 脚,功 能,DATAIN,数据输入,CLK,数据时钟输入,CLRN,系统复位端口,DATAOUT,交织编码数据输出,CLKOUT,交织编码数据时钟输出,图8.26 44交织矩阵,图8.27 利用移位寄存器实现的交织编码器,图8.27 利用移位寄存器实现的交织编码器,图8.27是利用移位寄存器所实现的交织编码器电路图,表8.3给出了交织编码器的引脚关系。“输入移位寄存器”由两个“74164”级联实现,“输出移位寄存器”由两个“,csh,ifr,eg,”,级联实现。表8.4为输入数据和输出数据编号的对应关系,利用对应关系将相应编号的端口相连接,就构成了“交织网络”。时序控制单元是一个模16同步计数器,当“输入移位寄存器”读入16比特数据后,时序控制单元产生一个脉冲信号,将这些数据通过“交织网络”送入“输出移位寄存器”,此时该移位寄存器内的数据已经按照交织编码后的顺序排列。在,时钟的驱动下,将“输出移位寄存器”内数据顺序送出,即为交织编码后的数据。,图8.28是该交织编码器的仿真波形,节点“,Q”,处的脉冲信号每16个时钟周期出现一次,“输入移位寄存器”中的数据在脉冲信号控制下被送入“输出移位寄存器”,同时在交织网络中完成交织编码。时钟“,CLKOUT”,是输入时钟“,CLK”,的反相时钟,其上升沿对应着数据信号的中间位置,这样可以保证数据的可靠读取。“,DATAIN”,是数据输入端,系统清零后输入的前16个数据比特为“1101010001001110”,经交织后,“,DATAOUT”,输出的数据比特为“1001111100011000”。,表8.4 输入数据和输出数据编号的对应关系,图8.28 交织编码器仿真波形(一),8.5.3 利用存储器实现交织编码,FPGA,器件中的,EAB,可以实现复杂的逻辑功能,当用作存储器时,其存储数据的宽度和深度可由设计人员任意指定,甚至还可以把若干个,EAB,连接起来组成容量更大的存储单元。因此利用存储器可以方便地构造出交织深度很大的交织编码器。,图8.29 基于存储器的交织编码器工作原理方框图,图8.29是利用双端口,RA,M,实现的交织编码器工作原理方框图,由图可看出,交织编码器设计的关键在于“读/写地址”的产生。一般说来,有两种设计“读/写地址”的方法:一种方法是“顺序写入、乱序读出”,即输入数据以顺序地址写入存储器,然后再以交织地址从存储器中读出;另一种方法是“乱序写入、顺序读出”,即输入数据以交织地址写入存储器,然后再以顺序地址从存储器中读出。这两种方法是等效的,在下面的例子中,我们采用“顺序写入,乱序读出”的方法。,将双端口,RA,M,存储空间划分为两部分,在交织器工作时,这两部分存储空间交替进行读/写操作。,图8.30是44交织编码器的电路图,双端口,RA,M,由“,lp,m,_ram_,dp,”,宏模块构成,该模块的逻辑参数见表8.5和表8.6所示。,图8.30 利用双端口,RAM,实现的交织编码器,图8.30 利用双端口,RAM,实现的交织编码器,表8.5“,lp,m,_ram_,dp,”,宏模块的基本逻辑参数(一),表8.6 “,lpm,_ram_,dp,”,宏模块的基本逻辑参数(二),图8.30中“,lpm,_ram_,dp,”,宏模块的参数设置为,LPM_WIDTH=1,LPM_WIDTHAD=5,输入输出数据线的宽度为“1”,读/写地址线的宽度为“5”,5位“写地址”为“,WRADDRESS4.0”,5,位“读地址”为“,RDADDRESS4.0”,,总寻址空间为“32”比特。,“写地址”的低4位“,WRADDRESS3.0”,由计数器“4,count”,的输出端口“,QAQD”,产生。“读地址线”的产生比较复杂,需要通过状态转移图得到。我们已经知道,交织器编码数据按照“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的顺序输出,其地址(低4位地址)状态转移图为,表8.7“读地址”与时钟对应关系,读地址,与时钟对应关系,RDADDRESS4,时钟的32分频,RDADDRESS3,时钟的4分频,RDADDRESS2,时钟的2分频,RDADDRESS,工,时钟的16分频,RDADDRESS0,时钟的8分频,由状态转移图可以得到“读地址”的低4位“,RDADDRESS3.0”,与数据时钟之间有表8.7所述的对应关系。因此,可以很容易地用分频器得到“读地址”。,“读/写地址”的最高位“,RDADDRESS4/WRADDRESS4”,是反相关系,使存储器在“0000001111”和“1000011111”两段地址空间内交替“读/写”操作。这两段空间交替“读/写”一次对应32个数据时钟周期,所以“,RDADDRESS4/WRADDRESS4”,可由数据时钟的32分频得到。,图8.30用5个,D,触发器构成了一个32分频器,从各级,D,触发器输出端可得到5位“读地址”以及“写地址”的最高位“,WRADDRESS4”。,表8.8给出了基于,RAM,结构的交织编码器的引脚关系,为了便于测试,将“读/写地址”和“模16计数信号”也用输出管脚引出。“,CLKOUT”,是时钟“,CLK”,的反相信号。“读/写”地址转换的时候会出现许多“毛刺”信号,用“,CLKOUT”,作为存储器“读/写”时钟可以避免“毛刺”的影响,保证数据的可靠读取。,“读地址线”的产生比较复杂,需要通过状态转移图得到。我们已经知道,交织器编码数据按照“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的顺序输出,其地址(低4位地址)状态转移图为由状态转移图可以得到“读地址”的低4位“,RDADDRESS3.0”,与数据时钟之间有表8.7,所述的对应关系。,因此,,可以很容易地用分频器得到“读地址”。,表8.8 基于,RA,M,的交织编码器引脚,引 脚,功 能,DATA,工,N,数据输入,ClK,数据时钟输入,CLRN,系统复位端口,DATAOUT,交织编码数据输出,CLKOUT,交织编码数据时钟输出,Q,模16计数信号,WRADDRESS 4。0,写地址,RDADDRESS 40,读地址,图8.31是交织编码器的仿真波形。从图中的局部放大图可以看到“读/写”地址的对应关系与交织矩阵完全一致。图中还标出了输入的前16个数据比特为“110
展开阅读全文