11 | | * 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 |
| 11 | * Before exporting as a peripheral core: |
| 12 | * 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). |
| 13 | * Remember to click the 'Settings' button (inside the System Generator block and next to Compilation/Export as a pcore to EDK) and in the 'EDK project' section click the folder icon and navigate to the '.xmp' in the WARPLab reference design, then click Open, then click OK. |
| 14 | * You can choose to export your modified WARPLab with a new compatibility revision by clicking on 'Settings' button (inside the System Generator block and next to Compilation/Export as a pcore to EDK) and changing in the 'Pcore options' the 'Major', 'Minor', 'HW/SW' compatibility revision fields. If you do this you will notice that after export is completed the 'pcores' folder contains a a folder for warplab that corresponds to the revision you specified. You must change the 'PARAMETER HW_VER' in the system.mhs file and the 'PARAMETER DRIVER_VER' in the system.mss file in order to match the revision number you specified before the export. |
| 15 | |
| 16 | |
| 17 | === WARPLab Design Flow - C code and M-Code === |
| 18 | * 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). |
| 19 | * 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 executed the code returns to its initial state of listening to Ethernet packets. |