Skip to content

Commit

Permalink
Add docs for new FPGA-related building options
Browse files Browse the repository at this point in the history
  • Loading branch information
carlesfernandez committed Aug 11, 2024
1 parent 5805802 commit 0698ad9
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions _posts/2017-03-07-configuration-options-building-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ sidebar:
toc: true
toc_sticky: true
show_date: false
last_modified_at: 2024-04-29T09:07:02+02:00
last_modified_at: 2024-08-11T11:07:02+02:00
---


Expand Down Expand Up @@ -158,8 +158,7 @@ guide to all CMake variables, commands, and properties.
| `-DENABLE_UHD` | `ON` / `OFF` | `ON` | If set to `ON`, it enables the use of the [USRP Hardware Driver (UHD)](https://www.ettus.com/sdr-software/uhd-usrp-hardware-driver/), a software API that supports application development on all USRP SDR products. This option requires [gr-uhd](https://github.com/gnuradio/gnuradio/tree/master/gr-uhd) already installed in your system. Specifically, the [`UHD_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-uhd_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_OSMOSDR` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of [OsmoSDR](https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR) and other front-ends ([RTL-based dongles](https://www.rtl-sdr.com/), [HackRF](https://greatscottgadgets.com/hackrf/), [BladeRF](https://www.nuand.com/), etc.) as a signal source. Specifically, the [`Osmosdr_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-osmosdr_signal_source" | relative_url }}) and [`RtlTcp_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-rtltcp_signal_source" | relative_url }}) implementations of [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) blocks become available. This option requires [gr-osmosdr](https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR) already installed in your system. See an example of use at the [Realtek RTL2832U USB dongle tutorial]({{ "/docs/tutorials/gnss-sdr-operation-realtek-rtl2832u-usb-dongle-dvb-t-receiver/" | relative_url }}). |
| `-DENABLE_FMCOMMS2` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of [AD-FMCOMMS2-EBZ](https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/EVAL-AD-FMCOMMS2.html), an FPGA Mezzanine Card (FMC) board for the Analog Devices' [AD9361](https://www.analog.com/en/products/ad9361.html), a highly integrated RF transceiver. This option requires [gr-iio](https://github.com/analogdevicesinc/gr-iio) >= 0.3 or the [gr-iio native GNU Radio component](https://github.com/gnuradio/gnuradio/tree/main/gr-iio) (starting from GNU Radio v3.10.1.0) already installed in your system. Specifically, the [`Fmcomms2_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-fmcomms2_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_PLUTOSDR` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of [ADALM-Pluto](https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html), a learning module based on Analog Devices' [AD9363](https://www.analog.com/en/products/AD9363.html), a highly integrated RF agile transceiver. This option requires [gr-iio](https://github.com/analogdevicesinc/gr-iio) >= 0.3 or the [gr-iio native GNU Radio component](https://github.com/gnuradio/gnuradio/tree/main/gr-iio) (starting from GNU Radio v3.10.1.0) already installed in your system. Specifically, the [`Plutosdr_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-plutosdr_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_AD9361` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of signal source for Analog Devices front-end AD9361 connected directly to an FPGA processor. This option requires [libiio](https://github.com/analogdevicesinc/libiio) >= 0.14 already installed in your system. Specifically, the [`Ad9361_Fpga_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-plutosdr_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_PLUTOSDR` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of [ADALM-Pluto](https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html), a learning module based on Analog Devices' [AD9363](https://www.analog.com/en/products/AD9363.html), a highly integrated RF agile transceiver. This option requires [gr-iio](https://github.com/analogdevicesinc/gr-iio) >= 0.3 or the [gr-iio native GNU Radio component](https://github.com/gnuradio/gnuradio/tree/main/gr-iio) (starting from GNU Radio v3.10.1.0) already installed in your system. Specifically, the [`Plutosdr_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-plutosdr_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. | |
| `-DENABLE_LIMESDR` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the use of [LimeSDR](https://limemicro.com/products/boards/limesdr/). This option requires [gr-limesdr](https://github.com/myriadrf/gr-limesdr) already installed in your system. Specifically, the [`Limesdr_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-limesdr_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_RAW_UDP` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the reception of IP frames containing samples in UDP frame encapsulation using a high-performance packet capture library. This option requires [libpcap](https://github.com/the-tcpdump-group/libpcap) already installed in your system. Specifically, the [`Custom_UDP_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-plutosdr_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
| `-DENABLE_ZMQ` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the reception of sample streams published via [ZeroMQ](https://zeromq.org/). Specifically, the [`ZMQ_Signal_Source`]({{ "/docs/sp-blocks/signal-source/#implementation-zmq_signal_source" | relative_url }}) implementation of a [Signal Source]({{ "/docs/sp-blocks/signal-source/" | relative_url }}) block becomes available. |
Expand All @@ -176,9 +175,12 @@ package (`sudo apt-get install gnss-sdr`), the option `ENABLE_OSMOSDR` is set to
| **Variable passed to CMake** | **Possible values** | **Default** | **Effect** |
| :--------------------------- | :-----------------: | :---------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -------------- |
| `-DENABLE_OPENCL` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented with OpenCL (experimental). Specifically, the `GPS_L1_CA_PCPS_OpenCl_Acquisition` implementation of an [Acquisition]({{ "/docs/sp-blocks/acquisition/" | relative_url }}) block becomes available. This option requires the [OpenCL library](https://www.khronos.org/opencl/) and a compatible Graphic Processing Unit (GPU). |
| `-DENABLE_CUDA` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented with CUDA (experimental). Specifically, the `GPS_L1_CA_DLL_PLL_Tracking_GPU` implementation of a [Tracking]({{ "/docs/sp-blocks/tracking/" | relative_url }}) block becomes available. This option requires the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) and a compatible Graphic Processing Unit (GPU). |
| `-DENABLE_FPGA` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented in VHDL and executed in an FPGA device (experimental). |
| `-DENABLE_FPGA` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented in VHDL, which are executed on a SoC FPGA device, allowing for FPGA-based off-loading. |
| `-DENABLE_MAX2771` | `ON` / `OFF` | `OFF` | If set to `ON`, it checks if the SPIdev driver is installed and builds the `MAX2771_EVKIT_Signal_Source_FPGA` source, which makes use of an Analog Devices' MAX2771 RF front-end connected directly to an FPGA processor. Requires `-DENABLE_FPGA=ON`. <span style="color: orange">This configuration option is only present in the `next` branch of the upstream repository and it will be present in the next stable release.</span> |
| `-DENABLE_AD9361` | `ON` / `OFF` | `OFF` | If set to `ON`, it checks if the IIO driver [libiio](https://github.com/analogdevicesinc/libiio) >= 0.14 is installed and builds the `ADRV9361_Z7035_Signal_Source_FPGA` and the `FMCOMMS5_Signal_Source_FPGA` sources, which make use of Analog Devices' AD9361 RF front-end connected directly to an FPGA processor. Requires `-DENABLE_FPGA=ON`. |
| `-DENABLE_DMA_PROXY` | `ON` / `OFF` | `OFF` | Checks if the DMA proxy driver is installed for controlling the DMA in the FPGA and enables its usage. Requires `-DENABLE_FPGA=ON`. <span style="color: orange">This configuration option is only present in the `next` branch of the upstream repository and it will be present in the next stable release.</span> |
| `-DENABLE_OPENCL` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented with OpenCL (experimental). Specifically, the `GPS_L1_CA_PCPS_OpenCl_Acquisition` implementation of an [Acquisition]({{ "/docs/sp-blocks/acquisition" | relative_url }}) block becomes available. This option requires the [OpenCL library](https://www.khronos.org/opencl/) and a compatible Graphic Processing Unit (GPU). |
| `-DENABLE_CUDA` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables the building of processing blocks implemented with CUDA (experimental). Specifically, the `GPS_L1_CA_DLL_PLL_Tracking_GPU` implementation of a [Tracking]({{ "/docs/sp-blocks/tracking" | relative_url }}) block becomes available. This option requires the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) and a compatible Graphic Processing Unit (GPU). |
| `-DENABLE_PROFILING` | `ON` / `OFF` | `OFF` | If set to `ON`, it enables automatic execution of `volk_gnsssdr_profile` at the end of the building process. This program tests all known [VOLK_GNSSSDR](https://github.com/gnss-sdr/gnss-sdr/tree/main/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr) kernels (that is, basic processing components like adders, multipliers, correlators, and much more) for each SIMD architecture supported by the host machine, measuring their performance. When finished, the profiler writes to `$HOME/.volk_gnsssdr/volk_gnsssdr_config` the fastest implementation for each VOLK_GNSSSDR function. This file is read when using a function to know the best version to execute. |
| ---------- |

Expand Down

0 comments on commit 0698ad9

Please sign in to comment.