--!
|
--!
|
--! Copyright (C) 2011 - 2012 Creonic GmbH
|
--! Copyright (C) 2011 - 2014 Creonic GmbH
|
--!
|
--!
|
--! This file is part of the Creonic Viterbi Decoder, which is distributed
|
--! This file is part of the Creonic Viterbi Decoder, which is distributed
|
--! under the terms of the GNU General Public License version 2.
|
--! under the terms of the GNU General Public License version 2.
|
--!
|
--!
|
--! @file
|
--! @file
|
--! @brief Parameters
|
--! @brief Parameters
|
--! @author Markus Fehrenz
|
--! @author Markus Fehrenz
|
--! @date 2011/07/01
|
--! @date 2011/07/01
|
--!
|
--!
|
--! @details This is the configuration file of the Viterbi decoder.
|
--! @details This is the configuration file of the Viterbi decoder.
|
--! Any changes for parameters should be done here.
|
--! Any changes for parameters should be done here.
|
--! Changing parameters somewhere else may result in a malicious
|
--! Changing parameters somewhere else may result in a malicious
|
--! behavior.
|
--! behavior.
|
--!
|
--!
|
|
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
use ieee.numeric_std.all;
|
use ieee.numeric_std.all;
|
|
|
|
|
package pkg_param is
|
package pkg_param is
|
-----------------------------------
|
-----------------------------------
|
-- Convolutional Code Parameters --
|
-- Convolutional Code Parameters --
|
-----------------------------------
|
-----------------------------------
|
|
|
|
|
--
|
--
|
-- Set the number of parity values
|
-- Set the number of parity values
|
-- This has to correspond to PARITY_POLYNOMIALS
|
-- This has to correspond to PARITY_POLYNOMIALS
|
--
|
--
|
constant NUMBER_PARITY_BITS : natural := 2;
|
constant NUMBER_PARITY_BITS : natural := 2;
|
type t_parity is array (NUMBER_PARITY_BITS - 1 downto 0) of natural;
|
type t_parity is array (NUMBER_PARITY_BITS - 1 downto 0) of natural;
|
|
|
--
|
--
|
-- Set parity polynoms in decimal notation
|
-- Set parity polynoms in decimal notation
|
-- NUMBER_PARITY_BITS has to correspond to the number of elements
|
-- NUMBER_PARITY_BITS has to correspond to the number of elements
|
-- Examples: WiFi : [121,91] or [121,91,101]
|
-- Examples: WiFi : [121,91] or [121,91,101]
|
-- CDMA : [491,369] or [367,435,369] or [501,441,331,315]
|
-- CDMA : [491,369] or [367,435,369] or [501,441,331,315]
|
-- GSM : [27,19] or [27,21,31]
|
-- GSM : [27,19] or [27,21,31]
|
-- DAB : [91,121,101,91]
|
-- DAB : [91,121,101,91]
|
-- WiMAX: [91,121,117]
|
-- WiMAX: [91,121,117]
|
--
|
--
|
constant PARITY_POLYNOMIALS : t_parity := (121,91);
|
constant PARITY_POLYNOMIALS : t_parity := (121,91);
|
|
|
|
|
--
|
--
|
-- Set a recursive polynomial
|
-- Set a recursive polynomial
|
-- Set to 0 if no recursion is used
|
-- Set to 0 if no recursion is used
|
-- Setting this arbitrary may result in a worse error correction ability
|
-- Setting this arbitrary may result in a worse error correction ability
|
--
|
--
|
constant FEEDBACK_POLYNOMIAL : natural := 0;
|
constant FEEDBACK_POLYNOMIAL : natural := 0;
|
|
|
|
|
-----------------------------
|
-----------------------------
|
-- Architecture Parameters --
|
-- Architecture Parameters --
|
-----------------------------
|
-----------------------------
|
|
|
--
|
--
|
-- Set bit width of LLR input
|
-- Set bit width of LLR input
|
-- Recommended values: 3 or 4
|
-- Recommended values: 3 or 4
|
--
|
--
|
constant BW_LLR_INPUT : natural := 4;
|
constant BW_LLR_INPUT : natural := 4;
|
|
|
--
|
--
|
-- Set the maximum window length which shall be allowed at runtime.
|
-- Set the maximum window length which shall be allowed at runtime.
|
-- Recommended: at least 6 * constraint length
|
-- Recommended: at least 6 * constraint length
|
--
|
--
|
constant MAX_WINDOW_LENGTH : natural := 96;
|
constant MAX_WINDOW_LENGTH : natural := 96;
|
|
|
--
|
--
|
-- Set to 'true' if distributed RAM shall be used
|
-- Set to 'true' if distributed RAM shall be used
|
-- Set to 'false' if block RAM shall be used
|
-- Set to 'false' if block RAM shall be used
|
--
|
--
|
constant DISTRIBUTED_RAM : boolean := true;
|
constant DISTRIBUTED_RAM : boolean := true;
|
|
|
end package pkg_param;
|
end package pkg_param;
|
|
|