In the previous posts in this blog series, Massive MIMO Mechanics, I introduced the idea of system scalability through the MicroTCA standard and described the typical clocking and system initialization of such systems.
Once the massive MIMO system is clocked and the RF parameters are selected and implemented, prototyping can begin. As with smaller systems, the best way to start prototyping is to use waveform recording and playback. A massive MIMO system should allow the simultaneous recording or playback of an RF signal on all radio transceivers while maintaining sample alignment between all channels.
Here’s how to implement a real-world massive MIMO system like Nutaq’s solution.
Each radio transceiver is controlled by a powerful FPGA capable of handling the reception and transmission of multiple radio channels. The FPGA is in turn connected to dedicated high-speed RAM memory, enabling the record or playback of data. The FPGA memory controller enables the storage of all radio channels in real-time, without requiring any signal decimation. The Virtex-6 FPGA architecture can support record or playback on more than four radio channels with 100 MHz bandwidth radios sampling at their full throughput.
As the massive MIMO system is comprised of a hundred radio heads, each FPGA node will execute the record/playback independently from the others. This is where the triggering comes into play. A distributed trigger mechanism allows all the FPGA nodes to begin recording or playing back data within the same sample period. The system can handle the following types of triggers:
- Front panel: Each radio node’s front panel is equipped with a trigger input. Only one trigger per FPGA node is necessary to input the trigger in the record/playback logic. The drawback of using this triggering mechanism is the number of physical cables required from the trigger source to each of your radio nodes.
- Chassis back plane: Instead of inputting the trigger from the front panel of each radio node, it is inputted once per chassis through the MicroTCA carrier hub (MCH) or a dedicated advanced mezzanine card (AMC). This reduces the number of cables and trigger source/repeater hardware.
- Time event: A very efficient way of triggering the system is to use time-based events generated from time gating logic. The prerequisite to this is that all FPGA nodes must know and share the exact current time (relative or absolute) in order to trigger at the exact same time. The time resolution must less than the sample period to ensure all nodes maintain sample synchronicity. A user could, for example, order a massive record starting at exactly 1:34 PM. All nodes would be informed of this and all time gating logics programmed to generate a trigger. Since all nodes share a common time and are clocked at the same speed, the trigger event will occur at 1:34 during the same sample period on all nodes.
- Other internal or external events: The record/playback trigger can be generated from internal logic. A good example of this is the monitoring of a threshold within the processing algorithm. Once the threshold has been exceeded, the trigger is generated and all subsequent data can be stored to memory.
Nutaq’s software enables the use of such triggers in a very flexible way, allowing the user to take a trigger from any source outside the FPGA and route it within its VHDL or System Generator design.
Once all data has been independently stored in the radio node memory after a record, the host PC can retrieve it via the PCI Express or Gigabit Ethernet interfaces and aggregate it. The data can then be post-processed and used to prototype massive MIMO algorithms.
In playback mode, the user writes to the memory of each node sequentially and applies the trigger to start the playback.
For more information on the record and playback FPGA core, please refer to these blogs entries: