Skip to content
GitLab
Explore
Sign in
Register
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
c2b2d773
Commit
c2b2d773
authored
1 year ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Repack beamlet data in two steps.
parent
1dc76b73
No related branches found
No related tags found
1 merge request
!348
Use use_bdo_transpose = true in c_bf revision. Test use_bdo_transpose = false...
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
+60
-34
60 additions, 34 deletions
...s/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+1
-0
1 addition, 0 deletions
applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
with
61 additions
and
34 deletions
applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
+
60
−
34
View file @
c2b2d773
...
@@ -43,8 +43,7 @@ use work.sdp_pkg.all;
...
@@ -43,8 +43,7 @@ use work.sdp_pkg.all;
entity
sdp_beamformer_output
is
entity
sdp_beamformer_output
is
generic
(
generic
(
g_beamset_id
:
natural
:
=
0
g_beamset_id
:
natural
:
=
0
);
);
port
(
port
(
dp_clk
:
in
std_logic
;
dp_clk
:
in
std_logic
;
dp_rst
:
in
std_logic
;
dp_rst
:
in
std_logic
;
...
@@ -89,21 +88,22 @@ architecture str of sdp_beamformer_output is
...
@@ -89,21 +88,22 @@ architecture str of sdp_beamformer_output is
constant
c_fifo_fill
:
natural
:
=
c_sdp_cep_payload_nof_longwords
;
-- 976
constant
c_fifo_fill
:
natural
:
=
c_sdp_cep_payload_nof_longwords
;
-- 976
constant
c_fifo_size
:
natural
:
=
true_log_pow2
(
c_sdp_cep_payload_nof_longwords
)
*
c_sdp_N_beamsets
;
-- 2048
constant
c_fifo_size
:
natural
:
=
true_log_pow2
(
c_sdp_cep_payload_nof_longwords
)
*
c_sdp_N_beamsets
;
-- 2048
signal
snk_in_concat
:
t_dp_sosi
;
signal
snk_in_concat
:
t_dp_sosi
;
signal
dp_repack_data_src_out
:
t_dp_sosi
;
signal
dp_repack_beamlet_src_out
:
t_dp_sosi
;
signal
dp_packet_merge_src_out
:
t_dp_sosi
;
signal
dp_packet_merge_src_out
:
t_dp_sosi
;
signal
dp_fifo_merge_src_out
:
t_dp_sosi
;
signal
dp_repack_longword_src_out
:
t_dp_sosi
;
signal
dp_fifo_merge_src_in
:
t_dp_siso
;
signal
dp_fifo_fill_eop_src_out
:
t_dp_sosi
;
signal
dp_pipeline_src_out
:
t_dp_sosi
;
signal
dp_fifo_fill_eop_src_in
:
t_dp_siso
;
signal
dp_pipeline_src_in
:
t_dp_siso
;
signal
dp_pipeline_src_out
:
t_dp_sosi
;
signal
dp_offload_tx_src_out
:
t_dp_sosi
;
signal
dp_pipeline_src_in
:
t_dp_siso
;
signal
dp_offload_tx_src_in
:
t_dp_siso
;
signal
dp_offload_tx_src_out
:
t_dp_sosi
;
signal
ip_checksum_src_out
:
t_dp_sosi
;
signal
dp_offload_tx_src_in
:
t_dp_siso
;
signal
ip_checksum_src_in
:
t_dp_siso
;
signal
ip_checksum_src_out
:
t_dp_sosi
;
signal
dp_pipeline_ready_src_out
:
t_dp_sosi
;
signal
ip_checksum_src_in
:
t_dp_siso
;
signal
dp_pipeline_ready_src_in
:
t_dp_siso
;
signal
dp_pipeline_ready_src_out
:
t_dp_sosi
;
signal
dp_pipeline_ready_src_in
:
t_dp_siso
;
signal
dbg_bsn_offset
:
std_logic
;
signal
dbg_bsn_offset
:
std_logic
;
signal
payload_err
:
std_logic_vector
(
0
downto
0
);
signal
payload_err
:
std_logic_vector
(
0
downto
0
);
signal
station_info
:
std_logic_vector
(
15
downto
0
)
:
=
(
others
=>
'0'
);
signal
station_info
:
std_logic_vector
(
15
downto
0
)
:
=
(
others
=>
'0'
);
...
@@ -156,14 +156,15 @@ begin
...
@@ -156,14 +156,15 @@ begin
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- dp_repack_data
-- dp_repack_data
-- . 16b -> 64b
-- . Repack 16b -> 32b, to get dual polarization beamlets of N_pol_bf *
-- . We don't need to flow control the source because we're going from 16b->64b
-- N_complex * W_beamlet = 2 * 2 * 8 = 32b words
-- . No need to flow control the source, because repack into wider words
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
u_dp_repack_data
:
entity
dp_lib
.
dp_repack_data
u_dp_repack_data
_beamlet
:
entity
dp_lib
.
dp_repack_data
generic
map
(
generic
map
(
g_in_dat_w
=>
c_data_w
,
g_in_dat_w
=>
c_data_w
,
-- = 16b
g_in_nof_words
=>
4
,
g_in_nof_words
=>
c_sdp_N_pol_bf
,
-- = 2
g_out_dat_w
=>
c_
longword_w
,
g_out_dat_w
=>
c_
sdp_W_dual_pol_beamlet
,
-- = 32b
g_out_nof_words
=>
1
g_out_nof_words
=>
1
)
)
port
map
(
port
map
(
...
@@ -173,7 +174,7 @@ begin
...
@@ -173,7 +174,7 @@ begin
snk_in
=>
snk_in_concat
,
snk_in
=>
snk_in_concat
,
snk_out
=>
OPEN
,
snk_out
=>
OPEN
,
src_out
=>
dp_repack_
data
_src_out
,
src_out
=>
dp_repack_
beamlet
_src_out
,
src_in
=>
c_dp_siso_rdy
src_in
=>
c_dp_siso_rdy
);
);
...
@@ -190,17 +191,42 @@ begin
...
@@ -190,17 +191,42 @@ begin
clk
=>
dp_clk
,
clk
=>
dp_clk
,
snk_out
=>
OPEN
,
snk_out
=>
OPEN
,
snk_in
=>
dp_repack_
data
_src_out
,
snk_in
=>
dp_repack_
beamlet
_src_out
,
src_in
=>
c_dp_siso_rdy
,
src_in
=>
c_dp_siso_rdy
,
src_out
=>
dp_packet_merge_src_out
src_out
=>
dp_packet_merge_src_out
);
);
-------------------------------------------------------------------------------
-- dp_repack_data
-- . Repack 32b -> 64b, to get 64b longwords for network packet data
-- . No need to flow control the source, because repack into wider words
-------------------------------------------------------------------------------
u_dp_repack_data_longword
:
entity
dp_lib
.
dp_repack_data
generic
map
(
g_in_dat_w
=>
c_sdp_W_dual_pol_beamlet
,
-- = 32b
g_in_nof_words
=>
2
,
-- = 2
g_out_dat_w
=>
c_longword_w
,
-- = 64b
g_out_nof_words
=>
1
)
port
map
(
clk
=>
dp_clk
,
rst
=>
dp_rst
,
snk_in
=>
dp_packet_merge_src_out
,
snk_out
=>
OPEN
,
src_out
=>
dp_repack_longword_src_out
,
src_in
=>
c_dp_siso_rdy
);
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- FIFO
-- FIFO
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Pass on dp_repack_longword_src_out.err field (from u_dp_packet_merge) via
-- separate u_common_fifo_sc_err
u_dp_fifo_fill_eop_sc
:
entity
dp_lib
.
dp_fifo_fill_eop_sc
u_dp_fifo_fill_eop_sc
:
entity
dp_lib
.
dp_fifo_fill_eop_sc
generic
map
(
-- pass on dp_packet_merge_src_out.err via u_common_fifo_sc_err
generic
map
(
g_data_w
=>
c_longword_w
,
g_data_w
=>
c_longword_w
,
g_empty_w
=>
c_byte_w
,
g_empty_w
=>
c_byte_w
,
g_use_empty
=>
true
,
g_use_empty
=>
true
,
...
@@ -214,9 +240,9 @@ begin
...
@@ -214,9 +240,9 @@ begin
port
map
(
port
map
(
clk
=>
dp_clk
,
clk
=>
dp_clk
,
rst
=>
dp_rst
,
rst
=>
dp_rst
,
snk_in
=>
dp_pack
et_merge
_src_out
,
snk_in
=>
dp_
re
pack
_longword
_src_out
,
src_out
=>
dp_fifo_
merge
_src_out
,
src_out
=>
dp_fifo_
fill_eop
_src_out
,
src_in
=>
dp_fifo_
merge
_src_in
src_in
=>
dp_fifo_
fill_eop
_src_in
);
);
-- Simple fifo to store the payload error bit at eop of FIFO input to be used at sop of FIFO
-- Simple fifo to store the payload error bit at eop of FIFO input to be used at sop of FIFO
...
@@ -232,10 +258,10 @@ begin
...
@@ -232,10 +258,10 @@ begin
port
map
(
port
map
(
rst
=>
dp_rst
,
rst
=>
dp_rst
,
clk
=>
dp_clk
,
clk
=>
dp_clk
,
wr_dat
=>
dp_pack
et_merge
_src_out
.
err
(
0
downto
0
),
wr_dat
=>
dp_
re
pack
_longword
_src_out
.
err
(
0
downto
0
),
wr_req
=>
dp_pack
et_merge
_src_out
.
eop
,
wr_req
=>
dp_
re
pack
_longword
_src_out
.
eop
,
rd_dat
=>
payload_err
,
rd_dat
=>
payload_err
,
rd_req
=>
dp_fifo_
merge
_src_out
.
sop
rd_req
=>
dp_fifo_
fill_eop
_src_out
.
sop
);
);
-- Pipeline FIFO output to align payload_err at dp_pipeline_src_out.sop
-- Pipeline FIFO output to align payload_err at dp_pipeline_src_out.sop
...
@@ -247,8 +273,8 @@ begin
...
@@ -247,8 +273,8 @@ begin
rst
=>
dp_rst
,
rst
=>
dp_rst
,
clk
=>
dp_clk
,
clk
=>
dp_clk
,
-- ST sink
-- ST sink
snk_out
=>
dp_fifo_
merge
_src_in
,
snk_out
=>
dp_fifo_
fill_eop
_src_in
,
snk_in
=>
dp_fifo_
merge
_src_out
,
snk_in
=>
dp_fifo_
fill_eop
_src_out
,
-- ST source
-- ST source
src_in
=>
dp_pipeline_src_in
,
src_in
=>
dp_pipeline_src_in
,
src_out
=>
dp_pipeline_src_out
src_out
=>
dp_pipeline_src_out
...
...
This diff is collapsed.
Click to expand it.
applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+
1
−
0
View file @
c2b2d773
...
@@ -135,6 +135,7 @@ package sdp_pkg is
...
@@ -135,6 +135,7 @@ package sdp_pkg is
constant
c_sdp_X_sq
:
natural
:
=
c_sdp_S_pn
*
c_sdp_S_pn
;
-- = 144
constant
c_sdp_X_sq
:
natural
:
=
c_sdp_S_pn
*
c_sdp_S_pn
;
-- = 144
constant
c_sdp_block_period
:
natural
:
=
c_sdp_N_fft
*
1000
/
c_sdp_f_adc_MHz
;
-- = 5120 [ns]
constant
c_sdp_block_period
:
natural
:
=
c_sdp_N_fft
*
1000
/
c_sdp_f_adc_MHz
;
-- = 5120 [ns]
constant
c_sdp_N_beamlets_sdp
:
natural
:
=
c_sdp_N_beamsets
*
c_sdp_S_sub_bf
;
-- = 976
constant
c_sdp_N_beamlets_sdp
:
natural
:
=
c_sdp_N_beamsets
*
c_sdp_S_sub_bf
;
-- = 976
constant
c_sdp_W_dual_pol_beamlet
:
natural
:
=
c_sdp_N_pol_bf
*
c_nof_complex
*
c_sdp_W_beamlet
;
-- 2 * 2 * 8 = 32b
-- . unit weights
-- . unit weights
constant
c_sdp_unit_sub_weight
:
natural
:
=
2
**
c_sdp_W_sub_weight_fraction
;
-- 2**13, so range +-4.0 for 16 bit signed weight
constant
c_sdp_unit_sub_weight
:
natural
:
=
2
**
c_sdp_W_sub_weight_fraction
;
-- 2**13, so range +-4.0 for 16 bit signed weight
...
...
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