-
BRONES Romain authoredBRONES Romain authored
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;