LimeSDR Mini V2

This section provides detailed information about the gateware implemented for the LimeSDR Mini V2 board.

Main Block Diagram

The top-level file integrates the following main blocks:

Main block diagram for LimeSDR Mini V2

Soft core CPU Module

The CPU module is a vexriscv core provided by LiteX. It is specified via the cpu_type parameter for the SoCCore class, which serves as the parent class for the top-level gateware design.

The source code for the CPU can be found at: LiteX VexRiscv core

Lime_top Module

The Lime_top Module serves as a wrapper for the LMS7002M transceiver control and data transfer blocks. Its main sub-blocks include:

  • LMS7002 Top Module – Implements the LMS7002M PHY for digital IQ sample transmission and reception.

  • RX Path Top Module – Manages the receive path from the LMS7002M to the FPGA and host, packing IQ samples into packets and generating timestamps.

  • TX Path Top Module – Manages the transmit path from the host through the FPGA to the LMS7002M, unpacking IQ sample packets and handling stream synchronization with timestamps.

Lime_top block diagram

LMS7002 Top Module

This module is part of LimeDFB and more details can be found in lms7002_top description. This module implements the LMS7002M PHY for transmitting and receiving digital IQ samples.

RX Path Top Module

This module is part of LimeDFB and more details can be found in rx_path_top description. It handles the receive path from the LMS7002M to the FPGA and host, including IQ sample packetization and timestamp generation.

TX Path Top Module

This module is part of LimeDFB and more details can be found in tx_path_top description. This module manages the transmit path from the host through the FPGA to the LMS7002M, including unpacking of IQ samples and stream synchronization.

FT601 PHY Module

The FT601 PHY module serves as a wrapper for both the logical and physical interfaces of the FT601 device. It provides the following endpoints and FIFOs:

  • Control (PC → FPGA): Handles configuration commands from the PC to the FPGA.

  • Control (FPGA → PC): Enables register readback and status reporting from the FPGA to the PC.

  • TX Data Path (PC → LMS7002M): Transfers transmission data from the PC to the LMS7002M.

  • RX Data Path (LMS7002M → PC): Transfers received data from the LMS7002M to the PC.

I2C Module

The I2C0 module is an instance of the I2CMaster class provided by LiteX. It is used for controlling onboard peripherals via the I2C protocol.

The source code can be found here: I2CMaster in LiteX

Lms_spi Module

The Lms_spi Module is an instantiation of the SPIMaster class from LiteX. It handles SPI communication with the LMS7002M transceiver.

Source code: SPIMaster in LiteX

Flash Module

The Flash Module is implemented using the S7SPIFlash class provided by LiteX. It enables access to the FPGA configuration FLASH memory.

Source code: S7SPIFlash in LiteX