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
da1f9491
Commit
da1f9491
authored
3 years ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
Pass on lost flag via channel bit 0.
parent
6818d615
Branches
Branches containing commit
No related tags found
1 merge request
!156
Added first version of dp_bsn_align_v2.vhd with mmp and tb. This was...
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
+17
-7
17 additions, 7 deletions
libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
with
17 additions
and
7 deletions
libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
+
17
−
7
View file @
da1f9491
...
@@ -270,10 +270,10 @@ BEGIN
...
@@ -270,10 +270,10 @@ BEGIN
FOR
I
IN
0
TO
g_nof_streams
-1
LOOP
FOR
I
IN
0
TO
g_nof_streams
-1
LOOP
d
.
lost_data_flag
:
=
NOT
v
.
filled_arr
(
I
)(
v
.
rd_pointer
);
d
.
lost_data_flag
:
=
NOT
v
.
filled_arr
(
I
)(
v
.
rd_pointer
);
IF
stream_en_arr
(
I
)
=
'1'
THEN
-- use MM bit at sop
IF
stream_en_arr
(
I
)
=
'1'
THEN
-- use MM bit at sop
v
.
use_replacement_data
(
I
)
:
=
d
.
lost_data_flag
;
-- enabled stream, so replace
if
data was lost
v
.
use_replacement_data
(
I
)
:
=
d
.
lost_data_flag
;
-- enabled stream, so replace
the data if the
data was lost
v
.
mm_sosi
.
channel
(
I
)
:
=
d
.
lost_data_flag
;
v
.
mm_sosi
.
channel
(
I
)
:
=
d
.
lost_data_flag
;
-- enabled stream, so flag the data if the data was lost
ELSE
ELSE
v
.
use_replacement_data
(
I
)
:
=
'1'
;
-- disabled stream, so replace
data
v
.
use_replacement_data
(
I
)
:
=
'1'
;
-- disabled stream, so replace
the data, but do not flag the data as lost
END
IF
;
END
IF
;
END
LOOP
;
END
LOOP
;
END
IF
;
END
IF
;
...
@@ -309,6 +309,9 @@ BEGIN
...
@@ -309,6 +309,9 @@ BEGIN
-- . output via MM interface
-- . output via MM interface
mm_cipo_arr
<=
v
.
fill_cipo_arr
;
mm_cipo_arr
<=
v
.
fill_cipo_arr
;
-- . no output via DP streaming interface
out_sosi_arr
<=
(
OTHERS
=>
c_dp_sosi_rst
);
ELSE
ELSE
--------------------------------------------------------------------------
--------------------------------------------------------------------------
-- Do the output via the DP streaming interface
-- Do the output via the DP streaming interface
...
@@ -318,20 +321,27 @@ BEGIN
...
@@ -318,20 +321,27 @@ BEGIN
v
.
rd_copi
:
=
dp_copi
;
v
.
rd_copi
:
=
dp_copi
;
v
.
rd_copi
.
address
:
=
RESIZE_MEM_ADDRESS
(
ADD_UVEC
(
r
.
rd_offset
,
dp_copi
.
address
));
v
.
rd_copi
.
address
:
=
RESIZE_MEM_ADDRESS
(
ADD_UVEC
(
r
.
rd_offset
,
dp_copi
.
address
));
-- . hold mm_sosi.sync, bsn
-- . hold mm_sosi.sync, bsn
, channel
IF
r
.
mm_sosi
.
sop
=
'1'
THEN
IF
r
.
mm_sosi
.
sop
=
'1'
THEN
v
.
dp_sosi
:
=
r
.
mm_sosi
;
v
.
dp_sosi
:
=
r
.
mm_sosi
;
END
IF
;
END
IF
;
--
apply mm_sosi.sync and bsn at sop to all streams in out_sosi_ar
r
--
. pass on input data from the buffe
r
d
.
out_sosi_arr
:
=
rd_sosi_arr
;
-- = v.fill_cipo_arr in streaming format, contains the
d
.
out_sosi_arr
:
=
rd_sosi_arr
;
-- = v.fill_cipo_arr in streaming format, contains the
-- input data from the buffer or replacement data
-- input data from the buffer or replacement data
IF
rd_sosi_arr
(
0
)
.
sop
=
'1'
THEN
IF
rd_sosi_arr
(
0
)
.
sop
=
'1'
THEN
-- . at sop pass on input info from r.dp_sosi to all streams in out_sosi_arr
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
dp_sosi
.
sync
,
"SYNC"
);
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
dp_sosi
.
sync
,
"SYNC"
);
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
dp_sosi
.
bsn
,
"BSN"
);
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
dp_sosi
.
bsn
,
"BSN"
);
v
.
out_bsn
:
=
r
.
dp_sosi
.
bsn
(
g_bsn_w
-1
DOWNTO
0
);
-- hold BSN until next sop, to ease view in wave window
FOR
I
IN
0
TO
g_nof_streams
-1
LOOP
-- . pass on the lost flag per stream
d
.
out_sosi_arr
(
I
)
.
channel
:
=
RESIZE_DP_CHANNEL
(
slv
(
r
.
dp_sosi
.
channel
(
I
)));
END
LOOP
;
-- . hold BSN until next sop, to ease view in wave window
v
.
out_bsn
:
=
r
.
dp_sosi
.
bsn
(
g_bsn_w
-1
DOWNTO
0
);
ELSE
ELSE
--
hold BSN
until next sop, to ease view in wave window
--
.
until next sop
pass on BSN
, to ease view in wave window
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
out_bsn
,
"BSN"
);
d
.
out_sosi_arr
:
=
func_dp_stream_arr_set
(
d
.
out_sosi_arr
,
r
.
out_bsn
,
"BSN"
);
END
IF
;
END
IF
;
...
...
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