A comprehensive, fully parameterized FPGA IP library for Software Defined Radio applications. Designed for maximum reusability and composability across Xilinx/AMD and Intel/Altera FPGA platforms.
SDR_LIB is a completed in-house FPGA IP library at Mintaka LLC, engineered to provide a production-ready foundation for Software Defined Radio systems. The library covers the entire SDR signal chain — from high-speed ADC/DAC interfaces through digital down/up conversion, filtering, synchronization, modulation/demodulation, forward error correction, and packet processing.
Every module is written in SystemVerilog IEEE 1800-2017 and uses AXI4-Stream as the standard data transport interface, enabling seamless composition without glue logic. The library is fully parameterized, supporting various data widths, decimation/interpolation rates, and filter configurations through compile-time parameters.
The primary target platform is the Xilinx Zynq-7020, with the real-time DSP running in the PL (FPGA fabric) while the PS (ARM Cortex-A9 + FreeRTOS) handles register control, AGC setpoints, packet routing, and higher-layer protocols via AXI-Lite and AXI-Stream DMA interfaces.
Complete SDR signal chain from ADC to host and back
| Domain | Responsibility |
|---|---|
PL (FPGA) |
Real-time DSP at ADC/DAC sample rate — this IP library |
PS (ARM) |
Register control, AGC setpoints, packet routing, higher-layer protocols (FreeRTOS) |
AXI-Lite |
PS writes frequency tuning word, gain, decimation rate to PL registers |
AXI-Stream DMA |
IQ data transfer between PL and PS DDR |
22 functional categories covering the complete SDR IP stack
Shared types, parameters, AXI-Stream interface definitions
Resize, round, saturate, clip detect, gain, shift operations
Add, multiply, conjugate, abs², scale, rotate, mix
Phase accumulator, LUT and CORDIC-based DDS, complex NCO
sin/cos, atan2, vectoring, rotation, polar↔cartesian
FIR, CIC, halfband, polyphase, boxcar — decimate & interpolate
Digital Down Converter: mixer → CIC → FIR → baseband IQ
Digital Up Converter: baseband IQ → FIR → CIC → mixer
Power estimator, RSSI, AGC loop, gain apply, saturator
Costas loop, complex PLL, freq/phase error estimators
Gardner TED, Mueller-Müller, symbol timing, fractional delay
Preamble correlator, sync word detector, frame aligner
BPSK, QPSK, OQPSK, OOK, FSK, GFSK, GMSK, QAM16, QAM64
All demods + LLR/soft-decision output for FEC
Radix-2, streaming FFT/IFFT, windowing, spectrum analysis
Polyphase filter bank, FFT channelizer, channel select
CP insert/remove, FFT RX/TX, pilots, channel estimation
CRC, scrambler, conv/Viterbi, Reed-Solomon, LDPC, Polar
Framer, deframer, header parser, CRC, stream packetizer
FIFO, register slice, width converter, mux, demux
Async FIFO, pulse/level/bus sync, reset synchronizer
Single/dual/true-dual-port RAM, ROM, delay line, buffers
ADC/DAC capture, IQ formatter, JESD204, LVDS, SPI RF
Register bank, AXI-Lite/Wishbone slave, SPI/UART/I2C
ILA wrapper, stream monitor, overflow/underflow, IQ capture
Implemented scope from foundation blocks to advanced DSP modules
Core building blocks and infrastructure primitives
Complete receive path from ADC to decoded packets
Complete transmit path from packets to DAC
Synchronization loops, spectrum processing, and advanced modulation
| Aspect | Standard |
|---|---|
| Language | SystemVerilog IEEE 1800-2017 |
| Organization | One module per file, filename = module name |
| Parameters | kCamelCase prefix (e.g., kDataWidth) |
| Ports | snake_case; AXI-Stream slave = s_*, master = m_* |
| Reset | Active-low asynchronous (rst_n), synchronous release |
| Types | Imported from sdr_types_pkg; use logic not wire/reg |
Learn more about our SDR capabilities and how we can help with your FPGA design.
Get in Touch All Projects