您的位置 首页 培训

使用FPGA技能完成数字通信中的交错器宽和交错器

介绍用FPGA实现数字通信中的交、解交织器的一种比较通用的方案,详细说明了设计中的一些问题及解决办法。还介绍了一种实现FPGA中信号延时的方法。

在现代数字通信体系中,FPGA的运用适当广泛。尤其是在对基带信号的处理和整个体系的操控中,FPGA不但能大大减缩电路的体积,进步电路的安稳性,并且先进的开发工具使整个体系的规划调试周期大大缩短。

1 交错器与解交错器的原理

数字通信中常常用信道编码来进步数据传输的可靠性,其间一些信道编码加入了交错模块,以进一步进步抗干扰功用。交错器的首要作用就是将原始数据序列打乱,使得交错前后数据序列的相关性削弱,这样做很杰出的一个长处就是大大降低了数据突发过错的影响。在现代的高效编码调制技能中,不管是级联编码仍是Turbo编码中都要运用交错器。

数字通信中常用的交错器按交错办法可分为分组交错器和随机交错器两种,按交错目标分可分为字节交错和位交错。本文所介绍的完结计划首要针对字节交错器。下面用一个模型来阐明交错器的作业进程。设外码RS码字长度为n=7,交错器深度Id=4,相邻码字之间的交错字节数di=[]=Smallest Integer≥=2,则交错器的功用如下图1所示。


输入码字按行摆放,按列输出,图中“*”为无效数据,即交错器输出的前端有一些无效数据。

解交错器将交错器打乱的字节序列从头摆放康复原始码字。如图1,即将串行输入的字节序列先按列办法读入,再逐即将码字读出。从图中能够看出,行与行的码字间均有di字节交错,这种斜交错办法的长处能够减小体系时延。

2 交错器的完结

2.1 完结模型:
在本课题中,交错器的几个参数分别为:n=219,Id=8,di=[]=28。图2是完结交错器模型。


图中粗线内的方块区域为完结交错器所有必要的一块数据缓冲区(存储器),考虑到交错器的功用特性是须对此缓冲区一起读写,故选用双口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地址开端循环。

关于解交错器,读地址序列正好是交错器的写地址序列,写地址序列是交错器的读地址序列。

2.2 FPGA的选用及完结的原理框图

现在首要的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的次序不同,故上原理图中只须变换读、写地址序列发生器便可构成解交错器。

3 完结中的若干问题

3.1 读写地址的发生问题

最一般的计划为查找表的办法。令输入数据次序存入双口RAM,即写地址序列变为:0,1,2,3…1750,1751,0……,对照模型找出对应的读地址序列。这样从头编址的优点是使写地址序列易于发生,能够由FPGA直接生成。将读地址序列做成表次序存入E2PROM(或其它只读存储器,如Flash),需求读双口RAM时,FPGA发生0,1,2…1751次序序列作地址送给E2PROM,映射出的数据送给双口RAM作读地址。这种查找表的办法具有很好的通用性,能够适用于各类字节交错器,但缺陷是须额定附加存储器,并且E2PROM的读取速度一般较慢,在数据传输速率较高的状况下不适用。

本课题中的交错器在图2所示的模型和编址办法下,读、写地址序列具有较强的规律性,能够用在FPGA中结构计数器的办法来直接发生。下面介绍一下地址序列的发生办法。将11位地址分红两部分:高3位和底8位,在物理完结上结构3位和8位计数器各一个,然后级联起来。关于交错器的读地址序列,详细完结时,用数据输入时钟DataInClk驱动3位计数器计数,3位计数器记满同步清0时发生脉冲驱动8位计数器计数,8位计数器计到218后同步清0。交错器的写地址序列发生稍杂乱,但相同可用两计数器的级联发生。

3.2 交错、解交错器的最小时延问题

不管是交错器仍是解交错器,数据缓冲区的读相关于写有必要有一个延时,这个延时即为交错器宽和交错器的时延。为了尽量减小体系的时延,应使交错器宽和交错器的时延降至最小。

首要剖析交错器,设数据周期为T,则每个缓冲区单元的读或写地址的坚持时刻也为T。调查图2模型中从第i行的交错后的第一个元素A到第i+1行的元素B所用的时刻,若按写操作进行需219×T,按读操作进行需(28×8+1)T=225T>219T。这表明若读、写一起从0地址开端,则缓冲区那的每个存储单元的写操作都在读操作之前,然后确保每个读出的数据都有用。这儿关于交错所发生的左下角区域元素,交错器开端作业时读出的都是无效数据,但在循环往复的接连数据读写中,读出的则是上一页所写码字的部分字节,是有用数据。故在交错器中,读、写缓冲区能够一起开端,考虑到双口RAM对同一单元不能一起读写,所以规划时令读滞后于写一个数据周期T,这样交错器的最小时延为T。

解交错器的剖析办法相似。由模型二可推算出,当体系写双口RAM的E单元时,读从0地址单元开端,故解交错器的最小时延为:(28×7×8+1)T= 1569T。

3.3 FPGA中延时功用的完结

在FPGA的开发规划中,常常需求用到延时模块。如本规划中,完结双口RAM的读写时序时就需求。以IDT 7132的读时序为例,时序图如图4所示。


不管用仍是来操控读取,都需求坚持一段低电平。令坚持低电平,平常为高电平,读双口RAM时触发CE变为低电平,推迟一小段时刻再康复高电平。本规划发生这段延时的办法是用高频计数器发生,详细办法为:在FPGA中规划一个计数器,取体系可用的高频时钟(周期小于所需延时)驱动它计数,计到设定好的终值时发生触发脉冲。不同的计数终值能够发生不同的延时。此办法所发生的延时为高频时钟周期的整数倍,若高频时钟周期与所需延时比较很小,则延时较准确,不然只能做一大略的延时。

当需求对某一信号作一段延不时,初学者往往在此信号后串接一些非门或其它门电路,此办法在别离电路中是可行的。但在FPGA中,开发软件在归纳规划时会将这些门当作冗余逻辑去掉,达不到延时的作用。用Altera公司的Maxplus II开发FPGA时,能够经过刺进一些LCELL原语来发生必定的延时,但这样构成的延时在FPGA芯片中并不安稳,会随温度等外部环境的改动而改动,因而Altera并不发起这样做。在此,沿用上一段中的思维,能够用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此办法发生的延时信号与原信号比有差错,差错巨细由高频时钟的周期来决议。关于数据信号的延时,在输出端用数据时钟对延时后信号从头采样,就能够消除差错。

总归,本文侧重介绍了用FPGA完结数字通信中的交、解交错器的一种比较通用的计划。其它品种的交错器,只需更换读、写地址发生模块,确认读、写时差即可完结。除了随机交错器须用查找表的办法发生读地址序列外,大部分的交错器读、写地址都可用本文介绍的相似办法完结,这样既节约芯片,缩小电路体积,速度又快,调试也大大简化。文中还介绍了一种完结FPGA中信号大略延时的办法以供我们参阅。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/196712.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部