diff --git a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml index 51766f1eec63cc09ca5e8a895394e1123f72e8d2..953084dfb15b258fc2f18a990383f0973c966c7c 100644 --- a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml @@ -9,7 +9,7 @@ parameters: - { name: c_nof_lanes, value: 8 } - { name: c_nof_rx_monitors, value: 16 } # per lane - { name: c_nof_tx_monitors, value: 16 } # per lane - - { name: c_nof_err_counts, value: 8 } # per lane + - { name: c_nof_err_counts, value: 8 } # per lane, per bit in sosi.err field - { name: c_nof_mac, value: 12 } # 4 TX/RX for RING0 + 4 TX/RX for RING1 + 4 TX/RX for QSFP0 peripherals: diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml index 4a1e54c46bed030a4ae613518e16590e61adf506..c8ed157e255422e409f972b72348c86edd889005 100644 --- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml @@ -11,10 +11,11 @@ parameters: - { name: c_N_beamsets, value: 2 } - { name: c_N_sub, value: 512 } - { name: c_N_fft, value: 1024 } - - { name: c_N_pn_lb, value: 16 } + - { name: c_N_pn_max, value: 16 } - { name: c_S_pn, value: 12 } - { name: c_Q_fft, value: 2 } - - { name: c_P_sq, value: 1 + c_N_pn_lb // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used + - { name: c_P_sum, value: 2 } + - { name: c_P_sq, value: 1 + c_N_pn_max // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used - { name: c_X_sq, value: c_S_pn * c_S_pn } # = 144 - { name: c_N_crosslets, value: 7 } - { name: c_N_taps, value: 16 } @@ -37,10 +38,8 @@ parameters: - { name: c_W_beamlet, value: 8 } - { name: c_stat_data_sz, value: 2 } - { name: c_nof_clk_per_pps, value: c_f_adc_MHz * 10**6 } # = 200000000 - - { name: c_lane_nof_rx_monitors, value: 16 } # per lane - - { name: c_lane_nof_tx_monitors, value: 16 } # per lane - - { name: c_lane_nof_err_counts, value: 8 } # per lane - - { name: c_ring_nof_mac, value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0 + - { name: c_lane_nof_err_counts, value: 8 } # per lane, per bit in RX sosi.err field + - { name: c_ring_nof_mac, value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0 peripherals: ############################################################################# @@ -312,14 +311,14 @@ peripherals: - peripheral_name: dp/dp_bsn_monitor_v2 peripheral_group: ring_rx parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_rx_monitors } + - { name: g_nof_streams, value: c_N_pn_max } mm_port_names: - REG_BSN_MONITOR_V2_RING_RX_XST - peripheral_name: dp/dp_bsn_monitor_v2 peripheral_group: ring_tx parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_tx_monitors } + - { name: g_nof_streams, value: c_N_pn_max } mm_port_names: - REG_BSN_MONITOR_V2_RING_TX_XST @@ -369,7 +368,7 @@ peripherals: peripheral_group: bf number_of_peripherals: c_N_beamsets parameter_overrides: - - { name: g_nof_streams, value: 2 } + - { name: g_nof_streams, value: c_P_sum } mm_port_names: - REG_BSN_ALIGN_V2_BF @@ -377,7 +376,7 @@ peripherals: peripheral_group: rx_align_bf number_of_peripherals: c_N_beamsets parameter_overrides: - - { name: g_nof_streams, value: 2 } + - { name: g_nof_streams, value: c_P_sum } mm_port_names: - REG_BSN_MONITOR_V2_RX_ALIGN_BF diff --git a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml index 7ce0a03e8f89d22aa77db970324a3dca874c394e..da16eb02707f4d94c2dc05ac22492678e925388e 100644 --- a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml @@ -9,7 +9,7 @@ parameters: - { name: c_nof_lanes, value: 8 } - { name: c_nof_rx_monitors, value: 16 } # per lane - { name: c_nof_tx_monitors, value: 16 } # per lane - - { name: c_nof_err_counts, value: 8 } # per lane + - { name: c_nof_err_counts, value: 8 } # per lane, per bit in sosi.err field - { name: c_nof_mac, value: 12 } # 4 TX/RX for RING0 + 4 TX/RX for RING1 + 4 TX/RX for QSFP0 peripherals: diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml index 751f16099e932392bf770b5203193847d771ec5a..6f9cb187f829e008ca22aa579fdcd4605bafe222 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml @@ -11,10 +11,11 @@ parameters: - { name: c_N_beamsets, value: 2 } - { name: c_N_sub, value: 512 } - { name: c_N_fft, value: 1024 } - - { name: c_N_pn_lb, value: 16 } + - { name: c_N_pn_max, value: 16 } - { name: c_S_pn, value: 12 } - { name: c_Q_fft, value: 2 } - - { name: c_P_sq, value: 1 + c_N_pn_lb // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used + - { name: c_P_sum, value: 2 } + - { name: c_P_sq, value: 1 + c_N_pn_max // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used - { name: c_X_sq, value: c_S_pn * c_S_pn } # = 144 - { name: c_N_crosslets, value: 7 } - { name: c_N_taps, value: 16 } @@ -37,10 +38,8 @@ parameters: - { name: c_W_beamlet, value: 8 } - { name: c_stat_data_sz, value: 2 } - { name: c_nof_clk_per_pps, value: c_f_adc_MHz * 10**6 } # = 200000000 - - { name: c_lane_nof_rx_monitors, value: 16 } # per lane - - { name: c_lane_nof_tx_monitors, value: 16 } # per lane - - { name: c_lane_nof_err_counts, value: 8 } # per lane - - { name: c_ring_nof_mac, value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0 + - { name: c_lane_nof_err_counts, value: 8 } # per lane, per bit in RX sosi.err field + - { name: c_ring_nof_mac, value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0 peripherals: ############################################################################# @@ -312,14 +311,14 @@ peripherals: - peripheral_name: dp/dp_bsn_monitor_v2 peripheral_group: ring_rx parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_rx_monitors } + - { name: g_nof_streams, value: c_N_pn_max } mm_port_names: - REG_BSN_MONITOR_V2_RING_RX_XST - peripheral_name: dp/dp_bsn_monitor_v2 peripheral_group: ring_tx parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_tx_monitors } + - { name: g_nof_streams, value: c_N_pn_max } mm_port_names: - REG_BSN_MONITOR_V2_RING_TX_XST @@ -369,7 +368,7 @@ peripherals: peripheral_group: bf number_of_peripherals: c_N_beamsets parameter_overrides: - - { name: g_nof_streams, value: 2 } + - { name: g_nof_streams, value: c_P_sum } mm_port_names: - REG_BSN_ALIGN_V2_BF @@ -377,7 +376,7 @@ peripherals: peripheral_group: rx_align_bf number_of_peripherals: c_N_beamsets parameter_overrides: - - { name: g_nof_streams, value: 2 } + - { name: g_nof_streams, value: c_P_sum } mm_port_names: - REG_BSN_MONITOR_V2_RX_ALIGN_BF diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd index 7fe6896838ac5d2c86cb3e6e0444368a82759418..376b64247fa6e8bef2e5f4d903a4b97d95a2b225 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd @@ -69,7 +69,6 @@ PACKAGE sdp_pkg is CONSTANT c_sdp_N_cross_sets_sdp : NATURAL := 1; CONSTANT c_sdp_N_crosslets_max : NATURAL := 7; CONSTANT c_sdp_N_fft : NATURAL := 1024; - CONSTANT c_sdp_N_pn_lb : NATURAL := 16; CONSTANT c_sdp_N_pn_max : NATURAL := 16; -- gn 0:31 --> pn 0:15, pn 0:15 per antenna band CONSTANT c_sdp_N_pol : NATURAL := 2; CONSTANT c_sdp_N_pol_bf : NATURAL := 2; @@ -592,8 +591,7 @@ PACKAGE BODY sdp_pkg IS -- pn_index = gn_index MOD c_sdp_N_pn_max -- -- The c_sdp_N_pn_max = 16 fits the LB and HB of LOFAR2: - -- . The LB starts at GN index = 0 and has c_sdp_N_pn_lb = c_sdp_N_pn_max - -- = 16 nodes. + -- . The LB starts at GN index = 0 and has c_sdp_N_pn_max = 16 nodes. -- . The HB starts at GN index = c_sdp_N_pn_max, and has 8 or 16 nodes -- dependent on the type of station. -- diff --git a/libraries/base/dp/dp.peripheral.yaml b/libraries/base/dp/dp.peripheral.yaml index 9cca7c30d99b6efd5ea8c17f1b7c3d549c246ff1..697f014501864ff93650e4ef28770ad95e7575f5 100644 --- a/libraries/base/dp/dp.peripheral.yaml +++ b/libraries/base/dp/dp.peripheral.yaml @@ -107,7 +107,7 @@ peripherals: - peripheral_name: dp_bsn_align_v2 # pi_dp_bsn_align_v2.py - peripheral_description: "Align frames from multiple input streams." + peripheral_description: "Align packets from multiple input streams." parameters: # Parameters of dp_bsn_align_v2.vhd - { name: g_nof_streams, value: 2 } @@ -120,12 +120,12 @@ peripherals: number_of_mm_ports: g_nof_streams fields: - - field_name: enable - field_description: "Stream enable per stream via bits g_nof_streams-1 : 0. Bit value 0 disables the stream, 1 enables the stream. Disabled streams are not aligned." + field_description: "Stream enable per stream. Value 0 disables the stream, 1 enables the stream. Disabled streams are not aligned." address_offset: 0 * MM_BUS_SIZE mm_width: 1 access_mode: RW - - field_name: replaced_pkt_cnt - field_description: "Count of packets that contain replacement data per sync interval." + field_description: "Count of packets per stream that contain replacement data per sync interval." address_offset: 1 * MM_BUS_SIZE access_mode: RO @@ -453,12 +453,12 @@ peripherals: mm_port_description: "" fields: - - field_name: err_count_index - field_description: "The total amount of discarded DP blocks per bit in the in_sosi.err field (g_nof_err_counts-1 DOWNTO 0)." + field_description: "Number of errors count per bit in the input sosi.err field (g_nof_err_counts-1 DOWNTO 0)." number_of_fields: g_nof_err_counts address_offset: 0 access_mode: RO - - field_name: total_discarded_blocks - field_description: "The total amount of discarded DP blocks." + field_description: "The total amount of discarded DP blocks. All input DP blocks with sosi.err /= 0 are discarded." address_offset: g_nof_err_counts * MM_BUS_SIZE # 8 * MM_BUS_SIZE access_mode: RO - - field_name: total_block_count