Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
M
MasterFIP - Gateware
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
MasterFIP - Gateware
Commits
8335be0c
Commit
8335be0c
authored
Mar 07, 2023
by
Alén Arias Vázquez
😎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added header size
parent
16499777
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
7 deletions
+11
-7
rmq.py
testbench/cocotb/test/models/rmq.py
+11
-7
No files found.
testbench/cocotb/test/models/rmq.py
View file @
8335be0c
...
...
@@ -44,7 +44,7 @@ class RMQ:
"""
class
RMQMaster
(
RMQ
):
def
__init__
(
self
,
dut
,
clk
,
if_name
):
def
__init__
(
self
,
dut
,
clk
,
if_name
,
header_size
=
1
):
RMQ
.
__init__
(
self
,
dut
=
dut
,
clk
=
clk
,
if_name
=
if_name
)
self
.
dut
.
_log
.
info
(
"Init RMQ Master"
)
self
.
rmq_i
.
data
.
setimmediatevalue
(
0
)
...
...
@@ -52,12 +52,13 @@ class RMQMaster(RMQ):
self
.
rmq_i
.
last
.
setimmediatevalue
(
0
)
self
.
rmq_i
.
error
.
setimmediatevalue
(
0
)
self
.
rmq_i
.
valid
.
setimmediatevalue
(
0
)
self
.
hdr_size
=
header_size
-
1
def
send_data
(
self
,
data
):
data_len
=
len
(
data
)
self
.
dut
.
_log
.
info
(
"Sending Data with length: {}"
.
format
(
data_len
))
for
x
in
range
(
data_len
):
if
x
==
0
:
if
x
<=
self
.
hdr_size
:
self
.
push_fifo
(
'HDR'
)
if
x
==
(
data_len
-
1
):
self
.
push_fifo
(
'LAST'
)
...
...
@@ -97,13 +98,14 @@ class RMQMaster(RMQ):
"""
class
RMQSlave
(
RMQ
):
def
__init__
(
self
,
dut
,
clk
,
if_name
):
def
__init__
(
self
,
dut
,
clk
,
if_name
,
header_size
=
2
):
RMQ
.
__init__
(
self
,
dut
=
dut
,
clk
=
clk
,
if_name
=
if_name
)
self
.
dut
.
_log
.
info
(
"Init RMQ Slave"
)
self
.
rmq_i
.
ready
.
setimmediatevalue
(
0
)
self
.
rmq_i
.
pkt_ready
.
setimmediatevalue
(
0
)
self
.
rmq_
frame
_c
=
0
self
.
rmq_
request
_c
=
0
self
.
rmq_word_c
=
0
self
.
hdr_size
=
header_size
-
1
@
cocotb
.
coroutine
def
output_data_rmq
(
self
):
...
...
@@ -112,14 +114,16 @@ class RMQSlave(RMQ):
while
(
True
):
if
((
self
.
rmq_o
.
valid
.
value
==
1
)
and
(
self
.
rmq_i
.
ready
.
value
==
1
)):
if
(
self
.
rmq_word_c
==
0
or
self
.
rmq_word_c
==
1
)
and
self
.
rmq_o
.
hdr
.
value
==
0
:
if
(
self
.
rmq_word_c
<=
self
.
hdr_size
)
and
self
.
rmq_o
.
hdr
.
value
==
0
:
self
.
dut
.
_log
.
error
(
"Missing HEADER in reception"
)
raise
SimFailure
()
self
.
push_fifo
(
self
.
rmq_o
.
data
.
value
.
integer
)
if
self
.
rmq_o
.
last
.
value
==
1
:
self
.
rmq_word_c
+=
1
self
.
rmq_
frame_c
=
self
.
rmq_frame
_c
+
1
self
.
dut
.
_log
.
info
(
"Received frame {} with length {}"
.
format
(
self
.
rmq_
frame
_c
,
self
.
rmq_word_c
))
self
.
rmq_
request_c
=
self
.
rmq_request
_c
+
1
self
.
dut
.
_log
.
info
(
"Received frame {} with length {}"
.
format
(
self
.
rmq_
request
_c
,
self
.
rmq_word_c
))
self
.
rmq_word_c
=
0
else
:
self
.
rmq_word_c
+=
1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment