<?xml version="1.0" encoding="UTF-8"?>
<!--
	// =============================================================================
	// This confidential and proprietary software may be used only as
	// authorised by a licensing agreement from ARM Limited
	//   (C) COPYRIGHT 2006,2007 ARM Limited
	//       ALL RIGHTS RESERVED
	// The entire notice above must be reproduced on all authorised
	// copies and copies may only be made to the extent permitted
	// by a licensing agreement from ARM Limited.
	//
	// =============================================================================
	//
	// Purpose :
	//           This defines the AMBA Advanced eXtensible Interconnect Bus (AXI)
	//
	// =============================================================================
-->
<ipxact:abstractionDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                              xmlns:ipxact="http://www.accellera.org/XMLSchema/IPXACT/1685-2014"
                              xsi:schemaLocation="http://www.accellera.org/XMLSchema/IPXACT/1685-2014 http://www.accellera.org/XMLSchema/IPXACT/1685-2014/index.xsd">
   <ipxact:vendor>amba.com</ipxact:vendor>
   <ipxact:library>AMBA3</ipxact:library>
   <ipxact:name>AXI_rtl</ipxact:name>
   <ipxact:version>r1p0_5</ipxact:version>
   <ipxact:busType vendor="amba.com" library="AMBA3" name="AXI" version="r1p0_5"/>
   <ipxact:ports><!-- Global signals -->
<ipxact:port>
         <ipxact:logicalName>ACLK</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isClock>true</ipxact:isClock>
            </ipxact:qualifier>
            <ipxact:onSystem>
               <ipxact:group>axi_clk</ipxact:group>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSystem>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
            <ipxact:requiresDriver driverType="clock">true</ipxact:requiresDriver>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARESETn</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isReset>true</ipxact:isReset>
            </ipxact:qualifier>
            <ipxact:onSystem>
               <ipxact:group>axi_reset</ipxact:group>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSystem>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
            <ipxact:requiresDriver driverType="singleShot">true</ipxact:requiresDriver>
         </ipxact:wire>
      </ipxact:port>
      <!-- Write address channel signals -->
<ipxact:port>
         <ipxact:logicalName>AWID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWADDR</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isAddress>true</ipxact:isAddress>
            </ipxact:qualifier>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWLEN</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWSIZE</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWBURST</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWLOCK</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWCACHE</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWPROT</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWVALID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>AWREADY</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Write data channel signals -->
<ipxact:port>
         <ipxact:logicalName>WID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WDATA</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isData>true</ipxact:isData>
            </ipxact:qualifier>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WSTRB</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WLAST</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WVALID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WREADY</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Write response channel signals -->
<ipxact:port>
         <ipxact:logicalName>BID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>BRESP</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>BVALID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>BREADY</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Read address channel signals -->
<ipxact:port>
         <ipxact:logicalName>ARID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARADDR</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isAddress>true</ipxact:isAddress>
            </ipxact:qualifier>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARLEN</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARSIZE</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARBURST</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARLOCK</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARCACHE</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>4</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARPROT</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>3</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARVALID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARREADY</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Read data channel signals -->
<ipxact:port>
         <ipxact:logicalName>RID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RDATA</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:qualifier>
               <ipxact:isData>true</ipxact:isData>
            </ipxact:qualifier>
            <ipxact:onMaster>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RRESP</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>2</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RLAST</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RVALID</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RREADY</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Low power channel signals -->
<ipxact:port>
         <ipxact:logicalName>CSYSREQ</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onSystem>
               <ipxact:group>axi_lowpwr</ipxact:group>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSystem>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>CSYSACK</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onSystem>
               <ipxact:group>axi_lowpwr</ipxact:group>
            </ipxact:onSystem>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>CACTIVE</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onSystem>
               <ipxact:group>axi_lowpwr</ipxact:group>
            </ipxact:onSystem>
            <ipxact:onMaster>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:width>1</ipxact:width>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <!-- Optional user signals -->
<ipxact:port>
         <ipxact:logicalName>AWUSER</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>WUSER</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>BUSER</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>ARUSER</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
      <ipxact:port>
         <ipxact:logicalName>RUSER</ipxact:logicalName>
         <ipxact:wire>
            <ipxact:onMaster>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:onMaster>
            <ipxact:onSlave>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:onSlave>
         </ipxact:wire>
      </ipxact:port>
   </ipxact:ports>
</ipxact:abstractionDefinition>