pg101 Axi Protocol Checker
pg101 Axi Protocol Checker
v1.1
Chapter 1: Overview
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Licensing and Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Appendix A: Debugging
Finding Help on Xilinx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
General Checks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Clocks and Resets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Core Size and Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
° AXI4 and AXI3: 32, 64, 128, 256, 512 or Synthesis Vivado Synthesis.
1024 bits Support
° AXI4-Lite: 32 or 64 bits Provided by Xilinx at the Xilinx Support web page
Overview
The AXI Protocol Checker is used to debug interface signals in systems using the AXI4, AXI3
or AXI4-Lite protocol. When placed in an AXI system, the connection of the AXI Protocol
Checker monitors the traffic between the AXI Master and AXI Slave Core.
The interface is checked against the rules outlined in the AXI Specification to determine if
a violation has occurred [Ref 2]. These violations are reported in a simulation log file
message and as a debug net in the Vivado Logic Analyzer. In addition, the violations appear
on the status vector output port from the core.
X-Ref Target - Figure 1-1
axi_protocol_checker
core
AW
AXI4/AXI3
Checker
W
B AXI4-Lite
Checker
AR
Simulation
R
Reporter Error Vector
X13125
Applications
The AXI Protocol Checker is typically used by system designers to ensure that traffic on a
given AXI connection complies with the AXI protocol.
Information about this and other Xilinx LogiCORE IP modules is available at the Xilinx
Intellectual Property page. For information on pricing and availability of other Xilinx
LogiCORE IP modules and tools, contact your local Xilinx sales representative.
Product Specification
The AXI Protocol Checker monitors the connection for AXI4, AXI3, and AXI4-Lite protocol
violations. The AXI Protocol Checker is designed around the ARM System Verilog assertions
that have been converted into synthesizable HDL. When a protocol violation occurs, the AXI
Protocol Checker asserts the corresponding bit on the pc_status output vector. The
output vector bit mapping can be found in Table 2-6 and Table 2-7.
Bits of the pc_status vector are synchronously set when a protocol violation occurs.
Multiple bits can be triggered on the same or different cycles. When the bit within the
pc_status vector has been set, it remains asserted until either the connection has been
reset with aresetn or the core has been reset with system_resetn. The pc_asserted
output signal is also asserted while any bit of the pc_status vector is asserted.
Standards
The AXI interfaces conform to the Advanced Microcontroller Bus Architecture (AMBA®) AXI
version 4 specification from Advanced RISC Machine (ARM®), including the AXI4-Lite
control register interface subset. See ARM AMBA® AXI Protocol v2.0 [Ref 2].
Performance
This section includes information about the core performance.
Maximum Frequencies
The maximum frequency with a 64-bit AXI data width is 200 MHz.
Resource Utilization
Resources required for the AXI Protocol Checker have been estimated for the Kintex®-7
XC7K325T FPGA (Table 2-1). These values were generated using Vivado™ IP Catalog
v2012.4. They are derived from post-synthesis reports, and might change during MAP and
PAR.
Note: Resource utilization for UltraScale architecture devices is expected to be similar to 7 series
results.
Protocol Data Width ID Width Maximum Read/ Maximum READY LUTs FFs
Write Transactions Wait Cycles
64 0 32 16 528 591
64 0 32 0 437 501
64 0 2 16 429 527
64 0 2 0 340 437
AXI4-Lite
32 0 32 16 449 455
32 0 32 0 357 365
32 0 2 16 348 391
32 0 2 0 258 301
Port Descriptions
This section contains details about the AXI Protocol Checker ports.
Table 2‐6: AXI4/AXI3 and AXI4-Lite Protocol Checks and Descriptions (Cont’d)
Table 2‐6: AXI4/AXI3 and AXI4-Lite Protocol Checks and Descriptions (Cont’d)
Table 2‐6: AXI4/AXI3 and AXI4-Lite Protocol Checks and Descriptions (Cont’d)
Table 2‐6: AXI4/AXI3 and AXI4-Lite Protocol Checks and Descriptions (Cont’d)
Table 2‐6: AXI4/AXI3 and AXI4-Lite Protocol Checks and Descriptions (Cont’d)
aclk
aresetn
AXI AXI
Master Slave
AW/W/B
AR/R
X13126
Simulation
When simulating, the AXI Protocol Checker can be configured to print display messages in
the form of:
For example:
In this example, the core provides a debugging capability for simulation where the AXI
Protocol Checker can either finish or stop the simulation at the point of detecting the
violation.
IMPORTANT: Configure the core to ensure the core is not over-monitoring and wasting resources. An ID
width greater than 6 bits can lead to very large resource utilization by the core.
Clocking
The same aclk that is connected to both the AXI Master and AXI Slave should also be
connected to the AXI Protocol Checker.
Resets
System Reset and AXI Reset
At a minimum, the AXI Protocol Checker requires the aresetn signal. system_resetn
can be configured to clear the pc_status vector without resetting the AXI4 interface. Both
reset inputs are synchronous to aclk. The assertion of either reset clears the pc_status
vector and the pc_asserted output.
If system_resetn is enabled, the Protocol Checker can check the AXI4 specification that
defines the state of the interface following the de-assertion of aresetn. Protocol violation
notifications related to the required behavior of interface with respect to aresetn are
cleared using system_resetn.
When a system reset is not available, the system_resetn should be disabled. When this is
done, the following checks are not possible:
• AXI_ERRM_AWVALID_RESET
• AXI_ERRM_ARVALID_RESET
• AXI_ERRM_WVALID_RESET
• AXI_ERRM_RVALID_RESET
• AXI_ERRM_BVALID_RESET
• XILINX_AWREADY_RESET
• XILINX_WREADY_RESET
• XILINX_BREADY_RESET
• XILINX_ARREADY_RESET
• XILINX_RREADY_RESET
• Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994)
[Ref 3]
• Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 6]
• Vivado Design Suite User Guide: Getting Started (UG910) [Ref 8]
• Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 7]
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 6] and
the Vivado Design Suite User Guide: Getting Started (UG910) [Ref 8].
Note: Figures in this chapter are illustrations of the Vivado Integrated Design Environment (IDE).
This layout might vary from the current version.
Global Parameters
• Component Name: The base name of the output files generated for the core. Names
must begin with a letter and can be composed of any of the following characters: a to z,
0 to 9, and “_”.
• Connection Protocol: Specifies the type of interface for the AXI Protocol Checker to
monitor: AXI4, AXI3 or AXI4-Lite. Certain protocol checks are not performed based on
this parameter.
Note: This value is automatically set when using IP integrator.
• READ_WRITE Mode: Indicates which channels of the interface are active. When
READ_WRITE mode is selected, all five channels are active. In WRITE_ONLY mode, only
the AW, W, and B channels are active. In READ_ONLY mode, only AR and R channels are
active.
Note: This value is automatically set when using IP integrator.
• Address Width: Specifies the width of the awaddr and araddr signals to be
monitored. Protocol checks use these signals for validation of the transactions. For AXI4
and AXI3 protocols, the minimum width is 12 bits, and for AXI4-Lite, the minimum
width is 1 bit.
• Data Width: Specifies the width of the Write and Read data path interfaces and its
companion signals. Protocol checks use these signals for validation of the transactions.
For AXI4 and AXI3 protocols, the value can be any of: 32, 64, 128, 256, 512, or 1024 bits.
For AXI4-Lite, the value can be either 32 or 64 bits.
Note: This value is automatically set when using IP integrator.
• ID Width: This parameter specifies the width of the awid, arid, bid, wid (for AXI3)
and rid signals. This parameter is not available when the protocol is AXI4-Lite. The ID
width is used for transaction completion tracking and checking and will generate one
FIFO for each ID value.
Note: This value is automatically set when using IP integrator.
• Enable system reset interface: Enables the system_resetn port. When disabled, the
port is tied High.
User Parameters
Table 4-1 shows the relationship between the fields in the Vivado IDE and the User
Parameters (which can be viewed in the Tcl console).
Output Generation
The AXI Protocol Checker deliverables are organized in the directory <project_name>/
<project_name>.srcs/sources_1/ip/<component_name> and is designed as
the <ip_source_dir>.
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 6].
Required Constraints
There are no required constraints for this core.
Clock Frequencies
There are no clock frequency constraints for this core.
Clock Management
There are no clock management constraints for this core.
Clock Placement
There are no clock placement constraints for this core.
Banking
There are no banking constraints for this core.
Transceiver Placement
There are no transceiver placement constraints for this core.
Simulation
For details, see Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 7].
Debugging
This appendix includes details about resources available on the Xilinx Support website and
debugging tools.
Documentation
This product guide is the main document associated with the AXI Protocol Checker. This
guide, along with documentation related to all products that aid in the design process, can
be found on the Xilinx Support web page or by using the Xilinx Documentation Navigator.
Download the Xilinx Documentation Navigator from the Downloads page. For more
information about this tool and the features available, open the online help after
installation.
Answer Records
Answer Records include information about commonly encountered problems, helpful
information on how to resolve these problems, and any known issues with a Xilinx product.
Answer Records are created and maintained daily ensuring that users have access to the
most accurate information available.
Answer Records for this core can be located by using the Search Support box on the main
Xilinx support web page. To maximize your search results, use proper keywords such as
• Product name
• Tool message(s)
• Summary of the issue encountered
A filter search is available after results are returned to further target the results.
AR: 57790
Technical Support
Xilinx provides technical support at the Xilinx Support web page for this LogiCORE™ IP
product when used as described in the product documentation. Xilinx cannot guarantee
timing, functionality, or support if you do any of the following:
• Implement the solution in devices that are not defined in the documentation.
• Customize the solution beyond that allowed in the product documentation.
• Change any section of the design labeled DO NOT MODIFY.
To contact Xilinx Technical Support, navigate to the Xilinx Support web page.
General Checks
The AXI Protocol Checker design limits the types of problems one may encounter when
using the core. In the case where the interface is not fully specified, the system designer
must ensure that any unused inputs to the AXI Protocol Checker have been correctly tied off
based on the AXI Protocol that is to be monitored using Table 2-3, Table 2-4, or Table 2-5.
Debug Tools
Vivado Design Suite Debug Feature
The Vivado® Design Suite debug feature inserts logic analyzer and virtual I/O cores directly
into your design. The debug feature also allows you to set trigger conditions to capture
application and integrated block port signals in hardware. Captured signals can then be
analyzed. This feature represents the functionality in the Vivado IDE that is used for logic
debugging and validation of a design running in Xilinx devices in hardware.
The AXI4 Protocol Checker core supports probing using the Vivado ILA 2.0 core and the
Vivado Logic Analyzer. All of the protocol checks named in Table 2-3, Table 2-4, and
Table 2-5 are available as Unassigned Debug Nets in the synthesized design. More details
can be found in the Vivado Design Suite Tutorial: Programming and Debugging on the Vivado
Design Suite [Ref 5].
It is also possible to monitor all or one bit of the pc_status vector through any other
desired method.
• Check that aclk is connected to the same clock that is driving both the Master and
Slave interfaces.
• Check that aresetn is connected to the same reset that is driving both the Master and
Slave interfaces.
• Ensure that both aresetn and system_resetn (if enabled) are connected to
active-Low polarity.
• Ensure that aresetn is both synchronously asserted and released on aclk.
• Set the Maximum number of idle cycles for (AW|AR|W|R|B) READY monitoring to
0. This disables a recommended *VALID to *READY wait checks.
• If possible, reduce the ID Width. This directly reduces the number of ID tracker and
block RAMs.
• Reduce either or both of Maximum outstanding READ transactions PER ID or
Maximum outstanding WRITE transactions PER ID.
• Each bit of the pc_status vector consumes some amount of resources; therefore,
fewer bits observed reduces the overall foot print of the design.
Flags
No Flags Asserted
One simple test to check to see if the AXI Protocol Checker is correctly connected to the
interface is to not connect the pc_axi_arready or the pc_axi_awready input into the
protocol checker and to tie those ports to 0. This causes the pc_asserted output and
multiple bits in the pc_status vector to be asserted when AXI traffic begins because this
will violate all the AXI_ERRS_A*_STABLE protocol checks (bits 46 - 56). See Table 2-6 for the
descriptions of these checks.
Flags Asserted
If there are bits asserted in the pc_status vector and the source/reason of the violation
using Table 2-6 is not clear, move the AXI Protocol Checker “upstream” toward the AXI
Master generating the transactions.
Parameter Changes
There are no parameter changes.
Port Changes
There are no port changes.
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see Xilinx
Support.
References
These documents provide supplemental material useful with this product guide:
Revision History
The following table shows the revision history for this document.