[[TracNav(WARPLab/TOC)]] = WARPLab 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. The WARPLab setup is shown in the following figure. [[Image(WARPLab/Images:design_flow.pdf)]] 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 == Example Setup == 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 significantly longer. Check the [wiki:WARPLab/Benchmarks benchmarks] page for its performance characterization. [[Image(WARPLab/Images:warplab_setup.pdf)]] == Resources == In order to allow rapid prototyping, the WARPLab framework provides the following. * [wiki:WARPLab/RefDesign WARPLab XPS Reference Design]: The bitstream ('.bit' file) to program the WARP nodes and the WARPLab Xilinx Platform Studio (XPS) Reference Design to generate this bitstream are provided. * [wiki:WARPLab/Releases WARPLab Reference M-Code]: M-Code functions that facilitate interaction with WARP nodes directly from MATLAB workspace are provided. * [wiki:WARPLab/Releases WARPLab Examples]: M-Code examples that show how to use the WARPLab Reference M-Code are provided. The WAPLAB 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 XPS 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 [wiki:WARPLab/Architecture here] and [wiki:WARPLab/ExtendingWARPLab extending WARPLab] explains some of the steps needed to modify the system. Specifications of the radio parameters controllable from M-code are listed [wiki:WARPLab/Specifications here].