Changes between Version 57 and Version 58 of OFDMReferenceDesign/Changelog


Ignore:
Timestamp:
Nov 15, 2009, 4:38:24 PM (14 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OFDMReferenceDesign/Changelog

    v57 v58  
    3838----
    3939
    40 
    41 == OFDM Reference Design v13.1 (2009-Oct-1) ==
    42 The code and models for this design correspond to [source:/@1326 svn rev 1330].
    43 [[BR]]
    44 This project requires the latest versions of the 10.1 release of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    45 
    46 Download the full XPS project:
    47  * Virtex-II Pro (WARP FPGA Board v1.2): [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_V2P_v13_1.zip OFDM_ReferenceDesign_V2P_v13_1.zip] (80 MB)
    48  * Virtex-4 (WARP FPGA Board v2.2): (coming soon!)
    49 
    50 '''Using the Design'''
    51  * Same as version 13.0 (see below)
    52  * Two bitstreams are included, one for each software project: download-nomac.bit and download-csmamac.bit
    53 
    54 '''Software Changes'''
    55  * Added NOMAC software project with code updated for v13 PHY/WARPMAC
    56  * Fixed XPS makefile project settings (thanks to HT [http://warp.rice.edu/forums/viewtopic.php?pid=2329#p2329 for finding this])
    57 
    58 ----
    59 
    60 == OFDM Reference Design v13.0 (2009-Sep-26) ==
    61 The code and models for this design correspond to [source:/@1326 svn rev 1326].
    62 [[BR]]
    63 This project requires the latest versions of the 10.1 release of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    64 
    65 Download the full XPS project:
    66  * Virtex-II Pro (WARP FPGA Board v1.2): [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_V2P_v13_0.zip OFDM_ReferenceDesign_V2P_v13_0.zip] (8 MB)
    67  * Virtex-4 (WARP FPGA Board v2.2): (coming soon!)
    68 
    69 '''Using the Design'''
    70  * The <project>/implementation/download.bit implements CSMAMAC and ready to download to WARP SISO or MIMO kits.
    71  * The <project>/system.ace file can be copied directly to a CompactFlash card (without using iMPACT) to program kits via the SystemACE CF interface.
    72  * The CSMAMAC code uses the UART to control various parameters at run time. Use a terminal emulator set to 57600bps. The following commands are implemented by default:
    73   * '''P'''/'''p''' : Increase/decrease the packet detection energy threshold by 100
    74   * '''D'''/'''d''' : Increase/decrease the packet detection required minimum energy duration by 1
    75   * '''C'''/'''c''' : Increase/decrease the carrier sensing energy threshold by 100
    76   * '''F'''/'''f''' : Increase/decrease the 2.4GHz center frequency by 1 channel
    77   * '''S'''/'''s''' : Use SISO via the radio in slot 3/2
    78   * '''A''' : Use Alamouti 2x1 (2 transmit antennas, selection diversity between 2 receive antennas)
    79   * '''1'''/'''2'''/'''4'''/'''6''' : Use BPSK/QPSK/16-QAM/64-QAM for the full-rate modulation scheme for all transmitted payloads
    80   * You can add other commands to tweak your own parameters in uartRecv_callback function
    81  * The four user LEDs are programmed by default to toggle based on packet receptions. The top two LEDs will toggle for each good packet received. The bottom two LEDs will toggle for each bad header or bad payload received.
    82  * The right seven-segment display is programmed to show the node's ID on boot (set by the DIP switch); the left displays shows the sequence number of received packets.
    83 [[BR]]
    84 Please use [//forums/viewtopic.php?id=477 this forum thread] to discuss results or questions about this reference design.
    85 
    86 '''Hardware Changes'''
    87  * OFDM PHY Changes:
    88    * Added support for 2x1 Alamouti mode
    89    * Added new [wiki:OFDM/MIMO/Docs/AutoResponse Auto Response] subsystem to the PHY (DATA-ACK turnaround now just 17µs!)
    90    * Moved pilot tone phase estimator before equalizer so phase correction can be applied earlier
    91    * Added logic to adjust RSSI value in read-back register to compensate for RF gain choice
    92    * Shortened coarse CFO estimation window to 64 samples, to avoid corruption when the channel delay spread is non-zero
    93    * Moved the Tx scaling after the interpolation filters, so filter outputs (not inputs) can be saturated before transmission
    94    * Fixed (very old) bug with 64-QAM packets of certain lengths being declared bad
    95    * Fixed (old) phase error tracking bug to better handle wrapping phase error values; can now track larger CFO in frequency domain
    96    * Added pseudo-random payload generator
    97 
    98 '''Software Changes'''
    99  * WARPMAC/WARPPHY:
    100   * Defined new user callback for WARPnet management packets received over Ethernet
    101   * Updated phyHeader definition to use 16-bit MAC addresses and to include third address
    102   * New macros to help configure the PHY's auto response system
    103   * Updated with new PHY registers and options
    104   * Added mode to generate traffic locally ("dummy packet" mode), emulating a fully-backlogged data source
    105  * CSMAMAC:
    106   * Updated to use PHY's auto response to automatically transmit ACKs
    107   * Updated to use WARPMAC's new dataFromNetworkLayer and mgmtFromNetworkLayer callbacks
    108   * Added support for receiving control packets and sending statistics packets over Ethernet
    109 
    110 ----
    111 
    112 == OFDM Reference Design v12.1 (2009-Apr-15) ==
    113 The code and models for this design correspond to [source:/@1182 svn rev 1182].
    114 [[BR]]
    115 This project requires the latest versions of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    116 [[BR]]
    117 Download the full XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v12_1.zip OFDM_ReferenceDesign_v12_1.zip] (65 MB)
    118 
    119 '''Hardware Changes'''
    120  * Updated warp_timer hardware to use time slots during carrier sensing mode. The slot size can be configured to any number of clock cycles (including 0, effectively disabling slots). The timer interval is defined by slotCount- the number of time slots which pass before expiration. A slot will only decrement if the medium is completely idle during the slot. This behavior mimics the backoff mechanism in 802.11.
    121  * New warp_timer also includes 8 timers. The CSMA design uses 3 (backoff, timeout, user I/O). The remaining 5 are free for user applications. The slot count and slot length is configured per-timer.
    122 
    123 '''Software Changes'''
    124  * Updated WARPPHY and WARPMAC for compatibility with new timer's registers.
    125 
    126 ----
    127 
    128 == OFDM Reference Design v12.0 (2009-Apr-9) ==
    129 The code and models for this design correspond to [source:/@1171 svn rev 1171].
    130 [[BR]]
    131 This project requires the latest versions of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    132 [[BR]]
    133 Download the full XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v12_0.zip OFDM_ReferenceDesign_v12_0.zip] (65 MB)
    134 
    135 '''Hardware Changes'''
    136  * Packet detector updates
    137    * Integrated the RSSI-based packet detector core into the OFDM transceiver.
    138    * Removed the I/Q-based packet detector that was previously present. This is now only used in simulation.
    139    * The integrated detector's registers were rearranged (relative to the older separate detector core)
    140    * Added a minimum duration requirement to the packet detector. This block requires the average RSSI exceed the programmed energy threshold for a minimum number of cycles before the packet detecting output is asserted. The required minimum duration is programmable via a register.
    141    * Added logic to de-assert the IDLE for DIFS output whenever the transceiver is actively transmitting or receiving a packet. When either Tx or Rx is active, the medium is known to be busy, so the IDLE signal can safely be forced low, independent of RSSI readings.
    142  * Interrupt changes
    143    * Removed all interrupts in the hardware design
    144    * The transceiver now asserts register bits for reception events (good/bad header, good/bad packet); the MAC polls this register.
    145    * The user I/O and UART interrupts were replaced by polling the GPIO and UARTLITE registers.
    146    * The OFDM timer interrupts were replaced by polling the status of each timer in the core.
    147  * Upgraded EEPROM controller core HDL with better clocking design. Instead of generating a slow clock, the core generates a slow clock enable and uses the fast clock for all synchronous elements. This fixes the long-standing, intermittent timing error.
    148  * Fixed the PHY's handling of packet errors when all received bytes are zero. Previously this caused an erroneous good packet interrupt; now it correctly asserts the bad header and bad packet status bits.
    149  * Added a programmable saturating scale factor after the IFFT in the transmitter. This can increase the average transmission power at the cost of increased clipping. This scale factor has been defaulted to a value that jointly maximizes transmission power while minimizing transmitted EVM.
    150 
    151 '''Software Changes'''
    152  * Updated WARPPHY and WARPMAC with register map for integrated transceiver and packet detector.
    153  * Updated EEPROM driver to match new hardware.
    154  * Replaced warpmac_pollEthernet with the more general warpmac_pollPeripherals
    155    * This function polls the timer, the PHY, and the Ethernet
    156    * One of the four timers in the warp_timer core is dedicated to the polling of the UART and User I/O buttons
    157  * Fixed bug in the function for setting random backoff timers found by forum user domenique (See post [http://warp.rice.edu/forums/viewtopic.php?id=465 here]). Previously the minimum contention window was ![0,7]. This is now ![0,15] like 802.11
    158  * Lowered packet detection threshold from 9000 to 6000. This should improve low SNR detection
    159  * Raised CSMA threshold from 6000 to 8192. This is more in line with 802.11 and should make nodes more aggressive in the presence of non-decodable interference
    160 
    161 '''Using the Design'''
    162  * The <project>/implementation/download.bit is ready to download to WARP SISO or MIMO kits.
    163  * The <project>/system.ace file can be copied directly to a CompactFlash card (without using iMPACT) to program kits via the SystemACE CF interface.
    164  * The CSMAMAC code uses the UART to control various parameters at run time. Use a terminal emulator set to 57600bps. The following commands are implemented by default:
    165   * '''P'''/'''p''' : Increase/decrease the packet detection energy threshold by 100
    166   * '''D'''/'''d''' : Increase/decrease the packet detection required minimum energy duration by 1
    167   * '''C'''/'''c''' : Increase/decrease the carrier sensing energy threshold by 100
    168   * '''F'''/'''f''' : Increase/decrease the 2.4GHz center frequency by 1 channel
    169   * '''A'''/'''a''' : Use the radio in slot 3/2 for the active antenna in the SISO link
    170   * '''1'''/'''2'''/'''4'''/'''6''' : Use BPSK/QPSK/16-QAM/64-QAM for the full-rate modulation scheme for all transmitted payloads
    171   * You can add other commands to tweak your own parameters in the same UART callback
    172  * The four user LEDs are programmed by default to toggle based on packet receptions. The top two LEDs will toggle for each good packet received. The bottom two LEDs will toggle for each bad header or bad payload received.
    173  * The right seven-segment display is programmed to show the node's ID on boot (set by the DIP switch); the right displays shows the re-transmit count of each received packet.
    174  * The new interrupt-free design requires some minor modifications to user code from reference design v11.2
    175    * Call warpphy_pollPeripherals() in the main while(1) loop (instead of warpphy_pollEthernet()).
    176    * User code should still register callbacks for the various events (PHY good/bad Rx, timers, UART, user I/O); WARPMAC will execute these callbacks same as before (even though it's driven by polling instead of interrupts).
    177 [[BR]]
    178 Please use [//forums/viewtopic.php?id=477 this forum thread] to discuss results or questions about this reference design.
    179 
    180 ----
    181 
    182 == OFDM Reference Design v11.2 (2008-Dec-1) ==
    183 The code and models for this design correspond to [source:/@1111 svn rev 1128].
    184 [[BR]]
    185 This project requires the latest versions of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    186 [[BR]]
    187 Download the full XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v11_2.zip OFDM_ReferenceDesign_v11_2.zip]
    188 
    189 '''Hardware Changes'''
    190  * None; hardware is identical to v11.1
    191 
    192 '''Software Changes'''
    193  * Updated radio controller driver to fix SetTxTiming function; the TxStart parameter was being ignored in v11 and v11.1 (due to hardware changes not correctly reflected in the corresponding driver calls)
    194 
    195 ----
    196 
    197 == OFDM Reference Design v11.1 (2008-Oct-18) ==
    198 The code and models for this design correspond to [source:/@1111 svn rev 1111].
    199 [[BR]]
    200 This project requires the latest versions of the Xilinx tools (ISE 10.1.03 + IP2, EDK 10.1.03, Sysgen 10.1.3.1386).
    201 [[BR]]
    202 Download the full XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v11_1.zip OFDM_ReferenceDesign_v11_1.zip]
    203 
    204 '''Hardware Changes'''
    205  * Fixed a bug in the PHY that broke MIMO mode in refdes v11, related to the faster FFT in the receiver (thanks to the [http://warp.rice.edu/forums/viewtopic.php?id=372 Drexel guys] for finding it)
    206 
    207 '''Software Changes'''
    208  * Updated CSMAMAC with better "routing" table (used to map node IDs to MAC addresses)
    209  * Updated warpphy's MIMO/SISO mode switching code to include RxScaling updates
    210  * ifdef'd in/out code to support future PHY with convolutional code support (v11.1 is uncoded - v12 will be first coded release)
    211 
    212 ----
    213 
    214 == OFDM Reference Design v11 (2008-Sep-2) ==
    215 The code and models for this design correspond to [source:/@1064 svn rev 1064].
    216 [[BR]]
    217 This project requires the latest versions of the Xilinx tools (ISE 10.1.02 + IP2, EDK 10.1.02, Sysgen 10.1.2.1250).
    218 [[BR]]
    219 Download the full XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v11.zip OFDM_ReferenceDesign_v11.zip]
    220 
    221 '''Hardware Changes'''
    222  * Updated clock config core to latest version (fixes bad default values for en/disabled outputs)
    223  * Replaced ofdm_timer with new [source:/ResearchApps/PHY/TIMER warp_timer] peripheral (now includes four independent timers)
    224  * Reworked PHY to clock Rx FFT at system clock (40MHz).
    225    * This reduces the Rx latency by ~4µsec; DATA-ACK turnaround now 19.8µsec.
    226    * This also helps CFO, allowing the pilot tones to apply phase corrections one OFDM symbol earlier.
    227  * Redesigned pilot tone phase averaging to reduce intra-symbol variance.
    228  * Re-added shared memories for flexible Tx/Rx modulation (these were removed in v10 due to Sysgen 10.1.00 limitations).
    229  * Added [wiki:HardwareUsersGuides/UserIOBoard_v1.0 User I/O board] controller
    230  * Added interrupt for UART
    231  * Connected reset for secondary PLB46 (fixing [http://warp.rice.edu/forums/viewtopic.php?pid=1351#p1351 bug found by patel_gaurav90])
    232 
    233 '''Software Changes'''
    234  * New [source:/ResearchApps/MAC/RTSCTSMAC RTS/CTS implementation] by Keith Wilhelm (undergrad intern in the CMC Lab)
    235  * Updated WARPMAC/WARPPHY with support for PHY changes
    236    * Updated timer wrapper functions for new warp_timer hardware
    237    * Updated modulation control function for new buffer structure
    238    * New UART ISR and user callback registration functions
    239  * New [source:/ResearchApps/MAC/DEBUGMAC debug "MAC"] top-level code to control/observe/debug PHY in hardware
    240  * Added basic Rx statistics display via the User I/O board LCD screen
    241  * Moved interactive debug menu to UART interrupt callback (instead of in main while(1) loop)
    242  * Updated AGC thresholds to better values (based on empirical tests)
    243  * Fixed support for MIMO mode in WARPMAC/WARPPHY (now correctly calculates PHY parameters in either SISO or MIMO mode)
    244 
    245 ----
    246 
    247 == OFDM Reference Design v10 (2008-Jul-17) ==
    248  * '''Known issue:''' see [http://warp.rice.edu/forums/viewtopic.php?pid=1356#p1356 this forum post] for details; this will be fixed in ref design v11
    249  * Download the XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v10.zip OFDM_ReferenceDesign_v10.zip]
    250  * Built using cores and code as of repository [source:/@1010 revision 1010]
    251  * This design requires version 10.1.02 of the Xilinx tools
    252  * Data-ACK turnaround time is now 23µs (as measured by the fall of data Tx to rise of ACK Tx)
    253 
    254 '''Hardware Changes'''
    255 
    256  * Xilinx deprecated the OPB and PLB34 busses. PLB46 is the new (and only) bus standard used in this design
    257  * The System Generator cores (OFDM transceiver, timer, packet detector & AGC) were created using Sysgen's new PLB46 export flow; sysgen2opb is no longer required
    258  * Xilinx did not port the plb_ethernet EMAC forward to PLB46. This design uses the xps_ethernetlite EMAC instead, customized to enable promiscuous mode (i.e. no receive address filtering)
    259  * The xps_centraldma pcore is used to handle DMA (since the EMAC no longer provides its own DMA)
    260  * The OFDM transceiver has a new interrupt output indicating the reception of a bad header
    261  * Fixed a few logic bugs in the transceiver's handling of multiple interrupts
    262  * Merged all user I/O into single GPIO core (LEDs, hex displays, push buttons & DIP switch); a [source:/PlatformSupport/WARPMAC/util/warp_userio.h header file] helps with the required bit masking/shifting. The [source:/PlatformSupport/XBD/boards XBD files] have been updated to use the same user I/O scheme.
    263 
    264 '''Software Changes'''
    265 
    266  * Ethernet is now operated exclusively in a polling mode for increased performance
    267  * [source:/PlatformSupport/WARPMAC WARPMAC/WARPPHY] re-architected and cleaned; the code flows for transmitting and receiving packets are now consistent across various packet types
    268  * A layer of [source:/PlatformSupport/WARPMAC/util register access macros] was added between WARPPHY and the OFDM cores; these macros adapt the old sysgen2opb register access code to the new Sysgen PLB46 export code. These macros will retired in a future revision.
    269 
    270 ----
    271 == OFDM Reference Design v09 (2008-Jun-11) ==
    272  * Download the XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v09.zip OFDM_ReferenceDesign_v09.zip]
    273  * Built using cores and code as of repository [source:/@906 revision 906]
    274  * This version assumes a different location for TxDCO calibration information in the EEPROM of the radios. Please re-calibrate before running (instructions are [wiki:HardwareUsersGuides/RadioBoard_v1.4/Usage/TxDCOffset here])
    275  * This will be the last reference design that will use the version 9 Xilinx tools. Reference Design v10 will use the version 10 Xilinx tools.
    276  * Updated [source:/PlatformSupport/WARPMAC/ warpmac/warpphy] & [source:/ResearchApps/MAC/CSMAMAC/ csmamac]
    277    * Header interrupts are used to pipeline receive processions (i.e. an ACK is constructed and loaded into a PHY before the packet is even completely received)
    278    * Fall of Tx data to rise of Tx ACK turn-around time reduced from 80 microseconds to 30 microseconds
    279    * By default, left and right push buttons use left and right radios respectively (only for MIMO WARP kits)
    280    * Numerous tweaks to MAC timing parameters
    281 
    282 ----
    283 == OFDM Reference Design v08 (2008-Feb-08) ==
    284  * Download the XPS project: [http://warp.rice.edu/bigFiles/OFDM_ReferenceDesign_v08.zip OFDM_ReferenceDesign_v08.zip]
    285  * Built using cores and code as of repository [source:/@834 revision 834]
    286  * Updated [source:/ResearchApps/PHY/MIMO_OFDM OFDM PHY]
    287    * Added support for header-only packets (like ACKs); numFullRateSymbols can be zero
    288    * Last two bytes of header are now a 16-bit CRC of just the header
    289    * Added new interrupt output for good header; asserts for non-header-only packets when header CRC passes
    290    * Added TxDone interrupt output; asserts when a packet transmission finishes
    291    * Fixed bugs in dynamic modulation mask usage
    292  * Updated [source:/PlatformSupport/WARPMAC/ warpmac/warpphy] & [source:/ResearchApps/MAC/CSMAMAC/ csmamac]
    293    * Changes to support new PHY features
    294    * Added TxDone & GoodHeader interrupt handlers; unused in this version
    295    * Added lots of comments to the source code to better explain various MAC/PHY interactions
     40= [wiki:OFDMReferenceDesign/Changelog/Old Previous Releases] =