Changes between Version 8 and Version 9 of WARPLab6/ExtendingWARPLab


Ignore:
Timestamp:
Dec 9, 2009, 4:08:36 PM (14 years ago)
Author:
sgupta
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WARPLab6/ExtendingWARPLab

    v8 v9  
    11[[TracNav(WARPLab/TOC)]]
    22
    3 == Extending WARPLab ==
     3= Extending WARPLab =
    44
    55The WAPLAB framework facilitates experimental evaluation of PHYsical (PHY) layer algorithms. However, some novel algorithms may require features not provided in the WARPLab framework. Users are encouraged to modify 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.
     
    77=== WARPLab Design Flow - Sysgen to XPS ===
    88 * WARPLab uses a System Generator model for its logic design and XPS to integrate the Sysgen core with the processor and code for interacting with MATLAB.
    9  * To modify the WARPLab Sysgen model or add a custom peripheral created using Sysgen, the design flow is the following.[[BR]]
    10     * Change WARPLab Sysgen model or create your custom peripheral in Sysgen --> Export to XPS project --> Change C code (If required based on your changes) --> Change M-Code (If required based on your changes).[[BR]]
     9 * To modify the WARPLab Sysgen model or add a custom peripheral created using Sysgen, the design flow is the following.
     10    * Change WARPLab Sysgen model or create your custom peripheral in Sysgen --> Export to XPS project --> Change C code (If required based on your changes) --> Change M-Code (If required based on your changes).
    1111 * If changes are only in C Code or M-Code then there is no need to change Sysgen model and there is no need to Export Sysgen Model to XPS.
    12  * The tutorials on "Designing Custom Peripherals" and "Using a Custom Peripheral in XPS" available [wiki:Tutorials here] cover the XPS and Sygen design flows. The materials from our last [wiki:Workshops/Rice_2008November workshop] are also a good starting point, we recommend looking at "Lab 3 Building a Simple Transmitter".
     12 * The tutorials on "Designing Custom Peripherals" and "Using a Custom Peripheral in XPS" available [wiki:Tutorials here] cover the XPS and Sygen design flows. The materials from our latest [wiki:Workshops workshops] are also a good starting point, we recommend looking at "Lab 3 Building a Simple Transmitter".
    1313 * Before exporting as a peripheral core:
    1414   * The register map must be created by clicking 'Add' in the EDK Processor block. Before clicking 'Add' remember to go to the EDK Processor block/ Implementation tab and select 'Dual Clocks' and 'Register Read-Back'  (Dual clocks must be selected for WARPLab but the tutorials may not show this option selected).   
     
    1919=== WARPLab Design Flow - C code and M-Code ===
    2020 * Commands or actions to be executed by the WARP nodes are sent from MATLAB using the 'warplab_' functions provided in the WARPLab Reference M-Code. The possible commands/actions that can be executed are identified by an ID (or opcode) in the 'warplab_defines.m' and 'warplab_defines.h' files. The 'warplab_defines.m' is part of the WARPLab Reference M-Code and the 'warplab_defines.h' is part of the WARPLab XPS Reference Design (src folder).
    21  * The WARPLab C code (warplab_mimo_2x2.c for 2x2 MIMO bitstream and warplab_mimo_4x4.c for 4x4 MIMO bitstream) implements an infinite loop that is listening to Ethernet packets. When an Ethernet packet is received the ID (or opcode) of the command/action to be executed is read from the received packet, based on the ID the C code enters a specific CASE statement, when the CASE statement is executed the code returns to its initial state of listening to Ethernet packets.
     21 * The WARPLab C code (warplab_mimo.c) implements an infinite loop that is listening to Ethernet packets. When an Ethernet packet is received the ID (or opcode) of the command/action to be executed is read from the received packet, based on the ID the C code enters a specific CASE statement, when the CASE statement is executed the code returns to its initial state of listening to Ethernet packets.