Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pkg_corrmatrixpi.vhd 2.15 KiB
library ieee;
use ieee.std_logic_1164.all;
use ieee.math_real.log2;
use ieee.math_real.ceil;
use ieee.numeric_std.all;


package pkg_corr_matrixpi is


    --------------------------
    -- CONSTANT DECLARATION --
    --------------------------

    -- Data input
    constant C_W_BPMPOS         : natural := 32;
    constant C_W_BPMID          : natural := 16;
    constant C_W_BPMSEQ         : natural := 8;
    constant C_W_PSCID          : natural := 8;

    -- Orbit error
    constant C_N_OE_SAT         : natural := 8;
    constant C_W_OE             : natural := 24; -- C_W_BPMPOS-C_N_OE_SAT;

    -- Matrix multiplier
    constant C_N_MM_BPM         : natural := 122; -- number of bpm (matrix columns)
    constant C_N_MM_PSC         : natural := 100; -- number of psc (matrix lines)

    constant C_W_MM_COEF        : natural := 24;

    constant C_W_MM_MULT        : natural := 48; -- C_W_OE+C_W_MM_COEF;
    constant C_W_MM_IDCNT       : natural := 7;  -- natural(ceil(log2(real(C_N_MM_BPM))));
    constant C_W_MM_ACCU        : natural := 55; -- C_W_MM_MULT+C_W_MM_IDCNT;

    constant C_N_MM_SAT         : natural := 0;
    constant C_N_MM_RND         : natural := 23;
    constant C_W_MM             : natural := 32; --C_W_MM_ACCU-C_N_MM_SAT-C_N_MM_RND

    -- PI corrector
    constant C_W_COR_KP         : natural := 17;
    constant C_W_COR_KI         : natural := 17;
    constant C_W_COR_ACCU       : natural := 40; --C_W_MM+ ?to choose?

    constant C_W_COR_MP         : natural := 50; --C_W_MM+C_W_COR_KP+1
    constant C_W_COR_MI         : natural := 58; --C_W_COR_ACCU+C_W_COR_KI+1

    constant C_N_COR_MIRND      : natural := 8;
    constant C_W_COR_SUM        : natural := 50; -- max(C_W_COR_MP,C_W_COR_MI-C_N_COR_MIRND)

    constant C_N_COR_SAT        : natural := 0;
    constant C_N_COR_RND        : natural := 34;

    constant C_W_COR            : natural := 16; -- C_W_COR_SUM-C_N_COR_SAT-C_N_COR_RND

    -- Serializer
    constant C_W_SER_CNT        : natural := 7; -- natural(ceil(log2(real(C_N_MM_PSC))));

    ----------------------
    -- TYPE DECLARATION --
    ----------------------
    type signed_array is array (natural range <>) of signed;


end package;