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
06c17b28
Commit
06c17b28
authored
1 year ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Use g_nof_destinations_max <= c_sdp_bdo_mm_nof_destinations_max = 32
parent
572e79ef
No related branches found
No related tags found
1 merge request
!359
Clarify g_nof_destinations_max design revision parameter and package constants...
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
+127
-20
127 additions, 20 deletions
...ofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
with
127 additions
and
20 deletions
applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
+
127
−
20
View file @
06c17b28
...
...
@@ -50,6 +50,9 @@ library IEEE, common_lib, mm_lib;
use
work
.
sdp_bdo_pkg
.
all
;
entity
sdp_bdo_destinations_reg
is
generic
(
g_nof_destinations_max
:
natural
);
port
(
-- Clocks and reset
mm_clk
:
in
std_logic
;
...
...
@@ -67,11 +70,27 @@ end sdp_bdo_destinations_reg;
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
)
:
=
(
(
field_name_pad
(
"nof_blocks_per_packet
_act"
),
"RO"
,
8
,
field_default
(
c_sdp_cep_nof_blocks_per_packet
)),
(
field_name_pad
(
"nof_destinations_max"
),
"RO"
,
8
,
field_default
(
1
)),
(
(
field_name_pad
(
"nof_blocks_per_packet
"
),
"RO"
,
8
,
field_default
(
c_sdp_cep_nof_blocks_per_packet
)),
(
field_name_pad
(
"nof_destinations_max"
),
"RO"
,
8
,
field_default
(
g_nof_destinations_max
)),
(
field_name_pad
(
"nof_destinations_act"
),
"RO"
,
8
,
field_default
(
1
)),
(
field_name_pad
(
"nof_destinations"
),
"RW"
,
8
,
field_default
(
1
)),
(
field_name_pad
(
"udp_destination_port_31"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_30"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_29"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_28"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_27"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_26"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_25"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_24"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_23"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_22"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_21"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_20"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_19"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_18"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_17"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_16"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_15"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_14"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_13"
),
"RW"
,
16
,
field_default
(
0
)),
...
...
@@ -89,6 +108,22 @@ architecture str of sdp_bdo_destinations_reg is
(
field_name_pad
(
"udp_destination_port_1"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"udp_destination_port_0"
),
"RW"
,
16
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_31"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_30"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_29"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_28"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_27"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_26"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_25"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_24"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_23"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_22"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_21"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_20"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_19"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_18"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_17"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_16"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_15"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_14"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_13"
),
"RW"
,
32
,
field_default
(
0
)),
...
...
@@ -106,6 +141,22 @@ architecture str of sdp_bdo_destinations_reg is
(
field_name_pad
(
"ip_destination_address_1"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"ip_destination_address_0"
),
"RW"
,
32
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_31"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_30"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_29"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_28"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_27"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_26"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_25"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_24"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_23"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_22"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_21"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_20"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_19"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_18"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_17"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_16"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_15"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_14"
),
"RW"
,
48
,
field_default
(
0
)),
(
field_name_pad
(
"eth_destination_mac_13"
),
"RW"
,
48
,
field_default
(
0
)),
...
...
@@ -126,25 +177,33 @@ architecture str of sdp_bdo_destinations_reg is
signal
mm_fields_in
:
std_logic_vector
(
field_slv_in_len
(
c_field_arr
)
-
1
downto
0
);
signal
mm_fields_out
:
std_logic_vector
(
field_slv_out_len
(
c_field_arr
)
-
1
downto
0
);
signal
destinations_info_rd
:
t_sdp_bdo_destinations_info
;
signal
destinations_info_wr
:
t_sdp_bdo_destinations_info
;
signal
destinations_info_rd
:
t_sdp_bdo_destinations_info
:
=
c_sdp_bdo_destinations_info_rst
;
signal
destinations_info_wr
:
t_sdp_bdo_destinations_info
:
=
c_sdp_bdo_destinations_info_rst
;
signal
nof_destinations_act
:
natural
:
=
1
;
signal
nof_blocks_per_packet
_act
:
natural
:
=
c_sdp_cep_nof_blocks_per_packet
;
signal
nof_destinations_act
:
natural
:
=
1
;
signal
nof_blocks_per_packet
:
natural
:
=
c_sdp_cep_nof_blocks_per_packet
;
begin
destinations_info
<=
destinations_info_rd
;
p_destinations_info_rd
:
process
(
destinations_info_wr
,
nof_destinations_act
,
nof_blocks_per_packet
_act
)
nof_blocks_per_packet
)
begin
-- default write assign all fields
destinations_info_rd
<=
destinations_info_wr
;
-- read/write fields
for
DI
in
0
to
g_nof_destinations_max
-
1
loop
-- Default only read/write connect the available fields. Leave unused
-- write fields open and read fields at rst value, so they will be
-- optimized away by synthesis.
destinations_info_rd
.
eth_destination_mac_arr
(
DI
)
<=
destinations_info_wr
.
eth_destination_mac_arr
(
DI
);
destinations_info_rd
.
ip_destination_address_arr
(
DI
)
<=
destinations_info_wr
.
ip_destination_address_arr
(
DI
);
destinations_info_rd
.
udp_destination_port_arr
(
DI
)
<=
destinations_info_wr
.
udp_destination_port_arr
(
DI
);
end
loop
;
destinations_info_rd
.
nof_destinations
<=
destinations_info_wr
.
nof_destinations
;
--
overrule the
read only fields
destinations_info_rd
.
nof_destinations_act
<=
nof_destinations_act
;
destinations_info_rd
.
nof_destinations_max
<=
c_sdp_bdo
_nof_destinations_max
;
destinations_info_rd
.
nof_blocks_per_packet
_act
<=
nof_blocks_per_packet
_act
;
-- read only fields
destinations_info_rd
.
nof_destinations_act
<=
nof_destinations_act
;
destinations_info_rd
.
nof_destinations_max
<=
g
_nof_destinations_max
;
destinations_info_rd
.
nof_blocks_per_packet
<=
nof_blocks_per_packet
;
end
process
;
u_mm_fields
:
entity
mm_lib
.
mm_fields
...
...
@@ -169,9 +228,9 @@ begin
);
-- add "RO" fields to mm_fields
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_destinations_act"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations_act"
))
<=
to_uvec
(
destinations_info_rd
.
nof_destinations_act
,
8
);
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_destinations_max"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations_max"
))
<=
to_uvec
(
destinations_info_rd
.
nof_destinations_max
,
8
);
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_blocks_per_packet
_act
"
)
downto
field_lo
(
c_field_arr
,
"nof_blocks_per_packet
_act
"
))
<=
to_uvec
(
destinations_info_rd
.
nof_blocks_per_packet
_act
,
8
);
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_destinations_act"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations_act"
))
<=
to_uvec
(
destinations_info_rd
.
nof_destinations_act
,
8
);
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_destinations_max"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations_max"
))
<=
to_uvec
(
destinations_info_rd
.
nof_destinations_max
,
8
);
mm_fields_in
(
field_hi
(
c_field_arr
,
"nof_blocks_per_packet"
)
downto
field_lo
(
c_field_arr
,
"nof_blocks_per_packet"
))
<=
to_uvec
(
destinations_info_rd
.
nof_blocks_per_packet
,
8
);
-- get "RW" fields from mm_fields
destinations_info_wr
.
eth_destination_mac_arr
(
0
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_0"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_0"
));
...
...
@@ -190,6 +249,22 @@ begin
destinations_info_wr
.
eth_destination_mac_arr
(
13
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_13"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_13"
));
destinations_info_wr
.
eth_destination_mac_arr
(
14
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_14"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_14"
));
destinations_info_wr
.
eth_destination_mac_arr
(
15
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_15"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_15"
));
destinations_info_wr
.
eth_destination_mac_arr
(
16
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_16"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_16"
));
destinations_info_wr
.
eth_destination_mac_arr
(
17
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_17"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_17"
));
destinations_info_wr
.
eth_destination_mac_arr
(
18
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_18"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_18"
));
destinations_info_wr
.
eth_destination_mac_arr
(
19
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_19"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_19"
));
destinations_info_wr
.
eth_destination_mac_arr
(
20
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_20"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_20"
));
destinations_info_wr
.
eth_destination_mac_arr
(
21
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_21"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_21"
));
destinations_info_wr
.
eth_destination_mac_arr
(
22
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_22"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_22"
));
destinations_info_wr
.
eth_destination_mac_arr
(
23
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_23"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_23"
));
destinations_info_wr
.
eth_destination_mac_arr
(
24
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_24"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_24"
));
destinations_info_wr
.
eth_destination_mac_arr
(
25
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_25"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_25"
));
destinations_info_wr
.
eth_destination_mac_arr
(
26
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_26"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_26"
));
destinations_info_wr
.
eth_destination_mac_arr
(
27
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_27"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_27"
));
destinations_info_wr
.
eth_destination_mac_arr
(
28
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_28"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_28"
));
destinations_info_wr
.
eth_destination_mac_arr
(
29
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_29"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_29"
));
destinations_info_wr
.
eth_destination_mac_arr
(
30
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_30"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_30"
));
destinations_info_wr
.
eth_destination_mac_arr
(
31
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"eth_destination_mac_31"
)
downto
field_lo
(
c_field_arr
,
"eth_destination_mac_31"
));
destinations_info_wr
.
ip_destination_address_arr
(
0
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_0"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_0"
));
destinations_info_wr
.
ip_destination_address_arr
(
1
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_1"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_1"
));
...
...
@@ -207,6 +282,22 @@ begin
destinations_info_wr
.
ip_destination_address_arr
(
13
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_13"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_13"
));
destinations_info_wr
.
ip_destination_address_arr
(
14
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_14"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_14"
));
destinations_info_wr
.
ip_destination_address_arr
(
15
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_15"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_15"
));
destinations_info_wr
.
ip_destination_address_arr
(
16
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_16"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_16"
));
destinations_info_wr
.
ip_destination_address_arr
(
17
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_17"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_17"
));
destinations_info_wr
.
ip_destination_address_arr
(
18
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_18"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_18"
));
destinations_info_wr
.
ip_destination_address_arr
(
19
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_19"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_19"
));
destinations_info_wr
.
ip_destination_address_arr
(
20
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_20"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_20"
));
destinations_info_wr
.
ip_destination_address_arr
(
21
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_21"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_21"
));
destinations_info_wr
.
ip_destination_address_arr
(
22
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_22"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_22"
));
destinations_info_wr
.
ip_destination_address_arr
(
23
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_23"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_23"
));
destinations_info_wr
.
ip_destination_address_arr
(
24
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_24"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_24"
));
destinations_info_wr
.
ip_destination_address_arr
(
25
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_25"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_25"
));
destinations_info_wr
.
ip_destination_address_arr
(
26
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_26"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_26"
));
destinations_info_wr
.
ip_destination_address_arr
(
27
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_27"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_27"
));
destinations_info_wr
.
ip_destination_address_arr
(
28
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_28"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_28"
));
destinations_info_wr
.
ip_destination_address_arr
(
29
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_29"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_29"
));
destinations_info_wr
.
ip_destination_address_arr
(
30
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_30"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_30"
));
destinations_info_wr
.
ip_destination_address_arr
(
31
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"ip_destination_address_31"
)
downto
field_lo
(
c_field_arr
,
"ip_destination_address_31"
));
destinations_info_wr
.
udp_destination_port_arr
(
0
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_0"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_0"
));
destinations_info_wr
.
udp_destination_port_arr
(
1
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_1"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_1"
));
...
...
@@ -224,17 +315,33 @@ begin
destinations_info_wr
.
udp_destination_port_arr
(
13
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_13"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_13"
));
destinations_info_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"
));
destinations_info_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"
));
destinations_info_wr
.
udp_destination_port_arr
(
16
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_16"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_16"
));
destinations_info_wr
.
udp_destination_port_arr
(
17
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_17"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_17"
));
destinations_info_wr
.
udp_destination_port_arr
(
18
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_18"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_18"
));
destinations_info_wr
.
udp_destination_port_arr
(
19
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_19"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_19"
));
destinations_info_wr
.
udp_destination_port_arr
(
20
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_20"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_20"
));
destinations_info_wr
.
udp_destination_port_arr
(
21
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_21"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_21"
));
destinations_info_wr
.
udp_destination_port_arr
(
22
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_22"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_22"
));
destinations_info_wr
.
udp_destination_port_arr
(
23
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_23"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_23"
));
destinations_info_wr
.
udp_destination_port_arr
(
24
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_24"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_24"
));
destinations_info_wr
.
udp_destination_port_arr
(
25
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_25"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_25"
));
destinations_info_wr
.
udp_destination_port_arr
(
26
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_26"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_26"
));
destinations_info_wr
.
udp_destination_port_arr
(
27
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_27"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_27"
));
destinations_info_wr
.
udp_destination_port_arr
(
28
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_28"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_28"
));
destinations_info_wr
.
udp_destination_port_arr
(
29
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_29"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_29"
));
destinations_info_wr
.
udp_destination_port_arr
(
30
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_30"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_30"
));
destinations_info_wr
.
udp_destination_port_arr
(
31
)
<=
mm_fields_out
(
field_hi
(
c_field_arr
,
"udp_destination_port_31"
)
downto
field_lo
(
c_field_arr
,
"udp_destination_port_31"
));
destinations_info_wr
.
nof_destinations
<=
to_uint
(
mm_fields_out
(
field_hi
(
c_field_arr
,
"nof_destinations"
)
downto
field_lo
(
c_field_arr
,
"nof_destinations"
)));
-- Register the read only actual values, to ease timing closure
p_dp_clk
:
process
(
dp_clk
)
constant
c_nof_blocks_per_packet_arr
:
t_natural_arr
(
1
to
c_sdp_bdo
_nof_destinations_max
)
:
=
func_sdp_bdo_nof_blocks_
per_packet_
look_up_table
;
constant
c_nof_blocks_per_packet_arr
:
t_natural_arr
(
1
to
g
_nof_destinations_max
)
:
=
func_sdp_bdo_
reorder_
nof_blocks_look_up_table
(
g_nof_destinations_max
)
;
begin
if
rising_edge
(
dp_clk
)
then
nof_destinations_act
<=
func_sdp_bdo_parse_nof_destinations
(
destinations_info_wr
.
nof_destinations
);
nof_blocks_per_packet
_act
<=
c_nof_blocks_per_packet_arr
(
nof_destinations_act
);
nof_destinations_act
<=
func_sdp_bdo_parse_nof_destinations
(
destinations_info_wr
.
nof_destinations
,
g_nof_destinations_max
);
nof_blocks_per_packet
<=
c_nof_blocks_per_packet_arr
(
nof_destinations_act
);
end
if
;
end
process
;
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