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
a1657039
Commit
a1657039
authored
3 years ago
by
Reinier van der Walle
Browse files
Options
Downloads
Patches
Plain Diff
added minimum interval to mmp_dp_bsn_scheduler and replaced sync insert
with bsn sync scheduler in node_sdp_correlator
parent
2572daf4
Branches
Branches containing commit
No related tags found
1 merge request
!144
Resolve L2SDP-425
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
+49
-33
49 additions, 33 deletions
...ons/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
libraries/base/dp/src/vhdl/mmp_dp_bsn_sync_scheduler.vhd
+5
-3
5 additions, 3 deletions
libraries/base/dp/src/vhdl/mmp_dp_bsn_sync_scheduler.vhd
with
54 additions
and
36 deletions
applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
+
49
−
33
View file @
a1657039
...
@@ -54,18 +54,18 @@ ENTITY node_sdp_correlator IS
...
@@ -54,18 +54,18 @@ ENTITY node_sdp_correlator IS
mm_rst
:
IN
STD_LOGIC
;
mm_rst
:
IN
STD_LOGIC
;
mm_clk
:
IN
STD_LOGIC
;
mm_clk
:
IN
STD_LOGIC
;
reg_dp_sync_
insert_v2
_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_dp_
bsn_
sync_
scheduler
_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_dp_sync_
insert_v2
_miso
:
OUT
t_mem_miso
;
reg_dp_
bsn_
sync_
scheduler
_miso
:
OUT
t_mem_miso
;
reg_crosslets_info_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_crosslets_info_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_crosslets_info_miso
:
OUT
t_mem_miso
;
reg_crosslets_info_miso
:
OUT
t_mem_miso
;
reg_bsn_scheduler_xsub_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_bsn_scheduler_xsub_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_bsn_scheduler_xsub_miso
:
OUT
t_mem_miso
;
reg_bsn_scheduler_xsub_miso
:
OUT
t_mem_miso
;
ram_st_xsq_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
ram_st_xsq_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
ram_st_xsq_miso
:
OUT
t_mem_miso
;
ram_st_xsq_miso
:
OUT
t_mem_miso
;
reg_stat_enable_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_stat_enable_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_stat_enable_miso
:
OUT
t_mem_miso
;
reg_stat_enable_miso
:
OUT
t_mem_miso
;
reg_stat_hdr_dat_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_stat_hdr_dat_mosi
:
IN
t_mem_mosi
:
=
c_mem_mosi_rst
;
reg_stat_hdr_dat_miso
:
OUT
t_mem_miso
;
reg_stat_hdr_dat_miso
:
OUT
t_mem_miso
;
sdp_info
:
IN
t_sdp_info
;
sdp_info
:
IN
t_sdp_info
;
gn_id
:
IN
STD_LOGIC_VECTOR
(
c_sdp_W_gn_id
-1
DOWNTO
0
);
gn_id
:
IN
STD_LOGIC_VECTOR
(
c_sdp_W_gn_id
-1
DOWNTO
0
);
...
@@ -77,9 +77,6 @@ END node_sdp_correlator;
...
@@ -77,9 +77,6 @@ END node_sdp_correlator;
ARCHITECTURE
str
OF
node_sdp_correlator
IS
ARCHITECTURE
str
OF
node_sdp_correlator
IS
CONSTANT
c_nof_blk_per_sync_max
:
NATURAL
:
=
c_sdp_xst_nof_blk_per_sync_max
;
CONSTANT
c_nof_blk_per_sync_min
:
NATURAL
:
=
c_sdp_xst_nof_blk_per_sync_min
;
CONSTANT
c_nof_masters
:
POSITIVE
:
=
2
;
CONSTANT
c_nof_masters
:
POSITIVE
:
=
2
;
-- crosslet statistics offload
-- crosslet statistics offload
...
@@ -91,14 +88,18 @@ ARCHITECTURE str OF node_sdp_correlator IS
...
@@ -91,14 +88,18 @@ ARCHITECTURE str OF node_sdp_correlator IS
SIGNAL
master_mosi_arr
:
t_mem_mosi_arr
(
0
TO
c_nof_masters
-1
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
master_mosi_arr
:
t_mem_mosi_arr
(
0
TO
c_nof_masters
-1
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
master_miso_arr
:
t_mem_miso_arr
(
0
TO
c_nof_masters
-1
)
:
=
(
OTHERS
=>
c_mem_miso_rst
);
SIGNAL
master_miso_arr
:
t_mem_miso_arr
(
0
TO
c_nof_masters
-1
)
:
=
(
OTHERS
=>
c_mem_miso_rst
);
SIGNAL
quant_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
quant_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
xin_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
dp_bsn_sync_scheduler_snk_in
:
t_dp_sosi
:
=
c_dp_sosi_rst
;
SIGNAL
xsel_sosi
:
t_dp_sosi
:
=
c_dp_sosi_rst
;
SIGNAL
dp_bsn_sync_scheduler_src_out
:
t_dp_sosi
:
=
c_dp_sosi_rst
;
SIGNAL
crosslets_sosi_arr
:
t_dp_sosi_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
xin_sosi_arr
:
t_dp_sosi_arr
(
c_sdp_P_pfb
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
crosslets_mosi_arr
:
t_mem_mosi_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
xsel_sosi
:
t_dp_sosi
:
=
c_dp_sosi_rst
;
SIGNAL
crosslets_miso_arr
:
t_mem_miso_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_miso_rst
);
SIGNAL
crosslets_sosi_arr
:
t_dp_sosi_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_dp_sosi_rst
);
SIGNAL
crosslets_mosi_arr
:
t_mem_mosi_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
crosslets_miso_arr
:
t_mem_miso_arr
(
g_P_sq
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_miso_rst
);
SIGNAL
crosslets_info
:
STD_LOGIC_VECTOR
(
c_sdp_crosslets_info_reg_w
-1
DOWNTO
0
);
SIGNAL
dp_bsn_sync_scheduler_out_start
:
STD_LOGIC
;
SIGNAL
crosslets_info
:
STD_LOGIC_VECTOR
(
c_sdp_crosslets_info_reg_w
-1
DOWNTO
0
);
BEGIN
BEGIN
---------------------------------------------------------------
---------------------------------------------------------------
-- Requantize 18b to 16b
-- Requantize 18b to 16b
...
@@ -126,27 +127,41 @@ BEGIN
...
@@ -126,27 +127,41 @@ BEGIN
END
GENERATE
;
END
GENERATE
;
---------------------------------------------------------------
---------------------------------------------------------------
--
dp_sync_insert_v2
--
mmp_dp_bsn_sync_scheduler
---------------------------------------------------------------
---------------------------------------------------------------
u_dp_sync_insert_v2
:
ENTITY
dp_lib
.
dp_sync_insert_v2
dp_bsn_sync_scheduler_snk_in
<=
quant_sosi_arr
(
0
);
p_bsn_sync
:
PROCESS
(
dp_bsn_sync_scheduler_src_out
)
BEGIN
xin_sosi_arr
<=
quant_sosi_arr
;
FOR
I
IN
0
TO
c_sdp_P_pfb
-1
LOOP
xin_sosi_arr
(
I
)
.
sop
<=
dp_bsn_sync_scheduler_src_out
.
sop
;
xin_sosi_arr
(
I
)
.
eop
<=
dp_bsn_sync_scheduler_src_out
.
eop
;
xin_sosi_arr
(
I
)
.
valid
<=
dp_bsn_sync_scheduler_src_out
.
valid
;
xin_sosi_arr
(
I
)
.
sync
<=
dp_bsn_sync_scheduler_src_out
.
sync
;
END
LOOP
;
END
PROCESS
;
u_mmp_dp_bsn_sync_scheduler
:
ENTITY
dp_lib
.
mmp_dp_bsn_sync_scheduler
GENERIC
MAP
(
GENERIC
MAP
(
g_nof_streams
=>
c_sdp_P_pfb
,
g_block_size
=>
c_sdp_N_fft
,
g_nof_blk_per_sync
=>
c_nof_blk_per_sync_max
,
g_ctrl_interval_size_min
=>
c_sdp_xst_nof_blk_per_sync_min
g_nof_blk_per_sync_min
=>
c_nof_blk_per_sync_min
)
)
PORT
MAP
(
PORT
MAP
(
dp_rst
=>
dp_rst
,
dp_rst
=>
dp_rst
,
dp_clk
=>
dp_clk
,
dp_clk
=>
dp_clk
,
mm_rst
=>
mm_rst
,
mm_rst
=>
mm_rst
,
mm_clk
=>
mm_clk
,
mm_clk
=>
mm_clk
,
reg_mosi
=>
reg_dp_bsn_sync_scheduler_mosi
,
reg_miso
=>
reg_dp_bsn_sync_scheduler_miso
,
reg_mosi
=>
reg_dp_sync_insert_v2_mosi
,
in_sosi
=>
dp_bsn_sync_scheduler_snk_in
,
reg_miso
=>
reg_dp_sync_insert_v2_miso
,
out_sosi
=>
dp_bsn_sync_scheduler_src_out
,
out_start
=>
dp_bsn_sync_scheduler_out_start
in_sosi_arr
=>
quant_sosi_arr
,
out_sosi_arr
=>
xin_sosi_arr
);
);
---------------------------------------------------------------
---------------------------------------------------------------
-- Crosslet Subband Select
-- Crosslet Subband Select
---------------------------------------------------------------
---------------------------------------------------------------
...
@@ -170,6 +185,7 @@ BEGIN
...
@@ -170,6 +185,7 @@ BEGIN
reg_bsn_scheduler_xsub_mosi
=>
reg_bsn_scheduler_xsub_mosi
,
reg_bsn_scheduler_xsub_mosi
=>
reg_bsn_scheduler_xsub_mosi
,
reg_bsn_scheduler_xsub_miso
=>
reg_bsn_scheduler_xsub_miso
,
reg_bsn_scheduler_xsub_miso
=>
reg_bsn_scheduler_xsub_miso
,
start_trigger
=>
dp_bsn_sync_scheduler_out_start
,
out_crosslets_info
=>
crosslets_info
out_crosslets_info
=>
crosslets_info
);
);
...
...
This diff is collapsed.
Click to expand it.
libraries/base/dp/src/vhdl/mmp_dp_bsn_sync_scheduler.vhd
+
5
−
3
View file @
a1657039
...
@@ -62,8 +62,9 @@ USE work.dp_stream_pkg.ALL;
...
@@ -62,8 +62,9 @@ USE work.dp_stream_pkg.ALL;
ENTITY
mmp_dp_bsn_sync_scheduler
IS
ENTITY
mmp_dp_bsn_sync_scheduler
IS
GENERIC
(
GENERIC
(
g_bsn_w
:
NATURAL
:
=
c_dp_stream_bsn_w
;
g_bsn_w
:
NATURAL
:
=
c_dp_stream_bsn_w
;
g_block_size
:
NATURAL
:
=
256
-- = number of data valid per BSN block, must be >= 2
g_block_size
:
NATURAL
:
=
256
;
-- = number of data valid per BSN block, must be >= 2
g_ctrl_interval_size_min
:
NATURAL
:
=
19530
-- Minimum interval size to use if MM write interval size is set too small.
);
);
PORT
(
PORT
(
-- Clocks and reset
-- Clocks and reset
...
@@ -126,7 +127,8 @@ BEGIN
...
@@ -126,7 +127,8 @@ BEGIN
-- Register mapping
-- Register mapping
-- . Write
-- . Write
wr_ctrl_enable
<=
reg_wr
(
0
);
wr_ctrl_enable
<=
reg_wr
(
0
);
ctrl_interval_size
<=
TO_UINT
(
reg_wr
(
2
*
c_word_w
-1
DOWNTO
1
*
c_word_w
));
ctrl_interval_size
<=
TO_UINT
(
reg_wr
(
2
*
c_word_w
-1
DOWNTO
1
*
c_word_w
))
WHEN
g_ctrl_interval_size_min
<
TO_UINT
(
reg_wr
(
2
*
c_word_w
-1
DOWNTO
1
*
c_word_w
))
ELSE
g_ctrl_interval_size_min
;
wr_start_bsn_64
(
c_word_w
-1
DOWNTO
0
)
<=
reg_wr
(
3
*
c_word_w
-1
DOWNTO
2
*
c_word_w
);
-- low word
wr_start_bsn_64
(
c_word_w
-1
DOWNTO
0
)
<=
reg_wr
(
3
*
c_word_w
-1
DOWNTO
2
*
c_word_w
);
-- low word
wr_start_bsn_64
(
2
*
c_word_w
-1
DOWNTO
1
*
c_word_w
)
<=
reg_wr
(
4
*
c_word_w
-1
DOWNTO
3
*
c_word_w
);
-- high word
wr_start_bsn_64
(
2
*
c_word_w
-1
DOWNTO
1
*
c_word_w
)
<=
reg_wr
(
4
*
c_word_w
-1
DOWNTO
3
*
c_word_w
);
-- high word
...
...
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