您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

用FPGA计划软件无线电和调制解调器

发布日期:2011-04-27

    本文以16-QAM RF发射数据泵的计划为例,先容利用FPGA计划数字滤波器的本领和器件选择要领,阐明实行散布式谋略时FPGADSP的良好之处。 

    ·全部数字逻辑的根本布局 
    ·16-QAM调制器 
    ·编码和码元映射 
    ·平方根升余弦滤波器 
    ·计划本领 
    ·5 MHz载波 
    ·散布式谋略(DA)技能 
    ·滤波器的实现

    用现场可编程门阵列(FPGA)计划软件无线电和调制解调器可与DSP芯片媲美。固然FPGA可安若泰山地实现卷积编码器等巨大逻辑成果,但在实现大量巨大谋略方面却有很大的缺陷。纵然用最快的FPGA来实现矩阵乘法器,其本钱和性能也抵不上一个仅值5美元的DSP芯片。在用CAD东西计划时DSP还是首选芯片,但是随着散布式谋略(DA)技能的应用,FPGA再次受到计划师的喜好。 

    FPGA的特性之一是布局机动。究竟上无线和调制解调数据通道的成果模块很容易映射到独立和并行的硬件节点上。采取一个只能分时运行的数字信号处理惩罚器时,调理多个时间请求紧急的任务必要非常巨大的编程,而采取FPGA就克制了这一题目。 

    我们将在计划16-QAM射频发射数据泵的同时先容FPGA特性,并细致形貌怎样方便地把数据通道成果模块转换为Xilinx 4000系列FPGA的逻辑电路,从而正确地预计所需逻辑电路的数量。固然餍足雷同体系需求及利用同一范例FPGA的16-QAM数据泵的计划曾在公然文献中颁发过,但报道中的逻辑电路数量好像比实际必要多得多。为了急于投放市场,产品很大概不消CAD东西举行计划。完全依赖CAD东西也未必总能得出最优的方案,还要付出大量辛苦的汗水、经历和创造性事变。 

 
   全部数字逻辑的根本布局 

    只要有充足的与非门及或非门等通用逻辑门即可构建任意数字逻辑。FPGA具有富裕的逻辑门。Xilinx 4000系列的逻辑门采取真值表的情势,大概采取更为通用的16 字 x 1比特查找表(LUT)的情势,它可实现四个输入变量(查找表的地点线)的恣意布尔函数成果。由于孕育产生的函数成果通常相称于多个与非门的组合,以是LUT被视为根本的逻辑单位。Xilinx 4000系列可配置逻辑模块(CLB)包括两个16字的LUT,可组合孕育产生五输入变量的恣意布尔函数。别的LUT还可设置成两个16 x 1 RAM或一个32 x 1 RAM。 

    CLB成二维方阵分列,CLB及它们之间的互连可以分别配置。最小的XC4002包括一个8 x 8的CLB矩阵,最大的XC4085XL则包括一个48 x 48的CLB矩阵。每个LUT连接一个高达100 MHz的触发器。 

 
   16-QAM调制器 

    16-QAM调制器包括RF发射数据泵的关键成果模块(见图1)。20-Mbps串行数据分为4比特码元组(symbol)后,以每秒5兆码元的速率并行送至一个差分编码器和码元映射器(symbol mapper)。该映射器孕育产生3比特的正交分量对。然后这些分量对由一对平方根升余弦滤波器举行脉冲整形,颠末插值到达每秒20兆码元,再由5MHz载波举行调制,将各输出相加掉队行数模转换。计划的关键是采取一对插值脉冲整形滤波器。 


    为了有效地实现这种计划要领,有须要在确定逻辑门的总数时,将编码和映射成果模块以及一个5MHz调制器也思量进去。 

   
编码和码元映射 

    在确定编码器和信号映射器的逻辑数量时,我们可以鉴戒已往标准调制解调器的计划。如V.32中的编码器包括一个提供180度双相掩护的差分编码器和一个能参加冗余以减小吸取器的位偏差率(BER)的卷积编码器。编码器和映射器都是有限状态机实现的,全部状态由五个寄存器(2.5个 CLB)实现,连接逻辑由八个二输入异或门(4个CLB)及三个二输入与门(1.5 CLB)构成。在这个16-QAM发送器中,一个串并转换寄存器(2个CLB)捕获到四个20-Mbps的串行比特后形成一个4比特码元,如许编码器就可以处理惩罚低落到每秒5兆码元的数据流,而这种速率CLB很容易处理惩罚。数据通道控制必要沿着数据通道的寄存器举行时钟控制,所需CLB的数量少于15个。接着,一个经编码的5比特输出码元映射映射器的地点线,很大略,该映射器是一对3比特输出的LUT。 

    这些输出作为正交分量(I和Q) 映射一个二维平面(星座)内的码元位置。64个交错点(星)中仅有16个代表有效的码元位置。映射器的大小为32字 x 3比特 x 2 即6个CLB。这些成果模块的CLB总数是31个。 

 
   平方根升余弦滤波器 

    平方根升余弦滤波器是在传输通道的有限带宽内克制码元相互滋扰的一种可行要领。频谱由发射器和吸取器单位分别调制,形成了平方根升余弦滤波器。滤波器形状及其系数用QEDesign 1000软件帮助开辟。图2为12比特定点谋略的32抽头有限脉冲相应(FIR)滤波器的相应图。我们将采取一个12比特滤波器模型并确定其逻辑门数(采取12比特量化的方法,QEDesign步伐仅需28个对称系数,但是这种计划方案将利用一个完全32抽头对称FIR滤波器)。

     计划本领

    平方根升余弦滤波器用于I、Q两个通道上的频谱形成。当以每秒5兆采样速率孕育产生I、Q采样点时,滤波器为调制器孕育产生每秒20兆的采样数据。如许,滤波器充当了一个1:4的插值器。相应的谋略量(采取对称系数)为2通道 x 16阶对称抽头x每秒20兆采样点 = 每秒640兆乘法-累加运算。这一速率大大高出大多数定点DSP芯片的运行速率。如今FPGA已成为一种很有吸引力的选择,但是,还要挑选一种滤波器情势使之能最有效地映射到基于CLB的计划。 

    如今有多种逻辑电路的配置或情势可实现FIR滤波器。最重要的有直接情势(即一种常用的软件模型)、带变量的转置情势(已由专用滤波器芯片实现)以及多相滤波器(实用于多速率应用)。但这些情势都不克不及采取对称系数的要领来淘汰乘法谋略量。计划多速率滤波器的一个本领是在采样点-系数平面标出信号流轨迹。 

    纵轴表现采样点,程度轴表现系数,画出的数据轨迹表现了90度翻转后滤波器的相应图。由于系数对称,只需列出一半滤波器系数。插入系数为K,即在输入采样点间填入K-1个零点,从而得到32抽头FIR的V形轨迹。固然输入数据采样点隔断为200 ns,但新的轨迹点必须每隔50ns一点。 

    由该图可以得出两种谋略模型。第一种是转置情势的变形,此中非零输入采样值与全部32个系数的乘积在部分和寄存器中相加。32个乘积相加后并且滤波器的完全相应输出后,乘法-累加器电路可用于谋略新轨迹。在此,每隔200ns举行32次MAC运算。第二种模型是耽误相加,即FIR滤波器的直接情势。正如在滤波器轨迹中所看到的,必要八个存储的采样值谋略一个滤波相应。通过谋略五个连续滤波器相应我们可观察到表1给出的模型。 

    由同样的八个采样点输入组可谋略出四个连续的20MHz相应。只利用了两组滤波器系数。滤波器系数与每个采样数据组的第三和第四个相应( y d和y e )次序相反。这些相应方程能映射到有效的FPGA电路中吗?固然能!关键便是应用散布式谋略技能,全部现行的计划东西都不具备这种算法。实现相应方程组过去,可先作一下简化。 

    5 MHz载波 

    载波调制的大略方程为:Y(k) = yI(k)cos(wC*t) + yQ(k)sin(wC*t),此中wC为载波频率= 2p(5 MHz), I和Q表现同相和正交的码元分量。 

    此方程每50 ns实行一次。一个码元周期内(200 ns)仅有四个载波值。这些值可以方便地定义为:cos(wC*t) = 1, 0, -1, 0和sin(wC*t)= 0, 1, 0, -1 ,1。 

    调制输出既不必要任意乘法或加法,也不必要每隔50ns谋略一次I、Q滤波器相应。50 ns谋略一个I相应接着在下一个50 ns谋略一个Q相应,然后再谋略I相应、Q相应,周而复始。 

    散布式谋略(DA)技能 

    DA是专门针对乘积和方程的一种谋略技能,方程中的一项乘积因子是常数。DA计划可实现门级高服从、串行位算法及高性能位并行运算,它是经典的串/并综合方案。DA技能可应用于很多紧张的线性、时稳固命字信号处理惩罚算法,如滤波器(FIR和IIR)、更改(快速傅立叶更改[FFT])及矩阵向量乘积,如8 x 8分离余弦更改(DCT)。 

    二十多年前就有了DA技能,已经证明它不适于可编程DSP的定点指令调集构。然而,DA非常适于FPGA实现,尤其是如Xilinx CLB的LUT逻辑模块。用Xilinx XC3000系列的FPGA计划DA FIR滤波器早在1992年就已提出。 

    DA电路中没有独立的乘法器。乘法是由LUT完成的。DA预存一个方进程中全部部分乘积项的和,并且根据全部输入变量位查表(此处为DALUT)运算。串行DA电路有一个独立的DALUT,它从最低的有效位开始查表。部分乘积的输出和存储在累加器中,这种要领让我们想起了早期谋略机中的移位相加子步伐,连续的DALUT输出累加到部分乘积的二进制下移累加和中。如许可得到一个真正的双精度结果。 

    滤波器的实现 

    平方根升余弦滤波器的数据通道由已可转换为CLB的标准成果模块定义。每隔200ns将映射器输出的3比特I、Q信号传至并串转换移位寄存器(PSR)。RAM移位寄存器(SR)链中存储了七个先前的码元。前三个滤波器相应Y b , Y c , Y d与移位寄存器中的循环数据一起运算。PSR还必要一个反馈通道,但RAM SR在只读时循环受到模块寻址的影响。这里的模块有六个,前三次移位用于Y b,紧接着的三次用于Y c,末了三次则是用于Y d。在谋略Y e时,数据沿SR链下移。这种模块寻址模式随着前级传输(写)的数据不绝重复。全部十二次移位和相应的PSR加载、RAMSR寻址及写控制都源头于60MHz体系时钟。 

    由于雷同的系数组要用于两个采样周期,一个用于I通道数据谋略,另一个用于Q通道数据谋略,用一组DALUT和2/1复用器将串行数据流导向相应的地点端口。这些端口可以表现DALUT的布局。h 3端口的逻辑高电平选择部分乘积和包括h 3的全部内存地点。与此雷同,h 7端口的逻辑高电平选择全部包括h 7的全部地点,h 3和h 7端口的逻辑高电平选择全部包括h 3和h 7的地点。剩余的六个系数仍采取这种模式。究竟上,八个系数将必要2 8或256个字存储。对付12比特系数的环境,将必要 (每个CLB为256/32 字) x 12 = 96 个CLB。另一个法门是利用两个DALUT,每个必要四个系数并增长它们的输出。如许CLB的数量则淘汰到(2 x 24)/32 x 12 + 13/2 (并行加法器) = 18.5 个CLB. 

    同样的简化也可用到以h 1开始的第二套滤波器系数中。采取2/1复用器可分时共享并行加法器。该加法器扩展为13个比特后,输入到前述实行移位和加法运算的标量累加器。当输入变量的标记位传输给DALUT时,就举行减运算。此进程可通过在DALUT输出增长EXOR门并向累加器第一级进制的标准要领来完成。对付负相应Y d和Y e,数据采样可不管标记位,而对全部的DALUT输出数据取反来求补。 

    对付分数二进制补码格局的I、Q数据,滤波器系数要举行调解以防在末了输出中溢出。十个最高有效位可加载到D/A转换驱动寄存器中。 

    滤波器数据通道的CLB总数为71.5个,FPGA输出端口带有触发器,可作为D/A转换的驱动寄存器。算上编码器(31个CLB)及定时和控制成果(预计要少于50个CLB)在内,总数约莫为159个CLB,恰好可置于Xilinx XC4000系列中较小(稍大于最小)的芯片中,即XC4005 (196个CLB)。要是采取Xilinx Virtex等更高级的FPGA器件,则可淘汰CLB的数量并进步性能。 

    整个计划可确保60MHz体系时钟条件下的性能。数据流采取同一情势且单向传输。可以插入管道寄存器(不增长CLB)以收缩组合路径。通过标量累加器的十四级的进制链是最长的组合路径。然而,通过内置预进制电路可确保充足的速率余量。