Skip to content
Snippets Groups Projects
Commit 4f762f96 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Clarified func_apertif_unb1_correlator_inter_channel_delay_min() and added...

Clarified func_apertif_unb1_correlator_inter_channel_delay_min() and added comment on why 63*300 is too small, but could still work on HW.
parent 8cc10fa6
No related branches found
No related tags found
No related merge requests found
...@@ -90,7 +90,7 @@ PACKAGE apertif_unb1_correlator_pkg IS ...@@ -90,7 +90,7 @@ PACKAGE apertif_unb1_correlator_pkg IS
CONSTANT c_input_db : t_apertif_unb1_correlator_config := ( TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 48, 32, 63*300, 8, 3, 88); CONSTANT c_input_db : t_apertif_unb1_correlator_config := ( TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 48, 32, 63*300, 8, 3, 88);
CONSTANT c_mesh_db : t_apertif_unb1_correlator_config := ( TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 48, 32, 63*300, 8, 3, 88); CONSTANT c_mesh_db : t_apertif_unb1_correlator_config := ( TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 48, 32, 63*300, 8, 3, 88);
CONSTANT c_bg_output : t_apertif_unb1_correlator_config := (FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, 48, 800000, 63*300, 8, 3, 88); -- 12500 * 64 = 800000 CONSTANT c_bg_output : t_apertif_unb1_correlator_config := (FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, 48, 800000, 63*300, 8, 3, 88); -- 12500 * 64 = 800000
CONSTANT c_bg_output_sim : t_apertif_unb1_correlator_config := (FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, 48, 10*64, 300, 2, 2, 2); CONSTANT c_bg_output_sim : t_apertif_unb1_correlator_config := (FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, 48, 10*64, 279, 2, 2, 2);
-- Function to select the revision configuration. -- Function to select the revision configuration.
FUNCTION func_sel_revision_rec(g_design_name : STRING) RETURN t_apertif_unb1_correlator_config; FUNCTION func_sel_revision_rec(g_design_name : STRING) RETURN t_apertif_unb1_correlator_config;
...@@ -121,6 +121,7 @@ PACKAGE apertif_unb1_correlator_pkg IS ...@@ -121,6 +121,7 @@ PACKAGE apertif_unb1_correlator_pkg IS
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Check inter channel delay -- Check inter channel delay
-- . See tb_node_apertif_unb1_correlator_processing_output.vhd for more info
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
FUNCTION func_apertif_unb1_correlator_inter_channel_delay_max(block_period : NATURAL; FUNCTION func_apertif_unb1_correlator_inter_channel_delay_max(block_period : NATURAL;
...@@ -247,7 +248,9 @@ PACKAGE BODY apertif_unb1_correlator_pkg IS ...@@ -247,7 +248,9 @@ PACKAGE BODY apertif_unb1_correlator_pkg IS
-- 127*300 0.1 = 12.8G/128 < 0.144 Gbps, so too small for the required capacity -- 127*300 0.1 = 12.8G/128 < 0.144 Gbps, so too small for the required capacity
-- --
-- From the available link capacity 0.15625 Gbps it follows that the minimal n = 12.8G / 0.15625 G = 81.92 -- From the available link capacity 0.15625 Gbps it follows that the minimal n = 12.8G / 0.15625 G = 81.92
-- and c_inter_channel_delay_min = 24576. -- and c_inter_channel_delay_min = 24576. Maybe c_inter_channel_delay = 63*300 = 18900 < 24576 still
-- works on HW in Apertif because the 1GbE /10GbE switch network to the Data Writer has sufficient capacity
-- to buffer the packets. However better choose > 24576 instead.
-- Choose a required capacity of 0.144 Gbps to fit both 8 bit and 6 bit beamlet mode, however due to packet -- Choose a required capacity of 0.144 Gbps to fit both 8 bit and 6 bit beamlet mode, however due to packet
-- overhead the required capacity needs to be about 4.2 % more than for the payload data alone. This packet -- overhead the required capacity needs to be about 4.2 % more than for the payload data alone. This packet
-- overhead can be accounted for by increasing the required link capacity by 1.042, so then -- overhead can be accounted for by increasing the required link capacity by 1.042, so then
...@@ -270,8 +273,10 @@ PACKAGE BODY apertif_unb1_correlator_pkg IS ...@@ -270,8 +273,10 @@ PACKAGE BODY apertif_unb1_correlator_pkg IS
FUNCTION func_apertif_unb1_correlator_inter_channel_delay_min(pinfo : t_apertif_unb1_correlator_packet_info; FUNCTION func_apertif_unb1_correlator_inter_channel_delay_min(pinfo : t_apertif_unb1_correlator_packet_info;
nof_visibilities : NATURAL) RETURN INTEGER IS nof_visibilities : NATURAL) RETURN INTEGER IS
-- Derive minimum inter_channel_delay from avaliable link data rate (independent of nof_beamlets, because the -- Derive minimum inter_channel_delay from avaliable link data rate. The burst rate is independent of the packet size,
-- burst rate is the same) -- but the minimum inter_channel_delay does dependent on the packet size, because the inter_channel_delay is applied
-- between packets (so not between samples). The inter_channel_delay is independent of nof_beamlets, because a
-- packet contains all visibilities for one channel in one beamlet.
CONSTANT c_inter_channel_delay_min : INTEGER := pinfo.eth_packet_nof_dp_clk - nof_visibilities; CONSTANT c_inter_channel_delay_min : INTEGER := pinfo.eth_packet_nof_dp_clk - nof_visibilities;
BEGIN BEGIN
RETURN c_inter_channel_delay_min; RETURN c_inter_channel_delay_min;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment