All Projects → jhshi → Openofdm

jhshi / Openofdm

Licence: apache-2.0
Sythesizable, modular Verilog implementation of 802.11 OFDM decoder.

Labels

Projects that are alternatives of or similar to Openofdm

Raven Picorv32
Silicon-validated SoC implementation of the PicoSoc/PicoRV32
Stars: ✭ 110 (-18.52%)
Mutual labels:  verilog
Fpganes
NES in Verilog
Stars: ✭ 119 (-11.85%)
Mutual labels:  verilog
Fpga based cnn
FPGA based acceleration of Convolutional Neural Networks. The project is developed by Verilog for Altera DE5 Net platform.
Stars: ✭ 129 (-4.44%)
Mutual labels:  verilog
Vm80a
i8080 precise replica in Verilog, based on reverse engineering of real die
Stars: ✭ 114 (-15.56%)
Mutual labels:  verilog
Svls
SystemVerilog language server
Stars: ✭ 119 (-11.85%)
Mutual labels:  verilog
Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (-6.67%)
Mutual labels:  verilog
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (-18.52%)
Mutual labels:  verilog
Wbuart32
A simple, basic, formally verified UART controller
Stars: ✭ 133 (-1.48%)
Mutual labels:  verilog
Vscode Verilog Hdl Support
Verilog HDL/SystemVerilog/Bluespec SystemVerilog support for VS Code
Stars: ✭ 120 (-11.11%)
Mutual labels:  verilog
Nandland
All code found on nandland is here. underconstruction.gif
Stars: ✭ 128 (-5.19%)
Mutual labels:  verilog
Vscale
Verilog version of Z-scale (deprecated)
Stars: ✭ 116 (-14.07%)
Mutual labels:  verilog
Surelog
SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler. Provides IEEE Design/TB C/C++ VPI and Python AST API.
Stars: ✭ 116 (-14.07%)
Mutual labels:  verilog
Picorv32
PicoRV32 - A Size-Optimized RISC-V CPU
Stars: ✭ 1,856 (+1274.81%)
Mutual labels:  verilog
Orpsoc Cores
Core description files for FuseSoC
Stars: ✭ 112 (-17.04%)
Mutual labels:  verilog
Fpga Peripherals
🌱 ❄️ Collection of open-source peripherals in Verilog
Stars: ✭ 130 (-3.7%)
Mutual labels:  verilog
Sv Tests
Test suite designed to check compliance with the SystemVerilog standard.
Stars: ✭ 108 (-20%)
Mutual labels:  verilog
Displayport verilog
A Verilog implementation of DisplayPort protocol for FPGAs
Stars: ✭ 125 (-7.41%)
Mutual labels:  verilog
Tang e203 mini
LicheeTang 蜂鸟E203 Core
Stars: ✭ 135 (+0%)
Mutual labels:  verilog
Aes
Verilog implementation of the symmetric block cipher AES (Advanced Encryption Standard) as specified in NIST FIPS 197. This implementation supports 128 and 256 bit keys.
Stars: ✭ 131 (-2.96%)
Mutual labels:  verilog
Milkymist
SoC design for Milkymist One - LM32, DDR SDRAM, 2D TMU, PFPU
Stars: ✭ 127 (-5.93%)
Mutual labels:  verilog

OpenOFDM

This project contains a Verilog implementation of 802.11 OFDM PHY decoder. Features are:

  • Fully synthesizable (tested on Ettus Research USRP N210 platform)
  • Full support for legacy 802.11a/g
  • Support 802.11n for MCS 0 - 7 @ 20 MHz bandwidth
  • Cross validation with included Python decoder
  • Modular design for easy modification and extension

See full documentation at http://openofdm.readthedocs.io.

Environment Setup

This project has the following dependencies:

  • Icarus Verilog <http://iverilog.icarus.com/>_: for compiling Verilog files and simulation.
  • GtkWave <http://iverilog.icarus.com/>_: for wave form visualization.

Input and Output

In a nutshell, the top level dot11 Verilog module takes 32-bit I/Q samples (16-bit each) as input, and output decoded bytes in 802.11 packet. The sampling rate is 20 MSPS and the clock rate is 100 MHz. This means this module expects one pair of I/Q sample every 5 clock ticks.

License

Apache License 2.0 <https://www.apache.org/licenses/LICENSE-2.0>_

FAQs

Q: Is there any need to change host driver UHD to incorporate new changes in FPGA?

A: No. In fact OpenOFDM relies on the current UHD-USRP communication mechanism. However, since the logic of the FPGA is changed in OpenOFDM, its behavior is also different. For instance, utilities such as rx_samples_to_file do not work as expected since the FPGA in OpenOFDM does not dumping RF signals back to host.

Q: Any example code to communicate with OFDM core in FPGA from host?

A: OpenOFDM FPGA module is configurable via USRP user setting registers (set_user_reg function). The register address definition is in common_params.v <https://github.com/jhshi/openofdm/blob/master/verilog/common_params.v>_. The whole OpenOFM FPGA module takes 32 bit I/Q samples and outputs decoded bytes. It is supposed to be placed in the receive chain of the USRP (e.g., custom_dsp_rx.v.

Q: Is there any change in ZPU firmware?

A: No.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].