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
fcf3f716
Commit
fcf3f716
authored
1 year ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Correct timing of info_sosi, especially to avoid too early for eop fields.
parent
ed8a2586
No related branches found
No related tags found
1 merge request
!339
Resolve L2SDP-959
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
libraries/base/reorder/src/vhdl/reorder_col.vhd
+26
-24
26 additions, 24 deletions
libraries/base/reorder/src/vhdl/reorder_col.vhd
libraries/base/reorder/src/vhdl/reorder_col_select.vhd
+5
-1
5 additions, 1 deletion
libraries/base/reorder/src/vhdl/reorder_col_select.vhd
with
31 additions
and
25 deletions
libraries/base/reorder/src/vhdl/reorder_col.vhd
+
26
−
24
View file @
fcf3f716
...
...
@@ -111,6 +111,7 @@ architecture str of reorder_col is
signal
info_sop_wr_en
:
std_logic_vector
(
c_info_nof_pages
-
1
downto
0
);
signal
info_eop_wr_en
:
std_logic_vector
(
c_info_nof_pages
-
1
downto
0
);
signal
info_sosi_paged
:
t_dp_sosi
;
signal
info_sosi
:
t_dp_sosi
;
signal
store_mosi
:
t_mem_mosi
;
...
...
@@ -123,11 +124,9 @@ architecture str of reorder_col is
signal
select_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
signal
select_miso
:
t_mem_miso
:
=
c_mem_miso_rst
;
signal
retrieve_sosi
:
t_dp_sosi
;
signal
retrieve_siso
:
t_dp_siso
;
signal
ss_sosi
:
t_dp_sosi
;
signal
ss_siso
:
t_dp_siso
;
signal
retrieve_info_sosi
:
t_dp_sosi
;
signal
retrieve_sosi
:
t_dp_sosi
;
signal
retrieve_siso
:
t_dp_siso
;
begin
...
...
@@ -241,22 +240,6 @@ begin
output_siso
=>
retrieve_siso
);
u_rl
:
entity
dp_lib
.
dp_latency_adapter
-- defaults to wires when c_output_rl = c_retrieve_lat
generic
map
(
g_in_latency
=>
c_retrieve_lat
,
g_out_latency
=>
c_output_rl
)
port
map
(
rst
=>
dp_rst
,
clk
=>
dp_clk
,
-- ST sink
snk_out
=>
retrieve_siso
,
snk_in
=>
retrieve_sosi
,
-- ST source
src_in
=>
ss_siso
,
src_out
=>
ss_sosi
);
-- Page delay the input_sosi info (sync, BSN, channel at sop and err, empty at eop) and combine
-- it with the retrieved SS data to get the output_sosi.
info_sop_wr_en
<=
input_sosi
.
sop
&
store_done
;
...
...
@@ -275,11 +258,30 @@ begin
-- ST sink
snk_in
=>
input_sosi
,
-- ST source
src_out
=>
info_sosi
src_out
=>
info_sosi
_paged
);
output_sosi
<=
func_dp_stream_combine_info_and_data
(
info_sosi
,
ss_sosi
);
ss_siso
<=
output_siso
;
-- Account for retrieve rd latency is 1, for sop related info it is not
-- critical that it arrives early, but for eop related info it is.
info_sosi
<=
info_sosi_paged
when
rising_edge
(
dp_clk
);
retrieve_info_sosi
<=
func_dp_stream_combine_info_and_data
(
info_sosi
,
retrieve_sosi
);
-- Adapt output ready latency (RL), defaults to wires when c_output_rl = c_retrieve_lat
u_rl
:
entity
dp_lib
.
dp_latency_adapter
generic
map
(
g_in_latency
=>
c_retrieve_lat
,
g_out_latency
=>
c_output_rl
)
port
map
(
rst
=>
dp_rst
,
clk
=>
dp_clk
,
-- ST sink
snk_out
=>
retrieve_siso
,
snk_in
=>
retrieve_info_sosi
,
-- ST source
src_in
=>
output_siso
,
src_out
=>
output_sosi
);
end
str
;
This diff is collapsed.
Click to expand it.
libraries/base/reorder/src/vhdl/reorder_col_select.vhd
+
5
−
1
View file @
fcf3f716
...
...
@@ -93,6 +93,7 @@ architecture str of reorder_col_select is
signal
info_sop_wr_en
:
std_logic_vector
(
c_info_nof_pages
-
1
downto
0
);
signal
info_eop_wr_en
:
std_logic_vector
(
c_info_nof_pages
-
1
downto
0
);
signal
info_sosi_paged
:
t_dp_sosi
;
signal
info_sosi
:
t_dp_sosi
;
signal
store_mosi
:
t_mem_mosi
;
...
...
@@ -227,9 +228,12 @@ begin
-- ST sink
snk_in
=>
input_sosi
,
-- ST source
src_out
=>
info_sosi
src_out
=>
info_sosi
_paged
);
-- Account for retrieve rd latency is 1, for sop related info it is not
-- critical that it arrives early, but for eop related info it is.
info_sosi
<=
info_sosi_paged
when
rising_edge
(
dp_clk
);
output_sosi
<=
func_dp_stream_combine_info_and_data
(
info_sosi
,
retrieve_sosi
);
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