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
785f5332
Commit
785f5332
authored
2 years ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Clarify use of c_sdp_cep_hdr_field_sel.
parent
49f385e6
No related branches found
Branches containing commit
No related tags found
1 merge request
!283
Resolve L2SDP-696
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
+58
-1
58 additions, 1 deletion
...s/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
with
58 additions
and
1 deletion
applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd
+
58
−
1
View file @
785f5332
...
@@ -64,6 +64,7 @@ ENTITY sdp_beamformer_output IS
...
@@ -64,6 +64,7 @@ ENTITY sdp_beamformer_output IS
beamlet_scale
:
IN
STD_LOGIC_VECTOR
(
c_sdp_W_beamlet_scale
-1
DOWNTO
0
);
beamlet_scale
:
IN
STD_LOGIC_VECTOR
(
c_sdp_W_beamlet_scale
-1
DOWNTO
0
);
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
);
-- Source MAC/IP/UDP are not used, c_sdp_cep_hdr_field_sel selects MM programmable instead
eth_src_mac
:
IN
STD_LOGIC_VECTOR
(
c_network_eth_mac_addr_w
-1
DOWNTO
0
);
eth_src_mac
:
IN
STD_LOGIC_VECTOR
(
c_network_eth_mac_addr_w
-1
DOWNTO
0
);
ip_src_addr
:
IN
STD_LOGIC_VECTOR
(
c_network_ip_addr_w
-1
DOWNTO
0
);
ip_src_addr
:
IN
STD_LOGIC_VECTOR
(
c_network_ip_addr_w
-1
DOWNTO
0
);
udp_src_port
:
IN
STD_LOGIC_VECTOR
(
c_network_udp_port_w
-1
DOWNTO
0
);
udp_src_port
:
IN
STD_LOGIC_VECTOR
(
c_network_udp_port_w
-1
DOWNTO
0
);
...
@@ -204,6 +205,62 @@ BEGIN
...
@@ -204,6 +205,62 @@ BEGIN
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Assemble offload info
-- Assemble offload info
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Whether the dp_offload_tx_hdr_fields value is actually used in the Tx header depends on c_sdp_cep_hdr_field_sel
-- . c_sdp_cep_hdr_field_sel = "111"&"111111111011"&"1110"&"1100"&"00000010"&"100110"&"0";
-- eth ip udp app
-- where 0 = data path, 1 = MM controlled. The '0' fields are assigned here via dp_offload_tx_hdr_fields.
-- in order:
-- access field
-- MM eth_dst_mac
-- MM eth_src_mac
-- MM eth_type
--
-- MM ip_version
-- MM ip_header_length
-- MM ip_services
-- MM ip_total_length
-- MM ip_identification
-- MM ip_flags
-- MM ip_fragment_offset
-- MM ip_time_to_live
-- MM ip_protocol
-- DP ip_header_checksum --> added by u_tr_10GbE_ip_checksum
-- MM ip_src_addr
-- MM ip_dst_addr
--
-- MM udp_src_port
-- MM udp_dst_port
-- MM udp_total_length
-- DP udp_checksum --> default fixed 0, so not used, not calculated here or in tr_10GbE
-- because would require store and forward
--
-- MM sdp_marker
-- MM sdp_version_id
-- DP sdp_observation_id
-- DP sdp_station_id
--
-- DP sdp_source_info_antenna_band_id
-- DP sdp_source_info_nyquist_zone_id
-- DP sdp_source_info_f_adc
-- DP sdp_source_info_fsub_type
-- DP sdp_source_info_payload_error
-- DP sdp_source_info_repositioning_flag
-- MM sdp_source_info_beamlet_width
-- DP sdp_source_info_gn_id
--
-- MM sdp_reserved
-- DP sdp_beamlet_scale
-- DP sdp_beamlet_index
-- MM sdp_nof_blocks_per_packet
-- MM sdp_nof_beamlets_per_block
-- DP sdp_block_period
--
-- DP dp_bsn
-- Use MM programmable source MAC/IP/UDP instead of source MAC/IP/UDP based on node ID. This is necessary because
-- beamlet packets from different stations must have different source MAC/IP/UDP.
-- Hence the eth_src_mac, udp_src_port and ip_src_addr are ignored, because c_sdp_cep_hdr_field_sel selects MM control,
-- but keep the code to be able to enable using them by just changing the selection bit.
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"eth_src_mac"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"eth_src_mac"
))
<=
eth_src_mac
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"eth_src_mac"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"eth_src_mac"
))
<=
eth_src_mac
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"udp_src_port"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"udp_src_port"
))
<=
udp_src_port
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"udp_src_port"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"udp_src_port"
))
<=
udp_src_port
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"ip_src_addr"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"ip_src_addr"
))
<=
ip_src_addr
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"ip_src_addr"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"ip_src_addr"
))
<=
ip_src_addr
;
...
@@ -217,7 +274,7 @@ BEGIN
...
@@ -217,7 +274,7 @@ BEGIN
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_payload_error"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_payload_error"
))
<=
payload_err
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_payload_error"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_payload_error"
))
<=
payload_err
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_repositioning_flag"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_repositioning_flag"
))
<=
SLV
(
sdp_info
.
beam_repositioning_flag
);
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_repositioning_flag"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_repositioning_flag"
))
<=
SLV
(
sdp_info
.
beam_repositioning_flag
);
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_gn_id"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_gn_id"
))
<=
gn_id
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_gn_id"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_source_info_gn_id"
))
<=
gn_id
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_reserved"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_reserved"
))
<=
(
OTHERS
=>
'0'
);
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_scale"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_scale"
))
<=
beamlet_scale
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_scale"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_scale"
))
<=
beamlet_scale
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_index"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_index"
))
<=
TO_UVEC
(
c_beamlet_index
,
c_halfword_w
);
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_index"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_beamlet_index"
))
<=
TO_UVEC
(
c_beamlet_index
,
c_halfword_w
);
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_block_period"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_block_period"
))
<=
sdp_info
.
block_period
;
dp_offload_tx_hdr_fields
(
field_hi
(
c_sdp_cep_hdr_field_arr
,
"sdp_block_period"
)
DOWNTO
field_lo
(
c_sdp_cep_hdr_field_arr
,
"sdp_block_period"
))
<=
sdp_info
.
block_period
;
...
...
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