Line 90... |
Line 90... |
-- data with increment +1 is used to verify the input data.
|
-- data with increment +1 is used to verify the input data.
|
-- When g_use_steps=TRUE then the g_nof_steps =
|
-- When g_use_steps=TRUE then the g_nof_steps =
|
-- c_diag_seq_rx_reg_nof_steps = 4 MM step registers define the allowed
|
-- c_diag_seq_rx_reg_nof_steps = 4 MM step registers define the allowed
|
-- COUNTER increment values.
|
-- COUNTER increment values.
|
|
|
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, mm_lib, common_ram_lib;
|
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, astron_mm_lib, astron_ram_lib;
|
USE IEEE.std_logic_1164.ALL;
|
USE IEEE.std_logic_1164.ALL;
|
USE IEEE.numeric_std.ALL;
|
USE IEEE.numeric_std.ALL;
|
USE common_pkg_lib.common_pkg.ALL;
|
USE common_pkg_lib.common_pkg.ALL;
|
USE common_ram_lib.common_ram_pkg.ALL;
|
USE astron_ram_lib.common_ram_pkg.ALL;
|
USE mm_lib.common_field_pkg.ALL;
|
USE astron_mm_lib.common_field_pkg.ALL;
|
USE dp_pkg_lib.dp_stream_pkg.ALL;
|
USE dp_pkg_lib.dp_stream_pkg.ALL;
|
USE work.diag_pkg.ALL;
|
USE work.diag_pkg.ALL;
|
|
|
ENTITY mms_diag_rx_seq IS
|
ENTITY mms_diag_rx_seq IS
|
GENERIC (
|
GENERIC (
|
Line 267... |
Line 267... |
stat_reg_arr(I)( 1+1*c_word_w) <= stat_res_val_n_arr(I); -- address 1, data bit [1]
|
stat_reg_arr(I)( 1+1*c_word_w) <= stat_res_val_n_arr(I); -- address 1, data bit [1]
|
stat_reg_arr(I)(3*c_word_w-1 DOWNTO 2*c_word_w) <= rx_cnt_arr(I); -- address 2: read rx_cnt per stream
|
stat_reg_arr(I)(3*c_word_w-1 DOWNTO 2*c_word_w) <= rx_cnt_arr(I); -- address 2: read rx_cnt per stream
|
stat_reg_arr(I)(4*c_word_w-1 DOWNTO 3*c_word_w) <= RESIZE_UVEC(rx_sample_arr(I), c_word_w); -- address 3: read valid sample per stream
|
stat_reg_arr(I)(4*c_word_w-1 DOWNTO 3*c_word_w) <= RESIZE_UVEC(rx_sample_arr(I), c_word_w); -- address 3: read valid sample per stream
|
END PROCESS;
|
END PROCESS;
|
|
|
u_reg : ENTITY mm_lib.common_reg_r_w_dc
|
u_reg : ENTITY astron_mm_lib.common_reg_r_w_dc
|
GENERIC MAP (
|
GENERIC MAP (
|
g_cross_clock_domain => TRUE,
|
g_cross_clock_domain => TRUE,
|
g_readback => FALSE, -- must use FALSE for write/read or read only register when g_cross_clock_domain=TRUE
|
g_readback => FALSE, -- must use FALSE for write/read or read only register when g_cross_clock_domain=TRUE
|
g_reg => c_mm_reg
|
g_reg => c_mm_reg
|
)
|
)
|
Line 291... |
Line 291... |
out_reg => ctrl_reg_arr(I)
|
out_reg => ctrl_reg_arr(I)
|
);
|
);
|
END GENERATE;
|
END GENERATE;
|
|
|
-- Combine the internal array of mm interfaces for the bg_data to one array that is connected to the port of the MM bus
|
-- Combine the internal array of mm interfaces for the bg_data to one array that is connected to the port of the MM bus
|
u_mem_mux : ENTITY mm_lib.common_mem_mux
|
u_mem_mux : ENTITY astron_mm_lib.common_mem_mux
|
GENERIC MAP (
|
GENERIC MAP (
|
g_nof_mosi => g_nof_streams,
|
g_nof_mosi => g_nof_streams,
|
g_mult_addr_w => c_mm_reg.adr_w
|
g_mult_addr_w => c_mm_reg.adr_w
|
)
|
)
|
PORT MAP (
|
PORT MAP (
|