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
0bfd2e00
Commit
0bfd2e00
authored
1 year ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Use fixed nof_blocks_per_packet_act dependent on nof_destinations_act.
parent
aa8e78a0
No related branches found
No related tags found
1 merge request
!357
Move func_sdp_bdo_cep_hdr_field_sel_dest() from sdp_bdo_pkg to...
Pipeline
#58208
passed
1 year ago
Stage: linting
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
applications/lofar2/libraries/sdp/sdp.peripheral.yaml
+6
-6
6 additions, 6 deletions
applications/lofar2/libraries/sdp/sdp.peripheral.yaml
applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
+19
-16
19 additions, 16 deletions
...ofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
with
25 additions
and
22 deletions
applications/lofar2/libraries/sdp/sdp.peripheral.yaml
+
6
−
6
View file @
0bfd2e00
...
@@ -204,17 +204,17 @@ peripherals:
...
@@ -204,17 +204,17 @@ peripherals:
mm_port_description
:
|
mm_port_description
:
|
"The SDP beamlets in a beamset can be send to 1 or multiple destinations, each identified
"The SDP beamlets in a beamset can be send to 1 or multiple destinations, each identified
by destination MAC addess, IP address and UDP port.
by destination MAC addess, IP address and UDP port.
The number of destinations is 1 <= nof_destinations <= N_destinations_max.
The number of destinations is 1 <= nof_destinations <= N_destinations_max. The actual
The number of blocks per packet is nof_blocks_per_packet <= N_reorder_blocks_max / nof_destinations.
nof_destinations is reported via nof_destinations_act.
The actual nof_blocks_per_packet and nof_destinations is reported via the corresponding _act fields."
The actual number of blocks per packet depends on nof_destinations_act, and is reported
via nof_blocks_per_packet_act."
fields
:
fields
:
-
-
{
field_name
:
eth_destination_mac
,
number_of_fields
:
N_destinations_max
,
mm_width
:
32
,
user_width
:
48
,
radix
:
uint64
,
access_mode
:
RW
,
address_offset
:
0x0
}
-
-
{
field_name
:
eth_destination_mac
,
number_of_fields
:
N_destinations_max
,
mm_width
:
32
,
user_width
:
48
,
radix
:
uint64
,
access_mode
:
RW
,
address_offset
:
0x0
}
-
-
{
field_name
:
ip_destination_address
,
number_of_fields
:
N_destinations_max
,
mm_width
:
32
,
access_mode
:
RW
,
address_offset
:
0x80
}
-
-
{
field_name
:
ip_destination_address
,
number_of_fields
:
N_destinations_max
,
mm_width
:
32
,
access_mode
:
RW
,
address_offset
:
0x80
}
-
-
{
field_name
:
udp_destination_port
,
number_of_fields
:
N_destinations_max
,
mm_width
:
16
,
access_mode
:
RW
,
address_offset
:
0xC0
}
-
-
{
field_name
:
udp_destination_port
,
number_of_fields
:
N_destinations_max
,
mm_width
:
16
,
access_mode
:
RW
,
address_offset
:
0xC0
}
-
-
{
field_name
:
nof_destinations
,
mm_width
:
8
,
access_mode
:
RW
,
address_offset
:
0x100
}
-
-
{
field_name
:
nof_destinations
,
mm_width
:
8
,
access_mode
:
RW
,
address_offset
:
0x100
}
-
-
{
field_name
:
nof_destinations_act
,
mm_width
:
8
,
access_mode
:
RW
,
address_offset
:
0x104
}
-
-
{
field_name
:
nof_destinations_act
,
mm_width
:
8
,
access_mode
:
RO
,
address_offset
:
0x104
}
-
-
{
field_name
:
nof_blocks_per_packet
,
mm_width
:
8
,
access_mode
:
RW
,
address_offset
:
0x108
}
-
-
{
field_name
:
nof_blocks_per_packet_act
,
mm_width
:
8
,
access_mode
:
RO
,
address_offset
:
0x108
}
-
-
{
field_name
:
nof_blocks_per_packet_act
,
mm_width
:
8
,
access_mode
:
RW
,
address_offset
:
0x10C
}
-
peripheral_name
:
sdp_beamformer_output_hdr_dat
# pi_dp_offload_tx_hdr_dat_lofar2_beamformer_output.py
-
peripheral_name
:
sdp_beamformer_output_hdr_dat
# pi_dp_offload_tx_hdr_dat_lofar2_beamformer_output.py
...
...
This diff is collapsed.
Click to expand it.
applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
+
19
−
16
View file @
0bfd2e00
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
-- -----------------> output value
-- -----------------> output value
--
--
-- where:
-- where:
-- . _ro =
parsed_
nof_destinations,
parsed_
nof_blocks_per_packet
-- . _ro =
actual
nof_destinations,
actual
nof_blocks_per_packet
-- . output value = sdp_bdo_destinations
-- . output value = sdp_bdo_destinations
--
--
-- References:
-- References:
...
@@ -47,6 +47,7 @@ library IEEE, common_lib, mm_lib;
...
@@ -47,6 +47,7 @@ library IEEE, common_lib, mm_lib;
use
common_lib
.
common_mem_pkg
.
all
;
use
common_lib
.
common_mem_pkg
.
all
;
use
common_lib
.
common_field_pkg
.
all
;
use
common_lib
.
common_field_pkg
.
all
;
use
work
.
sdp_pkg
.
all
;
use
work
.
sdp_pkg
.
all
;
use
work
.
sdp_bdo_pkg
.
all
;
entity
sdp_bdo_destinations_reg
is
entity
sdp_bdo_destinations_reg
is
port
(
port
(
...
@@ -68,7 +69,6 @@ end sdp_bdo_destinations_reg;
...
@@ -68,7 +69,6 @@ end sdp_bdo_destinations_reg;
architecture
str
of
sdp_bdo_destinations_reg
is
architecture
str
of
sdp_bdo_destinations_reg
is
constant
c_field_arr
:
t_common_field_arr
(
c_sdp_bdo_destinations_info_nof_hdr_fields
-
1
downto
0
)
:
=
constant
c_field_arr
:
t_common_field_arr
(
c_sdp_bdo_destinations_info_nof_hdr_fields
-
1
downto
0
)
:
=
(
(
field_name_pad
(
"nof_blocks_per_packet_act"
),
"RO"
,
8
,
field_default
(
c_sdp_cep_nof_blocks_per_packet
)),
(
(
field_name_pad
(
"nof_blocks_per_packet_act"
),
"RO"
,
8
,
field_default
(
c_sdp_cep_nof_blocks_per_packet
)),
(
field_name_pad
(
"nof_blocks_per_packet"
),
"RW"
,
8
,
field_default
(
c_sdp_cep_nof_blocks_per_packet
)),
(
field_name_pad
(
"nof_destinations_act"
),
"RO"
,
8
,
field_default
(
1
)),
(
field_name_pad
(
"nof_destinations_act"
),
"RO"
,
8
,
field_default
(
1
)),
(
field_name_pad
(
"nof_destinations"
),
"RW"
,
8
,
field_default
(
1
)),
(
field_name_pad
(
"nof_destinations"
),
"RW"
,
8
,
field_default
(
1
)),
...
@@ -129,21 +129,21 @@ architecture str of sdp_bdo_destinations_reg is
...
@@ -129,21 +129,21 @@ architecture str of sdp_bdo_destinations_reg is
signal
sdp_bdo_destinations_rd
:
t_sdp_bdo_destinations_info
;
signal
sdp_bdo_destinations_rd
:
t_sdp_bdo_destinations_info
;
signal
sdp_bdo_destinations_wr
:
t_sdp_bdo_destinations_info
;
signal
sdp_bdo_destinations_wr
:
t_sdp_bdo_destinations_info
;
signal
parsed_
nof_destinations
:
natural
;
signal
nof_destinations
_act
:
natural
:
=
1
;
signal
parsed_
nof_blocks_per_packet
:
natural
;
signal
nof_blocks_per_packet
_act
:
natural
:
=
c_sdp_cep_nof_blocks_per_packet
;
begin
begin
sdp_bdo_destinations
<=
sdp_bdo_destinations_rd
;
sdp_bdo_destinations
<=
sdp_bdo_destinations_rd
;
p_sdp_bdo_destinations_rd
:
process
(
sdp_bdo_destinations_wr
,
p_sdp_bdo_destinations_rd
:
process
(
sdp_bdo_destinations_wr
,
parsed_
nof_destinations
,
nof_destinations
_act
,
parsed_
nof_blocks_per_packet
)
nof_blocks_per_packet
_act
)
begin
begin
-- default write assign all fields
-- default write assign all fields
sdp_bdo_destinations_rd
<=
sdp_bdo_destinations_wr
;
sdp_bdo_destinations_rd
<=
sdp_bdo_destinations_wr
;
-- overrule the read only fields
-- overrule the read only fields
sdp_bdo_destinations_rd
.
nof_destinations_act
<=
parsed_
nof_destinations
;
sdp_bdo_destinations_rd
.
nof_destinations_act
<=
nof_destinations
_act
;
sdp_bdo_destinations_rd
.
nof_blocks_per_packet_act
<=
parsed_
nof_blocks_per_packet
;
sdp_bdo_destinations_rd
.
nof_blocks_per_packet_act
<=
nof_blocks_per_packet
_act
;
end
process
;
end
process
;
u_mm_fields
:
entity
mm_lib
.
mm_fields
u_mm_fields
:
entity
mm_lib
.
mm_fields
...
@@ -223,13 +223,16 @@ begin
...
@@ -223,13 +223,16 @@ begin
sdp_bdo_destinations_wr
.
udp_destination_port_arr
(
14
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_14"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_14"
));
sdp_bdo_destinations_wr
.
udp_destination_port_arr
(
14
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_14"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_14"
));
sdp_bdo_destinations_wr
.
udp_destination_port_arr
(
15
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_15"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_15"
));
sdp_bdo_destinations_wr
.
udp_destination_port_arr
(
15
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_15"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_15"
));
sdp_bdo_destinations_wr
.
nof_destinations
<=
to_uint
(
mm_fields_out
(
field_hi
(
c_field_arr
,
"nof_destinations"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations"
)));
sdp_bdo_destinations_wr
.
nof_destinations
<=
to_uint
(
mm_fields_out
(
field_hi
(
c_field_arr
,
"nof_destinations"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations"
)));
sdp_bdo_destinations_wr
.
nof_blocks_per_packet
<=
to_uint
(
mm_fields_out
(
field_hi
(
c_field_arr
,
"nof_blocks_per_packet"
)
downto
field_lo
(
c_field_arr
,
"nof_blocks_per_packet"
)));
parsed_nof_destinations
<=
func_sdp_parse_nof_destinations
(
-- Register the read only actual values, to ease timing closure
sdp_bdo_destinations_wr
.
nof_destinations
);
p_dp_clk
:
process
(
dp_clk
)
constant
c_look_up_table
:
t_natural_arr
(
1
to
c_sdp_bdo_nof_destinations_max
)
:
=
parsed_nof_blocks_per_packet
<=
func_sdp_parse_nof_blocks_per_packet
(
func_sdp_bdo_nof_blocks_per_packet_look_up_table
;
sdp_bdo_destinations_wr
.
nof_blocks_per_packet
,
begin
sdp_bdo_destinations_wr
.
nof_destinations
);
if
rising_edge
(
dp_clk
)
then
nof_destinations_act
<=
func_sdp_bdo_parse_nof_destinations
(
sdp_bdo_destinations_wr
.
nof_destinations
);
nof_blocks_per_packet_act
<=
c_look_up_table
(
nof_destinations_act
);
end
if
;
end
process
;
end
str
;
end
str
;
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