Author Topic: Basic wifi implementation in an FPGA?  (Read 10698 times)

0 Members and 1 Guest are viewing this topic.

Offline ArtlavTopic starter

  • Frequent Contributor
  • **
  • Posts: 750
  • Country: mon
    • Orbital Designs
Basic wifi implementation in an FPGA?
« on: July 23, 2014, 02:50:24 pm »
Generally speaking, is it possible to implement WiFi in a generic FPGA (with the actual protocols and TCP/IP handled by a CPU core)?
I would expect the RF part would require some sort of special feature set, or external interface?

Was it done before, on a hobby level?
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9388
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: Basic wifi implementation in an FPGA?
« Reply #1 on: July 24, 2014, 03:50:31 am »
My friend Tiffany Yep has done it. Definitely not easy nor practical for everyday use, though she did it in order to play tricks like analyzing the raw baseband signal (in another part of the FPGA) in order to try to compensate for predictable interference.
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 

Offline marshallh

  • Supporter
  • ****
  • Posts: 1462
  • Country: us
    • retroactive
Re: Basic wifi implementation in an FPGA?
« Reply #2 on: July 24, 2014, 05:24:41 am »
Incredibly difficult, way out of the reach of a hobbyist

What are you describing would basically be a SDR with fpga-accelerated baseband processing and then a softcore with networking stack.
Verilog tips
BGA soldering intro

11:37 <@ktemkin> c4757p: marshall has transcended communications media
11:37 <@ktemkin> He speaks protocols directly.
 

Offline kshitij

  • Newbie
  • Posts: 7
Re: Basic wifi implementation in an FPGA?
« Reply #3 on: July 24, 2014, 09:29:55 pm »
Long rant incoming....

I am assuming you are asking about FPGA based prototyping of physical layer algorithms. This was my final year in undergraduate + entire grad school + thesis (+ some of my spare time as of now). The learning curve depends on whether you have an electronics-->comms+signal processing subject background , or that of an electronics-->embedded engineer.
If you are from an embedded side (judging from the way the question was asked),  there will be maths, and it might be a tad annoying. There is more signal-processing maths than the embedded part. Actually, its mapping the math to the embedded part.

First, the inspiring part: this is how quite a few physical layer algorithms end up becoming ASIC's in the first place. Crudely put, design is simulated in a Signal Processing Workbench/ MATLAB-like environment and an RTL or VHDL implementation is then created (there are tools which automate the implementation part these days, though hand crafting might still be neccessary).
This design is then fed alongwith other similar components to an FPGA manufacturers (say Xilinx) board design tools (in this case, Xilinx Embedded Development Kit). The parts/IP are combined with a custom CPU core (can be designed in Xilinx ISE or you can even use an ARM core these days), finally the design is synthesized on an FPGA. Ofc, the RF portion is separately connected to the FPGA IO. "Somewhat similar" routine is followed with the RTL designs too before they become actual ASIC's. In most cases, an FPGA prototypes are an intermediate step to a customized ASIC design. Those chips might end up being relatively simpler IC's used in wireless routers, sensors etc, to something as mammoth as an application processor (running its own operating system) integrated with a front end. The basic design principle is the same.

A simple analogy might be where you start with an MCU dev kit to work out your design kinks, then take your final program, flash the hex on to your mcu, and finally solder it on to your custom PCB. Except this is just a bit more complicated.

This is not a hobby, nor will a hobbyist's budget suffice for the equipment. Even simple DAQ kits like USRP (for the gnuradio) cost over 800USD with an RF front end for high frequencies. Low frequency kits(which make a mockery of the word SDR, and look like plugin sticks btw) are easily available from most vendors. Altera recently came out with its own bemarco/whatever.  If you just want to learn, an easier way is to simply check out the GNUradio project and use signal data sets posted online for processing in your PC (the free option without the fpga, but with the actual signals being processed in your PC, and in Python/C++). Or maybe use Matlab with Xilinx System Generator/Altera DSP Builder/Synphony High Level Synthesis (the not so free option, but with VHDL involved).

To get started, you will need an FPGA starter kit, and an RF front end. RF side merely needs an upconverter, filter and an antenna. Maxim and Analog Devices sell some kits for those. If you are in an university, try to find out if they have kits like WARP etc. You only need one kit as a transceiver, the other side can simply be a signal generator or a spectrum analyzer(vector preferred).

Running out of time , might post some more detail later on the weekend.  In the meantime, check out Sora, WARP, GNUradio, Nutaq, etc. Google for others; there are plenty, none are cheap.
Also Google fpga bpsk designs/fpga bpsk sdr . Don't bother with the 802.11 series protocols, before you can even simulate a bpsk mod/demod with its own AGC on the FPGA.
 
The following users thanked this post: steamedhams


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf