|If you're using WARP v3 or WARP v2 hardware, please upgrade to WARPLab 7. We re-designed the entire framework (FPGA, C and M code), with improved performance, more flexibility and much easier migration to new reference design versions.|
WARPLab 6 Framework Overview
WARPLab is a framework which brings together WARP and MATLAB. With WARPLab, you can interact with WARP nodes directly from the MATLAB workspace and signals generated in MATLAB can be transmitted in real-time over-the-air using WARP nodes. This facilitates rapid prototyping of physical layer (PHY) algorithms directly in Matlab M-Code.
The WARPLab setup is shown in the following figure.
WARPLab is very flexible, supporting any combination of WARP v1, v2, or v3 hardware. Furthermore, any number of radios on each WARP board are also supported.
The design flow for a new PHY is the following:
- The user creates in MATLAB the samples to be transmitted as part of the custom PHY.
- The samples to be transmitted are downloaded to buffers in the nodes assigned as transmitters.
- The user sends a trigger to transmitter and receiver nodes. Upon reception of this trigger, samples are transmitted over-the-air and captured in real-time.
- The user reads captured samples from the receiver nodes to the MATLAB workspace.
- Received samples are processed offline in MATLAB
Up to 16 WARP nodes and a host computer running MATLAB are connected to a switch via Ethernet links. The Ethernet links are used to transfer data to and from the WARP nodes. While the over-the-air transmission is real-time, the communication between the PC and the boards takes longer.
WARPLab downloads and release notes are available here.
The WARPLab framework facilitates experimental evaluation of PHY layer algorithms. However, some novel algorithms may require features not provided in the WARPLab framework. Users are encouraged to modify/extend the WARPLab EDK Reference Design and WARPLab Reference M-Code if this is required in order to meet experiment requirements. For example, if part of the signal processing cannot be done offline in MATLAB but must be done in real-time, then this signal processing can be implemented in FPGA logic by modifying the WARPLab XPS Reference Design. Depending on the experiment, the users may also have to modify the WARPLab Reference M-Code. The vanilla architecture is described here and extending WARPLab explains some of the steps needed to modify the system. Specifications of the radio parameters controllable from M-code are listed here.