High-Throughput HDL Algorithms
DSP HDL Toolbox™ provides algorithms to implement high-bandwidth applications such as radar, SIGINT, and 5G FR2 wireless. To meet their bandwidth requirements, these applications need to process incoming data as multiple samples in parallel, or frame-based processing. Frame-based processing increases throughput by implementing the algorithm in parallel on each sample in the input vector. These implementations increase data throughput but use more hardware resources. The algorithms that support frame-based processing accept and return column vector signals. Each element of the vector represents a sample in time. These algorithms use vector input and parallel operations to achieve gigasamples-per-second (GSPS) data rates, also called super sample rates.
This table also shows algorithms from Wireless HDL Toolbox™ that support frame-based input and hardware-optimized implementations.
Note
The table refers to ports and parameters of Simulink® blocks. The DSP HDL Toolbox algorithms in this table are also available in the DSP HDL IP Designer app. In
the app, specify frame-based input as a 3-D matrix, like testbench.data =
reshape(dataIn,4,1,[])
. This matrix describes an input frame size of four
samples.
Blocks that Support Frame-Based Input
Supported Block | Parameters to Enable Frame Input | Limitations |
---|---|---|
FFT and IFFT | Connect a column vector to the input data port. The vector size must be a power of 2 between 1 and 64 and cannot be greater than the FFT length. | Frame-based input is supported only when
Architecture is set to Streaming
Radix 2^2 . |
Channelizer and Channel Synthesizer | Connect a column vector to the input data port. The vector size must be a power of 2 between 1 and 64 and cannot be greater than the FFT length. | |
Discrete FIR Filter | Connect a column vector to the input data port. The vector size must be less than or equal to 64. | You cannot use frame-based input with the partly serial architecture, or with multichannel filters. |
Biquad Filter | Connect a column vector to the input data port. The input vector size can be up to 64 samples, but large vector sizes can make the calculation of internal datatypes challenging. Vector sizes of up to 16 samples are practical for hardware implementation. | Vector input is supported only when you set Filter
structure to Pipelined feedback
form . |
FIR Decimator | Connect a column vector to the input data port. The vector size must be less than or equal to 64 samples. |
|
FIR Interpolator | Connect a column vector to the input data port. The vector size must be less than or equal to 64 samples. | You cannot use frame-based input with Minimum number of cycles between valid input samples greater than 1. |
CIC Decimator | Connect a column vector to the input data port. The input vector size can be up to 64 samples. | Vector input is not supported with programmable decimation rate. |
CIC Interpolator | Connect a column vector to the input data port. The input vector size can be up to 64 samples. | Vector input is not supported with programmable interpolation rate. |
NCO | Set the Samples per frame parameter to the desired output vector size. | |
Complex to Magnitude-Angle | Connect a column vector to the input data port. The input vector size can be up to 64 samples. | |
Upsampler | Connect a column vector to the input data port. The input vector size can be up to 64 samples. | |
Downsampler | Connect a column vector to the input data port. The input vector size can be up to 64 samples. | |
LMS Filter | Connect a column vector to the input data port. The vector size must be between 1 and 64 and must be less than the Filter length parameter value. | |
Delay |
| |
NR LDPC Encoder (Wireless HDL Toolbox) | Connect a column vector of 64 samples to the input data port. The pattern of input bits in the vector depends on the liftingSize, see Specifying Vector Input (Wireless HDL Toolbox). | |
NR LDPC Decoder (Wireless HDL Toolbox) | Connect a column vector of 64 samples to the input data port. The pattern of input bits in the vector depends on the liftingSize, see Specifying Vector Input (Wireless HDL Toolbox). | |
WLAN LDPC Decoder (Wireless HDL Toolbox) | Connect a column vector of 8 samples to the input data port. | |
Puncturer (Wireless HDL Toolbox) | Connect a column vector of 2 to 7 samples to the input data port. If input is a vector, the size of the vector must match the Encoder rate parameter value. | |
OFDM Modulator (Wireless HDL Toolbox) | Connect a column vector to the input data port. The vector size must be a power of 2 in the range from 1 to 64, and less than or equal to the FFT length. For more information on how to specify vector inputs, see Specifying Vector Input (Wireless HDL Toolbox). | |
OFDM Demodulator (Wireless HDL Toolbox) | Connect a column vector to the input data port. The vector size must be a power of 2 in the range from 1 to 64, and less than or equal to the FFT length. | |
LDPC Decoder (Wireless HDL Toolbox) | Connect a column vector to the input data port. The vector size must be factor of Block size parameter value. | |
CCSDS LDPC Decoder (Wireless HDL Toolbox) | Connect an eight-element row vector to the input data port. | |
APP Decoder (Wireless HDL Toolbox) | Connect a real-valued column vector to the input LLRc port. The vector size is the decoding rate in the range from 2 to 7. The input vector size depends on the code rate of the block, which is derived from the Code generator parameter value. | |
LTE Convolutional Decoder (Wireless HDL Toolbox) | Connect a three-element column vector to the input data port. | |
LTE Turbo Decoder (Wireless HDL Toolbox) | Connect a three-element integer vector to the input data port. | |
Viterbi Decoder (Wireless HDL Toolbox) | Connect a column vector to the input data port. The vector size must be equal to the length of the generator polynomial. | |
LTE CRC Encoder (Wireless HDL Toolbox) | Connect a binary row vector to the input data port. The vector size must be less than or equal to the length of the CRC polynomial and a factor of the CRC polynomial length. | |
LTE CRC Decoder (Wireless HDL Toolbox) | Connect a binary row vector to the input data port. The vector size must be less than or equal to the length of the CRC polynomial and a factor of the CRC polynomial length. | |
NR CRC Encoder (Wireless HDL Toolbox) | Connect a binary row vector to the input data port. The vector size must be less than or equal to the length of the CRC polynomial and a factor of the CRC polynomial length. | |
NR CRC Decoder (Wireless HDL Toolbox) | Connect a binary row vector to the input data port. The vector size must be less than or equal to the length of the CRC polynomial and a factor of the CRC polynomial length. |