From c647dca6a64fc7d53999725fd41ca74e1adc8a41 Mon Sep 17 00:00:00 2001 From: Daniel van der Schuur <schuur@astron.nl> Date: Wed, 8 Apr 2015 12:59:34 +0000 Subject: [PATCH] -Cleaned the code. --- .../src/vhdl/apertif_unb1_correlator.vhd | 374 ++++++++---------- 1 file changed, 167 insertions(+), 207 deletions(-) diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd index ad3b36237f..086c0fff92 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd @@ -43,30 +43,26 @@ USE wpfb_lib.wpfb_pkg.ALL; USE bf_lib.bf_pkg.ALL; -- Purpose: --- +-- . Calculate all cross- and autocorrelations of the incoming beamlets -- Description: --- +-- . The incpoming beamlets (3x 10GbE from fn_beamformer) are distributed among the 8 FPGAs per board; each FPGA correlates +-- 1/8th of the beamlets. -- Remarks: --- . Compile times: --- . 48 Visibility system with dumb terminals : ??? hours, Non-functional design, for resource util exploration only. --- . 48 Visibility system: : 5.5 hours, fMax ~200MHz, should be functional but it is not. --- . 48 Visibility system, no DSP : 3.5 hours --- . 48 Visibility system, BG+offload only : 20 minutes, for visibility offload testing only ENTITY apertif_unb1_correlator IS GENERIC ( - g_design_name : STRING := "apertif_unb1_correlator"; - g_sim : BOOLEAN := FALSE; --Overridden by TB - g_sim_unb_nr : NATURAL := 0; - g_sim_node_nr : NATURAL := 0; - g_stamp_date : NATURAL := 0; -- Date (YYYYMMDD) -- set by QSF - g_stamp_time : NATURAL := 0; -- Time (HHMMSS) -- set by QSF - g_stamp_svn : NATURAL := 0; -- SVN revision -- set by QSF - g_use_dumb_mesh_terminals : BOOLEAN := FALSE; -- Add dumb mesh terminals to the design. Non-functional, for synthesis results only. - g_offload_bg : BOOLEAN := FALSE;-- Bypass everything; use only a block-gen->dp_offload_tx. - g_no_dsp : BOOLEAN := FALSE -- True = bypass WPFB, bypass correlator multipliers+accumulators. - ); -- . Correlator does output correctly sized DP packets. - PORT ( -- . Used to verify/validate data path from 10GbE receivers to 1GbE offload. + g_design_name : STRING := "apertif_unb1_correlator"; + g_sim : BOOLEAN := FALSE; --Overridden by TB + g_sim_unb_nr : NATURAL := 0; + g_sim_node_nr : NATURAL := 0; + g_stamp_date : NATURAL := 0; -- Date (YYYYMMDD) -- set by QSF + g_stamp_time : NATURAL := 0; -- Time (HHMMSS) -- set by QSF + g_stamp_svn : NATURAL := 0; -- SVN revision -- set by QSF + g_use_dumb_mesh_terminals : BOOLEAN := FALSE;-- Add dumb mesh terminals to the design. Non-functional, for synthesis results only. + g_offload_bg : BOOLEAN := FALSE;-- Bypass everything; use only a block-gen->dp_offload_tx. + g_no_dsp : BOOLEAN := FALSE -- True = bypass WPFB, bypass correlator multipliers+accumulators. + ); -- . Correlator does output correctly sized DP packets. + PORT ( -- . Used to verify/validate data path from 10GbE receivers to 1GbE offload. -- GENERAL CLK : IN STD_LOGIC; -- System Clock PPS : IN STD_LOGIC; -- System Sync @@ -90,7 +86,7 @@ ENTITY apertif_unb1_correlator IS -- Transceiver clocks SA_CLK : IN STD_LOGIC; -- SerDes Clock BN-BI / SI_FN - SB_CLK : IN STD_LOGIC; -- TR clock FN-BN (tr_mesh) + SB_CLK : IN STD_LOGIC; -- SerDes clock FN-BN (tr_mesh) -- Mesh Serial I/O FN_BN_0_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0); @@ -112,7 +108,7 @@ ENTITY apertif_unb1_correlator IS SI_FN_3_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); SI_FN_3_RX : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); - SI_FN_0_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); -- (0 = LASI; 1=MDC; 2=MDIO) + SI_FN_0_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); SI_FN_1_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); SI_FN_2_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); SI_FN_3_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); @@ -125,7 +121,7 @@ END apertif_unb1_correlator; ARCHITECTURE str OF apertif_unb1_correlator IS -- Firmware version x.y - CONSTANT c_fw_version : t_unb1_board_fw_version := (0, 1); + CONSTANT c_fw_version : t_unb1_board_fw_version := (0, 2); -- Enable block generators CONSTANT c_use_bg : BOOLEAN := g_sim; @@ -148,7 +144,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS CONSTANT c_use_complex : BOOLEAN := TRUE; -- Correlator - CONSTANT c_nof_inputs : NATURAL := sel_a_b(g_sim, 24, 24); + CONSTANT c_nof_inputs : NATURAL := 24; CONSTANT c_nof_input_folds : NATURAL := 1; CONSTANT c_nof_input_streams : NATURAL := c_nof_inputs / pow2(c_nof_input_folds); CONSTANT c_nof_pre_mult_folds : NATURAL := 1; @@ -196,7 +192,6 @@ ARCHITECTURE str OF apertif_unb1_correlator IS -- . The sync pulse is only there for the human eye (wave window) - -- it is not used by the correlator. CONSTANT c_bg_blocks_per_sync : NATURAL := largest(c_integration_period, c_nof_visibilities); - CONSTANT c_bg_ctrl : t_diag_block_gen := ('1', -- enable '0', -- enable_sync TO_UVEC( c_bg_block_size, c_diag_bg_samples_per_packet_w), @@ -205,13 +200,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS TO_UVEC( 0, c_diag_bg_mem_low_adrs_w), TO_UVEC( c_bg_block_size-1, c_diag_bg_mem_high_adrs_w), TO_UVEC( 0, c_diag_bg_bsn_init_w)); - - -- dp_offload_tx --- CONSTANT c_usr_hdr_len : NATURAL := 20; --- CONSTANT c_payload_len : NATURAL := (c_nof_visibilities*64) / c_byte_w + c_usr_hdr_len; --- CONSTANT c_udp_total_len : NATURAL := c_network_udp_header_len+c_payload_len; --- CONSTANT c_ip_total_len : NATURAL := c_network_ip_header_len+c_udp_total_len; - + -- Block generator for visibility offload testing CONSTANT c_offload_bg_ctrl : t_diag_block_gen := ('1', -- enable '0', -- enable_sync TO_UVEC( 300, c_diag_bg_samples_per_packet_w), @@ -221,135 +210,133 @@ ARCHITECTURE str OF apertif_unb1_correlator IS TO_UVEC( 0, c_diag_bg_mem_high_adrs_w), TO_UVEC( 0, c_diag_bg_bsn_init_w)); -- System - SIGNAL cs_sim : STD_LOGIC; - SIGNAL xo_clk : STD_LOGIC; - SIGNAL xo_rst : STD_LOGIC; - SIGNAL xo_rst_n : STD_LOGIC; - SIGNAL mm_clk : STD_LOGIC; - SIGNAL mm_locked : STD_LOGIC; - SIGNAL mm_rst : STD_LOGIC; - - SIGNAL dp_rst : STD_LOGIC; - SIGNAL dp_clk : STD_LOGIC; - SIGNAL sa_rst : STD_LOGIC; - - -- PIOs - SIGNAL pout_wdi : STD_LOGIC; - - -- MM WDI override - SIGNAL reg_wdi_mosi : t_mem_mosi; - SIGNAL reg_wdi_miso : t_mem_miso; + SIGNAL cs_sim : STD_LOGIC; + SIGNAL xo_clk : STD_LOGIC; + SIGNAL xo_rst : STD_LOGIC; + SIGNAL xo_rst_n : STD_LOGIC; + SIGNAL mm_clk : STD_LOGIC; + SIGNAL mm_locked : STD_LOGIC; + SIGNAL mm_rst : STD_LOGIC; + + SIGNAL dp_rst : STD_LOGIC; + SIGNAL dp_clk : STD_LOGIC; + SIGNAL sa_rst : STD_LOGIC; + + -- PIOs + SIGNAL pout_wdi : STD_LOGIC; + + -- MM WDI override + SIGNAL reg_wdi_mosi : t_mem_mosi; + SIGNAL reg_wdi_miso : t_mem_miso; -- MM PPSH - SIGNAL reg_ppsh_mosi : t_mem_mosi; - SIGNAL reg_ppsh_miso : t_mem_miso; - - -- MM UniBoard system info - 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; - - -- MM UniBoard I2C sens - SIGNAL reg_unb_sens_mosi : t_mem_mosi; - SIGNAL reg_unb_sens_miso : t_mem_miso; - - -- MM eth1g - SIGNAL eth1g_tse_clk : STD_LOGIC; - SIGNAL eth1g_mm_rst : STD_LOGIC; - SIGNAL eth1g_tse_mosi : t_mem_mosi; -- ETH TSE MAC registers - SIGNAL eth1g_tse_miso : t_mem_miso; - SIGNAL eth1g_reg_mosi : t_mem_mosi; -- ETH control and status registers - SIGNAL eth1g_reg_miso : t_mem_miso; - SIGNAL eth1g_reg_interrupt : STD_LOGIC; -- Interrupt - SIGNAL eth1g_ram_mosi : t_mem_mosi; -- ETH rx frame and tx frame memory - SIGNAL eth1g_ram_miso : t_mem_miso; - - -- MM DP offload RX - SIGNAL reg_dp_offload_rx_hdr_dat_mosi : t_mem_mosi; - SIGNAL reg_dp_offload_rx_hdr_dat_miso : t_mem_miso; + SIGNAL reg_ppsh_mosi : t_mem_mosi; + SIGNAL reg_ppsh_miso : t_mem_miso; + + -- MM UniBoard system info + 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; + + -- MM UniBoard I2C sens + SIGNAL reg_unb_sens_mosi : t_mem_mosi; + SIGNAL reg_unb_sens_miso : t_mem_miso; + + -- MM eth1g + SIGNAL eth1g_tse_clk : STD_LOGIC; + SIGNAL eth1g_mm_rst : STD_LOGIC; + SIGNAL eth1g_tse_mosi : t_mem_mosi; -- ETH TSE MAC registers + SIGNAL eth1g_tse_miso : t_mem_miso; + SIGNAL eth1g_reg_mosi : t_mem_mosi; -- ETH control and status registers + SIGNAL eth1g_reg_miso : t_mem_miso; + SIGNAL eth1g_reg_interrupt : STD_LOGIC; -- Interrupt + SIGNAL eth1g_ram_mosi : t_mem_mosi; -- ETH rx frame and tx frame memory + SIGNAL eth1g_ram_miso : t_mem_miso; + + -- MM DP offload RX + SIGNAL reg_dp_offload_rx_hdr_dat_mosi : t_mem_mosi; + SIGNAL reg_dp_offload_rx_hdr_dat_miso : t_mem_miso; -- BSN monitors - SIGNAL reg_bsn_monitor_mosi : t_mem_mosi; - SIGNAL reg_bsn_monitor_miso : t_mem_miso; + SIGNAL reg_bsn_monitor_mosi : t_mem_mosi; + SIGNAL reg_bsn_monitor_miso : t_mem_miso; -- MM Filterbank - SIGNAL ram_fil_coefs_mosi : t_mem_mosi; - SIGNAL ram_fil_coefs_miso : t_mem_miso; + SIGNAL ram_fil_coefs_mosi : t_mem_mosi; + SIGNAL ram_fil_coefs_miso : t_mem_miso; - -- MM Databuffer - SIGNAL ram_diag_data_buf_mosi : t_mem_mosi; - SIGNAL ram_diag_data_buf_miso : t_mem_miso; - SIGNAL reg_diag_data_buf_mosi : t_mem_mosi; - SIGNAL reg_diag_data_buf_miso : t_mem_miso; - - -- MM 1GbE visibility offload TX - SIGNAL reg_dp_offload_tx_hdr_dat_mosi : t_mem_mosi; - SIGNAL reg_dp_offload_tx_hdr_dat_miso : t_mem_miso; - - -- Interface: 10GbE - SIGNAL xaui_tx_arr : t_xaui_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL xaui_rx_arr : t_xaui_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL unb_xaui_tx_arr : t_unb1_board_xaui_sl_2arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL unb_xaui_rx_arr : t_unb1_board_xaui_sl_2arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL mdio_mdc_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL mdio_mdat_in_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL mdio_mdat_oen_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); - 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_mdio_mosi_arr : t_mem_mosi_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); - SIGNAL reg_mdio_miso_arr : t_mem_miso_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); + -- MM Databuffer + SIGNAL ram_diag_data_buf_mosi : t_mem_mosi; + SIGNAL ram_diag_data_buf_miso : t_mem_miso; + SIGNAL reg_diag_data_buf_mosi : t_mem_mosi; + SIGNAL reg_diag_data_buf_miso : t_mem_miso; + + -- MM 1GbE visibility offload TX + SIGNAL reg_dp_offload_tx_hdr_dat_mosi : t_mem_mosi; + SIGNAL reg_dp_offload_tx_hdr_dat_miso : t_mem_miso; + + -- Interface: 10GbE + SIGNAL xaui_tx_arr : t_xaui_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL xaui_rx_arr : t_xaui_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL unb_xaui_tx_arr : t_unb1_board_xaui_sl_2arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL unb_xaui_rx_arr : t_unb1_board_xaui_sl_2arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL mdio_mdc_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL mdio_mdat_in_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL mdio_mdat_oen_arr : STD_LOGIC_VECTOR(c_nof_10GbE_streams-1 DOWNTO 0); + 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_mdio_mosi_arr : t_mem_mosi_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); + SIGNAL reg_mdio_miso_arr : t_mem_miso_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); -- DP offload RX - SIGNAL dp_offload_rx_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL dp_offload_rx_snk_out_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL dp_offload_rx_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL dp_offload_rx_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); - SIGNAL dp_offload_rx_restored_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=>c_dp_sosi_rst); - SIGNAL hdr_fields_out_arr : t_slv_1024_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_offload_rx_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_offload_rx_snk_out_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_offload_rx_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_offload_rx_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); + SIGNAL dp_offload_rx_restored_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=>c_dp_sosi_rst); + SIGNAL hdr_fields_out_arr : t_slv_1024_arr(c_nof_10GbE_streams-1 DOWNTO 0); -- BSN Aligner - SIGNAL dp_fifo_fill_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL dp_fifo_fill_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); - SIGNAL dp_bsn_align_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); - SIGNAL dp_bsn_align_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_fifo_fill_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_fifo_fill_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); + SIGNAL dp_bsn_align_src_in_arr : t_dp_siso_arr(c_nof_10GbE_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); + SIGNAL dp_bsn_align_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_streams-1 DOWNTO 0); -- BSN monitors - SIGNAL dp_bsn_monitor_in_siso_arr : t_dp_siso_arr(c_nof_10GbE_streams+1+1-1 DOWNTO 0); - SIGNAL dp_bsn_monitor_in_sosi_arr : t_dp_sosi_arr(c_nof_10GbE_streams+1+1-1 DOWNTO 0); + SIGNAL dp_bsn_monitor_in_siso_arr : t_dp_siso_arr(c_nof_10GbE_streams+1+1-1 DOWNTO 0); + SIGNAL dp_bsn_monitor_in_sosi_arr : t_dp_sosi_arr(c_nof_10GbE_streams+1+1-1 DOWNTO 0); -- De and Reinterleaver - SIGNAL dp_deinterleave_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); - SIGNAL dp_pipeline_snk_in : t_dp_sosi; - SIGNAL interleaved_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); - SIGNAL deinterleaved_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); - SIGNAL reinterleave_in_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); - SIGNAL reinterleave_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); + SIGNAL dp_deinterleave_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); + SIGNAL dp_pipeline_snk_in : t_dp_sosi; + SIGNAL interleaved_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); + SIGNAL deinterleaved_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); + SIGNAL reinterleave_in_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); + SIGNAL reinterleave_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); -- Filterbank and Correlator - SIGNAL wpfb_snk_in_ctrl : t_dp_sosi; - SIGNAL wpfb_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); - SIGNAL wpfb_src_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); - SIGNAL correlator_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); + SIGNAL wpfb_snk_in_ctrl : t_dp_sosi; + SIGNAL wpfb_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); + SIGNAL wpfb_src_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); + SIGNAL correlator_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); -- 1GbE Visibility Offload - SIGNAL dp_fifo_dc_mixed_widths_snk_in : t_dp_sosi; - - SIGNAL apertif_unb1_correlator_vis_offload_snk_in : t_dp_sosi; - SIGNAL apertif_unb1_correlator_vis_offload_snk_out : t_dp_siso; - SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); - SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(1-1 DOWNTO 0); + SIGNAL dp_fifo_dc_mixed_widths_snk_in : t_dp_sosi; + SIGNAL apertif_unb1_correlator_vis_offload_snk_in : t_dp_sosi; + SIGNAL apertif_unb1_correlator_vis_offload_snk_out : t_dp_siso; + SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); + SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(1-1 DOWNTO 0); -- Mesh terminals - SIGNAL tx_serial_2arr : t_unb1_board_mesh_sl_2arr; - SIGNAL rx_serial_2arr : t_unb1_board_mesh_sl_2arr; - - SIGNAL mesh_tx_snk_out_2arr : t_unb1_board_mesh_siso_2arr; - SIGNAL mesh_tx_snk_in_2arr : t_unb1_board_mesh_sosi_2arr; - SIGNAL mesh_rx_src_in_2arr : t_unb1_board_mesh_siso_2arr; - SIGNAL mesh_rx_src_out_2arr : t_unb1_board_mesh_sosi_2arr; + SIGNAL tx_serial_2arr : t_unb1_board_mesh_sl_2arr; + SIGNAL rx_serial_2arr : t_unb1_board_mesh_sl_2arr; + SIGNAL mesh_tx_snk_out_2arr : t_unb1_board_mesh_siso_2arr; + SIGNAL mesh_tx_snk_in_2arr : t_unb1_board_mesh_sosi_2arr; + SIGNAL mesh_rx_src_in_2arr : t_unb1_board_mesh_siso_2arr; + SIGNAL mesh_rx_src_out_2arr : t_unb1_board_mesh_sosi_2arr; BEGIN @@ -438,7 +425,7 @@ BEGIN tr_ref_rst_156 => sa_rst, -- Calibration & reconfig clock - cal_rec_clk => mm_clk, --cal_clk, # required for XAUI + cal_rec_clk => mm_clk, -- MM interface mm_rst => mm_rst, @@ -1019,33 +1006,6 @@ BEGIN src_in => c_dp_siso_rdy ); - --- ----------------------------------------------------------------------------- --- -- Data buffer to be read out by Python --- ----------------------------------------------------------------------------- --- u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer --- GENERIC MAP ( --- g_nof_streams => 1, --- g_data_w => 64, --- g_data_type => e_complex, --- g_buf_nof_data => c_nof_visibilities, --- g_buf_use_sync => TRUE --- ) --- PORT MAP ( --- mm_rst => mm_rst, --- mm_clk => mm_clk, --- dp_rst => dp_rst, --- dp_clk => dp_clk, --- --- ram_data_buf_mosi => ram_diag_data_buf_mosi, --- ram_data_buf_miso => ram_diag_data_buf_miso, --- reg_data_buf_mosi => reg_diag_data_buf_mosi, --- reg_data_buf_miso => reg_diag_data_buf_miso, --- --- in_sync => correlator_src_out_arr(0).sop, --- in_sosi_arr => correlator_src_out_arr --- ); - ----------------------------------------------------------------------------- -- General control function ----------------------------------------------------------------------------- @@ -1151,75 +1111,75 @@ BEGIN g_hdr_field_arr => c_apertif_udp_offload_hdr_field_arr ) PORT MAP( - xo_clk => xo_clk, - xo_rst_n => xo_rst_n, - xo_rst => xo_rst, + xo_clk => xo_clk, + xo_rst_n => xo_rst_n, + xo_rst => xo_rst, - mm_rst => mm_rst, - mm_clk => mm_clk, - mm_locked => mm_locked, + mm_rst => mm_rst, + mm_clk => mm_clk, + mm_locked => mm_locked, -- PIOs - pout_wdi => pout_wdi, + pout_wdi => pout_wdi, -- Manual WDI override - reg_wdi_mosi => reg_wdi_mosi, - reg_wdi_miso => reg_wdi_miso, + reg_wdi_mosi => reg_wdi_mosi, + reg_wdi_miso => reg_wdi_miso, -- system_info - 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_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, -- UniBoard I2C sensors - reg_unb_sens_mosi => reg_unb_sens_mosi, - reg_unb_sens_miso => reg_unb_sens_miso, + reg_unb_sens_mosi => reg_unb_sens_mosi, + reg_unb_sens_miso => reg_unb_sens_miso, -- PPSH - reg_ppsh_mosi => reg_ppsh_mosi, - reg_ppsh_miso => reg_ppsh_miso, + reg_ppsh_mosi => reg_ppsh_mosi, + reg_ppsh_miso => reg_ppsh_miso, -- 10 GbE - 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_mdio_mosi_arr => reg_mdio_mosi_arr, - reg_mdio_miso_arr => reg_mdio_miso_arr, + 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_mdio_mosi_arr => reg_mdio_mosi_arr, + reg_mdio_miso_arr => reg_mdio_miso_arr, -- DP offload RX 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_bsn_monitor_mosi => reg_bsn_monitor_mosi, - reg_bsn_monitor_miso => reg_bsn_monitor_miso, + reg_bsn_monitor_mosi => reg_bsn_monitor_mosi, + reg_bsn_monitor_miso => reg_bsn_monitor_miso, -- . Data buffers - reg_diag_data_buf_mosi => reg_diag_data_buf_mosi, - reg_diag_data_buf_miso => reg_diag_data_buf_miso, + reg_diag_data_buf_mosi => reg_diag_data_buf_mosi, + reg_diag_data_buf_miso => reg_diag_data_buf_miso, - ram_diag_data_buf_mosi => ram_diag_data_buf_mosi, - ram_diag_data_buf_miso => ram_diag_data_buf_miso, + ram_diag_data_buf_mosi => ram_diag_data_buf_mosi, + ram_diag_data_buf_miso => ram_diag_data_buf_miso, -- 1GbE visibility offload TX 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, -- Filter coefficients - ram_fil_coefs_mosi => ram_fil_coefs_mosi, - ram_fil_coefs_miso => ram_fil_coefs_miso, + ram_fil_coefs_mosi => ram_fil_coefs_mosi, + ram_fil_coefs_miso => ram_fil_coefs_miso, -- eth1g - eth1g_tse_clk => eth1g_tse_clk, - eth1g_mm_rst => eth1g_mm_rst, - eth1g_tse_mosi => eth1g_tse_mosi, - eth1g_tse_miso => eth1g_tse_miso, - eth1g_reg_mosi => eth1g_reg_mosi, - eth1g_reg_miso => eth1g_reg_miso, - eth1g_reg_interrupt => eth1g_reg_interrupt, - eth1g_ram_mosi => eth1g_ram_mosi, - eth1g_ram_miso => eth1g_ram_miso + eth1g_tse_clk => eth1g_tse_clk, + eth1g_mm_rst => eth1g_mm_rst, + eth1g_tse_mosi => eth1g_tse_mosi, + eth1g_tse_miso => eth1g_tse_miso, + eth1g_reg_mosi => eth1g_reg_mosi, + eth1g_reg_miso => eth1g_reg_miso, + eth1g_reg_interrupt => eth1g_reg_interrupt, + eth1g_ram_mosi => eth1g_ram_mosi, + eth1g_ram_miso => eth1g_ram_miso ); END str; -- GitLab