Research Article

A Programmable Max-Log-MAP Turbo Decoder Implementation

Algorithm 1

High-level program flow of the turbo decoder. Parallelism is denoted with | | . Code block length and window length are denoted with 𝐾 and 𝐿 w i n , respectively.
𝐩 𝐫 𝐨 𝐜 𝐞 𝐝 𝐮 𝐫 𝐞 𝚝 𝚞 𝚛 𝚋 𝚘 𝐛 𝐞 𝐠 𝐢 𝐧
# 𝙵 𝚒 𝚛 𝚜 𝚝 𝚒 𝚝 𝚎 𝚛 𝚊 𝚝 𝚒 𝚘 𝚗
| | | | | | 𝐜 𝐚 𝐥 𝐥 m a x - l o g - 𝙼 𝙰 𝙿 𝐜 𝐚 𝐥 𝐥 m a x - l o g - 𝙼 𝙰 𝙿 𝚒 𝚗 𝚝 𝚎 𝚛 𝚕 𝚎 𝚊 𝚟 𝚒 𝚗 𝚐 = 𝐟 𝐚 𝐥 𝐬 𝐞 𝚒 𝚗 𝚝 𝚎 𝚛 𝚕 𝚎 𝚊 𝚟 𝚒 𝚗 𝚐 = 𝐭 𝐫 𝐮 𝐞
# 𝙻 𝚊 𝚜 𝚝 𝚒 𝚝 𝚎 𝚛 𝚊 𝚝 𝚒 𝚘 𝚗
| | | | | | 𝐜 𝐚 𝐥 𝐥 m a x - l o g - 𝙼 𝙰 𝙿 𝐜 𝐚 𝐥 𝐥 m a x - l o g - 𝙼 𝙰 𝙿 𝚒 𝚗 𝚝 𝚎 𝚛 𝚕 𝚎 𝚊 𝚟 𝚒 𝚗 𝚐 = 𝐟 𝐚 𝐥 𝐬 𝐞 𝚒 𝚗 𝚝 𝚎 𝚛 𝚕 𝚎 𝚊 𝚟 𝚒 𝚗 𝚐 = 𝐭 𝐫 𝐮 𝐞
end
𝐩 𝐫 𝐨 𝐜 𝐞 𝐝 𝐮 𝐫 𝐞 m a x - l o g - 𝙼 𝙰 𝙿 𝐛 𝐞 𝐠 𝐢 𝐧
𝐜 𝐚 𝐥 𝐥 𝚒 𝚗 𝚒 𝚝 𝚒 𝚊 𝚕 𝚒 𝚣 𝚊 𝚝 𝚒 𝚘 𝚗 _ 𝚘 𝚏 _ 𝚂 𝙵 𝚄 𝚜
𝐥 𝐨 𝐨 𝐩 ( 𝐾 + 2 × 𝐿 w i n ) 𝐛 𝐞 𝐠 𝐢 𝐧
𝐜 𝐚 𝐥 𝐥 𝚛 𝚞 𝚗 _ 𝚂 𝙵 𝚄 𝚜
𝐞 𝐧 𝐝
𝐜 𝐚 𝐥 𝐥 𝚏 𝚒 𝚗 𝚒 𝚜 𝚑 _ 𝚌 𝚘 𝚖 𝚙 𝚞 𝚝 𝚊 𝚝 𝚒 𝚘 𝚗 𝚜
𝐞 𝐧 𝐝