Skip to content
Snippets Groups Projects
Commit de6faf5f authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Add t_diag_block_gen_integer and func_diag_bg_ctrl_integer_to_slv().

parent 4b0c28be
No related branches found
No related tags found
1 merge request!288Resolve L2SDP-836
......@@ -123,9 +123,20 @@ PACKAGE diag_pkg IS
mem_low_adrs : STD_LOGIC_VECTOR(c_diag_bg_mem_low_adrs_w -1 DOWNTO 0);
mem_high_adrs : STD_LOGIC_VECTOR(c_diag_bg_mem_high_adrs_w -1 DOWNTO 0);
bsn_init : STD_LOGIC_VECTOR(c_diag_bg_bsn_init_w -1 DOWNTO 0);
END RECORD;
CONSTANT c_diag_block_gen_rst : t_diag_block_gen := ( '0',
END RECORD;
TYPE t_diag_block_gen_integer IS RECORD
enable : STD_LOGIC;
enable_sync : STD_LOGIC;
samples_per_packet : NATURAL;
blocks_per_sync : NATURAL;
gapsize : NATURAL;
mem_low_adrs : NATURAL;
mem_high_adrs : NATURAL;
bsn_init : NATURAL;
END RECORD;
CONSTANT c_diag_block_gen_rst : t_diag_block_gen := ( '0',
'0',
TO_UVEC( 256, c_diag_bg_samples_per_packet_w),
TO_UVEC( 10, c_diag_bg_blocks_per_sync_w),
......@@ -143,11 +154,17 @@ PACKAGE diag_pkg IS
TO_UVEC( 15, c_diag_bg_mem_high_adrs_w), -- fits any BG buffer that has address width >= 4
TO_UVEC( 0, c_diag_bg_bsn_init_w));
CONSTANT c_diag_block_gen_integer_rst : t_diag_block_gen_integer := ('0', '0', 256, 10, 128, 0, 1, 0);
CONSTANT c_diag_block_gen_integer_enabled : t_diag_block_gen_integer := ('1', '0', 50, 10, 7, 0, 15, 0);
TYPE t_diag_block_gen_arr IS ARRAY (INTEGER RANGE <>) OF t_diag_block_gen;
TYPE t_diag_block_gen_integer_arr IS ARRAY (INTEGER RANGE <>) OF t_diag_block_gen_integer;
-- Overloaded sel_a_b (from common_pkg) for t_diag_block_gen
FUNCTION sel_a_b(sel : BOOLEAN; a, b : t_diag_block_gen) RETURN t_diag_block_gen;
FUNCTION func_diag_bg_ctrl_integer_to_slv(bg_ctrl_int : t_diag_block_gen_integer) RETURN t_diag_block_gen;
-----------------------------------------------------------------------------
-- Data buffer
-----------------------------------------------------------------------------
......@@ -214,4 +231,16 @@ PACKAGE BODY diag_pkg IS
END IF;
END;
FUNCTION func_diag_bg_ctrl_integer_to_slv(bg_ctrl_int : t_diag_block_gen_integer) RETURN t_diag_block_gen IS
BEGIN
RETURN ( bg_ctrl_int.enable,
bg_ctrl_int.enable_sync,
TO_UVEC(bg_ctrl_int.samples_per_packet, c_diag_bg_samples_per_packet_w),
TO_UVEC(bg_ctrl_int.blocks_per_sync , c_diag_bg_blocks_per_sync_w),
TO_UVEC(bg_ctrl_int.gapsize , c_diag_bg_gapsize_w),
TO_UVEC(bg_ctrl_int.mem_low_adrs , c_diag_bg_mem_low_adrs_w),
TO_UVEC(bg_ctrl_int.mem_high_adrs , c_diag_bg_mem_high_adrs_w),
TO_UVEC(bg_ctrl_int.bsn_init , c_diag_bg_bsn_init_w));
END;
END diag_pkg;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment