From 0698ad9c823c2331bfee05982c6691ca030d0307 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 11 Aug 2024 14:05:26 +0200 Subject: [PATCH] Add docs for new FPGA-related building options --- ...17-03-07-configuration-options-building-time.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/_posts/2017-03-07-configuration-options-building-time.md b/_posts/2017-03-07-configuration-options-building-time.md index 9a015ded..530b53f9 100644 --- a/_posts/2017-03-07-configuration-options-building-time.md +++ b/_posts/2017-03-07-configuration-options-building-time.md @@ -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 --- @@ -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. | @@ -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`. This configuration option is only present in the `next` branch of the upstream repository and it will be present in the next stable release. | +| `-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`. This configuration option is only present in the `next` branch of the upstream repository and it will be present in the next stable release. | +| `-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. | | ---------- |