diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd index 46c60e3a5b820cb68c9f9c05cf9cbab8574d86d4..8e91fa07db261f6a65baaca1252bf972bc6cee0d 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd @@ -1,4 +1,4 @@ -------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- -- -- Copyright (C) 2014 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> @@ -17,797 +17,720 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- -------------------------------------------------------------------------------- - -LIBRARY IEEE, common_lib, unb1_board_lib, mm_lib, wpfb_lib, eth_lib, tech_tse_lib, technology_lib; +-------------------------------------------------------------------------------- + +-- u_inst_mmm_apertif_unb1_correlator : ENTITY work.mmm_apertif_unb1_correlator +-- GENERIC MAP( +-- g_sim => g_sim, +-- g_sim_unb_nr => g_sim_unb_nr, +-- g_sim_node_nr => g_sim_node_nr +-- ) +-- PORT MAP( +-- mm_clk => mm_clk, +-- mm_rst => mm_rst, +-- pout_wdi => pout_wdi, +-- reg_wdi_mosi => reg_wdi_mosi, +-- reg_wdi_miso => reg_wdi_miso, +-- reg_unb_system_info_mosi => reg_unb_system_info_mosi, +-- reg_unb_system_info_miso => reg_unb_system_info_miso, +-- rom_unb_system_info_mosi => rom_unb_system_info_mosi, +-- rom_unb_system_info_miso => rom_unb_system_info_miso, +-- reg_unb_sens_mosi => reg_unb_sens_mosi, +-- reg_unb_sens_miso => reg_unb_sens_miso, +-- reg_ppsh_mosi => reg_ppsh_mosi, +-- reg_ppsh_miso => reg_ppsh_miso, +-- eth1g_mm_rst => eth1g_mm_rst, +-- eth1g_reg_interrupt => eth1g_reg_interrupt, +-- eth1g_ram_mosi => eth1g_ram_mosi, +-- eth1g_ram_miso => eth1g_ram_miso, +-- eth1g_reg_mosi => eth1g_reg_mosi, +-- eth1g_reg_miso => eth1g_reg_miso, +-- eth1g_tse_mosi => eth1g_tse_mosi, +-- eth1g_tse_miso => eth1g_tse_miso, +-- reg_diag_bg_input_mosi => reg_diag_bg_input_mosi, +-- reg_diag_bg_input_miso => reg_diag_bg_input_miso, +-- reg_diag_bg_mesh_mosi => reg_diag_bg_mesh_mosi, +-- reg_diag_bg_mesh_miso => reg_diag_bg_mesh_miso, +-- ram_diag_bg_mesh_mosi => ram_diag_bg_mesh_mosi, +-- ram_diag_bg_mesh_miso => ram_diag_bg_mesh_miso, +-- reg_diagnostics_mosi => reg_diagnostics_mosi, +-- reg_diagnostics_miso => reg_diagnostics_miso, +-- reg_tr_nonbonded_mosi => reg_tr_nonbonded_mosi, +-- reg_tr_nonbonded_miso => reg_tr_nonbonded_miso, +-- reg_diag_data_buf_input_mosi => reg_diag_data_buf_input_mosi, +-- reg_diag_data_buf_input_miso => reg_diag_data_buf_input_miso, +-- ram_diag_data_buf_input_mosi => ram_diag_data_buf_input_mosi, +-- ram_diag_data_buf_input_miso => ram_diag_data_buf_input_miso, +-- reg_diag_data_buf_mesh_mosi => reg_diag_data_buf_mesh_mosi, +-- reg_diag_data_buf_mesh_miso => reg_diag_data_buf_mesh_miso, +-- ram_diag_data_buf_mesh_mosi => ram_diag_data_buf_mesh_mosi, +-- ram_diag_data_buf_mesh_miso => ram_diag_data_buf_mesh_miso, +-- ram_fil_coefs_mosi => ram_fil_coefs_mosi, +-- ram_fil_coefs_miso => ram_fil_coefs_miso, +-- reg_mdio_0_mosi => reg_mdio_0_mosi, +-- reg_mdio_0_miso => reg_mdio_0_miso, +-- reg_mdio_1_mosi => reg_mdio_1_mosi, +-- reg_mdio_1_miso => reg_mdio_1_miso, +-- reg_mdio_2_mosi => reg_mdio_2_mosi, +-- reg_mdio_2_miso => reg_mdio_2_miso, +-- reg_dp_offload_rx_hdr_dat_mosi => reg_dp_offload_rx_hdr_dat_mosi, +-- reg_dp_offload_rx_hdr_dat_miso => reg_dp_offload_rx_hdr_dat_miso, +-- reg_dp_offload_tx_hdr_dat_mosi => reg_dp_offload_tx_hdr_dat_mosi, +-- reg_dp_offload_tx_hdr_dat_miso => reg_dp_offload_tx_hdr_dat_miso, +-- reg_tr_10gbe_mosi => reg_tr_10gbe_mosi, +-- reg_tr_10gbe_miso => reg_tr_10gbe_miso, +-- reg_tr_xaui_mosi => reg_tr_xaui_mosi, +-- reg_tr_xaui_miso => reg_tr_xaui_miso, +-- reg_bsn_monitor_mosi => reg_bsn_monitor_mosi, +-- reg_bsn_monitor_miso => reg_bsn_monitor_miso +-- ); +-- +-- SIGNAL reg_wdi_mosi : t_mem_mosi; +-- SIGNAL reg_wdi_miso : t_mem_miso; +-- SIGNAL reg_unb_system_info_mosi : t_mem_mosi; +-- SIGNAL reg_unb_system_info_miso : t_mem_miso; +-- SIGNAL rom_unb_system_info_mosi : t_mem_mosi; +-- SIGNAL rom_unb_system_info_miso : t_mem_miso; +-- SIGNAL reg_unb_sens_mosi : t_mem_mosi; +-- SIGNAL reg_unb_sens_miso : t_mem_miso; +-- SIGNAL reg_ppsh_mosi : t_mem_mosi; +-- SIGNAL reg_ppsh_miso : t_mem_miso; +-- SIGNAL eth1g_ram_mosi : t_mem_mosi; +-- SIGNAL eth1g_ram_miso : t_mem_miso; +-- SIGNAL eth1g_reg_mosi : t_mem_mosi; +-- SIGNAL eth1g_reg_miso : t_mem_miso; +-- SIGNAL eth1g_tse_mosi : t_mem_mosi; +-- SIGNAL eth1g_tse_miso : t_mem_miso; +-- SIGNAL reg_diag_bg_input_mosi : t_mem_mosi; +-- SIGNAL reg_diag_bg_input_miso : t_mem_miso; +-- SIGNAL reg_diag_bg_mesh_mosi : t_mem_mosi; +-- SIGNAL reg_diag_bg_mesh_miso : t_mem_miso; +-- SIGNAL ram_diag_bg_mesh_mosi : t_mem_mosi; +-- SIGNAL ram_diag_bg_mesh_miso : t_mem_miso; +-- SIGNAL reg_diagnostics_mosi : t_mem_mosi; +-- SIGNAL reg_diagnostics_miso : t_mem_miso; +-- SIGNAL reg_tr_nonbonded_mosi : t_mem_mosi; +-- SIGNAL reg_tr_nonbonded_miso : t_mem_miso; +-- SIGNAL reg_diag_data_buf_input_mosi : t_mem_mosi; +-- SIGNAL reg_diag_data_buf_input_miso : t_mem_miso; +-- SIGNAL ram_diag_data_buf_input_mosi : t_mem_mosi; +-- SIGNAL ram_diag_data_buf_input_miso : t_mem_miso; +-- SIGNAL reg_diag_data_buf_mesh_mosi : t_mem_mosi; +-- SIGNAL reg_diag_data_buf_mesh_miso : t_mem_miso; +-- SIGNAL ram_diag_data_buf_mesh_mosi : t_mem_mosi; +-- SIGNAL ram_diag_data_buf_mesh_miso : t_mem_miso; +-- SIGNAL ram_fil_coefs_mosi : t_mem_mosi; +-- SIGNAL ram_fil_coefs_miso : t_mem_miso; +-- SIGNAL reg_mdio_0_mosi : t_mem_mosi; +-- SIGNAL reg_mdio_0_miso : t_mem_miso; +-- SIGNAL reg_mdio_1_mosi : t_mem_mosi; +-- SIGNAL reg_mdio_1_miso : t_mem_miso; +-- SIGNAL reg_mdio_2_mosi : t_mem_mosi; +-- SIGNAL reg_mdio_2_miso : t_mem_miso; +-- SIGNAL reg_dp_offload_rx_hdr_dat_mosi : t_mem_mosi; +-- SIGNAL reg_dp_offload_rx_hdr_dat_miso : t_mem_miso; +-- SIGNAL reg_dp_offload_tx_hdr_dat_mosi : t_mem_mosi; +-- SIGNAL reg_dp_offload_tx_hdr_dat_miso : t_mem_miso; +-- SIGNAL reg_tr_10gbe_mosi : t_mem_mosi; +-- SIGNAL reg_tr_10gbe_miso : t_mem_miso; +-- SIGNAL reg_tr_xaui_mosi : t_mem_mosi; +-- SIGNAL reg_tr_xaui_miso : t_mem_miso; +-- SIGNAL reg_bsn_monitor_mosi : t_mem_mosi; +-- SIGNAL reg_bsn_monitor_miso : t_mem_miso; +-- +LIBRARY IEEE, common_lib, unb1_board_lib, mm_lib, eth_lib, technology_lib, tech_tse_lib; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; USE common_lib.tb_common_mem_pkg.ALL; +USE common_lib.common_field_pkg.ALL; +USE common_lib.common_network_total_header_pkg.ALL; +USE common_lib.common_network_layers_pkg.ALL; +USE common_lib.common_mem_pkg.ALL; USE unb1_board_lib.unb1_board_pkg.ALL; USE unb1_board_lib.unb1_board_peripherals_pkg.ALL; USE mm_lib.mm_file_pkg.ALL; USE mm_lib.mm_file_unb_pkg.ALL; -USE wpfb_lib.wpfb_pkg.ALL; -USE tech_tse_lib.tech_tse_pkg.ALL; -USE tech_tse_lib.tb_tech_tse_pkg.ALL; USE eth_lib.eth_pkg.ALL; -USE common_lib.common_network_layers_pkg.ALL; USE technology_lib.technology_pkg.ALL; -USE technology_lib.technology_select_pkg.ALL; -USE common_lib.common_field_pkg.ALL; +USE tech_tse_lib.tech_tse_pkg.ALL; +USE tech_tse_lib.tb_tech_tse_pkg.ALL; ENTITY mmm_apertif_unb1_correlator IS GENERIC ( - g_sim : BOOLEAN := FALSE; --FALSE: use SOPC; TRUE: use mm_file I/O - g_sim_unb_nr : NATURAL := 0; - g_sim_node_nr : NATURAL := 0; - g_wpfb : t_wpfb; - g_hdr_field_arr : t_common_field_arr; - g_use_qsys : BOOLEAN := TRUE + g_sim : BOOLEAN := FALSE; + g_sim_unb_nr : NATURAL := 0; + g_sim_node_nr : NATURAL := 0 ); PORT ( - xo_clk : IN STD_LOGIC; - xo_rst_n : IN STD_LOGIC; - xo_rst : IN STD_LOGIC; - - mm_rst : IN STD_LOGIC; - mm_clk : OUT STD_LOGIC; - mm_locked : OUT STD_LOGIC; - - pout_wdi : OUT STD_LOGIC; - - -- Manual WDI override + mm_clk : IN STD_LOGIC := '1'; + mm_rst : IN STD_LOGIC := '1'; + pout_wdi : OUT STD_LOGIC := '1'; reg_wdi_mosi : OUT t_mem_mosi; - reg_wdi_miso : IN t_mem_miso; - - -- system_info + reg_wdi_miso : IN t_mem_miso := c_mem_miso_rst; reg_unb_system_info_mosi : OUT t_mem_mosi; - reg_unb_system_info_miso : IN t_mem_miso; + reg_unb_system_info_miso : IN t_mem_miso := c_mem_miso_rst; rom_unb_system_info_mosi : OUT t_mem_mosi; - rom_unb_system_info_miso : IN t_mem_miso; - - -- UniBoard I2C sensors - reg_unb_sens_mosi : OUT t_mem_mosi; - reg_unb_sens_miso : IN t_mem_miso; - - -- PPSH - reg_ppsh_mosi : OUT t_mem_mosi; - reg_ppsh_miso : IN t_mem_miso; - - -- Block generator - reg_diag_bg_mosi : OUT t_mem_mosi; - reg_diag_bg_miso : IN t_mem_miso; - - -- DP Offload RX - reg_dp_offload_rx_hdr_dat_mosi : OUT t_mem_mosi; - reg_dp_offload_rx_hdr_dat_miso : IN t_mem_miso; - - -- 10 GbE - reg_tr_10GbE_mosi : OUT t_mem_mosi; - reg_tr_10GbE_miso : IN t_mem_miso; + rom_unb_system_info_miso : IN t_mem_miso := c_mem_miso_rst; + reg_unb_sens_mosi : OUT t_mem_mosi; + reg_unb_sens_miso : IN t_mem_miso := c_mem_miso_rst; + reg_ppsh_mosi : OUT t_mem_mosi; + reg_ppsh_miso : IN t_mem_miso := c_mem_miso_rst; + eth1g_mm_rst : OUT STD_LOGIC; + eth1g_reg_interrupt : IN STD_LOGIC; + eth1g_ram_mosi : OUT t_mem_mosi; + eth1g_ram_miso : IN t_mem_miso := c_mem_miso_rst; + eth1g_reg_mosi : OUT t_mem_mosi; + eth1g_reg_miso : IN t_mem_miso := c_mem_miso_rst; + eth1g_tse_mosi : OUT t_mem_mosi; + eth1g_tse_miso : IN t_mem_miso := c_mem_miso_rst; + reg_diag_bg_input_mosi : OUT t_mem_mosi; + reg_diag_bg_input_miso : IN t_mem_miso := c_mem_miso_rst; + reg_diag_bg_mesh_mosi : OUT t_mem_mosi; + reg_diag_bg_mesh_miso : IN t_mem_miso := c_mem_miso_rst; + ram_diag_bg_mesh_mosi : OUT t_mem_mosi; + ram_diag_bg_mesh_miso : IN t_mem_miso := c_mem_miso_rst; + reg_diagnostics_mosi : OUT t_mem_mosi; + reg_diagnostics_miso : IN t_mem_miso := c_mem_miso_rst; + reg_tr_nonbonded_mosi : OUT t_mem_mosi; + reg_tr_nonbonded_miso : IN t_mem_miso := c_mem_miso_rst; + reg_diag_data_buf_input_mosi : OUT t_mem_mosi; + reg_diag_data_buf_input_miso : IN t_mem_miso := c_mem_miso_rst; + ram_diag_data_buf_input_mosi : OUT t_mem_mosi; + ram_diag_data_buf_input_miso : IN t_mem_miso := c_mem_miso_rst; + reg_diag_data_buf_mesh_mosi : OUT t_mem_mosi; + reg_diag_data_buf_mesh_miso : IN t_mem_miso := c_mem_miso_rst; + ram_diag_data_buf_mesh_mosi : OUT t_mem_mosi; + ram_diag_data_buf_mesh_miso : IN t_mem_miso := c_mem_miso_rst; + ram_fil_coefs_mosi : OUT t_mem_mosi; + ram_fil_coefs_miso : IN t_mem_miso := c_mem_miso_rst; + reg_mdio_0_mosi : OUT t_mem_mosi; + reg_mdio_0_miso : IN t_mem_miso := c_mem_miso_rst; + reg_mdio_1_mosi : OUT t_mem_mosi; + reg_mdio_1_miso : IN t_mem_miso := c_mem_miso_rst; + reg_mdio_2_mosi : OUT t_mem_mosi; + reg_mdio_2_miso : IN t_mem_miso := c_mem_miso_rst; + reg_dp_offload_rx_hdr_dat_mosi : OUT t_mem_mosi; + reg_dp_offload_rx_hdr_dat_miso : IN t_mem_miso := c_mem_miso_rst; + reg_dp_offload_tx_hdr_dat_mosi : OUT t_mem_mosi; + reg_dp_offload_tx_hdr_dat_miso : IN t_mem_miso := c_mem_miso_rst; + reg_tr_10gbe_mosi : OUT t_mem_mosi; + reg_tr_10gbe_miso : IN t_mem_miso := c_mem_miso_rst; reg_tr_xaui_mosi : OUT t_mem_mosi; - reg_tr_xaui_miso : IN t_mem_miso; - reg_mdio_mosi_arr : OUT t_mem_mosi_arr(3-1 DOWNTO 0); - reg_mdio_miso_arr : IN t_mem_miso_arr(3-1 DOWNTO 0); - - -- BSN monitors + reg_tr_xaui_miso : IN t_mem_miso := c_mem_miso_rst; reg_bsn_monitor_mosi : OUT t_mem_mosi; - reg_bsn_monitor_miso : IN t_mem_miso; - - -- Data buffers - reg_diag_data_buf_mosi : OUT t_mem_mosi; - reg_diag_data_buf_miso : IN t_mem_miso; - ram_diag_data_buf_mosi : OUT t_mem_mosi; - ram_diag_data_buf_miso : IN t_mem_miso; - - -- Filter coefficients - ram_fil_coefs_mosi : OUT t_mem_mosi; - ram_fil_coefs_miso : IN t_mem_miso; - - -- 1GbE visibility Offload TX - reg_dp_offload_tx_hdr_dat_mosi : OUT t_mem_mosi; - reg_dp_offload_tx_hdr_dat_miso : IN t_mem_miso; - - -- eth1g - eth1g_tse_clk : OUT STD_LOGIC; - eth1g_mm_rst : OUT STD_LOGIC; - eth1g_tse_mosi : OUT t_mem_mosi; - eth1g_tse_miso : IN t_mem_miso; - eth1g_reg_mosi : OUT t_mem_mosi; - eth1g_reg_miso : IN t_mem_miso; - eth1g_reg_interrupt : IN STD_LOGIC; - eth1g_ram_mosi : OUT t_mem_mosi; - eth1g_ram_miso : IN t_mem_miso + reg_bsn_monitor_miso : IN t_mem_miso := c_mem_miso_rst ); -END mmm_apertif_unb1_correlator; +END ENTITY mmm_apertif_unb1_correlator; ARCHITECTURE str OF mmm_apertif_unb1_correlator IS - CONSTANT c_nof_inputs : NATURAL := 3; - - -- tr_xaui - CONSTANT c_xaui_mosi_addr_w : NATURAL := 9; --2^9 = range of 512 addresses - CONSTANT c_max_nof_xaui_inst : NATURAL := 4; - CONSTANT c_reg_tr_xaui_addr_w : NATURAL := ceil_log2(c_max_nof_xaui_inst* pow2(c_xaui_mosi_addr_w)); -- 4* 512 = 2048 addresses -> 11 address bits. - - -- dp_offload_rx - CONSTANT c_reg_dp_offload_rx_hdr_dat_nof_words : NATURAL := field_nof_words(g_hdr_field_arr, c_word_w); - CONSTANT c_reg_dp_offload_rx_hdr_dat_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_rx_hdr_dat_nof_words); - CONSTANT c_reg_dp_offload_rx_hdr_dat_multi_adr_w : NATURAL := ceil_log2(c_nof_inputs* pow2(c_reg_dp_offload_rx_hdr_dat_adr_w)); - - -- tr_10GbE - CONSTANT c_reg_tr_10GbE_adr_w : NATURAL := 13; - CONSTANT c_reg_tr_10GbE_multi_adr_w : NATURAL := ceil_log2(c_nof_inputs* pow2(c_reg_tr_10GbE_adr_w)); - - -- BSN monitors - CONSTANT c_reg_rsp_bsn_monitor_adr_w : NATURAL := ceil_log2((c_nof_inputs+1+1)* pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w)); - - CONSTANT c_ram_diag_data_buf_addr_w : NATURAL := 17; -- 12 streams*8192 buffer words = 98kWords -> 2^17=128kWords - - -- 1GbE Visibility offload TX - CONSTANT c_nof_header_fields : NATURAL := 34+3; -- 34 fields but 3 fields (MACs and timestamp) occupy an extra 32b register word - CONSTANT c_reg_dp_offload_tx_hdr_dat_nof_words : NATURAL := c_nof_header_fields; - CONSTANT c_reg_dp_offload_tx_hdr_dat_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_tx_hdr_dat_nof_words); - - -- ( 64 * 8 / 1 ) - CONSTANT c_ram_fil_coefs_addr_w : natural := ceil_log2(g_wpfb.nof_points * g_wpfb.nof_taps / g_wpfb.wb_factor); - - CONSTANT c_mm_clk_period : TIME := 8 ns; -- 125 MHz - CONSTANT c_tse_clk_period : TIME := 8 ns; - - CONSTANT c_sim_node_type : STRING(1 TO 2):= sel_a_b(g_sim_node_nr<4, "FN", "BN"); - CONSTANT c_sim_node_nr : NATURAL := sel_a_b(c_sim_node_type="BN", g_sim_node_nr-4, g_sim_node_nr); - - SIGNAL i_mm_clk : STD_LOGIC := '1'; - SIGNAL i_tse_clk : STD_LOGIC := '1'; - - CONSTANT c_sim_eth_src_mac : STD_LOGIC_VECTOR(c_network_eth_mac_slv'RANGE) := X"00228608" & TO_UVEC(g_sim_unb_nr, c_byte_w) & TO_UVEC(g_sim_node_nr, c_byte_w); - CONSTANT c_sim_eth_control_rx_en : NATURAL := 2**c_eth_mm_reg_control_bi.rx_en; + CONSTANT c_sim_node_type : STRING(1 TO 2) := sel_a_b(g_sim_node_nr<4, "FN", "BN"); + CONSTANT c_sim_node_nr : NATURAL := sel_a_b(c_sim_node_type="BN", g_sim_node_nr-4, g_sim_node_nr); + CONSTANT c_sim_eth_src_mac : STD_LOGIC_VECTOR(c_network_eth_mac_slv'RANGE) := X"00228608" & TO_UVEC(g_sim_unb_nr, c_byte_w) & TO_UVEC(g_sim_node_nr, c_byte_w); + CONSTANT c_sim_eth_control_rx_en : NATURAL := 2**c_eth_mm_reg_control_bi.rx_en; + + SIGNAL sim_eth_mm_bus_switch : STD_LOGIC ; + SIGNAL sim_eth_psc_access : STD_LOGIC ; + SIGNAL i_eth1g_reg_mosi : t_mem_mosi; + SIGNAL i_eth1g_reg_miso : t_mem_miso; + SIGNAL mm_rst_n : STD_LOGIC ; + SIGNAL sim_eth1g_reg_mosi : t_mem_mosi; + + COMPONENT mm_file IS + GENERIC ( + g_file_prefix : STRING ; + g_mm_clk_period : TIME := 8 ns; + g_update_on_change : BOOLEAN := FALSE; + g_mm_rd_latency : NATURAL := 1 + ); + PORT ( + mm_rst : IN STD_LOGIC; + mm_clk : IN STD_LOGIC; + mm_master_out : OUT t_mem_mosi := c_mem_mosi_rst; + mm_master_in : IN t_mem_miso := c_mem_miso_rst + ); + END COMPONENT mm_file; + + COMPONENT qsys_apertif_unb1_correlator IS + PORT ( + ram_diag_data_buf_mesh_address_export : out std_logic_vector(5 downto 0); + reg_diag_data_buf_input_reset_export : out std_logic; + reg_dp_offload_tx_hdr_dat_write_export : out std_logic; + reg_diag_data_buf_input_clk_export : out std_logic; + eth1g_reg_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + ram_diag_data_buf_mesh_clk_export : out std_logic; + reg_diag_data_buf_input_write_export : out std_logic; + ram_diag_data_buf_mesh_writedata_export : out std_logic_vector(31 downto 0); + reset_in_reset_n : in std_logic := '0'; + reg_diagnostics_write_export : out std_logic; + pio_pps_address_export : out std_logic; + pio_system_info_address_export : out std_logic_vector(4 downto 0); + ram_diag_data_buf_input_reset_export : out std_logic; + pio_pps_reset_export : out std_logic; + eth1g_tse_writedata_export : out std_logic_vector(31 downto 0); + reg_mdio_1_clk_export : out std_logic; + reg_tr_10gbe_write_export : out std_logic; + reg_diag_bg_mesh_read_export : out std_logic; + reg_diag_data_buf_mesh_writedata_export : out std_logic_vector(31 downto 0); + ram_diag_bg_mesh_clk_export : out std_logic; + eth1g_ram_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_diag_bg_mesh_reset_export : out std_logic; + ram_fil_coefs_clk_export : out std_logic; + reg_mdio_0_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + eth1g_ram_address_export : out std_logic_vector(9 downto 0); + pio_pps_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_dp_offload_rx_hdr_dat_clk_export : out std_logic; + reg_diag_data_buf_mesh_write_export : out std_logic; + reg_diag_data_buf_mesh_reset_export : out std_logic; + pio_system_info_writedata_export : out std_logic_vector(31 downto 0); + eth1g_reg_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_bg_mesh_address_export : out std_logic_vector(2 downto 0); + ram_diag_bg_mesh_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_unb_sens_reset_export : out std_logic; + reg_tr_xaui_write_export : out std_logic; + eth1g_tse_address_export : out std_logic_vector(9 downto 0); + reg_wdi_reset_export : out std_logic; + reg_tr_xaui_writedata_export : out std_logic_vector(31 downto 0); + clk_in_clk : in std_logic := '0'; + rom_system_info_clk_export : out std_logic; + reg_unb_sens_read_export : out std_logic; + reg_unb_sens_write_export : out std_logic; + reg_dp_offload_rx_hdr_dat_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_mdio_0_clk_export : out std_logic; + eth1g_tse_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + eth1g_ram_write_export : out std_logic; + reg_diagnostics_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_data_buf_mesh_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + ram_fil_coefs_writedata_export : out std_logic_vector(31 downto 0); + reg_tr_nonbonded_clk_export : out std_logic; + reg_tr_xaui_address_export : out std_logic_vector(10 downto 0); + reg_unb_sens_clk_export : out std_logic; + reg_dp_offload_tx_hdr_dat_writedata_export : out std_logic_vector(31 downto 0); + reg_mdio_0_write_export : out std_logic; + ram_diag_bg_mesh_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_bg_input_write_export : out std_logic; + reg_dp_offload_rx_hdr_dat_write_export : out std_logic; + eth1g_ram_read_export : out std_logic; + reg_wdi_read_export : out std_logic; + reg_dp_offload_rx_hdr_dat_read_export : out std_logic; + eth1g_reg_read_export : out std_logic; + ram_diag_data_buf_input_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_tr_10gbe_read_export : out std_logic; + reg_dp_offload_rx_hdr_dat_reset_export : out std_logic; + reg_bsn_monitor_reset_export : out std_logic; + eth1g_tse_write_export : out std_logic; + reg_unb_sens_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_bsn_monitor_write_export : out std_logic; + reg_mdio_2_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_tr_xaui_waitrequest_export : in std_logic := '0'; + reg_diag_data_buf_input_writedata_export : out std_logic_vector(31 downto 0); + pio_pps_clk_export : out std_logic; + eth1g_reg_address_export : out std_logic_vector(3 downto 0); + reg_diag_data_buf_input_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + pio_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_tr_xaui_reset_export : out std_logic; + rom_system_info_writedata_export : out std_logic_vector(31 downto 0); + reg_dp_offload_tx_hdr_dat_reset_export : out std_logic; + reg_dp_offload_tx_hdr_dat_address_export : out std_logic_vector(5 downto 0); + ram_diag_data_buf_input_address_export : out std_logic_vector(16 downto 0); + reg_tr_nonbonded_reset_export : out std_logic; + reg_mdio_2_read_export : out std_logic; + reg_mdio_1_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_bg_mesh_write_export : out std_logic; + reg_bsn_monitor_read_export : out std_logic; + reg_mdio_2_reset_export : out std_logic; + reg_tr_nonbonded_address_export : out std_logic_vector(3 downto 0); + reg_tr_10gbe_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_bg_input_writedata_export : out std_logic_vector(31 downto 0); + ram_diag_data_buf_input_write_export : out std_logic; + reg_wdi_address_export : out std_logic; + pio_system_info_write_export : out std_logic; + reg_tr_10gbe_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + ram_fil_coefs_address_export : out std_logic_vector(8 downto 0); + reg_tr_nonbonded_writedata_export : out std_logic_vector(31 downto 0); + reg_tr_nonbonded_write_export : out std_logic; + pio_pps_write_export : out std_logic; + rom_system_info_write_export : out std_logic; + ram_diag_data_buf_input_read_export : out std_logic; + reg_diag_bg_input_clk_export : out std_logic; + rom_system_info_read_export : out std_logic; + reg_dp_offload_tx_hdr_dat_clk_export : out std_logic; + reg_dp_offload_rx_hdr_dat_address_export : out std_logic_vector(6 downto 0); + reg_diagnostics_address_export : out std_logic_vector(5 downto 0); + reg_dp_offload_rx_hdr_dat_writedata_export : out std_logic_vector(31 downto 0); + ram_diag_data_buf_mesh_reset_export : out std_logic; + reg_mdio_2_clk_export : out std_logic; + reg_tr_nonbonded_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_mdio_1_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_mdio_2_address_export : out std_logic_vector(2 downto 0); + reg_diag_data_buf_mesh_address_export : out std_logic; + ram_diag_data_buf_mesh_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + eth1g_tse_read_export : out std_logic; + reg_diag_bg_mesh_clk_export : out std_logic; + reg_tr_xaui_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_unb_sens_writedata_export : out std_logic_vector(31 downto 0); + reg_mdio_1_read_export : out std_logic; + eth1g_ram_writedata_export : out std_logic_vector(31 downto 0); + ram_diag_data_buf_mesh_write_export : out std_logic; + ram_fil_coefs_reset_export : out std_logic; + reg_mdio_2_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_bg_input_address_export : out std_logic_vector(2 downto 0); + reg_tr_nonbonded_read_export : out std_logic; + out_port_from_the_pio_debug_wave : out std_logic_vector(31 downto 0); + reg_mdio_1_address_export : out std_logic_vector(2 downto 0); + reg_tr_xaui_read_export : out std_logic; + reg_wdi_writedata_export : out std_logic_vector(31 downto 0); + pio_system_info_reset_export : out std_logic; + reg_diag_data_buf_input_read_export : out std_logic; + reg_bsn_monitor_writedata_export : out std_logic_vector(31 downto 0); + pio_system_info_read_export : out std_logic; + ram_diag_bg_mesh_reset_export : out std_logic; + ram_fil_coefs_write_export : out std_logic; + reg_bsn_monitor_address_export : out std_logic_vector(6 downto 0); + reg_mdio_1_reset_export : out std_logic; + ram_fil_coefs_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_wdi_clk_export : out std_logic; + reg_dp_offload_tx_hdr_dat_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_diag_bg_mesh_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + eth1g_mm_rst_export : out std_logic; + reg_diagnostics_read_export : out std_logic; + ram_fil_coefs_read_export : out std_logic; + reg_tr_10gbe_reset_export : out std_logic; + reg_diag_data_buf_mesh_clk_export : out std_logic; + reg_diagnostics_reset_export : out std_logic; + reg_tr_10gbe_clk_export : out std_logic; + out_port_from_the_pio_wdi : out std_logic; + reg_bsn_monitor_clk_export : out std_logic; + eth1g_reg_write_export : out std_logic; + reg_mdio_1_write_export : out std_logic; + reg_diag_bg_input_read_export : out std_logic; + reg_dp_offload_tx_hdr_dat_read_export : out std_logic; + rom_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + ram_diag_data_buf_input_clk_export : out std_logic; + reg_diag_data_buf_mesh_read_export : out std_logic; + reg_wdi_write_export : out std_logic; + reg_tr_xaui_clk_export : out std_logic; + reg_wdi_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + pio_pps_read_export : out std_logic; + reg_mdio_2_write_export : out std_logic; + pio_system_info_clk_export : out std_logic; + ram_diag_bg_mesh_read_export : out std_logic; + reg_tr_10gbe_address_export : out std_logic_vector(14 downto 0); + ram_diag_bg_mesh_address_export : out std_logic_vector(9 downto 0); + pio_pps_writedata_export : out std_logic_vector(31 downto 0); + eth1g_tse_waitrequest_export : in std_logic := '0'; + reg_mdio_0_writedata_export : out std_logic_vector(31 downto 0); + reg_tr_10gbe_waitrequest_export : in std_logic := '0'; + reg_bsn_monitor_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + eth1g_mm_clk_export : out std_logic; + reg_diag_bg_input_reset_export : out std_logic; + rom_system_info_reset_export : out std_logic; + ram_diag_bg_mesh_write_export : out std_logic; + ram_diag_data_buf_input_writedata_export : out std_logic_vector(31 downto 0); + reg_unb_sens_address_export : out std_logic_vector(2 downto 0); + reg_mdio_0_reset_export : out std_logic; + ram_diag_data_buf_mesh_read_export : out std_logic; + rom_system_info_address_export : out std_logic_vector(9 downto 0); + reg_diag_bg_mesh_writedata_export : out std_logic_vector(31 downto 0); + reg_diag_data_buf_input_address_export : out std_logic; + eth1g_irq_export : in std_logic := '0'; + reg_mdio_0_address_export : out std_logic_vector(2 downto 0); + reg_diag_bg_input_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_diagnostics_readdata_export : in std_logic_vector(31 downto 0) := (others => '0'); + reg_diagnostics_clk_export : out std_logic; + reg_mdio_0_read_export : out std_logic + ); + END COMPONENT qsys_apertif_unb1_correlator; + - SIGNAL sim_eth_mm_bus_switch : STD_LOGIC; - SIGNAL sim_eth_psc_access : STD_LOGIC; - - SIGNAL i_eth1g_reg_mosi : t_mem_mosi; - SIGNAL i_eth1g_reg_miso : t_mem_miso; - - SIGNAL sim_eth1g_reg_mosi : t_mem_mosi; - - ---------------------------------------------------------------------------- - -- mm_file component - ---------------------------------------------------------------------------- - COMPONENT mm_file - GENERIC( - g_file_prefix : STRING; - g_mm_clk_period : TIME := c_mm_clk_period; - g_update_on_change : BOOLEAN := FALSE; - g_mm_rd_latency : NATURAL := 1 - ); - PORT ( - mm_rst : IN STD_LOGIC; - mm_clk : IN STD_LOGIC; - mm_master_out : OUT t_mem_mosi; - mm_master_in : IN t_mem_miso - ); - END COMPONENT; - - ----------------------------------------------------------------------------- - -- this component declaration is copy-pasted from Quartus v11.1 QSYS builder - -- . Note the SLV->SL edits, e.g. coe_address_export_from_the_reg_wdi. - ----------------------------------------------------------------------------- - component qsys_apertif_unb1_correlator is - port ( - mm_clk : out std_logic; -- clk - out_port_from_the_pio_debug_wave : out std_logic_vector(31 downto 0); -- export - out_port_from_the_pio_wdi : out std_logic; -- export - - reg_diag_bg_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_diag_bg_read_export : out std_logic; -- export - reg_diag_bg_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_diag_bg_write_export : out std_logic; -- export - reg_diag_bg_address_export : out std_logic_vector(2 downto 0); -- export - reg_diag_bg_clk_export : out std_logic; -- export - reg_diag_bg_reset_export : out std_logic; -- export - - ram_diag_data_buf_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - ram_diag_data_buf_read_export : out std_logic; -- export - ram_diag_data_buf_writedata_export : out std_logic_vector(31 downto 0); -- export - ram_diag_data_buf_write_export : out std_logic; -- export - ram_diag_data_buf_address_export : out std_logic_vector(16 downto 0); -- export - ram_diag_data_buf_clk_export : out std_logic; -- export - ram_diag_data_buf_reset_export : out std_logic; -- export - reg_diag_data_buf_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_diag_data_buf_read_export : out std_logic; -- export - reg_diag_data_buf_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_diag_data_buf_write_export : out std_logic; -- export - reg_diag_data_buf_address_export : out std_logic;--_vector;(0 downto 0); -- export - reg_diag_data_buf_clk_export : out std_logic; -- export - reg_diag_data_buf_reset_export : out std_logic; -- export - ram_fil_coefs_reset_export : out std_logic; -- export - ram_fil_coefs_clk_export : out std_logic; -- export - ram_fil_coefs_address_export : out std_logic_vector(8 downto 0); -- export - ram_fil_coefs_write_export : out std_logic; -- export - ram_fil_coefs_writedata_export : out std_logic_vector(31 downto 0); -- export - ram_fil_coefs_read_export : out std_logic; -- export - ram_fil_coefs_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_mdio_0_reset_export : out std_logic; -- export - reg_mdio_0_clk_export : out std_logic; -- export - reg_mdio_0_address_export : out std_logic_vector(2 downto 0); -- export - reg_mdio_0_write_export : out std_logic; -- export - reg_mdio_0_read_export : out std_logic; -- export - reg_mdio_0_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_mdio_0_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_mdio_1_reset_export : out std_logic; -- export - reg_mdio_1_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_mdio_1_clk_export : out std_logic; -- export - reg_mdio_1_address_export : out std_logic_vector(2 downto 0); -- export - reg_mdio_1_write_export : out std_logic; -- export - reg_mdio_1_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_mdio_1_read_export : out std_logic; -- export - reg_mdio_2_reset_export : out std_logic; -- export - reg_mdio_2_clk_export : out std_logic; -- export - reg_mdio_2_address_export : out std_logic_vector(2 downto 0); -- export - reg_mdio_2_write_export : out std_logic; -- export - reg_mdio_2_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_mdio_2_read_export : out std_logic; -- export - reg_mdio_2_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_dp_offload_rx_hdr_dat_reset_export : out std_logic; -- export - reg_dp_offload_rx_hdr_dat_clk_export : out std_logic; -- export - reg_dp_offload_rx_hdr_dat_address_export : out std_logic_vector(6 downto 0); -- export - reg_dp_offload_rx_hdr_dat_write_export : out std_logic; -- export - reg_dp_offload_rx_hdr_dat_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_dp_offload_rx_hdr_dat_read_export : out std_logic; -- export - reg_dp_offload_rx_hdr_dat_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - eth1g_mm_rst_export : out std_logic; -- export - eth1g_mm_clk_export : out std_logic; -- export - eth1g_tse_address_export : out std_logic_vector(9 downto 0); -- export - eth1g_tse_write_export : out std_logic; -- export - eth1g_tse_read_export : out std_logic; -- export - eth1g_tse_writedata_export : out std_logic_vector(31 downto 0); -- export - eth1g_tse_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - eth1g_tse_waitrequest_export : in std_logic := 'X'; -- export - eth1g_reg_address_export : out std_logic_vector(3 downto 0); -- export - eth1g_reg_write_export : out std_logic; -- export - eth1g_reg_read_export : out std_logic; -- export - eth1g_reg_writedata_export : out std_logic_vector(31 downto 0); -- export - eth1g_reg_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - eth1g_ram_address_export : out std_logic_vector(9 downto 0); -- export - eth1g_ram_write_export : out std_logic; -- export - eth1g_ram_read_export : out std_logic; -- export - eth1g_ram_writedata_export : out std_logic_vector(31 downto 0); -- export - eth1g_ram_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - eth1g_irq_export : in std_logic := 'X'; -- export - reg_dp_offload_tx_hdr_dat_reset_export : out std_logic; -- export - reg_dp_offload_tx_hdr_dat_clk_export : out std_logic; -- export - reg_dp_offload_tx_hdr_dat_address_export : out std_logic_vector(5 downto 0); -- export - reg_dp_offload_tx_hdr_dat_write_export : out std_logic; -- export - reg_dp_offload_tx_hdr_dat_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_dp_offload_tx_hdr_dat_read_export : out std_logic; -- export - reg_dp_offload_tx_hdr_dat_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_unb_sens_reset_export : out std_logic; -- export - reg_unb_sens_clk_export : out std_logic; -- export - reg_unb_sens_address_export : out std_logic_vector(2 downto 0); -- export - reg_unb_sens_write_export : out std_logic; -- export - reg_unb_sens_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_unb_sens_read_export : out std_logic; -- export - reg_unb_sens_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - pio_system_info_reset_export : out std_logic; -- export - pio_system_info_clk_export : out std_logic; -- export - pio_system_info_address_export : out std_logic_vector(4 downto 0); -- export - pio_system_info_write_export : out std_logic; -- export - pio_system_info_writedata_export : out std_logic_vector(31 downto 0); -- export - pio_system_info_read_export : out std_logic; -- export - pio_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - pio_pps_reset_export : out std_logic; -- export - pio_pps_clk_export : out std_logic; -- export - pio_pps_address_export : out std_logic;--_vector(0 downto 0); -- export - pio_pps_write_export : out std_logic; -- export - pio_pps_writedata_export : out std_logic_vector(31 downto 0); -- export - pio_pps_read_export : out std_logic; -- export - pio_pps_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_wdi_reset_export : out std_logic; -- export - reg_wdi_clk_export : out std_logic; -- export - reg_wdi_address_export : out std_logic;--_vector(0 downto 0); -- export - reg_wdi_write_export : out std_logic; -- export - reg_wdi_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_wdi_read_export : out std_logic; -- export - reg_wdi_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - rom_system_info_reset_export : out std_logic; -- export - rom_system_info_clk_export : out std_logic; -- export - rom_system_info_address_export : out std_logic_vector(9 downto 0); -- export - rom_system_info_write_export : out std_logic; -- export - rom_system_info_writedata_export : out std_logic_vector(31 downto 0); -- export - rom_system_info_read_export : out std_logic; -- export - rom_system_info_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - epcs_clk : out std_logic; -- clk - tse_clk : out std_logic; -- clk - altpll_0_c3_clk : out std_logic; -- clk - altpll_0_areset_export : in std_logic := 'X'; -- export - altpll_0_locked_export : out std_logic; -- export - altpll_0_phasedone_export : out std_logic; -- export - reg_tr_10gbe_reset_export : out std_logic; -- export - reg_tr_10gbe_clk_export : out std_logic; -- export - reg_tr_10gbe_address_export : out std_logic_vector(14 downto 0); -- export - reg_tr_10gbe_write_export : out std_logic; -- export - reg_tr_10gbe_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_tr_10gbe_read_export : out std_logic; -- export - reg_tr_10gbe_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_tr_10gbe_waitrequest_export : in std_logic := 'X'; -- export - reg_tr_xaui_reset_export : out std_logic; -- export - reg_tr_xaui_clk_export : out std_logic; -- export - reg_tr_xaui_address_export : out std_logic_vector(10 downto 0); -- export - reg_tr_xaui_write_export : out std_logic; -- export - reg_tr_xaui_read_export : out std_logic; -- export - reg_tr_xaui_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_tr_xaui_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_tr_xaui_waitrequest_export : in std_logic := 'X'; -- export - reg_bsn_monitor_reset_export : out std_logic; -- export - reg_bsn_monitor_clk_export : out std_logic; -- export - reg_bsn_monitor_address_export : out std_logic_vector(6 downto 0); -- export - reg_bsn_monitor_write_export : out std_logic; -- export - reg_bsn_monitor_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_bsn_monitor_read_export : out std_logic; -- export - reg_bsn_monitor_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - clk_in_clk : in std_logic := 'X'; -- clk - reset_in_reset_n : in std_logic := 'X' -- reset_n - ); - end component qsys_apertif_unb1_correlator; BEGIN - mm_clk <= i_mm_clk; - eth1g_tse_clk <= i_tse_clk; - ---------------------------------------------------------------------------- -- MM <-> file I/O for simulation. The files are created in $UPE/sim. ---------------------------------------------------------------------------- gen_mm_file_io : IF g_sim = TRUE GENERATE - - i_mm_clk <= NOT i_mm_clk AFTER c_mm_clk_period/2; - i_tse_clk <= NOT i_tse_clk AFTER c_tse_clk_period/2; - - mm_locked <= '0', '1' AFTER c_mm_clk_period*5; - eth1g_mm_rst <= '1', '0' AFTER c_tse_clk_period*5; - - u_mm_file_reg_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_SYSTEM_INFO") - PORT MAP(mm_rst, i_mm_clk, reg_unb_system_info_mosi, reg_unb_system_info_miso ); - - u_mm_file_rom_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ROM_SYSTEM_INFO") - PORT MAP(mm_rst, i_mm_clk, rom_unb_system_info_mosi, rom_unb_system_info_miso ); - - u_mm_file_reg_wdi : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WDI") - PORT MAP(mm_rst, i_mm_clk, reg_wdi_mosi, reg_wdi_miso ); - - u_mm_file_reg_unb_sens : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_SENS") - PORT MAP(mm_rst, i_mm_clk, reg_unb_sens_mosi, reg_unb_sens_miso ); - - u_mm_file_reg_ppsh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS") - PORT MAP(mm_rst, i_mm_clk, reg_ppsh_mosi, reg_ppsh_miso ); - - u_mm_file_reg_dp_offload_rx_hdr_dat : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_RX_HDR_DAT") - PORT MAP(mm_rst, i_mm_clk, reg_dp_offload_rx_hdr_dat_mosi, reg_dp_offload_rx_hdr_dat_miso ); - - u_mm_file_reg_tr_10GbE : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_10GBE", c_mm_clk_period, FALSE, 0) - PORT MAP(mm_rst, i_mm_clk, reg_tr_10GbE_mosi, reg_tr_10GbE_miso ); - - -- Note: the eth1g RAM and TSE buses are only required by unb_osy on the NIOS as they provide the ethernet<->MM gateway. - u_mm_file_reg_eth : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG") - PORT MAP(mm_rst, i_mm_clk, i_eth1g_reg_mosi, eth1g_reg_miso ); - + u_mm_file_reg_wdi : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WDI") + PORT MAP(mm_rst, mm_clk, reg_wdi_mosi, reg_wdi_miso ); + u_mm_file_reg_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_SYSTEM_INFO") + PORT MAP(mm_rst, mm_clk, reg_unb_system_info_mosi, reg_unb_system_info_miso ); + u_mm_file_rom_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ROM_SYSTEM_INFO") + PORT MAP(mm_rst, mm_clk, rom_unb_system_info_mosi, rom_unb_system_info_miso ); + u_mm_file_reg_unb_sens : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_SENS") + PORT MAP(mm_rst, mm_clk, reg_unb_sens_mosi, reg_unb_sens_miso ); + u_mm_file_reg_ppsh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS") + PORT MAP(mm_rst, mm_clk, reg_ppsh_mosi, reg_ppsh_miso ); + u_mm_file_eth1g_ram : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ETH1G_RAM") + PORT MAP(mm_rst, mm_clk, eth1g_ram_mosi, eth1g_ram_miso ); + u_mm_file_eth1g_reg : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG") + PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso ); + u_mm_file_eth1g_tse : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ETH1G_TSE") + PORT MAP(mm_rst, mm_clk, eth1g_tse_mosi, eth1g_tse_miso ); + u_mm_file_reg_diag_bg_input : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_INPUT") + PORT MAP(mm_rst, mm_clk, reg_diag_bg_input_mosi, reg_diag_bg_input_miso ); + u_mm_file_reg_diag_bg_mesh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_MESH") + PORT MAP(mm_rst, mm_clk, reg_diag_bg_mesh_mosi, reg_diag_bg_mesh_miso ); + u_mm_file_ram_diag_bg_mesh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_MESH") + PORT MAP(mm_rst, mm_clk, ram_diag_bg_mesh_mosi, ram_diag_bg_mesh_miso ); + u_mm_file_reg_diagnostics : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAGNOSTICS") + PORT MAP(mm_rst, mm_clk, reg_diagnostics_mosi, reg_diagnostics_miso ); + u_mm_file_reg_tr_nonbonded : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_NONBONDED") + PORT MAP(mm_rst, mm_clk, reg_tr_nonbonded_mosi, reg_tr_nonbonded_miso ); + u_mm_file_reg_diag_data_buf_input : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUF_INPUT") + PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_input_mosi, reg_diag_data_buf_input_miso ); + u_mm_file_ram_diag_data_buf_input : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUF_INPUT") + PORT MAP(mm_rst, mm_clk, ram_diag_data_buf_input_mosi, ram_diag_data_buf_input_miso ); + u_mm_file_reg_diag_data_buf_mesh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUF_MESH") + PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_mesh_mosi, reg_diag_data_buf_mesh_miso ); + u_mm_file_ram_diag_data_buf_mesh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUF_MESH") + PORT MAP(mm_rst, mm_clk, ram_diag_data_buf_mesh_mosi, ram_diag_data_buf_mesh_miso ); + u_mm_file_ram_fil_coefs : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_FIL_COEFS") + PORT MAP(mm_rst, mm_clk, ram_fil_coefs_mosi, ram_fil_coefs_miso ); + u_mm_file_reg_mdio_0 : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_MDIO_0") + PORT MAP(mm_rst, mm_clk, reg_mdio_0_mosi, reg_mdio_0_miso ); + u_mm_file_reg_mdio_1 : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_MDIO_1") + PORT MAP(mm_rst, mm_clk, reg_mdio_1_mosi, reg_mdio_1_miso ); + u_mm_file_reg_mdio_2 : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_MDIO_2") + PORT MAP(mm_rst, mm_clk, reg_mdio_2_mosi, reg_mdio_2_miso ); + u_mm_file_reg_dp_offload_rx_hdr_dat : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_RX_HDR_DAT") + PORT MAP(mm_rst, mm_clk, reg_dp_offload_rx_hdr_dat_mosi, reg_dp_offload_rx_hdr_dat_miso ); + u_mm_file_reg_dp_offload_tx_hdr_dat : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_HDR_DAT") + PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_hdr_dat_mosi, reg_dp_offload_tx_hdr_dat_miso ); + u_mm_file_reg_tr_10gbe : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_10GBE") + PORT MAP(mm_rst, mm_clk, reg_tr_10gbe_mosi, reg_tr_10gbe_miso ); + u_mm_file_reg_tr_xaui : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_XAUI") + PORT MAP(mm_rst, mm_clk, reg_tr_xaui_mosi, reg_tr_xaui_miso ); + u_mm_file_reg_bsn_monitor : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_MONITOR") + PORT MAP(mm_rst, mm_clk, reg_bsn_monitor_mosi, reg_bsn_monitor_miso ); ---------------------------------------------------------------------------- -- 1GbE setup sequence normally performed by unb_os@NIOS ---------------------------------------------------------------------------- p_eth_setup : PROCESS BEGIN sim_eth_mm_bus_switch <= '1'; - eth1g_tse_mosi.wr <= '0'; eth1g_tse_mosi.rd <= '0'; WAIT FOR 400 ns; - WAIT UNTIL rising_edge(i_mm_clk); - proc_tech_tse_setup(c_tech_stratixiv, FALSE, c_tech_tse_tx_fifo_depth, c_tech_tse_rx_fifo_depth, c_tech_tse_tx_ready_latency, c_sim_eth_src_mac, sim_eth_psc_access, i_mm_clk, eth1g_tse_miso, eth1g_tse_mosi); + WAIT UNTIL rising_edge(mm_clk); + proc_tech_tse_setup(c_tech_stratixiv, FALSE, c_tech_tse_tx_fifo_depth, c_tech_tse_rx_fifo_depth, c_tech_tse_tx_ready_latency, c_sim_eth_src_mac, sim_eth_psc_access, mm_clk, eth1g_tse_miso, eth1g_tse_mosi); -- Enable RX - proc_mem_mm_bus_wr(c_eth_reg_control_wi+0, c_sim_eth_control_rx_en, i_mm_clk, eth1g_reg_miso, sim_eth1g_reg_mosi); -- control rx en + proc_mem_mm_bus_wr(c_eth_reg_control_wi+0, c_sim_eth_control_rx_en, mm_clk, eth1g_reg_miso, sim_eth1g_reg_mosi); -- control rx en sim_eth_mm_bus_switch <= '0'; - WAIT; END PROCESS; - + p_switch : PROCESS(sim_eth_mm_bus_switch, sim_eth1g_reg_mosi, i_eth1g_reg_mosi) BEGIN - IF sim_eth_mm_bus_switch = '1' THEN - eth1g_reg_mosi <= sim_eth1g_reg_mosi; - ELSE - eth1g_reg_mosi <= i_eth1g_reg_mosi; - END IF; + IF sim_eth_mm_bus_switch = '1' THEN + eth1g_reg_mosi <= sim_eth1g_reg_mosi; + ELSE + eth1g_reg_mosi <= i_eth1g_reg_mosi; + END IF; END PROCESS; - ---------------------------------------------------------------------------- -- Procedure that polls a sim control file that can be used to e.g. get -- the simulation time in ns ---------------------------------------------------------------------------- mmf_poll_sim_ctrl_file(c_mmf_unb_file_path & "sim.ctrl", c_mmf_unb_file_path & "sim.stat"); - + END GENERATE; - ---------------------------------------------------------------------------- -- SOPC or QSYS for synthesis ---------------------------------------------------------------------------- - gen_mmm_apertif_unb1_correlator : IF g_sim = FALSE GENERATE - gen_qsys : IF g_use_qsys = TRUE GENERATE - u_qsys_apertif_unb1_correlator : qsys_apertif_unb1_correlator - PORT MAP ( - clk_in_clk => xo_clk, - reset_in_reset_n => xo_rst_n, - mm_clk => i_mm_clk, - tse_clk => i_tse_clk, - - -- the_altpll_0 - altpll_0_locked_export => mm_locked, - altpll_0_phasedone_export => OPEN, - altpll_0_areset_export => xo_rst, - - -- the_avs_eth_0 - eth1g_mm_clk_export => OPEN, - eth1g_mm_rst_export => eth1g_mm_rst, - eth1g_tse_address_export => eth1g_tse_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_tse_adr_w-1 DOWNTO 0), - eth1g_tse_write_export => eth1g_tse_mosi.wr, - eth1g_tse_writedata_export => eth1g_tse_mosi.wrdata(c_word_w-1 DOWNTO 0), - eth1g_tse_read_export => eth1g_tse_mosi.rd, - eth1g_tse_readdata_export => eth1g_tse_miso.rddata(c_word_w-1 DOWNTO 0), - eth1g_tse_waitrequest_export => eth1g_tse_miso.waitrequest, - eth1g_reg_address_export => eth1g_reg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_eth_adr_w-1 DOWNTO 0), - eth1g_reg_write_export => eth1g_reg_mosi.wr, - eth1g_reg_writedata_export => eth1g_reg_mosi.wrdata(c_word_w-1 DOWNTO 0), - eth1g_reg_read_export => eth1g_reg_mosi.rd, - eth1g_reg_readdata_export => eth1g_reg_miso.rddata(c_word_w-1 DOWNTO 0), - eth1g_irq_export => eth1g_reg_interrupt, - eth1g_ram_address_export => eth1g_ram_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_eth_adr_w-1 DOWNTO 0), - eth1g_ram_write_export => eth1g_ram_mosi.wr, - eth1g_ram_writedata_export => eth1g_ram_mosi.wrdata(c_word_w-1 DOWNTO 0), - eth1g_ram_read_export => eth1g_ram_mosi.rd, - eth1g_ram_readdata_export => eth1g_ram_miso.rddata(c_word_w-1 DOWNTO 0), - - -- the_reg_unb_sens - reg_unb_sens_clk_export => OPEN, - reg_unb_sens_reset_export => OPEN, - reg_unb_sens_address_export => reg_unb_sens_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_sens_adr_w-1 DOWNTO 0), - reg_unb_sens_read_export => reg_unb_sens_mosi.rd, - reg_unb_sens_readdata_export => reg_unb_sens_miso.rddata(c_word_w-1 DOWNTO 0), - reg_unb_sens_write_export => reg_unb_sens_mosi.wr, - reg_unb_sens_writedata_export => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_debug_wave - out_port_from_the_pio_debug_wave => OPEN, - - -- the_pio_pps - pio_pps_clk_export => OPEN, - pio_pps_reset_export => OPEN, - pio_pps_address_export => reg_ppsh_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_ppsh_adr_w-1), -- 1 bit address width so must use (0) instead of (0 DOWNTO 0) - pio_pps_read_export => reg_ppsh_mosi.rd, - pio_pps_readdata_export => reg_ppsh_miso.rddata(c_word_w-1 DOWNTO 0), - pio_pps_write_export => reg_ppsh_mosi.wr, - pio_pps_writedata_export => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_system_info: actually a avs_common_mm instance - pio_system_info_clk_export => OPEN, - pio_system_info_reset_export => OPEN, - pio_system_info_address_export => reg_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_system_info_adr_w-1 DOWNTO 0), - pio_system_info_read_export => reg_unb_system_info_mosi.rd, - pio_system_info_readdata_export => reg_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), - pio_system_info_write_export => reg_unb_system_info_mosi.wr, - pio_system_info_writedata_export => reg_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_rom_system_info - rom_system_info_clk_export => OPEN, - rom_system_info_reset_export => OPEN, - rom_system_info_address_export => rom_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.rom_unb_system_info_adr_w-1 DOWNTO 0), - rom_system_info_read_export => rom_unb_system_info_mosi.rd, - rom_system_info_readdata_export => rom_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), - rom_system_info_write_export => rom_unb_system_info_mosi.wr, - rom_system_info_writedata_export => rom_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_wdi: toggled by NIOS II application unb_osy. Connects to WDI via ctrl_unb1_board. - out_port_from_the_pio_wdi => pout_wdi, - - -- the_reg_wdi: Manual WDI override; causes FPGA reconfiguration if WDI is enabled (g_use_phy). - reg_wdi_clk_export => OPEN, - reg_wdi_reset_export => OPEN, - reg_wdi_address_export => reg_wdi_mosi.address(0), - reg_wdi_read_export => reg_wdi_mosi.rd, - reg_wdi_readdata_export => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0), - reg_wdi_write_export => reg_wdi_mosi.wr, - reg_wdi_writedata_export => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), - - reg_diag_bg_readdata_export => reg_diag_bg_miso.rddata(c_word_w-1 DOWNTO 0), - reg_diag_bg_read_export => reg_diag_bg_mosi.rd, - reg_diag_bg_writedata_export => reg_diag_bg_mosi.wrdata(c_word_w-1 DOWNTO 0), - reg_diag_bg_write_export => reg_diag_bg_mosi.wr, - reg_diag_bg_address_export => reg_diag_bg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_bg_adr_w-1 DOWNTO 0), - reg_diag_bg_clk_export => OPEN, - reg_diag_bg_reset_export => OPEN, - - ram_diag_data_buf_readdata_export => ram_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - ram_diag_data_buf_read_export => ram_diag_data_buf_mosi.rd, - ram_diag_data_buf_writedata_export => ram_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - ram_diag_data_buf_write_export => ram_diag_data_buf_mosi.wr, - ram_diag_data_buf_address_export => ram_diag_data_buf_mosi.address(c_ram_diag_data_buf_addr_w-1 DOWNTO 0), - ram_diag_data_buf_clk_export => OPEN, - ram_diag_data_buf_reset_export => OPEN, - - reg_diag_data_buf_readdata_export => reg_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - reg_diag_data_buf_read_export => reg_diag_data_buf_mosi.rd, - reg_diag_data_buf_writedata_export => reg_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - reg_diag_data_buf_write_export => reg_diag_data_buf_mosi.wr, - reg_diag_data_buf_address_export => reg_diag_data_buf_mosi.address(0), - reg_diag_data_buf_clk_export => OPEN, - reg_diag_data_buf_reset_export => OPEN, - - ram_fil_coefs_readdata_export => ram_fil_coefs_miso.rddata(c_word_w-1 DOWNTO 0), - ram_fil_coefs_read_export => ram_fil_coefs_mosi.rd, - ram_fil_coefs_writedata_export => ram_fil_coefs_mosi.wrdata(c_word_w-1 DOWNTO 0), - ram_fil_coefs_write_export => ram_fil_coefs_mosi.wr, - ram_fil_coefs_address_export => ram_fil_coefs_mosi.address(c_ram_fil_coefs_addr_w-1 DOWNTO 0), - ram_fil_coefs_clk_export => OPEN, - ram_fil_coefs_reset_export => OPEN, - - -- the_reg_tr_10GbE - reg_tr_10gbe_clk_export => OPEN, - reg_tr_10gbe_reset_export => OPEN, - reg_tr_10gbe_address_export => reg_tr_10GbE_mosi.address(c_reg_tr_10GbE_multi_adr_w-1 DOWNTO 0), - reg_tr_10gbe_read_export => reg_tr_10GbE_mosi.rd, - reg_tr_10gbe_readdata_export => reg_tr_10GbE_miso.rddata(c_word_w-1 DOWNTO 0), - reg_tr_10gbe_waitrequest_export => reg_tr_10GbE_miso.waitrequest, - reg_tr_10gbe_write_export => reg_tr_10GbE_mosi.wr, - reg_tr_10gbe_writedata_export => reg_tr_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_offload_rx_hdr_dat - reg_dp_offload_rx_hdr_dat_address_export => reg_dp_offload_rx_hdr_dat_mosi.address(c_reg_dp_offload_rx_hdr_dat_multi_adr_w-1 DOWNTO 0), - reg_dp_offload_rx_hdr_dat_clk_export => OPEN, - reg_dp_offload_rx_hdr_dat_read_export => reg_dp_offload_rx_hdr_dat_mosi.rd, - reg_dp_offload_rx_hdr_dat_readdata_export => reg_dp_offload_rx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), - reg_dp_offload_rx_hdr_dat_reset_export => OPEN, - reg_dp_offload_rx_hdr_dat_write_export => reg_dp_offload_rx_hdr_dat_mosi.wr, - reg_dp_offload_rx_hdr_dat_writedata_export => reg_dp_offload_rx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_bsn_monitor - reg_bsn_monitor_address_export => reg_bsn_monitor_mosi.address(c_reg_rsp_bsn_monitor_adr_w-1 DOWNTO 0), - reg_bsn_monitor_clk_export => OPEN, - reg_bsn_monitor_read_export => reg_bsn_monitor_mosi.rd, - reg_bsn_monitor_readdata_export => reg_bsn_monitor_miso.rddata(c_word_w-1 DOWNTO 0), - reg_bsn_monitor_reset_export => OPEN, - reg_bsn_monitor_write_export => reg_bsn_monitor_mosi.wr, - reg_bsn_monitor_writedata_export => reg_bsn_monitor_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_offload_tx_hdr_dat - reg_dp_offload_tx_hdr_dat_address_export => reg_dp_offload_tx_hdr_dat_mosi.address(c_reg_dp_offload_tx_hdr_dat_adr_w-1 DOWNTO 0), - reg_dp_offload_tx_hdr_dat_clk_export => OPEN, - reg_dp_offload_tx_hdr_dat_read_export => reg_dp_offload_tx_hdr_dat_mosi.rd, - reg_dp_offload_tx_hdr_dat_readdata_export => reg_dp_offload_tx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), - reg_dp_offload_tx_hdr_dat_reset_export => OPEN, - reg_dp_offload_tx_hdr_dat_write_export => reg_dp_offload_tx_hdr_dat_mosi.wr, - reg_dp_offload_tx_hdr_dat_writedata_export => reg_dp_offload_tx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_tr_xaui - reg_tr_xaui_clk_export => OPEN, - reg_tr_xaui_reset_export => OPEN, - reg_tr_xaui_address_export => reg_tr_xaui_mosi.address(c_reg_tr_xaui_addr_w-1 DOWNTO 0), - reg_tr_xaui_read_export => reg_tr_xaui_mosi.rd, - reg_tr_xaui_readdata_export => reg_tr_xaui_miso.rddata(c_word_w-1 DOWNTO 0), - reg_tr_xaui_waitrequest_export => reg_tr_xaui_miso.waitrequest, - reg_tr_xaui_write_export => reg_tr_xaui_mosi.wr, - reg_tr_xaui_writedata_export => reg_tr_xaui_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_0 - reg_mdio_0_clk_export => OPEN, - reg_mdio_0_reset_export => OPEN, - reg_mdio_0_address_export => reg_mdio_mosi_arr(0).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - reg_mdio_0_read_export => reg_mdio_mosi_arr(0).rd, - reg_mdio_0_readdata_export => reg_mdio_miso_arr(0).rddata(c_word_w-1 DOWNTO 0), - reg_mdio_0_write_export => reg_mdio_mosi_arr(0).wr, - reg_mdio_0_writedata_export => reg_mdio_mosi_arr(0).wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_1 - reg_mdio_1_clk_export => OPEN, - reg_mdio_1_reset_export => OPEN, - reg_mdio_1_address_export => reg_mdio_mosi_arr(1).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - reg_mdio_1_read_export => reg_mdio_mosi_arr(1).rd, - reg_mdio_1_readdata_export => reg_mdio_miso_arr(1).rddata(c_word_w-1 DOWNTO 0), - reg_mdio_1_write_export => reg_mdio_mosi_arr(1).wr, - reg_mdio_1_writedata_export => reg_mdio_mosi_arr(1).wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_2 - reg_mdio_2_clk_export => OPEN, - reg_mdio_2_reset_export => OPEN, - reg_mdio_2_address_export => reg_mdio_mosi_arr(2).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - reg_mdio_2_read_export => reg_mdio_mosi_arr(2).rd, - reg_mdio_2_readdata_export => reg_mdio_miso_arr(2).rddata(c_word_w-1 DOWNTO 0), - reg_mdio_2_write_export => reg_mdio_mosi_arr(2).wr, - reg_mdio_2_writedata_export => reg_mdio_mosi_arr(2).wrdata(c_word_w-1 DOWNTO 0) - ); - END GENERATE; + gen_qsys_apertif_unb1_correlator : IF g_sim = FALSE GENERATE + + mm_rst_n <= NOT(mm_rst); - gen_sopc : IF g_use_qsys = FALSE GENERATE - u_sopc : ENTITY work.sopc_apertif_unb1_correlator - PORT MAP ( - clk_0 => xo_clk, -- 25 MHz from ETH_clk pin - reset_n => xo_rst_n, - mm_clk => i_mm_clk, -- 125 MHz system clock - tse_clk => i_tse_clk, -- PLL clk[2] = 125 MHz calibration clock for the TSE - dp_clk => OPEN, - cal_reconf_clk => OPEN, - - -- the_altpll_0 - locked_from_the_altpll_0 => mm_locked, - phasedone_from_the_altpll_0 => OPEN, - areset_to_the_altpll_0 => xo_rst, - - -- the_avs_eth_0 - coe_clk_export_from_the_avs_eth_0 => OPEN, - coe_reset_export_from_the_avs_eth_0 => eth1g_mm_rst, - coe_tse_address_export_from_the_avs_eth_0 => eth1g_tse_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_tse_adr_w-1 DOWNTO 0), - coe_tse_write_export_from_the_avs_eth_0 => eth1g_tse_mosi.wr, - coe_tse_writedata_export_from_the_avs_eth_0 => eth1g_tse_mosi.wrdata(c_word_w-1 DOWNTO 0), - coe_tse_read_export_from_the_avs_eth_0 => eth1g_tse_mosi.rd, - coe_tse_readdata_export_to_the_avs_eth_0 => eth1g_tse_miso.rddata(c_word_w-1 DOWNTO 0), - coe_tse_waitrequest_export_to_the_avs_eth_0 => eth1g_tse_miso.waitrequest, - coe_reg_address_export_from_the_avs_eth_0 => eth1g_reg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_eth_adr_w-1 DOWNTO 0), - coe_reg_write_export_from_the_avs_eth_0 => eth1g_reg_mosi.wr, - coe_reg_writedata_export_from_the_avs_eth_0 => eth1g_reg_mosi.wrdata(c_word_w-1 DOWNTO 0), - coe_reg_read_export_from_the_avs_eth_0 => eth1g_reg_mosi.rd, - coe_reg_readdata_export_to_the_avs_eth_0 => eth1g_reg_miso.rddata(c_word_w-1 DOWNTO 0), - coe_irq_export_to_the_avs_eth_0 => eth1g_reg_interrupt, - coe_ram_address_export_from_the_avs_eth_0 => eth1g_ram_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_eth_adr_w-1 DOWNTO 0), - coe_ram_write_export_from_the_avs_eth_0 => eth1g_ram_mosi.wr, - coe_ram_writedata_export_from_the_avs_eth_0 => eth1g_ram_mosi.wrdata(c_word_w-1 DOWNTO 0), - coe_ram_read_export_from_the_avs_eth_0 => eth1g_ram_mosi.rd, - coe_ram_readdata_export_to_the_avs_eth_0 => eth1g_ram_miso.rddata(c_word_w-1 DOWNTO 0), - - -- the_reg_unb_sens - coe_clk_export_from_the_reg_unb_sens => OPEN, - coe_reset_export_from_the_reg_unb_sens => OPEN, - coe_address_export_from_the_reg_unb_sens => reg_unb_sens_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_sens_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_unb_sens => reg_unb_sens_mosi.rd, - coe_readdata_export_to_the_reg_unb_sens => reg_unb_sens_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_unb_sens => reg_unb_sens_mosi.wr, - coe_writedata_export_from_the_reg_unb_sens => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_debug_wave - out_port_from_the_pio_debug_wave => OPEN, - - -- the_pio_system_info: actually a avs_common_mm instance - coe_clk_export_from_the_pio_system_info => OPEN, - coe_reset_export_from_the_pio_system_info => OPEN, - coe_address_export_from_the_pio_system_info => reg_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_system_info_adr_w-1 DOWNTO 0), - coe_read_export_from_the_pio_system_info => reg_unb_system_info_mosi.rd, - coe_readdata_export_to_the_pio_system_info => reg_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_pio_system_info => reg_unb_system_info_mosi.wr, - coe_writedata_export_from_the_pio_system_info => reg_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_rom_system_info - coe_clk_export_from_the_rom_system_info => OPEN, - coe_reset_export_from_the_rom_system_info => OPEN, - coe_address_export_from_the_rom_system_info => rom_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.rom_unb_system_info_adr_w-1 DOWNTO 0), - coe_read_export_from_the_rom_system_info => rom_unb_system_info_mosi.rd, - coe_readdata_export_to_the_rom_system_info => rom_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_rom_system_info => rom_unb_system_info_mosi.wr, - coe_writedata_export_from_the_rom_system_info => rom_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_wdi - out_port_from_the_pio_wdi => pout_wdi, - - -- the_reg_wdi - coe_clk_export_from_the_reg_wdi => OPEN, - coe_reset_export_from_the_reg_wdi => OPEN, - coe_address_export_from_the_reg_wdi => reg_wdi_mosi.address(0), - coe_read_export_from_the_reg_wdi => reg_wdi_mosi.rd, - coe_readdata_export_to_the_reg_wdi => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_wdi => reg_wdi_mosi.wr, - coe_writedata_export_from_the_reg_wdi => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_pio_pps - coe_clk_export_from_the_pio_pps => OPEN, - coe_reset_export_from_the_pio_pps => OPEN, - coe_address_export_from_the_pio_pps => reg_ppsh_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_ppsh_adr_w-1), - coe_read_export_from_the_pio_pps => reg_ppsh_mosi.rd, - coe_readdata_export_to_the_pio_pps => reg_ppsh_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_pio_pps => reg_ppsh_mosi.wr, - coe_writedata_export_from_the_pio_pps => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_0 - coe_clk_export_from_the_reg_mdio_0 => OPEN, - coe_reset_export_from_the_reg_mdio_0 => OPEN, - coe_address_export_from_the_reg_mdio_0 => reg_mdio_mosi_arr(0).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_mdio_0 => reg_mdio_mosi_arr(0).rd, - coe_readdata_export_to_the_reg_mdio_0 => reg_mdio_miso_arr(0).rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_mdio_0 => reg_mdio_mosi_arr(0).wr, - coe_writedata_export_from_the_reg_mdio_0 => reg_mdio_mosi_arr(0).wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_1 - coe_clk_export_from_the_reg_mdio_1 => OPEN, - coe_reset_export_from_the_reg_mdio_1 => OPEN, - coe_address_export_from_the_reg_mdio_1 => reg_mdio_mosi_arr(1).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_mdio_1 => reg_mdio_mosi_arr(1).rd, - coe_readdata_export_to_the_reg_mdio_1 => reg_mdio_miso_arr(1).rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_mdio_1 => reg_mdio_mosi_arr(1).wr, - coe_writedata_export_from_the_reg_mdio_1 => reg_mdio_mosi_arr(1).wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_mdio_2 - coe_clk_export_from_the_reg_mdio_2 => OPEN, - coe_reset_export_from_the_reg_mdio_2 => OPEN, - coe_address_export_from_the_reg_mdio_2 => reg_mdio_mosi_arr(2).address(c_unb1_board_peripherals_mm_reg_default.reg_mdio_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_mdio_2 => reg_mdio_mosi_arr(2).rd, - coe_readdata_export_to_the_reg_mdio_2 => reg_mdio_miso_arr(2).rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_mdio_2 => reg_mdio_mosi_arr(2).wr, - coe_writedata_export_from_the_reg_mdio_2 => reg_mdio_mosi_arr(2).wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_offload_rx_hdr_dat - coe_address_export_from_the_reg_dp_offload_rx_hdr_dat => reg_dp_offload_rx_hdr_dat_mosi.address(c_reg_dp_offload_rx_hdr_dat_multi_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_dp_offload_rx_hdr_dat => OPEN, - coe_read_export_from_the_reg_dp_offload_rx_hdr_dat => reg_dp_offload_rx_hdr_dat_mosi.rd, - coe_readdata_export_to_the_reg_dp_offload_rx_hdr_dat => reg_dp_offload_rx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_dp_offload_rx_hdr_dat => OPEN, - coe_write_export_from_the_reg_dp_offload_rx_hdr_dat => reg_dp_offload_rx_hdr_dat_mosi.wr, - coe_writedata_export_from_the_reg_dp_offload_rx_hdr_dat => reg_dp_offload_rx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_bsn_monitor - coe_address_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.address(c_reg_rsp_bsn_monitor_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_bsn_monitor => OPEN, - coe_read_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.rd, - coe_readdata_export_to_the_reg_bsn_monitor => reg_bsn_monitor_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_bsn_monitor => OPEN, - coe_write_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.wr, - coe_writedata_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_tr_10GbE - coe_clk_export_from_the_reg_tr_10GbE => OPEN, - coe_reset_export_from_the_reg_tr_10GbE => OPEN, - coe_address_export_from_the_reg_tr_10GbE => reg_tr_10GbE_mosi.address(c_reg_tr_10GbE_multi_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_tr_10GbE => reg_tr_10GbE_mosi.rd, - coe_readdata_export_to_the_reg_tr_10GbE => reg_tr_10GbE_miso.rddata(c_word_w-1 DOWNTO 0), - coe_waitrequest_export_to_the_reg_tr_10GbE => reg_tr_10GbE_miso.waitrequest, - coe_write_export_from_the_reg_tr_10GbE => reg_tr_10GbE_mosi.wr, - coe_writedata_export_from_the_reg_tr_10GbE => reg_tr_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_fil_coefs - coe_address_export_from_the_ram_fil_coefs => ram_fil_coefs_mosi.address(c_ram_fil_coefs_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_fil_coefs => OPEN, - coe_read_export_from_the_ram_fil_coefs => ram_fil_coefs_mosi.rd, - coe_readdata_export_to_the_ram_fil_coefs => ram_fil_coefs_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_fil_coefs => OPEN, - coe_write_export_from_the_ram_fil_coefs => ram_fil_coefs_mosi.wr, - coe_writedata_export_from_the_ram_fil_coefs => ram_fil_coefs_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_diag_data_buf - coe_address_export_from_the_ram_diag_data_buf => ram_diag_data_buf_mosi.address(9 DOWNTO 0), - coe_clk_export_from_the_ram_diag_data_buf => OPEN, - coe_read_export_from_the_ram_diag_data_buf => ram_diag_data_buf_mosi.rd, - coe_readdata_export_to_the_ram_diag_data_buf => ram_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_diag_data_buf => OPEN, - coe_write_export_from_the_ram_diag_data_buf => ram_diag_data_buf_mosi.wr, - coe_writedata_export_from_the_ram_diag_data_buf => ram_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_diag_data_buf - coe_address_export_from_the_reg_diag_data_buf => reg_diag_data_buf_mosi.address(0), - coe_clk_export_from_the_reg_diag_data_buf => OPEN, - coe_read_export_from_the_reg_diag_data_buf => reg_diag_data_buf_mosi.rd, - coe_readdata_export_to_the_reg_diag_data_buf => reg_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_diag_data_buf => OPEN, - coe_write_export_from_the_reg_diag_data_buf => reg_diag_data_buf_mosi.wr, - coe_writedata_export_from_the_reg_diag_data_buf => reg_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_tr_xaui - coe_clk_export_from_the_reg_tr_xaui => OPEN, - coe_reset_export_from_the_reg_tr_xaui => OPEN, - coe_address_export_from_the_reg_tr_xaui => reg_tr_xaui_mosi.address(c_reg_tr_xaui_addr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_tr_xaui => reg_tr_xaui_mosi.rd, - coe_readdata_export_to_the_reg_tr_xaui => reg_tr_xaui_miso.rddata(c_word_w-1 DOWNTO 0), - coe_waitrequest_export_to_the_reg_tr_xaui => reg_tr_xaui_miso.waitrequest, - coe_write_export_from_the_reg_tr_xaui => reg_tr_xaui_mosi.wr, - coe_writedata_export_from_the_reg_tr_xaui => reg_tr_xaui_mosi.wrdata(c_word_w-1 DOWNTO 0) - ); - END GENERATE; + u_qsys_apertif_unb1_correlator : qsys_apertif_unb1_correlator + PORT MAP( + clk_in_clk => mm_clk, + eth1g_irq_export => eth1g_reg_interrupt, + eth1g_mm_clk_export => OPEN, + eth1g_mm_rst_export => eth1g_mm_rst, + eth1g_ram_address_export => eth1g_ram_mosi.address(9 DOWNTO 0), + eth1g_ram_read_export => eth1g_ram_mosi.rd, + eth1g_ram_readdata_export => eth1g_ram_miso.rddata(c_word_w-1 DOWNTO 0), + eth1g_ram_write_export => eth1g_ram_mosi.wr, + eth1g_ram_writedata_export => eth1g_ram_mosi.wrdata(c_word_w-1 DOWNTO 0), + eth1g_reg_address_export => eth1g_reg_mosi.address(3 DOWNTO 0), + eth1g_reg_read_export => eth1g_reg_mosi.rd, + eth1g_reg_readdata_export => eth1g_reg_miso.rddata(c_word_w-1 DOWNTO 0), + eth1g_reg_write_export => eth1g_reg_mosi.wr, + eth1g_reg_writedata_export => eth1g_reg_mosi.wrdata(c_word_w-1 DOWNTO 0), + eth1g_tse_address_export => eth1g_tse_mosi.address(9 DOWNTO 0), + eth1g_tse_read_export => eth1g_tse_mosi.rd, + eth1g_tse_readdata_export => eth1g_tse_miso.rddata(c_word_w-1 DOWNTO 0), + eth1g_tse_waitrequest_export => eth1g_tse_miso.waitrequest, + eth1g_tse_write_export => eth1g_tse_mosi.wr, + eth1g_tse_writedata_export => eth1g_tse_mosi.wrdata(c_word_w-1 DOWNTO 0), + out_port_from_the_pio_debug_wave => OPEN, + out_port_from_the_pio_wdi => pout_wdi, + pio_pps_address_export => reg_ppsh_mosi.address(0), + pio_pps_clk_export => OPEN, + pio_pps_read_export => reg_ppsh_mosi.rd, + pio_pps_readdata_export => reg_ppsh_miso.rddata(c_word_w-1 DOWNTO 0), + pio_pps_reset_export => OPEN, + pio_pps_write_export => reg_ppsh_mosi.wr, + pio_pps_writedata_export => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0), + pio_system_info_address_export => reg_unb_system_info_mosi.address(4 DOWNTO 0), + pio_system_info_clk_export => OPEN, + pio_system_info_read_export => reg_unb_system_info_mosi.rd, + pio_system_info_readdata_export => reg_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), + pio_system_info_reset_export => OPEN, + pio_system_info_write_export => reg_unb_system_info_mosi.wr, + pio_system_info_writedata_export => reg_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0), + ram_diag_bg_mesh_address_export => ram_diag_bg_mesh_mosi.address(9 DOWNTO 0), + ram_diag_bg_mesh_clk_export => OPEN, + ram_diag_bg_mesh_read_export => ram_diag_bg_mesh_mosi.rd, + ram_diag_bg_mesh_readdata_export => ram_diag_bg_mesh_miso.rddata(c_word_w-1 DOWNTO 0), + ram_diag_bg_mesh_reset_export => OPEN, + ram_diag_bg_mesh_write_export => ram_diag_bg_mesh_mosi.wr, + ram_diag_bg_mesh_writedata_export => ram_diag_bg_mesh_mosi.wrdata(c_word_w-1 DOWNTO 0), + ram_diag_data_buf_input_address_export => ram_diag_data_buf_input_mosi.address(16 DOWNTO 0), + ram_diag_data_buf_input_clk_export => OPEN, + ram_diag_data_buf_input_read_export => ram_diag_data_buf_input_mosi.rd, + ram_diag_data_buf_input_readdata_export => ram_diag_data_buf_input_miso.rddata(c_word_w-1 DOWNTO 0), + ram_diag_data_buf_input_reset_export => OPEN, + ram_diag_data_buf_input_write_export => ram_diag_data_buf_input_mosi.wr, + ram_diag_data_buf_input_writedata_export => ram_diag_data_buf_input_mosi.wrdata(c_word_w-1 DOWNTO 0), + ram_diag_data_buf_mesh_address_export => ram_diag_data_buf_mesh_mosi.address(5 DOWNTO 0), + ram_diag_data_buf_mesh_clk_export => OPEN, + ram_diag_data_buf_mesh_read_export => ram_diag_data_buf_mesh_mosi.rd, + ram_diag_data_buf_mesh_readdata_export => ram_diag_data_buf_mesh_miso.rddata(c_word_w-1 DOWNTO 0), + ram_diag_data_buf_mesh_reset_export => OPEN, + ram_diag_data_buf_mesh_write_export => ram_diag_data_buf_mesh_mosi.wr, + ram_diag_data_buf_mesh_writedata_export => ram_diag_data_buf_mesh_mosi.wrdata(c_word_w-1 DOWNTO 0), + ram_fil_coefs_address_export => ram_fil_coefs_mosi.address(8 DOWNTO 0), + ram_fil_coefs_clk_export => OPEN, + ram_fil_coefs_read_export => ram_fil_coefs_mosi.rd, + ram_fil_coefs_readdata_export => ram_fil_coefs_miso.rddata(c_word_w-1 DOWNTO 0), + ram_fil_coefs_reset_export => OPEN, + ram_fil_coefs_write_export => ram_fil_coefs_mosi.wr, + ram_fil_coefs_writedata_export => ram_fil_coefs_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_bsn_monitor_address_export => reg_bsn_monitor_mosi.address(6 DOWNTO 0), + reg_bsn_monitor_clk_export => OPEN, + reg_bsn_monitor_read_export => reg_bsn_monitor_mosi.rd, + reg_bsn_monitor_readdata_export => reg_bsn_monitor_miso.rddata(c_word_w-1 DOWNTO 0), + reg_bsn_monitor_reset_export => OPEN, + reg_bsn_monitor_write_export => reg_bsn_monitor_mosi.wr, + reg_bsn_monitor_writedata_export => reg_bsn_monitor_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diag_bg_input_address_export => reg_diag_bg_input_mosi.address(2 DOWNTO 0), + reg_diag_bg_input_clk_export => OPEN, + reg_diag_bg_input_read_export => reg_diag_bg_input_mosi.rd, + reg_diag_bg_input_readdata_export => reg_diag_bg_input_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diag_bg_input_reset_export => OPEN, + reg_diag_bg_input_write_export => reg_diag_bg_input_mosi.wr, + reg_diag_bg_input_writedata_export => reg_diag_bg_input_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diag_bg_mesh_address_export => reg_diag_bg_mesh_mosi.address(2 DOWNTO 0), + reg_diag_bg_mesh_clk_export => OPEN, + reg_diag_bg_mesh_read_export => reg_diag_bg_mesh_mosi.rd, + reg_diag_bg_mesh_readdata_export => reg_diag_bg_mesh_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diag_bg_mesh_reset_export => OPEN, + reg_diag_bg_mesh_write_export => reg_diag_bg_mesh_mosi.wr, + reg_diag_bg_mesh_writedata_export => reg_diag_bg_mesh_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diag_data_buf_input_address_export => reg_diag_data_buf_input_mosi.address(0), + reg_diag_data_buf_input_clk_export => OPEN, + reg_diag_data_buf_input_read_export => reg_diag_data_buf_input_mosi.rd, + reg_diag_data_buf_input_readdata_export => reg_diag_data_buf_input_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diag_data_buf_input_reset_export => OPEN, + reg_diag_data_buf_input_write_export => reg_diag_data_buf_input_mosi.wr, + reg_diag_data_buf_input_writedata_export => reg_diag_data_buf_input_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diag_data_buf_mesh_address_export => reg_diag_data_buf_mesh_mosi.address(0), + reg_diag_data_buf_mesh_clk_export => OPEN, + reg_diag_data_buf_mesh_read_export => reg_diag_data_buf_mesh_mosi.rd, + reg_diag_data_buf_mesh_readdata_export => reg_diag_data_buf_mesh_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diag_data_buf_mesh_reset_export => OPEN, + reg_diag_data_buf_mesh_write_export => reg_diag_data_buf_mesh_mosi.wr, + reg_diag_data_buf_mesh_writedata_export => reg_diag_data_buf_mesh_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diagnostics_address_export => reg_diagnostics_mosi.address(5 DOWNTO 0), + reg_diagnostics_clk_export => OPEN, + reg_diagnostics_read_export => reg_diagnostics_mosi.rd, + reg_diagnostics_readdata_export => reg_diagnostics_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diagnostics_reset_export => OPEN, + reg_diagnostics_write_export => reg_diagnostics_mosi.wr, + reg_diagnostics_writedata_export => reg_diagnostics_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_dp_offload_rx_hdr_dat_address_export => reg_dp_offload_rx_hdr_dat_mosi.address(6 DOWNTO 0), + reg_dp_offload_rx_hdr_dat_clk_export => OPEN, + reg_dp_offload_rx_hdr_dat_read_export => reg_dp_offload_rx_hdr_dat_mosi.rd, + reg_dp_offload_rx_hdr_dat_readdata_export => reg_dp_offload_rx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), + reg_dp_offload_rx_hdr_dat_reset_export => OPEN, + reg_dp_offload_rx_hdr_dat_write_export => reg_dp_offload_rx_hdr_dat_mosi.wr, + reg_dp_offload_rx_hdr_dat_writedata_export => reg_dp_offload_rx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_dp_offload_tx_hdr_dat_address_export => reg_dp_offload_tx_hdr_dat_mosi.address(5 DOWNTO 0), + reg_dp_offload_tx_hdr_dat_clk_export => OPEN, + reg_dp_offload_tx_hdr_dat_read_export => reg_dp_offload_tx_hdr_dat_mosi.rd, + reg_dp_offload_tx_hdr_dat_readdata_export => reg_dp_offload_tx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), + reg_dp_offload_tx_hdr_dat_reset_export => OPEN, + reg_dp_offload_tx_hdr_dat_write_export => reg_dp_offload_tx_hdr_dat_mosi.wr, + reg_dp_offload_tx_hdr_dat_writedata_export => reg_dp_offload_tx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_mdio_0_address_export => reg_mdio_0_mosi.address(2 DOWNTO 0), + reg_mdio_0_clk_export => OPEN, + reg_mdio_0_read_export => reg_mdio_0_mosi.rd, + reg_mdio_0_readdata_export => reg_mdio_0_miso.rddata(c_word_w-1 DOWNTO 0), + reg_mdio_0_reset_export => OPEN, + reg_mdio_0_write_export => reg_mdio_0_mosi.wr, + reg_mdio_0_writedata_export => reg_mdio_0_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_mdio_1_address_export => reg_mdio_1_mosi.address(2 DOWNTO 0), + reg_mdio_1_clk_export => OPEN, + reg_mdio_1_read_export => reg_mdio_1_mosi.rd, + reg_mdio_1_readdata_export => reg_mdio_1_miso.rddata(c_word_w-1 DOWNTO 0), + reg_mdio_1_reset_export => OPEN, + reg_mdio_1_write_export => reg_mdio_1_mosi.wr, + reg_mdio_1_writedata_export => reg_mdio_1_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_mdio_2_address_export => reg_mdio_2_mosi.address(2 DOWNTO 0), + reg_mdio_2_clk_export => OPEN, + reg_mdio_2_read_export => reg_mdio_2_mosi.rd, + reg_mdio_2_readdata_export => reg_mdio_2_miso.rddata(c_word_w-1 DOWNTO 0), + reg_mdio_2_reset_export => OPEN, + reg_mdio_2_write_export => reg_mdio_2_mosi.wr, + reg_mdio_2_writedata_export => reg_mdio_2_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_tr_10gbe_address_export => reg_tr_10gbe_mosi.address(14 DOWNTO 0), + reg_tr_10gbe_clk_export => OPEN, + reg_tr_10gbe_read_export => reg_tr_10gbe_mosi.rd, + reg_tr_10gbe_readdata_export => reg_tr_10gbe_miso.rddata(c_word_w-1 DOWNTO 0), + reg_tr_10gbe_reset_export => OPEN, + reg_tr_10gbe_waitrequest_export => reg_tr_10gbe_miso.waitrequest, + reg_tr_10gbe_write_export => reg_tr_10gbe_mosi.wr, + reg_tr_10gbe_writedata_export => reg_tr_10gbe_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_tr_nonbonded_address_export => reg_tr_nonbonded_mosi.address(3 DOWNTO 0), + reg_tr_nonbonded_clk_export => OPEN, + reg_tr_nonbonded_read_export => reg_tr_nonbonded_mosi.rd, + reg_tr_nonbonded_readdata_export => reg_tr_nonbonded_miso.rddata(c_word_w-1 DOWNTO 0), + reg_tr_nonbonded_reset_export => OPEN, + reg_tr_nonbonded_write_export => reg_tr_nonbonded_mosi.wr, + reg_tr_nonbonded_writedata_export => reg_tr_nonbonded_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_tr_xaui_address_export => reg_tr_xaui_mosi.address(10 DOWNTO 0), + reg_tr_xaui_clk_export => OPEN, + reg_tr_xaui_read_export => reg_tr_xaui_mosi.rd, + reg_tr_xaui_readdata_export => reg_tr_xaui_miso.rddata(c_word_w-1 DOWNTO 0), + reg_tr_xaui_reset_export => OPEN, + reg_tr_xaui_waitrequest_export => reg_tr_xaui_miso.waitrequest, + reg_tr_xaui_write_export => reg_tr_xaui_mosi.wr, + reg_tr_xaui_writedata_export => reg_tr_xaui_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_unb_sens_address_export => reg_unb_sens_mosi.address(2 DOWNTO 0), + reg_unb_sens_clk_export => OPEN, + reg_unb_sens_read_export => reg_unb_sens_mosi.rd, + reg_unb_sens_readdata_export => reg_unb_sens_miso.rddata(c_word_w-1 DOWNTO 0), + reg_unb_sens_reset_export => OPEN, + reg_unb_sens_write_export => reg_unb_sens_mosi.wr, + reg_unb_sens_writedata_export => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_wdi_address_export => reg_wdi_mosi.address(0), + reg_wdi_clk_export => OPEN, + reg_wdi_read_export => reg_wdi_mosi.rd, + reg_wdi_readdata_export => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0), + reg_wdi_reset_export => OPEN, + reg_wdi_write_export => reg_wdi_mosi.wr, + reg_wdi_writedata_export => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), + reset_in_reset_n => mm_rst_n, + rom_system_info_address_export => rom_unb_system_info_mosi.address(9 DOWNTO 0), + rom_system_info_clk_export => OPEN, + rom_system_info_read_export => rom_unb_system_info_mosi.rd, + rom_system_info_readdata_export => rom_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0), + rom_system_info_reset_export => OPEN, + rom_system_info_write_export => rom_unb_system_info_mosi.wr, + rom_system_info_writedata_export => rom_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0) + ); END GENERATE; + END str; - -