Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
combpm
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
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
DG
FOFB
combpm
Commits
afabe1cc
Commit
afabe1cc
authored
2 years ago
by
BRONES Romain
Browse files
Options
Downloads
Patches
Plain Diff
Protocol decoder: Use bpmframe stream package, clean
* Remove GT interface ready input: useless
parent
ddd42af3
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
hdl/combpm_protocol_electron.vhd
+25
-34
25 additions, 34 deletions
hdl/combpm_protocol_electron.vhd
hdl/pkg_bpmframe_stream.vhd
+7
-9
7 additions, 9 deletions
hdl/pkg_bpmframe_stream.vhd
with
32 additions
and
43 deletions
hdl/combpm_protocol_electron.vhd
+
25
−
34
View file @
afabe1cc
...
...
@@ -3,41 +3,33 @@ library ieee;
use
ieee
.
std_logic_1164
.
all
;
use
ieee
.
numeric_std
.
all
;
use
work
.
pkg_
com
bpm_stream
.
all
;
use
work
.
pkg_bpm
frame
_stream
.
all
;
entity
combpm_protocol_electron
is
port
(
rst_n
:
in
std_logic
;
clk
:
in
std_logic
;
pps
:
in
std_logic
;
rst_n
:
in
std_logic
;
-- Asynchronous active low reset.
clk
:
in
std_logic
;
-- Clock synchronous to data input.
pps
:
in
std_logic
;
-- One pulse per second. Used for frame rate estimation.
mc_time
:
in
std_logic_vector
(
39
downto
0
);
mc_time
:
in
std_logic_vector
(
39
downto
0
);
-- Machine clock time for frame time stamping.
-- GT interface
gt_datarx
:
in
std_logic_vector
(
15
downto
0
);
gt_interfaceready
:
in
std_logic
;
gt_datarx
:
in
std_logic_vector
(
15
downto
0
);
-- Deserialized data.
-- AXIS interface
m_axi_tid
:
out
std_logic_vector
(
0
downto
0
);
m_axi_tdest
:
out
std_logic_vector
(
9
downto
0
);
m_axi_tdata
:
out
std_logic_vector
(
127
downto
0
);
m_axi_tstrb
:
out
std_logic_vector
(
15
downto
0
);
m_axi_tkeep
:
out
std_logic_vector
(
15
downto
0
);
m_axi_tlast
:
out
std_logic
;
m_axi_tuser
:
out
std_logic_vector
(
0
downto
0
);
m_axi_tvalid
:
out
std_logic
;
m_axi_tready
:
in
std_logic
;
m_axis_m2s
:
out
t_bpmframe_axis_m2s
;
m_axis_s2m
:
in
t_bpmframe_axis_s2m
;
-- warning: TREADY is ignored !
-- Status and control interface
soft_reset
:
in
std_logic
;
frame_seq_cnt
:
out
std_logic_vector
(
15
downto
0
);
frame_valid_cnt
:
out
std_logic_vector
(
31
downto
0
);
frame_invalid_cnt
:
out
std_logic_vector
(
31
downto
0
);
frame_valid_rate
:
out
std_logic_vector
(
31
downto
0
);
frame_invalid_rate
:
out
std_logic_vector
(
31
downto
0
);
cnt_seq_mismatch
:
out
std_logic
;
seq_discontinuity
:
out
std_logic
;
frame_error
:
out
std_logic
soft_reset
:
in
std_logic
;
-- Reset all counters.
frame_seq_cnt
:
out
std_logic_vector
(
15
downto
0
);
-- Number of frame in last sequence.
frame_valid_cnt
:
out
std_logic_vector
(
31
downto
0
);
-- Count of valid frames.
frame_invalid_cnt
:
out
std_logic_vector
(
31
downto
0
);
-- Count of invalid frames.
frame_valid_rate
:
out
std_logic_vector
(
31
downto
0
);
-- Valid frame rate.
frame_invalid_rate
:
out
std_logic_vector
(
31
downto
0
);
-- Invalid frame rate.
cnt_seq_mismatch
:
out
std_logic
;
-- Pulse for number of frame in sequence mismatch.
seq_discontinuity
:
out
std_logic
;
-- Pulse for discontinuity in sequence number.
frame_error
:
out
std_logic
-- Pulse for frame error.
);
end
entity
combpm_protocol_electron
;
...
...
@@ -91,6 +83,7 @@ architecture rtl of combpm_protocol_electron is
signal
rate_invalid_r
:
unsigned
(
31
downto
0
);
signal
packet
:
t_combpm_axis_packet
;
signal
m_axi_tvalid
:
std_logic
;
begin
...
...
@@ -135,8 +128,8 @@ begin
'0'
;
-- Any and all flag
flag_all
<=
flag_sop
and
flag_eop
and
flag_dummy
and
flag_rsvd
and
flag_crc
and
gt_interfaceready
;
flag_frame
<=
flag_sop
and
flag_eop
and
gt_interfaceready
;
flag_all
<=
flag_sop
and
flag_eop
and
flag_dummy
and
flag_rsvd
and
flag_crc
;
flag_frame
<=
flag_sop
and
flag_eop
;
----------------------------
-- FRAME FIELD EXTRACTION --
...
...
@@ -242,13 +235,11 @@ begin
--------------
-- AXIS OUT --
--------------
-- Static data
m_axi_tstrb
<=
(
others
=>
'1'
);
m_axi_tkeep
<=
(
others
=>
'1'
);
m_axi_tid
<=
"0"
;
m_axi_tuser
<=
"0"
;
m_axi_tlast
<=
'1'
;
-- One transfer is One packet.
m_axi_tdata
<=
combpmpacket2slv
(
packet
);
m_axis_m2s
.
tdest
<=
(
others
=>
'0'
);
m_axis_m2s
.
tdata
<=
combpmpacket2slv
(
packet
);
m_axis_m2s
.
tlast
<=
'1'
;
-- One transfer is One packet.
m_axis_m2s
.
tvalid
<=
m_axi_tvalid
;
p_axis
:
process
(
clk
,
rst_n
)
begin
...
...
This diff is collapsed.
Click to expand it.
hdl/pkg_
com
bpm_stream.vhd
→
hdl/pkg_bpm
frame
_stream.vhd
+
7
−
9
View file @
afabe1cc
-- Package BPMFRAME STREAM
-- this package describe the format of the AXI-Stream interface used by blocs of the module COMBPM.
--
-- The usefull things are :
-- * Two record types for port interfaces: t_bpmframe_axis_m2s and t_bpmframe_axis_s2m.
-- * One record type for frame fields: t_bpmframe.
-- * Two functions to transform TDATA (std_logic_vector) to/from t_bpmframe: slv2bpmframe and bpmframe2slv.
library
ieee
;
use
ieee
.
std_logic_1164
.
all
;
...
...
@@ -17,21 +24,12 @@ package pkg_bpmframe_stream is
tdata
:
std_logic_vector
(
C_TDATA_W
-1
downto
0
);
tlast
:
std_logic
;
tvalid
:
std_logic
;
---tid : std_logic_vector(0 downto 0);
--tuser : std_logic_vector(0 downto 0);
--tstrb : std_logic_vector(15 downto 0);
--tkeep : std_logic_vector(15 downto 0);
end
record
t_bpmframe_axis_m2s
;
type
t_bpmframe_axis_s2m
is
record
tready
:
std_logic
;
end
record
t_bpmframe_axis_s2m
;
subtype
t_bpmframe_m_axis_out
is
t_bpmframe_axis_m2s
;
subtype
t_bpmframe_s_axis_in
is
t_bpmframe_axis_m2s
;
subtype
t_bpmframe_m_axis_in
is
t_bpmframe_axis_s2m
;
subtype
t_bpmframe_s_axis_out
is
t_bpmframe_axis_s2m
;
------------------------
-- AXIS STREAM PACKET --
------------------------
...
...
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