From 9ec38e9d62539df097bb62c191db96287462a20d Mon Sep 17 00:00:00 2001
From: Daniel van der Schuur <schuur@astron.nl>
Date: Tue, 31 Mar 2015 12:41:56 +0000
Subject: [PATCH] -Removed override interface.

---
 .../src/vhdl/apertif_unb1_correlator.vhd      |  10 +-
 .../apertif_unb1_correlator_vis_offload.vhd   | 267 ++----------------
 2 files changed, 26 insertions(+), 251 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 fc0c624427..0c434895af 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
@@ -820,13 +820,9 @@ BEGIN
     
     dp_rst                          => dp_rst,
     dp_clk                          => dp_clk,
-
-    reg_dp_offload_tx_mosi          => c_mem_mosi_rst,
-    reg_dp_offload_tx_miso          => OPEN,          
-    reg_dp_offload_tx_hdr_dat_mosi  => c_mem_mosi_rst,
-    reg_dp_offload_tx_hdr_dat_miso  => OPEN,          
-    reg_dp_offload_tx_hdr_ovr_mosi  => c_mem_mosi_rst,
-    reg_dp_offload_tx_hdr_ovr_miso  => OPEN,          
+     
+--    reg_dp_offload_tx_hdr_dat_mosi  => reg_dp_offload_tx_hdr_dat_mosi, FIXME - connect to MMM
+--    reg_dp_offload_tx_hdr_dat_miso  => reg_dp_offload_tx_hdr_dat_miso,
 
     snk_in                          => apertif_unb1_correlator_vis_offload_snk_in,
     snk_out                         => apertif_unb1_correlator_vis_offload_snk_out,
diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator_vis_offload.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator_vis_offload.vhd
index beaff3e9fd..fb2890c4b0 100644
--- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator_vis_offload.vhd
+++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator_vis_offload.vhd
@@ -1,6 +1,6 @@
 -------------------------------------------------------------------------------
 --
--- Copyright (C) 2013
+-- Copyright (C) 2015
 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
 -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
 --
@@ -21,6 +21,7 @@
 
 -- Purpose:
 -- . Wrapper containing dp_offload_tx and design-specific header fields
+-- FIXME 2) The *entire* UDP payload should be little endian; including the 'id' and 'flag' fields.
 
 LIBRARY IEEE, common_lib, work, mm_lib, unb1_board_lib, dp_lib, tech_tse_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
@@ -40,12 +41,10 @@ ENTITY apertif_unb1_correlator_vis_offload IS
     dp_rst                         : IN  STD_LOGIC;
     dp_clk                         : IN  STD_LOGIC;  
 
-    reg_dp_offload_tx_mosi         : IN  t_mem_mosi;
-    reg_dp_offload_tx_miso         : OUT t_mem_miso;
+    reg_dp_offload_tx_mosi         : IN  t_mem_mosi := c_mem_mosi_rst;
+    reg_dp_offload_tx_miso         : OUT t_mem_miso := c_mem_miso_rst;
     reg_dp_offload_tx_hdr_dat_mosi : IN  t_mem_mosi := c_mem_mosi_rst;
     reg_dp_offload_tx_hdr_dat_miso : OUT t_mem_miso := c_mem_miso_rst;                                    
-    reg_dp_offload_tx_hdr_ovr_mosi : IN  t_mem_mosi := c_mem_mosi_rst;
-    reg_dp_offload_tx_hdr_ovr_miso : OUT t_mem_miso := c_mem_miso_rst;
 
     snk_in                         : IN  t_dp_sosi; 
     snk_out                        : OUT t_dp_siso;              
@@ -61,9 +60,8 @@ END apertif_unb1_correlator_vis_offload;
 ARCHITECTURE wrap OF apertif_unb1_correlator_vis_offload IS
 
                                        -- Word align + Eth + IP + UDP + ID + Flags
---  CONSTANT c_nof_hdr_fields : NATURAL :=           1 +   3 + 12 +   4 +  6 + 24*8; -- 218 fields --FIXME With 1b per 32b reg, the input SLV in common_reg_r_w gets too wide for Quartus (7000b)
-  CONSTANT c_nof_hdr_fields : NATURAL :=           1 +   3 + 12 +   4 +  6 + 24*1; -- 218 fields 
-                     -- Numer of bytes:            2 + <----42-----> + 16 + 24    -- 2 + 42 + 40 = 84 bytes = 672 bits
+  CONSTANT c_nof_hdr_fields : NATURAL :=           1 +   3 + 12 +   4 +  6 + 8 ;    -- 34 fields
+                     -- Numer of bytes:            2 + <-----42-----> + 16 + 8*24/8 -- 2 + 42 + 40 = 84 bytes = 672 bits
 
   CONSTANT c_hdr_field_arr  : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("word_align"                          ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("eth_dst_mac"                         ), "  ", 48, field_default(x"0030482D82A1") ), -- dop17
@@ -86,242 +84,27 @@ ARCHITECTURE wrap OF apertif_unb1_correlator_vis_offload IS
                                                                                    ( field_name_pad("udp_total_length"                    ), "  ", 16, field_default(2448) ),
                                                                                    ( field_name_pad("udp_checksum"                        ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("id_marker_byte"                      ), "  ",  8, field_default(65) ), -- ASCII 'A'
-                                                                                   ( field_name_pad("id_format_version"                   ), "  ",  8, field_default(1) ),  
+                                                                                   ( field_name_pad("id_format_version"                   ), "  ",  8, field_default(2) ),  
                                                                                    ( field_name_pad("id_beamlet_index"                    ), "  ", 16, field_default(x"BEA1") ),
                                                                                    ( field_name_pad("id_channel_index"                    ), "  ", 16, field_default(x"C0A1") ),
                                                                                    ( field_name_pad("id_reserved"                         ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("id_timestamp"                        ), "  ", 64, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_0_7_reserved_1"           ), "  ",  1, field_default(0) ), --FIXME
---                                                                                   ( field_name_pad("flag_input_0_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_0_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_0_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_0_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_0_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_0_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_0_0_crc_error"            ), "  ",  8, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_1_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_1_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_1_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_1_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_1_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_1_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_1_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_1_0_crc_error"            ), "  ",  8, field_default(1) ),
---                                                                                   ( field_name_pad("flag_input_2_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_2_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_2_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_2_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_2_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_2_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_2_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_2_0_crc_error"            ), "  ",  8, field_default(2) ),
---                                                                                   ( field_name_pad("flag_input_3_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_3_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_3_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_3_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_3_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_3_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_3_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_3_0_crc_error"            ), "  ",  8, field_default(3) ),
---                                                                                   ( field_name_pad("flag_input_4_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_4_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_4_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_4_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_4_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_4_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_4_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_4_0_crc_error"            ), "  ",  8, field_default(4) ),
---                                                                                   ( field_name_pad("flag_input_5_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_5_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_5_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_5_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_5_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_5_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_5_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_5_0_crc_error"            ), "  ",  8, field_default(5) ),
---                                                                                   ( field_name_pad("flag_input_6_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_6_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_6_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_6_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_6_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_6_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_6_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_6_0_crc_error"            ), "  ",  8, field_default(6) ),
---                                                                                   ( field_name_pad("flag_input_7_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_7_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_7_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_7_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_7_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_7_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_7_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_7_0_crc_error"            ), "  ",  8, field_default(7) ),
---                                                                                   ( field_name_pad("flag_input_8_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_8_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_8_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_8_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_8_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_8_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_8_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_8_0_crc_error"            ), "  ",  8, field_default(8) ),
---                                                                                   ( field_name_pad("flag_input_9_7_reserved_1"           ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_9_6_reserved_0"           ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_9_5_telescope_off_target" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_9_4_antenna_failure"      ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_9_3_noise_source_enabled" ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_9_2_uploading_weights"    ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_9_1_no_signal"            ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_9_0_crc_error"            ), "  ",  8, field_default(9) ),
---                                                                                   ( field_name_pad("flag_input_10_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_10_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_10_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_10_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_10_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_10_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_10_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_10_0_crc_error"            ), "  ",  8, field_default(10) ),
---                                                                                   ( field_name_pad("flag_input_11_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_11_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_11_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_11_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_11_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_11_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_11_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_11_0_crc_error"            ), "  ",  8, field_default(11) ),
---                                                                                   ( field_name_pad("flag_input_12_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_12_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_12_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_12_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_12_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_12_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_12_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_12_0_crc_error"            ), "  ",  8, field_default(12) ),
---                                                                                   ( field_name_pad("flag_input_13_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_13_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_13_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_13_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_13_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_13_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_13_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_13_0_crc_error"            ), "  ",  8, field_default(13) ),
---                                                                                   ( field_name_pad("flag_input_14_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_14_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_14_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_14_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_14_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_14_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_14_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_14_0_crc_error"            ), "  ",  8, field_default(14) ),
---                                                                                   ( field_name_pad("flag_input_15_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_15_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_15_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_15_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_15_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_15_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_15_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_15_0_crc_error"            ), "  ",  8, field_default(15) ),
---                                                                                   ( field_name_pad("flag_input_16_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_16_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_16_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_16_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_16_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_16_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_16_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_16_0_crc_error"            ), "  ",  8, field_default(16) ),
---                                                                                   ( field_name_pad("flag_input_17_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_17_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_17_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_17_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_17_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_17_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_17_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_17_0_crc_error"            ), "  ",  8, field_default(17) ),
---                                                                                   ( field_name_pad("flag_input_18_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_18_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_18_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_18_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_18_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_18_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_18_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_18_0_crc_error"            ), "  ",  8, field_default(18) ),
---                                                                                   ( field_name_pad("flag_input_19_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_19_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_19_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_19_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_19_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_19_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_19_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_19_0_crc_error"            ), "  ",  8, field_default(19) ),
---                                                                                   ( field_name_pad("flag_input_20_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_20_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_20_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_20_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_20_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_20_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_20_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_20_0_crc_error"            ), "  ",  8, field_default(20) ),
---                                                                                   ( field_name_pad("flag_input_21_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_21_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_21_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_21_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_21_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_21_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_21_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_21_0_crc_error"            ), "  ",  8, field_default(21) ),
---                                                                                   ( field_name_pad("flag_input_22_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_22_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_22_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_22_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_22_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_22_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_22_1_no_signal"           ), "  ",  1, field_default(0) ), 
-                                                                                   ( field_name_pad("flag_input_22_0_crc_error"            ), "  ",  8, field_default(22) ),
---                                                                                   ( field_name_pad("flag_input_23_7_reserved_1"          ), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_23_6_reserved_0"          ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_23_5_telescope_off_target"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_23_4_antenna_failure"     ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_23_3_noise_source_enabled"), "  ",  1, field_default(0) ), 
---                                                                                   ( field_name_pad("flag_input_23_2_uploading_weights"   ), "  ",  1, field_default(0) ),
---                                                                                   ( field_name_pad("flag_input_23_1_no_signal"           ), "  ",  1, field_default(0) ),   
-                                                                                 ( field_name_pad("flag_input_23_0_crc_error"            ), "  ",  8, field_default(23) ) ); 
+                                                                                   ( field_name_pad("flags_crc_error"                     ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_no_input_present"              ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_uploading_weights"             ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_noise_source_enabled"          ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_telescope_pointing_off"        ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_antenna_broken"                ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_reserved_0"                    ), "  ", 24, field_default(0) ),
+                                                                                   ( field_name_pad("flags_reserved_1"                    ), "  ", 24, field_default(0) ) ); 
+
+  CONSTANT c_hdr_field_sel         : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0)  :=             "1101" &  -- Eth header fields: eth_src_mac from data path (others use MM default value).
+                                                                                           "111111111101" &  -- IP  header fields: ip_src_addr from data path (others use MM default value).
+                                                                                                   "1111" &  -- UDP header fields
+--                                                                                               "110010" &  -- ID  header fields: MM controlled: marker byte, format version, reserved. From data path: beamlet+channel index and timestamp.
+                                                                                                 "111110" &  -- ID FIXME: Now using defaults for beamlet+channel indices for testing.
+                                                                                               "00111111";   -- Flag fields: crc_error and no_input_present from data path, others via MM.
 
-  CONSTANT c_nof_id_fields              : NATURAL := 6;
---  CONSTANT c_nof_flags_per_input        : NATURAL := 8;--FIXME
-  CONSTANT c_nof_flags_per_input        : NATURAL := 1;
-
-  CONSTANT c_hdr_field_id_ovr_init      : STD_LOGIC_VECTOR(c_nof_id_fields-1 DOWNTO 0)         := "111110"; --FIXME
---  CONSTANT c_hdr_field_id_ovr_init      : STD_LOGIC_VECTOR(c_nof_id_fields-1 DOWNTO 0)       := "110010";   -- MM controlled: marker byte, format version, reserved. From data path: beamlet+channel index and timestamp.
-
---  CONSTANT c_hdr_field_flags_ovr_init   : STD_LOGIC_VECTOR(c_nof_flags_per_input-1 DOWNTO 0) := "11111100"; -- Flag fields 7..2 are MM controlled, fields 1..0 come from the data path. --FIXME
-  CONSTANT c_hdr_field_flags_ovr_init   : STD_LOGIC_VECTOR(c_nof_flags_per_input-1 DOWNTO 0) := "1"; -- All 8 flags combined in one register for now.
-
-  CONSTANT c_hdr_field_ovr_init         : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0) := "1101" &                     -- Eth header fields: eth_src_mac from data path (others use MM default value).
-                                                                                           "111111111101" &             -- IP  header fields: ip_src_addr from data path (others use MM default value).
-                                                                                           "1111"&                      -- UDP header fields
-                                                                                           c_hdr_field_id_ovr_init &    -- ID  header fields
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 0
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 1
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 2
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 3
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 4
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 5
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 6
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 7
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 8
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 9
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 10
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 11
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 12
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 13
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 14
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 15
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 16
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 17
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 18
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 19
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 20
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 21
-                                                                                           c_hdr_field_flags_ovr_init & -- Flags input 22
-                                                                                           c_hdr_field_flags_ovr_init ; -- Flags input 23
   CONSTANT c_nof_hdr_words              : NATURAL := field_slv_len(c_hdr_field_arr)/c_tech_tse_data_w;
   CONSTANT c_nof_offload_streams        : NATURAL := 1;
 
@@ -365,9 +148,8 @@ BEGIN
     g_def_nof_words_per_block   => c_nof_words_per_block,
     g_max_nof_blocks_per_packet => c_nof_blocks_per_packet,
     g_def_nof_blocks_per_packet => c_nof_blocks_per_packet,
-    g_output_fifo_depth         => c_nof_words_per_block+c_nof_hdr_words,
     g_hdr_field_arr             => c_hdr_field_arr,
-    g_hdr_field_ovr_init        => c_hdr_field_ovr_init
+    g_hdr_field_sel             => c_hdr_field_sel
    )
   PORT MAP (
     mm_rst                => mm_rst,
@@ -381,9 +163,6 @@ BEGIN
 
     reg_hdr_dat_mosi      => reg_dp_offload_tx_hdr_dat_mosi,
     reg_hdr_dat_miso      => reg_dp_offload_tx_hdr_dat_miso,
-
-    reg_hdr_ovr_mosi      => reg_dp_offload_tx_hdr_ovr_mosi,
-    reg_hdr_ovr_miso      => reg_dp_offload_tx_hdr_ovr_miso,
  
     snk_in_arr            => dp_offload_tx_snk_in_arr,
     snk_out_arr           => dp_offload_tx_snk_out_arr,
-- 
GitLab