Path Metric Sorters for SCL Decoding of Polar Codes

This VHDL code implements the various path metric sorters described in [1] to find the L minimum path metrics out of 2L path metrics of an LLR-based successive cancellation list decoder for polar codes. The zip file contains 5 directories with self-explanatory names.

[Download]

  1. polar_config.vhdl – Defines all the required data types. Should be compiled first.
  2. helper_functions.vhdl – Defines a function that is required only for the bitonic sorters. Should be compiled second.
  3. xSortery.vhdl – Implements the actual sorters, ‘x’ can be any of ‘radix2L’, ‘bitonic’, ‘bubble’ and ‘y’ can be ‘Pruned’ or empty. The 2L input metrics for all sorters have to be provided in the following order:
    • 1st input: the path metric of the first path extended with bit 0.
    • 2nd input: the path metric of the first path extended with bit 1.
    • 3rd input: the path metric of the second path extended with bit 0.
    • 4th input: the path metric of the second path extended with bit 1.
    • 2L-th input the path of the L-th path extended with bit 1.

    The output provides the L smallest metrics, along with the corresponding path indices and bit values.

[1] A. Balatsoukas-Stimming, M. Bastani Parizi, and A. Burg, “On metric sorter architectures for list successive cancellation decoding of polar codes,” in IEEE International Symposium on Circuits and Systems (ISCAS), May 2015, Lisbon, Portugal. [paper]

Contact: Alexios Balatsoukas-Stimming ([email protected])