Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
HDL
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RTSD
HDL
Commits
9c1b6f19
Commit
9c1b6f19
authored
2 years ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Support raw subbands for LOFAR2 and keep quantized subbands for DISTURB2.
parent
cf3147a0
No related branches found
No related tags found
1 merge request
!289
Rename c_sdp_W_fsub_wg into c_sdp_W_local_oscillator. Use...
Pipeline
#38737
passed
2 years ago
Stage: simulation
Stage: synthesis
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
+44
-19
44 additions, 19 deletions
applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
with
44 additions
and
19 deletions
applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
+
44
−
19
View file @
9c1b6f19
...
...
@@ -23,14 +23,21 @@
-- Purpose:
-- Core design for Lofar2 SDP station
-- Description:
-- Combines sdp nodes. Contains the UniBoard2 HW version independent LOFAR2 SDP application code.
-- * Combines sdp nodes. Contains the UniBoard2 HW version independent LOFAR2
-- SDP application code.
-- * Supports default PFB for LOFAR2 [1]
-- - Uses raw subband input to improve the accuracy of weighted subbands
-- and weighted beamlets
-- * Supports 2x oversampled PFB for DISTURB2 [2]
-- - Still uses quantized subband input, because using raw subbands might
-- require too many DSP multipliers.
-- References:
-- [1] LOFAR2 SDP FW: https://support.astron.nl/confluence/display/L2M/L4+SDP+Firmware+Design+Document
-- [2] DISTURB2 revision: https://support.astron.nl/confluence/x/vIIjBQ
-- [2] DISTURB2
design
revision: https://support.astron.nl/confluence/x/vIIjBQ
-- [3] SST, SST_OS packets: https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20SDP%20ICD
-------------------------------------------------------------------------------
LIBRARY
IEEE
,
common_lib
,
diag_lib
,
dp_lib
,
tech_jesd204b_lib
,
wpfb_lib
,
tech_pll_lib
,
tr_10GbE_lib
,
nw_10GbE_lib
,
eth_lib
,
ring_lib
;
LIBRARY
IEEE
,
common_lib
,
diag_lib
,
dp_lib
,
tech_jesd204b_lib
,
fft_lib
,
wpfb_lib
,
tech_pll_lib
,
tr_10GbE_lib
,
nw_10GbE_lib
,
eth_lib
,
ring_lib
;
USE
IEEE
.
STD_LOGIC_1164
.
ALL
;
USE
IEEE
.
NUMERIC_STD
.
ALL
;
USE
common_lib
.
common_pkg
.
ALL
;
...
...
@@ -39,6 +46,7 @@ USE common_lib.common_network_layers_pkg.ALL;
USE
common_lib
.
common_field_pkg
.
ALL
;
USE
diag_lib
.
diag_pkg
.
ALL
;
USE
dp_lib
.
dp_stream_pkg
.
ALL
;
USE
fft_lib
.
fft_pkg
.
ALL
;
USE
wpfb_lib
.
wpfb_pkg
.
ALL
;
USE
work
.
sdp_pkg
.
ALL
;
USE
eth_lib
.
eth_pkg
.
ALL
;
...
...
@@ -376,6 +384,14 @@ END sdp_station;
ARCHITECTURE
str
OF
sdp_station
IS
-- WPFB subband width
CONSTANT
c_fft
:
t_fft
:
=
func_wpfb_map_wpfb_parameters_to_fft
(
g_wpfb
);
CONSTANT
c_fft_raw_dat_w
:
NATURAL
:
=
func_fft_raw_dat_w
(
c_fft
);
CONSTANT
c_fft_raw_fraction_w
:
NATURAL
:
=
func_fft_raw_fraction_w
(
c_fft
);
CONSTANT
c_subband_raw_dat_w
:
NATURAL
:
=
sel_a_b
(
g_use_oversample
,
c_sdp_W_subband
,
c_fft_raw_dat_w
);
CONSTANT
c_subband_raw_fraction_w
:
NATURAL
:
=
sel_a_b
(
g_use_oversample
,
0
,
c_fft_raw_fraction_w
);
-- Make Tx FIFOs at least c_fifo_tx_fill_margin larger than needed to fit the largest Tx packet
CONSTANT
c_fifo_tx_fill_margin
:
NATURAL
:
=
10
;
-- >= c_fifo_fill_margin = 6 that is used in dp_fifo_fill_eop
...
...
@@ -520,9 +536,9 @@ ARCHITECTURE str OF sdp_station IS
----------------------------------------------
SIGNAL
ait_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_S_pn
-1
DOWNTO
0
);
SIGNAL
fsub_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
);
-- weighted subbands
SIGNAL
fsub_oversampled_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_R_os
*
c_sdp_P_pfb
-1
DOWNTO
0
);
SIGNAL
fsub_sosi_2arr
:
t_dp_sosi_2arr_pfb
(
c_sdp_N_beamsets
-1
DOWNTO
0
);
SIGNAL
fsub_
raw_
sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
);
SIGNAL
fsub_oversampled_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_R_os
*
c_sdp_P_pfb
-1
DOWNTO
0
);
SIGNAL
fsub_
raw_
sosi_2arr
:
t_dp_sosi_2arr_pfb
(
c_sdp_N_beamsets
-1
DOWNTO
0
);
SIGNAL
xst_bs_sosi
:
t_dp_sosi
;
-- block sync reference for Xsub ring latency monitor
SIGNAL
bf_bs_sosi
:
t_dp_sosi
;
-- block sync reference for BF ring latency monitor
...
...
@@ -713,7 +729,7 @@ BEGIN
dp_rst
=>
dp_rst
,
in_sosi_arr
=>
ait_sosi_arr
,
fsub_sosi_arr
=>
fsub_sosi_arr
,
fsub_
raw_
sosi_arr
=>
fsub_
raw_
sosi_arr
,
dp_bsn_source_restart
=>
dp_bsn_source_restart
,
dp_bsn_source_new_interval
=>
dp_bsn_source_new_interval
,
...
...
@@ -749,8 +765,9 @@ BEGIN
udp_src_port
=>
sst_udp_src_port
);
gen_bf_sosi
:
FOR
I
IN
0
TO
c_sdp_N_beamsets
-1
GENERATE
fsub_sosi_2arr
(
I
)
<=
fsub_sosi_arr
;
gen_bf_sosi
:
FOR
I
IN
0
TO
c_sdp_N_beamsets
-1
GENERATE
-- Wire same subbands to all beamsets
fsub_raw_sosi_2arr
(
I
)
<=
fsub_raw_sosi_arr
;
END
GENERATE
;
END
GENERATE
;
...
...
@@ -807,10 +824,14 @@ BEGIN
udp_src_port
=>
sst_udp_src_port
);
fsub_sosi_arr
<=
fsub_oversampled_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
);
-- Lower part contains normal subbands, higher part contains shifted subbands.
-- Lower part contains normal subbands, higher part contains shifted subbands.
-- . Use normal subbands for subband correlator
fsub_raw_sosi_arr
<=
fsub_oversampled_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
);
fsub_sosi_2arr
(
0
)
<=
fsub_sosi_arr
;
fsub_sosi_2arr
(
1
)
<=
fsub_oversampled_sosi_arr
(
2
*
c_sdp_P_pfb
-1
DOWNTO
c_sdp_P_pfb
);
-- Use second beamset for oversampled subbands
-- . Use first beamset for normal subbands
-- Use second beamset for oversampled subbands
fsub_raw_sosi_2arr
(
0
)
<=
fsub_oversampled_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
);
fsub_raw_sosi_2arr
(
1
)
<=
fsub_oversampled_sosi_arr
(
2
*
c_sdp_P_pfb
-1
DOWNTO
c_sdp_P_pfb
);
END
GENERATE
;
END
GENERATE
;
...
...
@@ -821,15 +842,17 @@ BEGIN
gen_use_xsub
:
IF
g_use_xsub
GENERATE
u_xsub
:
ENTITY
work
.
node_sdp_correlator
GENERIC
MAP
(
g_sim
=>
g_sim
,
g_sim_sdp
=>
g_sim_sdp
,
g_P_sq
=>
g_P_sq
g_sim
=>
g_sim
,
g_sim_sdp
=>
g_sim_sdp
,
g_P_sq
=>
g_P_sq
,
g_subband_raw_dat_w
=>
c_subband_raw_dat_w
,
g_subband_raw_fraction_w
=>
c_subband_raw_fraction_w
)
PORT
MAP
(
dp_clk
=>
dp_clk
,
dp_rst
=>
dp_rst
,
in_sosi_arr
=>
fsub_sosi_arr
,
in_sosi_arr
=>
fsub_
raw_
sosi_arr
,
xst_udp_sosi
=>
udp_tx_sosi_arr
(
1
),
xst_udp_siso
=>
udp_tx_siso_arr
(
1
),
...
...
@@ -886,13 +909,15 @@ BEGIN
g_sim
=>
g_sim
,
g_sim_sdp
=>
g_sim_sdp
,
g_beamset_id
=>
beamset_id
,
g_scope_selected_beamlet
=>
g_scope_selected_subband
g_scope_selected_beamlet
=>
g_scope_selected_subband
,
g_subband_raw_dat_w
=>
c_subband_raw_dat_w
,
g_subband_raw_fraction_w
=>
c_subband_raw_fraction_w
)
PORT
MAP
(
dp_clk
=>
dp_clk
,
dp_rst
=>
dp_rst
,
in_sosi_arr
=>
fsub_sosi_2arr
(
beamset_id
),
in_sosi_arr
=>
fsub_
raw_
sosi_2arr
(
beamset_id
),
from_ri_sosi
=>
bf_from_ri_sosi_arr
(
beamset_id
),
to_ri_sosi
=>
bf_to_ri_sosi_arr
(
beamset_id
),
bf_udp_sosi
=>
bf_udp_sosi_arr
(
beamset_id
),
...
...
@@ -1233,7 +1258,7 @@ BEGIN
END
GENERATE
;
gen_bf_ring
:
IF
g_use_bf
GENERATE
bf_bs_sosi
<=
fsub_sosi_arr
(
0
);
bf_bs_sosi
<=
fsub_
raw_
sosi_arr
(
0
);
gen_beamset_ring
:
FOR
beamset_id
IN
0
TO
c_sdp_N_beamsets
-1
GENERATE
u_ring_lane_bf
:
ENTITY
ring_lib
.
ring_lane
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment