mirror of
https://github.com/jhshi/openofdm.git
synced 2024-12-24 07:46:55 +00:00
usrp
This commit is contained in:
parent
39b6115360
commit
cceefb6c77
@ -1,5 +1,5 @@
|
|||||||
Sub-carrier Equalization and Pilot Correction
|
Sub-carrier Equalization and Pilot Correction
|
||||||
============================================
|
=============================================
|
||||||
|
|
||||||
- **Module**: :file:`equalizer.v`
|
- **Module**: :file:`equalizer.v`
|
||||||
- **Input**: ``I (16), Q (16)``
|
- **Input**: ``I (16), Q (16)``
|
||||||
|
@ -26,4 +26,5 @@ Highlights are:
|
|||||||
sig
|
sig
|
||||||
setting
|
setting
|
||||||
verilog
|
verilog
|
||||||
|
usrp
|
||||||
|
|
||||||
|
@ -110,6 +110,7 @@ a conducted or over the air setup. These files covers all the bit rates (legacy
|
|||||||
and HT) supported in |project|.
|
and HT) supported in |project|.
|
||||||
|
|
||||||
.. _sec_sample:
|
.. _sec_sample:
|
||||||
|
|
||||||
Sample File
|
Sample File
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
|
|
57
docs/source/usrp.rst
Normal file
57
docs/source/usrp.rst
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Integration with USRP
|
||||||
|
=====================
|
||||||
|
|
||||||
|
|project| was originally developed on Ettus Research USRP N210 platform. This
|
||||||
|
short guide explains how to modify the USRP N210's FPGA code base to
|
||||||
|
accommodate |project|.
|
||||||
|
|
||||||
|
USRP N2x0 FPGA Overview
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The top level model of USRP N2x0 (N200 and N210) can be found in
|
||||||
|
:file:`top/N2x0/u2plus.v`. It instantiates the ``u2plus_core`` module, which
|
||||||
|
contains the core modules such as the receiver and transmit chain. In
|
||||||
|
particular, the receive chain includes ``rx_frontend``, ``ddc_chain`` and
|
||||||
|
``vita_rx_chain``. Similarly, the transmit chain includes ``vita_tx_chain``,
|
||||||
|
``duc_chain`` and ``tx_frontend``.
|
||||||
|
|
||||||
|
The code base contains placeholder modules (``dsp_rx_glue`` and ``dsp_tx_glue``)
|
||||||
|
for extension. These modules are controlled by Verilog compilation flags and by
|
||||||
|
default they are simply pass-through and have no effect on the signal processing
|
||||||
|
at all.
|
||||||
|
|
||||||
|
|
||||||
|
Enable Custom Modules
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Take the receive chain as an example, inside ``dsp_rx_glue`` module, it checks
|
||||||
|
the ``RX_DSP0_MODULE`` macro and instantiates it if found. The macro can be
|
||||||
|
defined in a customized Makefile. Make a copy of the
|
||||||
|
:file:`top/N2x0/Makefile.N210R4`, name it to
|
||||||
|
:file:`top/N2x0/Makefile.N210R4.custom`. And then make these changes.
|
||||||
|
|
||||||
|
- Change ``BUILD_DIR`` to ``$(abspath build$(ISE)-N210R4-custom)``. This will
|
||||||
|
create a new build directory for our custom build.
|
||||||
|
|
||||||
|
- Comment out ``CUSTOM_SRCS`` and ``CUSTOM_DEFS``. We will define them in a
|
||||||
|
separate Makefile.
|
||||||
|
|
||||||
|
- Find ``Verilog Macros`` and change it to
|
||||||
|
``"LVDS=1|RX_DSP0_MODULE=custom_dsp_rx|RX_DSP1_MODULE=custom_dsp_rx|TX_DSP0_MODULE=custom_dsp_tx|TX_DSP1_MODULE=custom_dsp_tx|FIFO_CTRL_NO_TIME=1"``.
|
||||||
|
This defines the macros to so that the custom modules are instantiated by the
|
||||||
|
glue modules mentioned earlier.
|
||||||
|
|
||||||
|
After these changes, the two modules in :file:`custom/custom_dsp_rx.v` and
|
||||||
|
:file:`custom/custom_dsp_tx.v` will be instantiated. By default they are simply
|
||||||
|
pass-through. For instance, the output of RF frontend are directly connnected to
|
||||||
|
the input of DDC, and the output of DDC are directly connected to the VITA RX
|
||||||
|
module.
|
||||||
|
|
||||||
|
To integrate |project|, we only need to *insert* it after the DDC but before
|
||||||
|
VITA RX module. That is, the ``sample_in/sample_in_strobe`` of the ``dot11``
|
||||||
|
module should be connected to the ``ddc_out/ddc_out_strobe`` signal.
|
||||||
|
|
||||||
|
Also note that two receive chains are defined in ``u2plus_core`` module, so that
|
||||||
|
the two antenna ports can be configured in TX/RX or RX/RX mode. To save FPGA
|
||||||
|
resource, you may want to comment out one of the RX chains to make more room for
|
||||||
|
|project|.
|
Loading…
Reference in New Issue
Block a user