企业动态 NEWS

  • 操纵FPGA手艺实现数字通信中的交错器息争交错器
    发布时间:2019-05-23   浏览次数:

      数字通信中经常用信道编码来提高数据传输的靠得住性,此中一些信道编码插手了交错模块,以进一步提高抗干扰机能。交错器的次要感化就是将原始数据序列打乱,使得交错前后数据序列的相关性削弱,如许做很凸起的一个长处即是大大降低了数据突发错误的影响。正在现代的高效编码调制手艺中,无论是级联编码仍是Turbo编码中都要利用交错器。

      当需要对某一信号做一段延不时,初学者往往正在此信号后串接一些非门或其它门电,此方式正在分手电中是可行的。但正在FPGA中,开辟软件正在分析设想时会将这些门当做冗余逻辑去掉,达不到延时的结果。用Altera公司的Maxplus II开辟FPGA时,能够通过插入一些LCELL原语来发生必然的延时,但如许构成的延时正在FPGA芯片中并不不变,会随温度等外部的改变而改变,因而Altera并不倡导如许做。正在此,沿用上一段中的思惟,能够用高频时钟来驱动一移位寄放器,待延时信号做数据输入,按所需延时准确设置移位寄放器的级数,移位寄放器的输出即为延时后的信号。此方式发生的延时信号取原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,正在输出端用数据时钟对延时后信号从头采样,就能够消弭误差。

      解交错器的阐发方式雷同。由模子二可推算出,当系统写双口RAM的E单位时,读从0地址单位起头,故解交错器的最小时延为:(28×7×8+1)T= 1569T。

      无论是交错器仍是解交错器,数据缓冲区的读相对于写必需有一个延时,这个延时即为交错器息争交错器的时延。为了尽量减小系统的时延,应使交错器息争交错器的时延降至最小。

      本课题中的交错器正在图2所示的模子和编址方式下,读、写地址序列具有较强的纪律性,能够用正在FPGA中构制计数器的体例来间接发生。下面引见一下地址序列的发生方式。将11位地址分成两部门:高3位和底8位,正在物理实现上构制3位和8位计数器各一个,然后级联起来。对于交错器的读地址序列,具体实现时,用数据输入时钟DataInClk驱动3位计数器计数,3位计数器记满同步清0时发生脉冲驱动8位计数器计数,8位计数器计到218后同步清0。交错器的写地址序列发生稍复杂,但同样可用两计数器的级联发生。

      正在本课题中,交错器的几个参数别离为:n=219,Id=8,di=[]=28。图2是实现交错器模子。

      解交错器将交错器打乱的字节序列从头陈列恢回复复兴始码字。如图1,即将串行输入的字节序列先按列体例读入,再逐行将码字读出。从图中能够看出,行取行的码字间均有di字节交织,这种斜交错体例的长处能够减小系统时延。

      无论用仍是来节制读取,都需要或连结一段低电平。令连结低电平,日常平凡为高电平,读双口RAM时触发CE变为低电平,延迟一小段时间再恢复高电平。本设想发生这段延时的方式是用高频计数器发生,具体方式为:正在FPGA中设想一个计数器,取系统可用的高频时钟(周期小于所需延时)驱动它计数,计到设定好的终值时发生触发脉冲。分歧的计数终值能够发生分歧的延时。此方式所发生的延时为高频时钟周期的整数倍,若高频时钟周期取所需延时比拟很小,则延时较切确,不然只能做一粗略的延时。

      数字通信中常用的交错器按交错体例可分为分组交错器和随机交错器两种,按交错对象分可分为字节交错和位交错。本文所引见的实现方案次要针对字节交错器。下面用一个模子来申明交错器的工做过程。设外码RS码字长度为n=7,交错器深度Id=4,相邻码字之间的交织字节数di=[]=Smallest Integer=2,则交错器的功能如下图1所示。

      图中粗线内的方块区域为实现交错器所必需的一块数据缓冲区(存储器),考虑到交错器的功能特征是须对此缓冲区同时读写,故选用双口RAM实现最好,由于1024<219×8<2048,故容量用2Kbytes即可。模子中所标识的数字是存储器的地址,画斜线的区域为空闲缓存区,左边存储器外虚线下数据现实上是存储正在存储器左下角的区域内。交错器现实工做时,一边按写地址序列向缓存区中写入数据,另一边按读地址序列读出。图2模子的写地址序列为:0,1,2...218,284,285...437,256,257...283,568,569...656,512,513...567,852......,顺次写入每行,曲到1987,下一字节再从0地址起头,轮回写入。读地址序列为:0,256,512,768,1024...1792,1,257,513......,曲到1751地址,再从0地址起头轮回。

      目上次要的FPGA厂商有Xilinx、Altera、AMD、Lattice、Actel、Lucent及Atmel等。Altera公司出产的FLEX 10K系列的FPGA,具有规模笼盖范畴广、布线资本丰硕、时间可预测性好的长处,故而正在数字通信系统设想中获得了普遍的使用。此外,FLEX 10K系列芯片都具有EAB(Embeded Array Block),能够实现片内存储器功能,若用EAB做交错器、解交错器的数据缓存区,就能够用单片FPGA完成交、解交错器的功能,从而大大减小电的复杂度和体积。但现实使用中,因为FLEX 10K芯片的片内EAB资本无限,所以要完全实现交、解交错器,至多要选择FLEX 10K130(内部有13万门摆布的资本)以上规模的FPGA。可是实现交错器的时序节制逻辑并不复杂,大要需要一万门摆布的资本就够了,再加上系统其它功能块也不外几万门,若利用10K130芯片就会形成资本华侈,并且成本过高。分析考虑,决定用外部双口RAM(IDT 7132)当做数据缓冲区,FPGA选用FLEX 10K20芯片。

      图3即为用FPGA实现交错器的道理框图,FPGA的内部可由读、写地址序列发生器和时序节制器三部门构成。时序节制器次要发生双口RAM读写节制信号,并决定读、写地址序列发生器何时启动工做。由于解交错器仅是数据进出双口RAM的挨次分歧,故上道理图中只须变换读、写地址序列发生器便可形成解交错器。

      总之,本文着沉引见了用FPGA实现数字通信中的交、解交错器的一种比力通用的方案。其它品种的交错器,只需改换读、写地址发生模块,确定读、写时差即可完成。除了随机交错器须用查找表的体例发生读地址序列外,大部门的交错器读、写地址都可用本文引见的雷同方式实现,如许既节流芯片,缩小电体积,速度又快,调试也大大简化。文中还引见了一种实现FPGA中信号粗略延时的方式以供大师参考。

      不单能大大缩减电的体积,提高电的不变性,并且先辈的开辟东西使整个系统的设想调试周期大大缩短。

      最一般的方案为查找表的方式。令输入数据挨次存入双口RAM,即写地址序列变为:0,1,2,3...1750,1751,0......,对照模子找出对应的读地址序列。如许从头编址的益处是使写地址序列易于发生,能够由FPGA间接生成。将读地址序列做成表挨次存入E2PROM(或其它只读存储器,如Flash),需要读双口RAM时,FPGA发生0,1,2...1751挨次序列做地址送给E2PROM,映照出的数据送给双口RAM做读地址。这种查找表的方式具有很好的通用性,能够合用于各类字节交错器,但错误谬误是须额外附加存储器,并且E2PROM的读取速度一般较慢,正在数据传输速度较高的环境下不合用。

      起首阐发交错器,设数据周期为T,则每个缓冲区单位的读或写地址的连结时间也为T。调查图2模子中从第i行的交织后的第一个元素A到第i+1行的元素B所用的时间,若按写操做进行需219×T,按读操做进行需(28×8+1)T=225T>219T。这表白若读、写同时从0地址起头,则缓冲区那的每个存储单位的写操做都正在读操做之前,从而每个读出的数据都无效。这里对于交织所发生的左下角区域元素,交错器起头工做时读出的都是无效数据,但正在轮回来去的持续数据读写中,读出的则是上一页所写码字的部门字节,是无效数据。故正在交错器中,读、写缓冲区能够同时起头,考虑到双口RAM对统一单位不克不及同时读写,所以设想时令读畅后于写一个数据周期T,如许交错器的最小时延为T。

      正在FPGA的开辟设想中,经常需要用到延时模块。如本设想中,实现双口RAM的读写时序时就需要。以IDT 7132的读时序为例,时序图如图4所示。

      相关链接:

友情链接:
Copyright 2018-2022 https://www.hn99shop.com All Rights Reserved. 版权所有