diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd index b88d6390037a6a087ac23f0c47d319d56bfec13a..3d23da21e2dc0cb487733b0f97f72582a786c2f9 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd @@ -94,7 +94,7 @@ ENTITY lofar2_unb2c_sdp_station IS -- jesd204b syncronization signals JESD204B_SYSREF : IN STD_LOGIC; - JESD204B_SYNC_N : OUT STD_LOGIC_VECTOR((c_sdp_S_pn / c_sdp_S_rcu)-1 DOWNTO 0) + JESD204B_SYNC_N : OUT STD_LOGIC_VECTOR(c_sdp_N_sync_jesd-1 DOWNTO 0) ); END lofar2_unb2c_sdp_station; diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd index 895b22b73505274c2f9ff7441309519748e0cb35..82cf3bf7ecad0733de0f8a1462a60cc02b195b85 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd @@ -101,7 +101,7 @@ ENTITY node_sdp_adc_input_and_timing IS jesd204b_serial_data : IN STD_LOGIC_VECTOR(c_sdp_S_pn-1 downto 0); jesd204b_refclk : IN STD_LOGIC; jesd204b_sysref : IN STD_LOGIC; - jesd204b_sync_n : OUT STD_LOGIC_VECTOR((c_sdp_S_pn / c_sdp_S_rcu)-1 DOWNTO 0); + jesd204b_sync_n : OUT STD_LOGIC_VECTOR(c_sdp_N_sync_jesd - 1 DOWNTO 0); -- Streaming data output out_sosi_arr : OUT t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0); @@ -124,9 +124,6 @@ ARCHITECTURE str OF node_sdp_adc_input_and_timing IS CONSTANT c_bs_block_size : NATURAL := c_sdp_N_fft; -- =1024; CONSTANT c_dp_fifo_dc_size : NATURAL := 64; - -- Nof sync outputs - CONSTANT c_nof_sync_n : NATURAL := c_sdp_S_pn / c_sdp_S_rcu; -- 12/3 = 4. One sync for each RCU. - -- JESD signals SIGNAL rx_clk : STD_LOGIC; -- formerly jesd204b_frame_clk SIGNAL rx_rst : STD_LOGIC; @@ -172,7 +169,7 @@ BEGIN GENERIC MAP( g_sim => g_sim, g_nof_streams => c_sdp_S_pn, - g_nof_sync_n => c_nof_sync_n, + g_nof_sync_n => c_sdp_N_sync_jesd, g_jesd_freq => c_sdp_jesd204b_freq ) PORT MAP( diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd index 32abb324a2812acfbe6e082727431fcc0e99f819..213dea60f73b825b798bd6dc837203d35b59f09f 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd @@ -67,36 +67,37 @@ PACKAGE sdp_pkg is ------------------------------------------------- -- SDP specific parameters as defined in: -- L3 SDP Decision: SDP Parameter definitions - CONSTANT c_sdp_f_adc_MHz : NATURAL := 200; - CONSTANT c_sdp_N_beamsets : NATURAL := 2; - 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; - CONSTANT c_sdp_N_pol : NATURAL := 2; - CONSTANT c_sdp_N_pol_bf : NATURAL := 2; - CONSTANT c_sdp_N_ring_lanes_max : NATURAL := 8; - CONSTANT c_sdp_N_sub : NATURAL := 512; - CONSTANT c_sdp_N_taps : NATURAL := 16; - CONSTANT c_sdp_P_sq : NATURAL := 9; - CONSTANT c_sdp_Q_fft : NATURAL := 2; - CONSTANT c_sdp_S_pn : NATURAL := 12; - CONSTANT c_sdp_S_rcu : NATURAL := 3; - CONSTANT c_sdp_S_sub_bf : NATURAL := 488; - CONSTANT c_sdp_V_ring_pkt_len_max : NATURAL := 48; -- for 16 nodes - CONSTANT c_sdp_V_sample_delay : NATURAL := 4096; - CONSTANT c_sdp_V_si_db : NATURAL := 1024; - CONSTANT c_sdp_V_si_db_large : NATURAL := 131072; - CONSTANT c_sdp_V_si_histogram : NATURAL := 512; - CONSTANT c_sdp_W_adc : NATURAL := 14; - CONSTANT c_sdp_W_adc_jesd : NATURAL := 16; - CONSTANT c_sdp_W_fir_coef : NATURAL := 16; - CONSTANT c_sdp_W_subband : NATURAL := 18; - CONSTANT c_sdp_W_crosslet : NATURAL := 16; - CONSTANT c_sdp_W_beamlet_sum : NATURAL := 18; - CONSTANT c_sdp_W_beamlet : NATURAL := 8; - CONSTANT c_sdp_W_gn_id : NATURAL := 5; - CONSTANT c_sdp_W_statistic : NATURAL := 64; + CONSTANT c_sdp_f_adc_MHz : NATURAL := 200; + CONSTANT c_sdp_N_beamsets : NATURAL := 2; + 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; + CONSTANT c_sdp_N_pol : NATURAL := 2; + CONSTANT c_sdp_N_pol_bf : NATURAL := 2; + CONSTANT c_sdp_N_ring_lanes_max : NATURAL := 8; + CONSTANT c_sdp_N_sub : NATURAL := 512; + CONSTANT c_sdp_N_sync_rcu : NATURAL := 1; + CONSTANT c_sdp_N_taps : NATURAL := 16; + CONSTANT c_sdp_P_sq : NATURAL := 9; + CONSTANT c_sdp_Q_fft : NATURAL := 2; + CONSTANT c_sdp_S_pn : NATURAL := 12; + CONSTANT c_sdp_S_rcu : NATURAL := 3; + CONSTANT c_sdp_S_sub_bf : NATURAL := 488; + CONSTANT c_sdp_V_ring_pkt_len_max : NATURAL := 48; -- for 16 nodes + CONSTANT c_sdp_V_sample_delay : NATURAL := 4096; + CONSTANT c_sdp_V_si_db : NATURAL := 1024; + CONSTANT c_sdp_V_si_db_large : NATURAL := 131072; + CONSTANT c_sdp_V_si_histogram : NATURAL := 512; + CONSTANT c_sdp_W_adc : NATURAL := 14; + CONSTANT c_sdp_W_adc_jesd : NATURAL := 16; + CONSTANT c_sdp_W_fir_coef : NATURAL := 16; + CONSTANT c_sdp_W_subband : NATURAL := 18; + CONSTANT c_sdp_W_crosslet : NATURAL := 16; + CONSTANT c_sdp_W_beamlet_sum : NATURAL := 18; + CONSTANT c_sdp_W_beamlet : NATURAL := 8; + CONSTANT c_sdp_W_gn_id : NATURAL := 5; + CONSTANT c_sdp_W_statistic : NATURAL := 64; CONSTANT c_sdp_W_sub_weight : NATURAL := 16; -- = w in s(w, p), s = signed CONSTANT c_sdp_W_sub_weight_fraction : NATURAL := 13; -- = p in s(w, p) CONSTANT c_sdp_W_sub_weight_magnitude : NATURAL := c_sdp_W_sub_weight - c_sdp_W_sub_weight_fraction - 1; -- = 2 @@ -109,6 +110,7 @@ PACKAGE sdp_pkg is -- Derived constants CONSTANT c_sdp_FS_adc : NATURAL := 2**(c_sdp_W_adc - 1); -- full scale FS corresponds to amplitude 1.0 + CONSTANT c_sdp_N_sync_jesd : NATURAL := c_sdp_S_pn * c_sdp_N_sync_rcu / c_sdp_S_rcu; -- = 4, nof JESD IP sync outputs per PN CONSTANT c_sdp_P_pfb : NATURAL := c_sdp_S_pn / c_sdp_Q_fft; CONSTANT c_sdp_T_adc : TIME := (10**6 / c_sdp_f_adc_MHz) * 1 ps; CONSTANT c_sdp_T_sub : TIME := c_sdp_N_fft * c_sdp_T_adc; diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd index c62bcfbe1bf749408fecdbd870476423aae670fc..abe7debfc7267ffccaee9193915e765381011f85 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd @@ -77,7 +77,7 @@ ENTITY sdp_station IS -- jesd204b syncronization signals JESD204B_SYSREF : IN STD_LOGIC; - JESD204B_SYNC_N : OUT STD_LOGIC_VECTOR((c_sdp_S_pn / c_sdp_S_rcu) -1 DOWNTO 0); + JESD204B_SYNC_N : OUT STD_LOGIC_VECTOR(c_sdp_N_sync_jesd -1 DOWNTO 0); ----------------------------------------------