Amba 3 Axi Protocol Checker: User Guide
Amba 3 Axi Protocol Checker: User Guide
r0p1
User Guide
The Change History table shows the amendments that have been made to this guide:
Change History
Proprietary Notice
Words and logos marked with or are registered trademarks or trademarks of ARM Limited in the EU and
other countries, except as otherwise stated below in this proprietary notice. Other brands and names
mentioned herein may be the trademarks of their respective owners.
Neither the whole nor any part of the information contained in, or the product described in, this document
may be adapted or reproduced in any material form except with the prior written permission of the copyright
holder.
The product described in this document is subject to continuous developments and improvements. All
particulars of the product and its use contained in this document are given by ARM Limited in good faith.
However, all warranties implied or expressed, including but not limited to implied warranties of
merchantability, or fitness for purpose, are excluded.
This document is intended only to assist the reader in the use of the product. ARM Limited shall not be liable
for any loss or damage arising from the use of any information in this document, or any error or omission in
such information, or any incorrect use of the product.
Confidentiality Status
This document is Non-Confidential. The right to use, copy and disclose this document may be subject to
license restrictions in accordance with the terms of the agreement entered into by ARM and the party that
ARM delivered this document to.
Product Status
Web Address
http://www.arm.com
ii Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Contents
AMBA 3 AXI Protocol Checker User Guide
Preface
About this book .............................................................................................. x
Feedback ..................................................................................................... xiv
Chapter 1 Introduction
1.1 About the protocol checker ......................................................................... 1-2
1.2 Tools ........................................................................................................... 1-3
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. iii
Unrestricted Access Non-Confidential
Contents
Appendix B Revisions
Glossary
iv Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential Unrestricted Access
List of Tables
AMBA 3 AXI Protocol Checker User Guide
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. v
Unrestricted Access Non-Confidential
List of Tables
vi Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential Unrestricted Access
List of Figures
AMBA 3 AXI Protocol Checker User Guide
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. vii
Unrestricted Access Non-Confidential
List of Figures
viii Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential Unrestricted Access
Preface
This preface introduces the AMBA 3 AXI Protocol Checker r0p1 User Guide. It contains
the following sections:
About this book on page x
Feedback on page xiv.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. ix
ID071309 Non-Confidential, Unrestricted Access
Preface
Intended audience
This book is written for system designers, system integrators, and verification engineers
who want to confirm that a design complies with the AMBA 3 AXI Protocol.
Chapter 1 Introduction
Read this for a high-level description of the protocol checker.
Appendix B Revisions
Read this for a description of the technical changes between released
issues of this book.
Conventions
x Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Preface
Typographical
monospace Denotes text that you can enter at the keyboard, such as
commands, file and program names, and source code.
monospace bold Denotes language keywords when used outside example code.
< and > Enclose replaceable terms for assembler syntax where they appear
in code or code fragments. For example:
MRC p15, 0 <Rd>, <CRn>, <CRm>, <Opcode_2>
Timing diagrams
The figure named Key to timing diagram conventions on page xii explains the
components used in timing diagrams. Variations, when they occur, have clear labels.
You must not assume any timing information that is not explicit in the diagrams.
Shaded bus and signal areas are undefined, so the bus or signal can assume any value
within the shaded area at that time. The actual level is unimportant and does not affect
normal operation.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. xi
ID071309 Non-Confidential, Unrestricted Access
Preface
Clock
HIGH to LOW
Transient
HIGH/LOW to HIGH
Bus stable
Bus change
Signals
Signal level The level of an asserted signal depends on whether the signal is
active-HIGH or active-LOW. Asserted means HIGH for
active-HIGH signals and LOW for active-LOW signals.
Additional reading
xii Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Preface
ARM publications
This book contains information that is specific to this product. See the following
document for other relevant information:
AMBA AXI Protocol v1.0 Specification (ARM IHI 0022).
Other publications
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. xiii
ID071309 Non-Confidential, Unrestricted Access
Preface
Feedback
ARM welcomes feedback on this product and its documentation.
If you have any comments or suggestions about this product, contact your supplier and
give:
Feedback on content
xiv Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Chapter 1
Introduction
This chapter introduces the protocol checker. It contains the following sections:
About the protocol checker on page 1-2
Tools on page 1-3.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 1-1
ID071309 Non-Confidential, Unrestricted Access
Introduction
This guide describes the contents of the Verilog file and how to integrate it into a design.
It also describes the correct use of these assertions with simulators to flag errors,
warnings, or both during design simulation.
1-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Introduction
1.2 Tools
The protocol checker is supplied as either:
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 1-3
ID071309 Non-Confidential, Unrestricted Access
Introduction
1-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Chapter 2
Implementation and Integration
This chapter describes the location of the protocol checker and the integration flow. It
contains the following sections:
Implementation and integration flow on page 2-2
Implementing the protocol checker in your design directory on page 2-3
Instantiating the protocol checker module on page 2-4
Configuring your simulator on page 2-6.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 2-1
ID071309 Non-Confidential, Unrestricted Access
Implementation and Integration
Start
Use assertions
Configuring OVL on page 2-6 lists the OVL_* macros with example values.
2-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Implementation and Integration
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 2-3
ID071309 Non-Confidential, Unrestricted Access
Implementation and Integration
Place the module instantiation inside `ifdef ASSERT_ON and `endif lines to disable the
OVL assertions if necessary, during synthesis for example. Example Verilog file listing
shows the module instantiated in a top level Verilog file inside these compiler
directives.
The AXI signals are signals that the AMBA AXI Protocol v1.0 Specification describes.
The low-power interface signals are defined as weak pull-up and you can leave them
unconnected if you are not using them. They are named:
CSYSREQ for the low-power request signal
CSYSACK for the low-power request acknowledgement signal
CACTIVE for the clock active signal.
The Verilog file contains checks for user-configurable sideband signals. These signals
are defined as weak pull-down and you can leave them unconnected. The AMBA AXI
Protocol v1.0 Specification does not support these signals.
Example 2-1 shows part of a design HDL file instantiating the protocol checker module.
You can, if necessary, override any of the protocol checker parameters by using
defparam at this level.
`ifdef ASSERT_ON
AxiPC u_axi_ovl
(
.ACLK (ACLK),
.ARESETn (ARESETn),
.AWID (AWID),
.AWADDR (AWADDR),
.AWLEN (AWLEN),
.AWSIZE (AWSIZE),
.AWBURST (AWBURST),
.AWLOCK (AWLOCK),
.AWCACHE (AWCACHE),
.AWPROT (AWPROT),
.AWUSER ({32{1b0}}),
2-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Implementation and Integration
.AWVALID (AWVALID),
.AWREADY (AWREADY),
.WID (WID),
.WLAST (WLAST),
.WDATA (WDATA),
.WSTRB (WSTRB),
.WUSER ({32{1b0}}),
.WVALID (WVALID),
.WREADY (WREADY),
.BID (BID),
.BRESP (BRESP),
.BUSER ({32{1b0}}),
.BVALID (BVALID),
.BREADY (BREADY),
.ARID (ARID),
.ARADDR (ARADDR),
.ARLEN (ARLEN),
.ARSIZE (ARSIZE),
.ARBURST (ARBURST),
.ARLOCK (ARLOCK),
.ARCACHE (ARCACHE),
.ARPROT (ARPROT),
.ARUSER ({32{1b0}}),
.ARVALID (ARVALID),
.ARREADY (ARREADY),
.RID (RID),
.RLAST (RLAST),
.RDATA (RDATA),
.RRESP (RRESP),
.RUSER ({32{1'b0}}),
.RVALID (RVALID),
.RREADY (RREADY),
.CACTIVE (CACTIVE),
.CSYSREQ (CSYSREQ),
.CSYSACK (CSYSACK)
);
`endif // `ifdef ASSERT_ON
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 2-5
ID071309 Non-Confidential, Unrestricted Access
Implementation and Integration
The following sections describe how to configure your simulator for different versions
of the protocol checker:
Configuring OVL
Configuring SVA on page 2-7.
See Tools on page 1-3 for the versions of OVL assertions that the OVL version of the
protocol checker supports, and how to configure the protocol checker for backward
compatibility.
To enable the OVL assertions, you must define ASSERT_ON. ARM also recommends that
you set additional simulation variables. The following are the OVL macros with
example values:
+define+OVL_ASSERT_ON // Enable OVL assertions
+define+OVL_MAX_REPORT_ERROR=1 // Message limit per OVL instance
+define+OVL_END_OF_SIMULATION=tb_AxiPC_simulation.simulation_done
+define+OVL_INIT_MSG // Report initialization messages
+define+OVL_INIT_COUNT=tb_AxiPC_simulation.ovl_init_count
Note
Defining OVL_MAX_REPORT_ERROR to 1 or perhaps 2 avoids getting multiple occurrences of
the same error because this can hinder you during debugging.
Note
For AxiPC, you MUST define ASSERT_ON and OVL_ASSERT_ON. The other macros are
optional but can affect the results, for example, if you do not define
OVL_END_OF_SIMULATION, the end-of-simulation checks are not performed.
2-6 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Implementation and Integration
The OVL version of the protocol checker is tested with a number of simulators. Contact
your simulator supplier and see your documentation for more guidance on using Verilog
OVL assertions.
Note
There is a known timing problem with some simulators that issue some false fails. To
avoid these timing issues, you can check the assertions on the opposite edge of the clock
by defining the following:
+define+AXI_OVL_CLK=~ACLK
The SVA version of the protocol checker is written with SystemVerilog version 3.1a.
The SVA version of the protocol checker is tested with a number of simulators. Contact
your simulator supplier and see your documentation for more guidance on using
SystemVerilog Assertions.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 2-7
ID071309 Non-Confidential, Unrestricted Access
Implementation and Integration
2-8 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Chapter 3
Parameter Descriptions
This chapter provides descriptions of the protocol checker parameters. It contains the
following sections:
Interface on page 3-2
Performance checking on page 3-3
Property type on page 3-4
Disabling recommended rules on page 3-5.
Caution
An additional set of defined parameters are derived from the base set of parameters that
this chapter describes. Do not modify them.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 3-1
ID071309 Non-Confidential, Unrestricted Access
Parameter Descriptions
3.1 Interface
Table 3-1 lists the user-defined parameters for setting the interface characteristics.
Change them to match your design specification.
ID_WIDTH Number of channel ID bits required, address, write, read, and write response. 4
MAXRBURSTS Size of FIFOs for storing outstanding read bursts. This must be equal to or greater than the 16
number of outstanding read bursts to the slave interface.
MAXWBURSTS Size of FIFOs for storing outstanding write bursts. This must be equal to or greater than the 16
number of outstanding write bursts to the slave interface.
Note
The AMBA AXI Protocol v1.0 Specification does not define the user signals shown in
Table 3-1.
3-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Parameter Descriptions
MAXWAITS Maximum number of cycles between VALID to READY HIGH before a warning is generated 16
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 3-3
ID071309 Non-Confidential, Unrestricted Access
Parameter Descriptions
For example, if you are formally verifying compliance of a master interface then you
want to prove all of the master rules, ERRM and RECM, but assume that all slave rules, ERRS
and RECS, are true. To do this, you leave the master rules set as 0, the default in Table 3-3,
but change the slave rules to 1. This means that you test the master in an environment
where the slave is compliant. This is only performed as part of formal verification.
AXI_ERRL_PropertyType Device Under Test (DUT) low-power interface compliance with the rules. 0
AXI_AUXM_PropertyType DUT master interface compliance with the internal auxiliary logic. 0
AXI_AUXS_PropertyType DUT slave interface compliance with the internal auxiliary logic. 0
You can set the OVL PropertyType parameter to the following values:
0 Assert, this is the default.
1 Assume.
2 Ignore.
3 Assert 2-state.
4 Assume 2-state.
3-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Parameter Descriptions
Note
RecMaxWaitOn is a subset of RecommendOn, and if RecommendOn is 1b0, disabled, then the
MAX_WAIT rules are disabled regardless of the settings of RecMaxWaitOn.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 3-5
ID071309 Non-Confidential, Unrestricted Access
Parameter Descriptions
3-6 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Chapter 4
Assertion Descriptions
This chapter describes the protocol checker assertions and indicates the area of the
AMBA AXI Protocol v1.0 Specification that they apply to. It contains the following
sections:
Write address channel checks on page 4-2
Write data channel checks on page 4-5
Write response channel checks on page 4-7
Read address channel checks on page 4-8
Read data channel checks on page 4-11
Low-power interface rules on page 4-13
Exclusive access checks on page 4-14
Internal logic checks on page 4-15.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-1
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_AWID_STABLE AWID must remain stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWID_X A value of X on AWID is not permitted when Write address channel on Page 3-3
AWVALID is HIGH
AXI_ERRM_AWADDR_BOUNDARY A write burst cannot cross a 4KB boundary About addressing options on Page 4-2
AXI_ERRM_AWADDR_WRAP_ALIGN A write transaction with burst type WRAP has Wrapping burst on Page 4-6
an aligned address
AXI_ERRM_AWADDR_STABLE AWADDR remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWADDR_X A value of X on AWADDR is not permitted Write address channel on Page 3-3
when AWVALID is HIGH
AXI_ERRM_AWLEN_WRAP A write transaction with burst type WRAP has a Wrapping burst on Page 4-6
length of 2, 4, 8, or 16
AXI_ERRM_AWLEN_STABLE AWLEN remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWLEN_X A value of X on AWLEN is not permitted when Write address channel on Page 3-3
AWVALID is HIGH
AXI_ERRM_AWSIZE_STABLE AWSIZE remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWSIZE The size of a write transfer does not exceed the Burst size on Page 4-4
width of the data interface
AXI_ERRM_AWSIZE_X A value of X on AWSIZE is not permitted when Write address channel on Page 3-3
AWVALID is HIGH
AXI_ERRM_AWBURST_STABLE AWBURST remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWBURST_X A value of X on AWBURST is not permitted Write address channel on Page 3-3
when AWVALID is HIGH
4-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRM_AWLOCK A value of 2'b11 on AWLOCK is not permitted Table 6-1 on Page 6-2
when AWVALID is HIGH
AXI_ERRM_AWLOCK_END A master must wait for an unlocked transaction Locked access on Page 6-7
at the end of a locked sequence to complete
before issuing another write address
AXI_ERRM_AWLOCK_ID A sequence of locked transactions must use a Locked access on Page 6-7
single ID
AXI_ERRM_AWLOCK_LAST A master must wait for all locked transactions to Locked access on Page 6-7
complete before issuing an unlocked write
address
AXI_ERRM_AWLOCK_STABLE AWLOCK remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
AXI_ERRM_AWLOCK_START A master must wait for all outstanding Locked access on Page 6-7
transactions to complete before issuing a write
address that is the first in a locked sequence
AXI_ERRM_AWLOCK_X A value of X on AWLOCK is not permitted Write address channel on Page 3-3
when AWVALID is HIGH
AXI_RECM_AWLOCK_BOUNDARY Recommended that all locked transaction Locked access on Page 6-7
sequences remain within the same 4KB address
region
AXI_RECM_AWLOCK_CTRL Recommended that a master must not change Locked access on Page 6-7
AWPROT or AWCACHE during a sequence of
locked accesses
AXI_ERRM_AWCACHE When AWVALID is HIGH and AWCACHE[1] Table 5-1 on Page 5-3
is LOW then AWCACHE[3:2] are also LOW
AXI_ERRM_AWCACHE_STABLE AWCACHE remains stable when AWVALID Handshake process on Page 3-2
is asserted and AWREADY is LOW
AXI_ERRM_AWCACHE_X A value of X on AWCACHE is not permitted Write address channel on Page 3-3
when AWVALID is HIGH
AXI_ERRM_AWPROT_STABLE AWPROT remains stable when AWVALID is Handshake process on Page 3-2
asserted and AWREADY is LOW
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-3
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_AWPROT_X A value of X on AWPROT is not permitted Write address channel on Page 3-3
when AWVALID is HIGH
AXI_ERRM_AWVALID_RESET AWVALID is LOW for the first cycle after Reset on Page 11-2
ARESETn goes HIGH
AXI_ERRM_AWVALID_STABLE When AWVALID is asserted then it remains Write address channel on Page 3-3
asserted until AWREADY is HIGH
4-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRM_WID_STABLE WID remains stable when WVALID is asserted and Handshake process on Page 3-2
WREADY is LOW.
AXI_ERRM_WID_X A value of X on WID is not permitted when Write data channel on Page 3-4
WVALID is HIGH.
AXI_ERRM_WDATA_NUM The number of write data items matches AWLEN for Table 4-1 on Page 4-3
the corresponding address. This is triggered when
any of the following occurs:
write data arrives and WLAST set and the
WDATA count is not equal to AWLEN
write data arrives and WLAST not set and the
WDATA count is equal to AWLEN
ADDR arrives, WLAST already received,
and the WDATA count is not equal to
AWLEN.
AXI_ERRM_WDATA_ORDER The order in which addresses and the first write data Write data interleaving on Page 8-6
item are produced must match.
AXI_ERRM_WDATA_STABLE WDATA remains stable when WVALID is asserted Handshake process on Page 3-2
and WREADY is LOW.
AXI_ERRM_WSTRB Write strobes must only be asserted for the correct Write strobes on Page 9-3
byte lanes as determined from the:
start address
transfer size
beat number.
AXI_ERRM_WSTRB_STABLE WSTRB remains stable when WVALID is asserted Handshake process on Page 3-2
and WREADY is LOW.
AXI_ERRM_WLAST_STABLE WLAST remains stable when WVALID is asserted Handshake process on Page 3-2
and WREADY is LOW.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-5
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_WVALID_RESET WVALID is LOW for the first cycle after Reset on Page 11-2
ARESETn goes HIGH.
AXI_ERRM_WVALID_STABLE When WVALID is asserted then it must remain Write data channel on Page 3-4
asserted until WREADY is HIGH.
AXI_ERRM_WDEPTH A master can interleave a maximum of WDEPTH write Write data interleaving on Page 8-6
data bursts.
4-6 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRS_BID_STABLE BID remains stable when BVALID is Handshake process on Page 3-2
asserted and BREADY is LOW
AXI_ERRS_BRESP A slave must only give a write response Dependencies between channel handshake
after the last write data item is transferred signals on Page 3-7
AXI_ERRS_BRESP_EXOKAY An EXOKAY write response can only be Exclusive access from the perspective of the
given to an exclusive write access slave on Page 6-4
AXI_ERRS_BRESP_STABLE BRESP remains stable when BVALID is Handshake process on Page 3-2
asserted and BREADY is LOW
AXI_ERRS_BRESP_X A value of X on BRESP is not permitted Write response channel on Page 3-4
when BVALID is HIGH
AXI_ERRS_BVALID_RESET BVALID is LOW for the first cycle after Reset on Page 11-2
ARESETn goes HIGH
AXI_ERRS_BVALID_STABLE When BVALID is asserted then it must Write response channel on Page 3-4
remain asserted until BREADY is HIGH
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-7
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_ARID_STABLE ARID remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARID_X A value of X on ARID is not permitted when Read address channel on Page 3-4
ARVALID is HIGH
AXI_ERRM_ARADDR_BOUNDARY A read burst cannot cross a 4KB boundary About addressing options on Page 4-2
AXI_ERRM_ARADDR_STABLE ARADDR remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARADDR_WRAP_ALIGN A read transaction with a burst type of WRAP Wrapping burst on Page 4-6
must have an aligned address
AXI_ERRM_ARADDR_X A value of X on ARADDR is not permitted Read address channel on Page 3-4
when ARVALID is HIGH
AXI_ERRM_ARLEN_STABLE ARLEN remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARLEN_WRAP A read transaction with burst type of WRAP Wrapping burst on Page 4-6
must have a length of 2, 4, 8, or 16
AXI_ERRM_ARLEN_X A value of X on ARLEN is not permitted when Read address channel on Page 3-4
ARVALID is HIGH
AXI_ERRM_ARSIZE The size of a read transfer must not exceed the Burst size on Page 4-4
width of the data interface
AXI_ERRM_ARSIZE_STABLE ARSIZE remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARSIZE_X A value of X on ARSIZE is not permitted when Read address channel on Page 3-4
ARVALID is HIGH
AXI_ERRM_ARBURST A value of 2'b11 on ARBURST is not permitted Table 4-3 on Page 4-5
when ARVALID is HIGH
AXI_ERRM_ARBURST_STABLE ARBURST remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARBURST_X A value of X on ARBURST is not permitted Read address channel on Page 3-4
when ARVALID is HIGH
4-8 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRM_ARLOCK A value of 2'b11 on ARLOCK is not permitted Table 6-1 on Page 6-2
when ARVALID is HIGH
AXI_ERRM_ARLOCK_END A master must wait for an unlocked transaction Locked access on Page 6-7
at the end of a locked sequence to complete
before issuing another read address
AXI_ERRM_ARLOCK_ID A sequence of locked transactions must use a Locked access on Page 6-7
single ID
AXI_ERRM_ARLOCK_LAST A master must wait for all locked transactions to Locked access on Page 6-7
complete before issuing an unlocked read
address
AXI_ERRM_ARLOCK_STABLE ARLOCK remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARLOCK_START A master must wait for all outstanding Locked access on Page 6-7
transactions to complete before issuing a read
address that is the first in a locked sequence
AXI_ERRM_ARLOCK_X A value of X on ARLOCK is not permitted Read address channel on Page 3-4
when ARVALID is HIGH
AXI_RECM_ARLOCK_BOUNDARY Recommended that all locked transaction Locked access on Page 6-7
sequences are kept within the same 4KB address
region
AXI_RECM_ARLOCK_CTRL Recommended that a master must not change Locked access on Page 6-7
ARPROT or ARCACHE during a sequence of
locked accesses
AXI_ERRM_ARCACHE_STABLE ARCACHE remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
AXI_ERRM_ARCACHE_X A value of X on ARCACHE is not permitted Read address channel on Page 3-4
when ARVALID is HIGH
AXI_ERRM_ARPROT_STABLE ARPROT remains stable when ARVALID is Handshake process on Page 3-2
asserted and ARREADY is LOW
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-9
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_ARPROT_X A value of X on ARPROT is not permitted Read address channel on Page 3-4
when ARVALID is HIGH
AXI_ERRM_ARVALID_RESET ARVALID is LOW for the first cycle after Reset on Page 11-2
ARESETn goes HIGH
AXI_ERRM_ARVALID_STABLE When ARVALID is asserted then it remains Read address channel on Page 3-4
asserted until ARREADY is HIGH
4-10 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRS_RID The read data must always follow the Read ordering on Page 8-4
address that it relates to. Therefore, a
slave can only give read data with an ID
to match an outstanding read transaction.
AXI_ERRS_RID_STABLE RID remains stable when RVALID is Handshake process on Page 3-2
asserted and RREADY is LOW.
AXI_ERRS_RDATA_NUM The number of read data items must Table 4-1 on Page 4-3
match the corresponding ARLEN.
AXI_ERRS_RDATA_STABLE RDATA remains stable when RVALID is Handshake process on Page 3-2
asserted and RREADY is LOW.
AXI_ERRS_RRESP_EXOKAY An EXOKAY read response can only be Exclusive access from the perspective of the
given to an exclusive read access. slave on Page 6-4
AXI_ERRS_RRESP_STABLE RRESP remains stable when RVALID is Handshake process on Page 3-2
asserted and RREADY is LOW.
AXI_ERRS_RLAST_STABLE RLAST remains stable when RVALID is Handshake process on Page 3-2
asserted and RREADY is LOW.
AXI_ERRS_RVALID_RESET RVALID is LOW for the first cycle after Reset on Page 11-2
ARESETn goes HIGH.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-11
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRS_RVALID_STABLE When RVALID is asserted then it must Read data channel on Page 3-5
remain asserted until RREADY is HIGH.
4-12 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
AXI_ERRL_CSYSREQ_FALL CSYSREQ is only permitted to change from HIGH Low-power clock control on Page 12-3
to LOW when CSYSACK is HIGH
AXI_ERRL_CSYSREQ_RISE CSYSREQ is only permitted to change from LOW Low-power clock control on Page 12-3
to HIGH when CSYSACK is LOW
AXI_ERRL_CSYSACK_FALL CSYSACK is only permitted to change from HIGH Low-power clock control on Page 12-3
to LOW when CSYSREQ is LOW
AXI_ERRL_CSYSACK_RISE CSYSACK is only permitted to change from LOW Low-power clock control on Page 12-3
to HIGH when CSYSREQ is HIGH
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-13
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
AXI_ERRM_EXCL_ALIGN The address of an exclusive access is aligned to Exclusive access restrictions on Page 6-5
the total number of bytes in the transaction
AXI_ERRM_EXCL_LEN The number of bytes to be transferred in an Exclusive access restrictions on Page 6-5
exclusive access burst is a power of 2, that is, 1, 2,
4, 8, 16, 32, 64, or 128 bytes
AXI_RECM_EXCL_MATCH Recommended that the address, size, and length Exclusive access restrictions on Page 6-5
of an exclusive write with a given ID is the same
as the address, size, and length of the preceding
exclusive read with the same ID
AXI_ERRM_EXCL_MAX 128 is the maximum number of bytes that can be Exclusive access restrictions on Page 6-5
transferred in an exclusive burst
AXI_RECM_EXCL_PAIR Recommended that every exclusive write has an Exclusive access from the perspective of the
earlier outstanding exclusive read with the same master on Page 6-3
ID
4-14 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Assertion Descriptions
Specification
Assertion Description
Reference
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. 4-15
ID071309 Non-Confidential, Unrestricted Access
Assertion Descriptions
4-16 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Appendix A
Example Usage
This appendix provides an example transcript from the protocol checker. It contains the
following section:
RDATA stable failure on page A-2.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. A-1
ID071309 Non-Confidential, Unrestricted Access
Example Usage
ARVALID
ARREADY
ARADDR
0x00002000
ARLEN b0001
ARSIZE b010
ARBURST b01
RVALID
RREADY
RLAST
RDATA 0x01010101
0x11223344 0x55667788
RDATA changes at T7 when RVALID is HIGH and RREADY is LOW. The protocol
checker samples the change at T8.
Example A-1 shows the protocol checker transcript for this failure.
# Loading work.TB
# Loading work.AxiPC
# Loading ../ovl/work.assert_implication
# do startup.do
# OVL_ERROR : ASSERT_WIN_UNCHANGE : AXI_ERRS_RDATA_STABLE. RDATA must remain stable when RVALID is
asserted and RREADY low. Spec: section 3.1, and figure 3-1, on page 3-2. : : severity 1 : time 250
ns : TB.uAxiPC.errs_rdata_stable.ovl_error
A-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Example Usage
# OVL_ERROR : AXI_ERRS_RDATA_STABLE. RDATA must remain stable when RVALID is asserted and RREADY low.
Spec: section 3.1, and figure 3-1, on page 3-2. : : severity 1 : time 270 ns :
TB.uAxiPC.errs_rdata_stable.ovl_error
# Break at rdata_stable.v line 69
# Simulation Breakpoint: Break at rdata_stable.v line 69
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. A-3
ID071309 Non-Confidential, Unrestricted Access
Example Usage
A-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Appendix B
Revisions
This appendix describes the technical changes between released issues of this book.
Version of OVL defines from Accellera updated Tools on page 1-3. r0p1
User-defined parameters for setting the interface characteristics added Table 3-1 on page 3-2. r0p1
Settings for the PropertyType parameter in each OVL instantiation updated Table 3-3 on page 3-4. r0p1
Read data channel checking rule added Table 4-5 on page 4-11. r0p1
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. B-1
ID071309 Non-Confidential, Unrestricted Access
Revisions
B-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Glossary
This glossary describes some of the terms used in technical documents from ARM.
The AXI protocol also includes optional extensions to cover signaling for low-power
operation.
AXI is targeted at high performance, high clock frequency system designs and includes
a number of features that make it very suitable for high speed sub-micron interconnect.
Advanced Microcontroller Bus Architecture (AMBA)
A family of protocol specifications that describe a strategy for the interconnect. AMBA
is the ARM open standard for on-chip buses. It is an on-chip bus specification that
describes a strategy for the interconnection and management of functional blocks that
make up a System-on-Chip (SoC). It aids in the development of embedded processors
with one or more CPUs or signal processors and multiple peripherals. AMBA
complements a reusable design methodology by defining a common backbone for SoC
modules.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. Glossary-1
ID071309 Non-Confidential, Unrestricted Access
Glossary
AXI terminology The following AXI terms are general. They apply to both masters and slaves:
Active transfer
A transfer for which the xVALID1 handshake has asserted, but for which
xREADY has not yet asserted.
Completed transfer
A transfer for which the xVALID/xREADY handshake is complete.
Glossary-2 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309
Glossary
Transmit An initiator driving the payload and asserting the relevant xVALID
signal.
The following AXI terms are master interface attributes. To obtain optimum
performance, they must be specified for all components with an AXI master interface:
Read ID capability
The maximum number of different ARID values that a master interface
can generate for all active read transactions at any one time.
Read ID width
The number of bits in the ARID bus.
Write ID capability
The maximum number of different AWID values that a master interface
can generate for all active write transactions at any one time.
Write ID width
The number of bits in the AWID and WID buses.
ARM DUI 0305C Copyright 2005, 2006, 2009 ARM. All rights reserved. Glossary-3
ID071309 Non-Confidential, Unrestricted Access
Glossary
The following AXI terms are slave interface attributes. To obtain optimum
performance, they must be specified for all components with an AXI slave interface:
Glossary-4 Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C
Non-Confidential, Unrestricted Access ID071309