== [wiki:OFDM MIMO OFDM] | [wiki:OFDM/MIMO#Documentation Documentation] | OFDM Model Overview == === Introduction === #Intro === Tools and Hardware Requirements === #Tools The MIMO OFDM core is designed using [http://www.xilinx.com/ise/optional_prod/system_generator.htm Xilinx's System Generator]. The current version of the core is compatible with System Generator 8.2.02 and 9.1.01. See [wiki:FAQ/General#WhatsoftwaretoolsarerequiredtouseWARP our FAQ] for more information on which Xilinx tools are required to use WARP. ==== Simulation ==== The OFDM model can be used in the MATLAB/Simulink simulation environment using just System Generator. ==== Hardware ==== In order to use the OFDM core in hardware, the model must be converted to an OPB-compliant peripheral. We use the WARP [wiki:sysgen2opb sysgen2opb] peripheral generation flow to convert the OFDM model into an OPB pcore. In order to use the OPB-version of the core, you will also need the [http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm Xilinx Embedded Devleopment Kit]. === Files === The source files for the MIMO OFDM design are available in the WARP repository: [source:/ResearchApps/PHY/MIMO_OFDM]. [source:/ResearchApps/PHY/MIMO_OFDM/ofdm_txrx_mimo.mdl ofdm_txrx_mimo.mdl] Simulink/System Generator model for the full MIMO OFDM transceiver. This model is ready to simulate both the full transmit and receive chains. The scripts below are required to use this model. The OPB-compliant peripheral core is generated from this model using [wiki:sysgen2opb sysgen2opb]. [source:/ResearchApps/PHY/MIMO_OFDM/ofdm_rx_mimo_init.m ofdm_rx_mimo_init.m] This script sets a number of initial values and parameters in the receiver model. It also requires [source:/ResearchApps/PHY/SISO_OFDM/ofdm_tx_init.m ofdm_tx_init.m], [source:/ResearchApps/PHY/SISO_OFDM/ofdm_rx_init_packetTimingControl.m ofdm_rx_init_packetTimingControl.m] and [source:/ResearchApps/PHY/SISO_OFDM/CRC_table_gen.m CRC_table_gen.m]. [source:/ResearchApps/PHY/MIMO_OFDM/ofdm_tx_mimo_init.m ofdm_tx_mimo_init.m] This script sets a number of initial values and parameters for the transmitter model. Some of these parameters are shared by both the transmitter and receiver models, so this script is also called by the receiver model's initilization script. [source:/ResearchApps/PHY/MIMO_OFDM/ofdm_rx_init_packetTimingControl.m ofdm_rx_init_packetTimingControl.m] Defines the behavior of the receiver's packet timing control block, setting the expected arrival times of different parts of a received packet. [source:/ResearchApps/PHY/MIMO_OFDM/CRC_table_gen.m CRC_table_gen.m] Generates a table of remainders for the calculation of a 32-bit CRC. This table is used by both the Tx and Rx models for checksum calculation. [source:/ResearchApps/PHY/MIMO_OFDM/calcTxCRC.m calcTxCRC.m] MATLAB function which calculates the 32-bit CRC of a packet. This is used for simulation purposes only; the model implements both Tx and Rx CRC calculation in hardware.