You are not logged in.
Dear Members,
Using WARP, we have choices to implement MAC with embedded MCU or with hardwired FPGA. It might be a topic for discussion about advantages/disadvantages choosing these two alternatives. Using WARP, is it possible to modify wireless MAC behavior with user designed C programs or RTL modules?
Another question would be: Is any SoC bus protocol used in WARP when using the MAC? How's the accuracy? Cycle or instruction?
Frederic Chen
Offline
Hi Frederic,
The MAC-level capabilities of WARP are described in some detail in a paper accepted to the 2006 Asilomar Conference. That paper can be found here: http://warp.rice.edu/trac/wiki/Asilomar2006_WARPMAC
In short, we use the embedded PowerPCs within the FPGA to to run our MAC algorithms that are written in C. We treat the hardware designs (OFDM transceiver, Radio Controller, Automatic Gain Control, Ethernet, etc) as peripherals that hang off of standard processor busses. Currently, the Ethernet MAC IP provided by Xilinx exists on the Processor Local Bus (PLB), and every other core exists on the On-Chip Peripheral Bus (OPB). Additionally, an interrupt controller allows hardware cores to trigger software routines. For example, when our OFDM receiver has a packet that the MAC needs to process, a user-written function is automatically called to perform that processing.
To make this system configuration easier for users, we have created a framework called WARPMAC. The details of that framework are provided in the paper linked to earlier.
We have been happy with the performance with this system. With a PHY configured to 12Mbps, we have achieved realistic application-level rates around 6Mpbs through our custom MAC. Other performance metrics are provided in the paper linked to earlier.
You can find source code of an ALOHA implementation here: http://warp.rice.edu/trac/wiki/ACKMAC
You can find the API for the WARPMAC framework here: http://warp.rice.edu/trac/wiki/WARPMAC
Thank you for taking interest in the WARP project.
-Chris
Offline
Dear All,
the video streaming demo uses a MAC running on a PowerPC; has anyone targeted the HW MAC using a softcore MicroBlaze processor ? Is the C-code for the MAC on PowerPC portable to the MicroBlaze core ? Appreciate any advice on this. Thanks.
Best Rgds
Offline
Our current MAC implementations are built primarily in C, with some support functions implemented in hardware (timers, medium sensing, etc.). The C code runs in the PowerPC but does not use any PPC specific features. The supporting hardware peripherals are all 32-bit PLB46 cores. I believe both components (C code and peripherals) would work seamlessly in MicroBlaze (as of EDK v10.1, where MicroBlaze got PLB46 support).
Offline
Dear murphpo,
thanks for the reply. Have you come across anyone using the Xilinx 10/100/1000 TEMAC coupled with the wireless OFDM PHY, to demonstrate the video streaming applications? Are you using the Xilinx TEMAC with the wired ethernet PHY interface ? Thanks.
Best Rgds
Offline
We have tested the design using the soft TEMAC. It works fine. The TEMAC's MII support works as-is with our FPGA board's 10/100 Ethernet PHY. We chose to use the ethernetlite EMAC for the reference design to simplify DMA access to the Ethernet packet buffers. Using the TEMAC also requires the PLB LocalLink FIFO core (in order to connect the TEMAC's packet interface to the PLB). The FIFO's software interface is much more complicated than the ethernetlite's, and didn't provide anything extra we needed for the reference design.
Offline
Dear murphpo,
thanks for the explanation. Is it correct to say that you are using the ethernetlite EMAC for both the 10/100 wired ethernet, and the wireless MIMO PHY? Or you are using the PowerPC ( possible alternative a MicroBlaze ) to operate as the MAC for the wireless MIMO PHY ? Thanks very much for the advice.
Best Regards
Offline
We use the ethernetlite EMAC only for the Ethernet interface (and the Ethernet PHY is off-chip).
We use custom MAC and PHY implementations for the wireless interface. The PHY is implemented entirely in hardware (the source model is in the repository); the MAC is mostly in software. You can see the MAC source code in the repository.
Offline
Dear Murphpo,
now I have a clearer overall picture; thanks very much. By the way, for the video streaming demo using VLC, which MAC version was used for the Wireless PHY ( i.e. CSMA, RTSCTS, etc ) ?
Thanks & Best Regards
Offline
The demo videos used CSMA.
Offline