library ieee; use ieee.std_logic_1164.all; package phase_record_pkg is type ctp_cnt_ovf is array (0 to 1) of std_logic_vector(7 downto 0); type ram10x6 is array (0 to 9) of integer range 0 to 63; type phases is record quarter : std_logic_vector(1 downto 0); coefficient : integer range 0 to 9; doubled : std_logic; --counter : integer range 0 to 63; end record; type tree_ph is array(0 to 2) of phases; constant mem_sin_law : ram10x6 := (0, 11, 22, 31, 40, 48, 55, 59, 62, 63); constant A_phase_init : phases := (quarter => "00", coefficient => 0, doubled => '1'); constant B_phase_init : phases := (quarter => "01", coefficient => 6, doubled => '1'); constant C_phase_init : phases := (quarter => "10", coefficient => 6, doubled => '0'); constant dir_forward : tree_ph := (0 => A_phase_init, 1 => B_phase_init, 2 => C_phase_init); constant dir_reverse : tree_ph := (0 => C_phase_init, 1 => B_phase_init, 2 => A_phase_init); end package phase_record_pkg;