当前位置:首页 > 通信技术 > 通信技术
[导读]WiFi 6(802.11ax)引入OFDMA(Orthogonal Frequency Division Multiple Access),将20/40/80/160MHz信道切分为最小资源单元(RU,26-tone),允许AP并行调度多用户数据。在芯片前端验证中,常用FPGA原型对OFDMA的RU分配逻辑、IFFT组帧、AXI流控做RTL仿真与资源预估。本文以Xilinx Kintex UltraScale+为例说明要点。



WiFi 6(802.11ax)引入OFDMA(Orthogonal Frequency Division Multiple Access),将20/40/80/160MHz信道切分为最小资源单元(RU,26-tone),允许AP并行调度多用户数据。在芯片前端验证中,常用FPGA原型对OFDMA的RU分配逻辑、IFFT组帧、AXI流控做RTL仿真与资源预估。本文以Xilinx Kintex UltraScale+为例说明要点。


一、OFDMA RU分配与控制逻辑建模


802.11ax定义RU类型:RU-26(26-tone)、RU-52、RU-106、RU-242(20MHz)、RU-484(40MHz)、RU-996(80MHz)等。FPGA侧需维护一张RU Allocation Table:

// ru_alloc.v 简化示例:记录各用户分配的RU索引与音调数

typedef struct packed {

   logic [4:0]  user_id;   // 0=未分配

   logic [2:0]  ru_type;   // 3'b000=RU26, 001=RU52, 010=RU106...

   logic [9:0]  tone_cnt;  // 26/52/106/242...

   logic [7:0]  start_sub; // 子载波起始索引(相对于80MHz)

} ru_map_t;


ru_map_t ru_table [0:3]; // 假设最大并发4用户(80MHz)


// 分配逻辑(由高层调度写)

always_ff @(posedge clk) begin

   if (alloc_vld)

       ru_table[alloc_idx] <= '{alloc_uid, alloc_ru, TONE_CNT[alloc_ru], alloc_start};

end



RU分配须满足不重叠、对齐到RU边界(26音倍数字边界),违例时返回alloc_err。


二、OFDMA组帧:多RU并行IFFT拼接


传统OFDM每符号填全盘子载波;OFDMA需按RU掩码填充,其余子载波置0(NULL tone)。


2.1 子载波填充核心


// 假设128-pointIFFT对应20MHz(简例);实际80MHz用512-pt

always @(posedge clk) begin

   if (s_axis_tvalid) begin

       // 清空子载波RAM

       for (int k=0;k<FFT_N;k++) sc_ram[k] <= 32'sh0;

       // 对每个已分配RU填数据

       for (int u=0;u<NUM_USER;u++) if (ru_table[u].user_id!=0) begin

           int base = ru_table[u].start_sub;

           for (int t=0;t<ru_table[u].tone_cnt;t++)

               sc_ram[base+t] <= user_data[u][t]; // Q15格式复数

       end

       ifft_start <= 1'b1;

   end

end



2.2 AXI-Stream接口


用户侧用axis_tdata(每RU数据按音调交织或分开通道)送入;控制侧用RU分配表同步。建议在RU边界插入TLAST标记完整OFDMA符号。


三、Testbench仿真验证要点


1. 单RU全占(退化OFDM):RU-242(20MHz)填满→比对已知IFFT向量

2. 双RU不重叠:RU-26 + RU-26 在不同偏移,其余置0 → 检查频谱空洞

3. 动态重配:运行中改ru_table,下一符号按新分配填→验证分配锁存与alloc_err

4. AXI反压:s_axis_tready随机拉低,确保RU填充状态机不丢数据


典型仿真顶层:

initial begin

   rst_n = 0; #100 rst_n=1;

   // 1. 写ru_table

   @(posedge clk); alloc_vld <= 1; ...

   // 2. 给user_data axis流

   fork gen_axis_data(); join

   // 3. 等符号完成

   wait(ifft_done);

   $finish;

end



四、资源消耗分析(Kintex UltraScale+ 示例)


假设80MHz 512-pt IFFT + 4并行RU缓冲:


资源 估算值 说明


LUT ~3.8k RU查表、AXIS控制、IFFT控制


FF ~2.2k 流水线/状态寄存器


BRAM 6~8块 (18Kb) IFFT旋转因子ROM + RU暂存FIFO


DSP 4~6 IFFT内部 butterfly(Xilinx DDS Compiler)


若扩展至8~16用户并发(160MHz 1024-pt IFFT),BRAM升至12~16块,LUT约6k,仍在中型FPGA可接受范围。


五、常见设计陷阱


现象 原因 修正


IFFT输出频谱异常(能量集中低频) RU起始子载波未按DC null居中 确保DC tone(index=FFT_N/2)强制0


用户数据错位(音调顺序反) C/A码或用户数据未按升频子载波序 按标准子载波索引映射,不按RU自然序


重配时一符号混入新旧RU ru_table更新未与symbol边界同步 用symbol_boundary脉冲锁存分配


AXI死锁高负载 RU FIFO满但ifft_start未及时拉 加almost_full阈值提前反压


六、结语


FPGA验证WiFi 6 OFDMA前端的核心是RU分配表正确性 + 按RU掩码填零子载波 + IFFT边界同步。通过行为仿真确认多RU并行填充与动态重配,再结合Xilinx FFT IP资源报告预估BRAM/DSP用量,即可在原型阶段确认算法可行性并为SoC集成铺路。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在WiFi 5(802.11ac)及以前的时代,AP(接入点)就像一位“单线程”的快递员,一次只能处理一个包裹(数据包)。即便信道很宽,如果多个设备同时请求,它们也只能排队等待。WiFi 6(802.11ax) 的核心突...

关键字: WiFi 6 OFDMA

计算机网络作为数字时代的基石,支撑着从社交媒体到工业互联网的各类应用。其本质是通过物理介质与协议规则,实现分布式系统间的信息交换与资源共享。本文从网络架构、数据传输、安全机制三个维度,解析计算机网络的核心原理与运行逻辑。

关键字: 计算机网络 WiFi 6

第七代WiFi无线网络,速度可高达每秒30Gbits [1-2] ,是WiFi 6最高9.6Gbps速率的三倍之多。相比于Wi-Fi 6,WiFi 7将引入CMU-MIMO技术最多可支持16条数据流。

关键字: WiFi 7 速度 WiFi 6

“物联网”一词含糊不清,这是故意的。什么东西?有些东西?所有的东西?是不是有点宽泛?嗯,是的,它很宽泛,因为当这个词被创造出来时,从哲学上讲,有朝一日,任何“事物”都可能连接到互联网。二十年后,现在我们已经连接了汽车、连...

关键字: 工业物联网 WiFi 6

所以我们一直在谈论更接近边缘。所以在这种情况下,我认为从你的回答来看,我们所说的一些边缘是非常明显的。它是生产线上的机器人;它是一架无人机,用于监视农业、测量或其他任何事情;可能是某人的洗衣机和烘干机。之前的线路在哪里?...

关键字: 工业物联网 WiFi 6

只需使用接入点解决方案,它就可以让我们做人们以前没有想到的事情。因此,它将开始有所作为。在与一些领先的工业客户交谈时,我们发现他们认为 WiFi 6、6 edge 将是第一。

关键字: 工业物联网 WiFi 6

在联发科技术峰会上,联发科预告将会在CES2022上演示下一代Wi-Fi网络技术——Wi-Fi 7。联发科介绍,Wi-Fi 7速度是Wi-Fi 6E的2.4倍,带来更快的速度、更低的延时,抗干扰能力也更强。

关键字: WiFi 7 WiFi 6
关闭