Configuration in FPGA (RFSoC) while implementing WLAN HDL transmitter and receiver modules
7 views (last 30 days)
Show older comments
Dear all,
I am using the WLAN HDL transmitter and receiver modules generated by matlab, and trying to implement the HDL in Xilinx RFSoC (4x2).
There are some questions about the understanding on WLAN "20 MHz" or "40 MHz".
But I cannot fully understand the meaning of "20 MHz" or "40 MHz". I would appreciate if anyone can help to explain.
1) First of all, in the HDL modules:
- transmitter HDL module generates a new set of I/Q data (32 bits for each) in every 16 clock-cycles.
- receiver HDL module processes a new set of I/Q data (16 bits for each) in every 8 clock-cycles.
- 2560 Msps
- decimation/interpolation: 8
- Samples per clock cycle: 8
- Stream data width: 128 (= 16*8, so 16 bit for each of I/Q?)
- Frequency: 40 MHz (25 ns)
In this configuration, in each clock-cycle of 40 MHz (25 ns), there are 8 sets of I/Q data.
Here the "8 sets of I/Q data in each clock-cycle" are the same? or they are all different 8 data sets?
I am asking this bacause of the consideration on 1).
If 8 data sets in 25 ns are all newly udpate (different), the real data rate is 40 MHz * 8 = 320 MHz.
Then, the transmitter HDL module needs a 16x faster clock to process it, so it will be 320 MHz * 16 = 5.12 GHz.
For both the transmitter and receiver HDL module, they are HDL/RTL to be implemented in FPGA PL. Using a clock of O(GHz) in PL seems to be too fast based on experience.
Is my understanding on the clock rate correct?
Thank you in advance.
0 Comments
Accepted Answer
Kranti Balaga
on 15 May 2025
Consider that clocks and sample rates are two different entities. The PL (Programmable Logic) clocks typically operate in the MHz range. For data rates in the Gsps range, we use frame-based processing, i.e., multiple samples are processed in a single clock cycle.
For example, if 8 samples are processed per clock using a vector interpolator operating at 40 MHz, the effective data rate becomes 8 × 40 = 320 Msps (mega-samples per second), not 320 MHz. Similarly, wherever high data rates are required in the PL (FPGA), we use frame-based processing to meet the performance demands. Therefore, it's appropriate to express data rates in Gsps, not GHz.
As mentioned earlier, in the WLAN SoC model, we used a LUT-based approach, and the RFDC (RF Data Converter) settings were configured accordingly. When integrating the HDL Transmitter, you may need to update the RFDC settings. Specifically, set the DUT clock to the highest available value, ensuring that it reflects the desired stream clock frequency.
I am not sure about "TX HDL module generates a new I/Q sample in every 16 clock-cycles" and "RX HDL module processes a new I/Q sample in every 8 clock-cycles."
TX HDL module output is 20 MHz always. However, there 3 rate changes (160-bit process, 320-after 1/2 rate encoder and 20- Symbol modulator output) inside the transmitter logic.
You cannot directly integrate the HDL Transmitter into the SoC model without modifications. You may need to adjust the interpolation and decimation filters based on the required data rates. For further assistance, please reach out to the appropriate sales representative to establish the proper channel for discussing your use cases and receiving support from our team.
Thanks,
Kranti
More Answers (1)
Kranti Balaga
on 13 May 2025
Hi Yun,
Firstly, the SoC example you referred to doesn't include the transmitter model that we shipped in the recent R24b release. However, we used a LUT-based transmitter to verify the WLAN receiver, you can observe this in the example. Regarding the HDL modules, the current transmitter supports only a 20 MHz channel bandwidth.
RFDC configuration, whatever you said is right. But, The data runs at a sample rate of 320 MSPS, which we achieve by decimating or interpolating by a factor of 8. This means we accept or output 8 samples per clock cycle. Therefore, the effective sample rate is 320 MSPS, while the clock rate is 40 MHz, this is the stream clock for the baseband transceiver.
Thanks,
Kranti
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!