Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Axi Pulp
Commits
8dbc01fa
Commit
8dbc01fa
authored
5 years ago
by
Andreas Kurth
Browse files
Options
Download
Email Patches
Plain Diff
rand_axi_master: Respect burst type restrictions in ATOPs
This is a second fix for issue #104.
parent
70805e36
master
194-axi-upsizer-problem
a2al_mod_tbenz
add_missing_parameters
assign-generalize-axi-lite
axi2tcdm_tbenz
axi_cdc_lucav
axi_dma_fe_tbenz
axi_dma_tbenz
axi_dwc_fixes
axi_lite_dw_converter
axi_llc
axi_sim_mem_intf
axi_tlb
axi_to_mem
axi_to_mem_rebase
axi_xp
demux-fix-vopt-0.24.2
demux-fix-vopt-0.27.1
demux_parameters
dwc_atomic_timing
fix-axi-cdc-port
fix-cdc-vcs-port-mismatches
fix-tb_axi_xbar
forward-ref-fix
id_width_converter
iw_converter_flat
prefix-tb-params
snitch-patches
tb-axi-serialize-width
type_naming
typedef-axi-lite
update-deps
vcs-improve-compatibility
verilator
xbar_parameters
xbar_pipeline
v0.33.1
v0.33.0
v0.32.0
v0.31.1
v0.31.0
v0.30.0
v0.29.2
v0.29.1
v0.29.0
v0.28.0
v0.27.1
v0.27.0
v0.26.0
v0.25.0
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
archive/2020-11-20_axi_dma_tbenz
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
CHANGELOG.md
+4
-0
CHANGELOG.md
src/axi_test.sv
+10
-8
src/axi_test.sv
with
14 additions
and
8 deletions
+14
-8
CHANGELOG.md
+
4
-
0
View file @
8dbc01fa
...
...
@@ -33,6 +33,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
respectively.
-
`axi_test::rand_axi_slave`
: Display
`prot`
signal (but otherwise still ignore it).
### Fixed
-
`rand_axi_master`
(in
`axi_test`
): Another fix to respect burst type restrictions when emitting
ATOPs.
## 0.22.1 - 2020-05-11
...
...
This diff is collapsed.
Click to expand it.
src/axi_test.sv
+
10
-
8
View file @
8dbc01fa
...
...
@@ -881,21 +881,23 @@ package axi_test;
end
beat
.
ax_len
=
bytes
/
AXI_STRB_WIDTH
-
1
;
end
// Determine `ax_addr`.
if
(
beat
.
ax_atop
==
axi_pkg
::
ATOP_ATOMICCMP
&&
AXI_BURST_FIXED
)
begin
// Determine `ax_addr`
and `ax_burst`
.
if
(
beat
.
ax_atop
==
axi_pkg
::
ATOP_ATOMICCMP
)
begin
// The address must be aligned to half the outbound data size. [E2-337]
beat
.
ax_addr
=
beat
.
ax_addr
&
~
((
1'b1
<<
beat
.
ax_size
)
-
1
);
end
else
begin
// The address must be aligned to the data size. [E2-337]
beat
.
ax_addr
=
beat
.
ax_addr
&
~
((
1'b1
<<
(
beat
.
ax_size
+
1
))
-
1
);
end
// Determine `ax_burst`.
if
(
beat
.
ax_atop
==
axi_pkg
::
ATOP_ATOMICCMP
)
begin
// If the address is aligned to the total size of outgoing data, the burst type must be
// INCR. Otherwise, it must be WRAP. [E2-338]
beat
.
ax_burst
=
(
beat
.
ax_addr
%
((
beat
.
ax_len
+
1
)
*
2
**
beat
.
ax_size
)
==
0
)
?
axi_pkg
::
BURST_INCR
:
axi_pkg
::
BURST_WRAP
;
// If we are not allowed to emit WRAP bursts, align the address to the total size of
// outgoing data and fall back to INCR.
if
(
beat
.
ax_burst
==
axi_pkg
::
BURST_WRAP
&&
!
AXI_BURST_WRAP
)
begin
beat
.
ax_addr
-=
(
beat
.
ax_addr
%
((
beat
.
ax_len
+
1
)
*
2
**
beat
.
ax_size
));
beat
.
ax_burst
=
axi_pkg
::
BURST_INCR
;
end
end
else
begin
// The address must be aligned to the data size. [E2-337]
beat
.
ax_addr
=
beat
.
ax_addr
&
~
((
1'b1
<<
(
beat
.
ax_size
+
1
))
-
1
);
// Only INCR allowed.
beat
.
ax_burst
=
axi_pkg
::
BURST_INCR
;
end
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
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
Menu
Projects
Groups
Snippets
Help