WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2007-Oct-19 16:03:19

baldeeshk
Member
Registered: 2007-Oct-10
Posts: 10

WARP Header

Hi,

I'm trying to compare data packets in our hardware versus the one in simulation (from OFDM reference design v4).  The packet headers  used in CSMA MAC are different than the ones defined in simulation.  I understand there is packet revision byte, but it seems like they are in different locations (in byte 15 in CSMA MAC versus byte 12 in the simulation).  How does the PHY differentiate between the two different packet headers if the versions are in different locations?  Would I be able to grab the packet I generated in CSMA MAC and use it in simulation and see if it succeeds?  Wouldn't there be CRC errors if the packet header is interpreted differently because the payload size is also in different locations?

Thanks for any help you can provide,

Offline

 

#2 2007-Oct-19 20:43:33

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: WARP Header

The PHY only cares about three bytes in the header: a 16-bit payload length (number of bytes) and two 4-bit modulation values, used to specify the modulation scheme used for the full-rate OFDM symbols following the header. The locations (indices of the bytes in the header) for these 3 bytes are configured via the Rx_pktByteNums register. The default indices in simulation don't match the values we use in hardware (configured in WARPMAC), but as long as the Rx_pktByteNums register is correct, the PHY doesn't care. All of the other header bytes (revision, packet type, MAC addresses, etc.) are used only by the MAC code.

Offline

 

#3 2007-Oct-22 12:47:26

baldeeshk
Member
Registered: 2007-Oct-10
Posts: 10

Re: WARP Header

I see the correct indicies being initialized in WARPMAC, with the payload size and mod mask locations set in the Rx_pkyByteNums register.   However, in the simulation, we are finding that the payload size location are set to byte indicies 9 and 10, yet we set it to byte locations 13 and 14 in the packet header.  Can you please explain how this works in simulation?

Thanks

Last edited by baldeeshk (2007-Oct-22 12:48:39)

Offline

 

#4 2007-Oct-22 13:27:29

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: WARP Header

There is an endian swap in the PLB packet buffer interface. In hardware, this is masked by another swap in the PLB_BRAM block itself. In simulation, the packet bytes defined in the init script are fed into the transmitter swapped. This is why the group of bytes [8 9 10 11 12 13 14 15] are fed in order [15 14 13 12 11 10 9 8]. In other words, byte index 9 (from the PHY Tx perspective) is defined by the 14th byte in the m init script.

I re-worked the init script in the latest revision to make this swapping explicit.

Offline

 

Board footer