<?xml version="1.0" encoding="UTF-8"?>
<!--
// Description : ahbSlave.xml
// Author : SPIRIT Schema Working Group 
// Version: 1.0
// 
// Revision:    $Revision: 1506 $
// Date:        $Date: 2009-04-25 23:51:56 -0700 (Sat, 25 Apr 2009) $
// 
// Copyright (c) 2006, 2008, 2009 The SPIRIT Consortium.
// 
// This work forms part of a deliverable of The SPIRIT Consortium.
// 
// Use of these materials are governed by the legal terms and conditions
// outlined in the disclaimer available from www.spiritconsortium.org.
// 
// This source file is provided on an AS IS basis.  The SPIRIT
// Consortium disclaims any warranty express or implied including
// any warranty of merchantability and fitness for use for a
// particular purpose.
// 
// The user of the source file shall indemnify and hold The SPIRIT
// Consortium and its members harmless from any damages or liability.
// Users are requested to provide feedback to The SPIRIT Consortium
// using either mailto:feedback@lists.spiritconsortium.org or the forms at 
// http://www.spiritconsortium.org/about/contact_us/
// 
// This file may be copied, and distributed, with or without
// modifications; this notice must be included on any copy.
-->
<ipxact:component xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:ipxact="http://www.accellera.org/XMLSchema/IPXACT/1685-2022"
                  xsi:schemaLocation="http://www.accellera.org/XMLSchema/IPXACT/1685-2022 http://www.accellera.org/XMLSchema/IPXACT/1685-2022/index.xsd">
   <ipxact:vendor>spiritconsortium.org</ipxact:vendor>
   <ipxact:library>Addressing</ipxact:library>
   <ipxact:name>ahbSlave</ipxact:name>
   <ipxact:version>1.0</ipxact:version>
   <ipxact:busInterfaces>
      <ipxact:busInterface>
         <ipxact:name>AHBSlave</ipxact:name>
         <ipxact:busType library="AMBA2" name="AHB" vendor="amba.com" version="r2p0_6"/>
         <ipxact:abstractionTypes>
            <ipxact:abstractionType>
               <ipxact:abstractionRef library="AMBA2"
                                      name="AHB_rtl"
                                      vendor="amba.com"
                                      version="r2p0_6"/>
               <ipxact:portMaps>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HSELx</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hsel_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HADDR</ipxact:name>
                        <ipxact:range>
                           <ipxact:left>addr + 32 - 1</ipxact:left>
                           <ipxact:right>addr</ipxact:right>
                        </ipxact:range>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>haddr_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HWRITE</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hwrite_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HTRANS</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>htrans_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HSIZE</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hsize_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HBURST</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hburst_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HWDATA</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hwdata_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HPROT</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hprot_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HREADY</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hreadyi_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HMASTER</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hmaster_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HMASTLOCK</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hmastlock_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HREADYOUT</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hreadyo_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HRESP</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hresp_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HRDATA</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hrdata_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HSPLITx</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>hsplit_s</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HCLK</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>clk</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>HRESETn</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>rst</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
               </ipxact:portMaps>
            </ipxact:abstractionType>
         </ipxact:abstractionTypes>
         <ipxact:target>
            <ipxact:memoryMapRef memoryMapRef="ambaAHB"/>
         </ipxact:target>
         <ipxact:bitsInLau>8</ipxact:bitsInLau>
         <ipxact:bitSteering>sSteer</ipxact:bitSteering>
         <ipxact:endianness>little</ipxact:endianness>
         <ipxact:parameters>
            <ipxact:parameter parameterId="addr"
                              prompt="Least mapped LSB of the address"
                              resolve="user"
                              type="longint">
               <ipxact:name>addr</ipxact:name>
               <ipxact:value>0</ipxact:value>
            </ipxact:parameter>
            <ipxact:parameter choiceRef="bitSteer"
                              configGroups="requiredConfig"
                              parameterId="sSteer"
                              prompt="bitSteering:"
                              resolve="user"
                              type="string">
               <ipxact:name>sSteer</ipxact:name>
               <ipxact:value>off</ipxact:value>
            </ipxact:parameter>
         </ipxact:parameters>
      </ipxact:busInterface>
   </ipxact:busInterfaces>
   <ipxact:memoryMaps>
      <ipxact:memoryMap>
         <ipxact:name>ambaAHB</ipxact:name>
         <ipxact:addressBlock>
            <ipxact:name>defaultid4489935</ipxact:name>
            <ipxact:baseAddress>mmBase</ipxact:baseAddress>
            <ipxact:range>mmRange</ipxact:range>
            <ipxact:width>mmWidth</ipxact:width>
            <ipxact:usage>memory</ipxact:usage>
            <ipxact:accessPolicies>
               <ipxact:accessPolicy>
                  <ipxact:access>read-write</ipxact:access>
               </ipxact:accessPolicy>
            </ipxact:accessPolicies>
            <ipxact:parameters>
               <ipxact:parameter configGroups="requiredConfig"
                                 parameterId="mmBase"
                                 prompt="memoryMap Base address:"
                                 resolve="user"
                                 type="longint">
                  <ipxact:name>mmBase</ipxact:name>
                  <ipxact:value>'h00000000</ipxact:value>
               </ipxact:parameter>
               <ipxact:parameter configGroups="requiredConfig"
                                 parameterId="mmRange"
                                 prompt="memoryMap Range (bytes):"
                                 resolve="user"
                                 type="longint">
                  <ipxact:name>mmRange</ipxact:name>
                  <ipxact:value>'h100</ipxact:value>
               </ipxact:parameter>
               <ipxact:parameter configGroups="requiredConfig"
                                 parameterId="mmWidth"
                                 prompt="memoryMap Width:"
                                 resolve="user"
                                 type="longint">
                  <ipxact:name>mmWidth</ipxact:name>
                  <ipxact:value>32</ipxact:value>
               </ipxact:parameter>
            </ipxact:parameters>
         </ipxact:addressBlock>
      </ipxact:memoryMap>
   </ipxact:memoryMaps>
   <ipxact:model>
      <ipxact:ports>
         <ipxact:port>
            <ipxact:name>clk</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>rst</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hsel_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>haddr_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>31</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hwrite_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>htrans_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>1</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hsize_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>2</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hburst_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>2</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hwdata_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>dataWidth - 1</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hprot_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>3</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hreadyi_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hmaster_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>3</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hmastlock_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>in</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hreadyo_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>out</ipxact:direction>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hresp_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>out</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>1</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hrdata_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>out</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>dataWidth - 1</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>hsplit_s</ipxact:name>
            <ipxact:wire>
               <ipxact:direction>out</ipxact:direction>
               <ipxact:vectors>
                  <ipxact:vector>
                     <ipxact:left>15</ipxact:left>
                     <ipxact:right>0</ipxact:right>
                  </ipxact:vector>
               </ipxact:vectors>
            </ipxact:wire>
         </ipxact:port>
      </ipxact:ports>
   </ipxact:model>
   <ipxact:choices>
      <ipxact:choice>
         <ipxact:name>bitSteer</ipxact:name>
         <ipxact:enumeration text="on">on</ipxact:enumeration>
         <ipxact:enumeration text="off">off</ipxact:enumeration>
      </ipxact:choice>
   </ipxact:choices>
   <ipxact:parameters>
      <ipxact:parameter configGroups="requiredConfig"
                        parameterId="dataWidth"
                        prompt="Data width:"
                        resolve="user"
                        type="longint">
         <ipxact:name>width</ipxact:name>
         <ipxact:value>32</ipxact:value>
      </ipxact:parameter>
   </ipxact:parameters>
</ipxact:component>
