Kernel Code - 2025.1 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2025-08-25
Version
2025.1 English

Kernel code for computing log-likelihood ratios of data bits is contained in the file softdemod_kernel.cpp. Processing is divided into a sequence of 8 loops which perform the following computations:

Loop Number Loop Computation
1 Compute difference between received symbols and constellation points.
2 Compute squared magnitude of Loop 1 differences.
3, 4, 5 Compute estimate of exponential function of Loop 2 squared magnitudes weighted by negative inverse of noise variance. A trick based on IEEE 754 floating-point format is utilized.
6 Perform summing operation on exponentials for numerator and denominator of LLR equation.
7 Compute ratio of two sums computed by Loop 6, which is bit likelihood ratio.
8 Compute $log()$ function of Loop 7 outputs. To reduce unnecessary complexity for these labs, the $log()$ function is not implemented here, so this loop simply sends likelihood ratios to output.