新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 无线通讯OFDM调制的实现

无线通讯OFDM调制的实现

作者:时间:2011-01-04来源:网络收藏

如前面所讨论,如果FFT为了资源共享采用不同速率的时钟,则需要pre-FFT数据缓冲器。在接收通道上,每当输入数据开始写入单缓冲器时,循环前缀移除模块开始记数。当整个数据包都被写入这个单缓冲器时,记数值开始从0地址被读出。

  对于固定的FFT size,由于读时钟频率并不比写时钟慢,用一个单缓冲器就够了。但如果FFT size是变化的,一个单缓冲器恐怕就不够了。举个特殊的例子,假设两个时钟工作在同一频率。在这种情况下,当新的数据被写入内存,上一个数据包中的数据会从同一个存储地址被读出。如果上一个数据包的FFT/IFFT size更大,那么当前包的写操作会早在上一个数据包读操作完成前结束。这样的话,为了阻止写入过多的数据,就必须延迟上行数据流模块的运行直到上一个大数据包的读操作完成。

  所幸的是,这种背压只会在FFT size由大变小时才会被施加。在实际的系统中,FFT size不太可能频繁的改变。如果它只在帧边界改变,由于帧符号之间是静止区,就永远不会施加背压。此外,为了避免使用背压,读信号和FFT核可以采用更高速率的时钟,这样读操作会在写操作之前完成。所需的时钟频率取决于最坏情况下FFT size的变化比。举个极端的例子,如果FFT size从2048减到128,那么读时钟的频率至少需要比写时钟快16倍。

  在发射数据通道上,CP移除子模快只是将输入数据按次序写入单缓冲器。同样的数据以不同的速率被读出。图9讲述了pre-FFT的数据操作。在接收通道上,数据通过天线进入OFDM解调器,其后通常还接有IF调制解调器。这样,接收模式下的pre-FFT模块不会再对上行数据流模块施加背压。对于TDD操作,在pre-FFT数据缓冲时,可以复用post-FFT双端口RAM实现位反转,因为这些操作在时间上是错开的。

图9:循环前缀移除操作前后的数据包比较。

时钟方案:该设计中采用两个时钟域,clk_f和clk_s。FFT核运行在快时钟clk_f上。当时钟clk_f比clk_s快时,两个时钟域将会存在异步。握手信号将会被插入来同步域间的控制信号。尽管在实际系统中时钟clk_f的频率通常为clk_s频率的几个整数倍,但在这个设计中,两者频率也可以相同。这里,两个时钟必须同步。由于单缓冲器存储深度的限制,如果两个时钟同步而只是速率不同,就必须去掉解调器中的时钟同步模块。不过在实际系统中不需要考虑这一点,因为如果FFT核没有被复用就没必要使用pre-FFT缓冲器了。


  接口和I/O端口:该设计实例使用了数据传输控制的Avalon Streaming协议。为了支持大小可变的FFT size、循环前缀,以及FFT方向运行时间(run time)的变化,必须对这些run time信号进行缓冲并把它们与输出数据数据包开始(SOP)信号对齐。    

  该实例中也通过Avalon Stream信号sink_ready(输入准备好信号)和source_ready(输出准备好信号)来支持背压。循环前缀插入模块中输入准备好延迟选0和输出准备好延迟选44。循环前缀移除模块的输入准备好延迟选0。不过,因为输出数据取自存储器,后面的缓冲器读取子模块的输出准备好延迟选2。由于FFT核为延迟0,为了实现与FFT核的连接,需要在在缓冲读模块与FFT核之间插入一个延迟适配器。延迟适配器用延迟2接收输入数据,然后用延迟0输出数据。适配器也支持背压并把可重配置的循环前缀的大小和FFT的方向信号与输出数据包对齐。

  调制解调的输入输出信号是有符号的定点格式但位宽度是可配置的。在可变流模式中,IFFT核的输出数据具有基于最大IFFT size的满分辨率。如果必要,可以在循环前缀插入模块中切断数据序列,也可以设置位宽参数。图10所示为OFDM调制解调模块的I/O端口。

图10:OFDM调制解调模块的I/O接口。


上一页 1 2 3 下一页

关键词: 收发器

评论


相关推荐

技术专区

关闭