library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

package linear_block_package is

    constant word_width :   integer := 24;
    constant data_width :   integer := 12;

    subtype data_vector is std_logic_vector(data_width-1 downto 0);
    subtype word_vector is std_logic_vector(word_width-1 downto 0);

--    subtype fsm         is   std_logic_vector(2 downto 0);

    constant zeros12    :   data_vector :=(others=>'0');
    constant zeros24    :   word_vector :=(others=>'0');

    type matrix is array (natural range <>) of data_vector;
    
    -- compile with -87 support for VHDL 1987
    constant bMatrix    :   matrix := (to_stdlogicvector(x"7ff"),to_stdlogicvector(x"ee2"),
                                       to_stdlogicvector(x"dc5"),to_stdlogicvector(x"b8b"),
                                       to_stdlogicvector(x"f16"),to_stdlogicvector(x"e2d"),
                                       to_stdlogicvector(x"c5b"),to_stdlogicvector(x"8b7"),
                                       to_stdlogicvector(x"96e"),to_stdlogicvector(x"adc"),
                                       to_stdlogicvector(x"db8"),to_stdlogicvector(x"b71"));

-- calculates the step 1 of the algorithm
-- calc syndrome and hamming(syndrome)
    procedure syndromeCal( signal word     :in     word_vector;
                           signal hammingW :out    integer);   





end linear_block_package;




package body linear_block_package is





-- calculates the step 1 of the algorithm
-- calc syndrome and hamming(syndrome)
    procedure syndromeCal( signal word     :in     word_vector;
                           signal hammingW :out    integer)    is




    begin
        



    end syndromeCal;





end linear_block_package;
