<?xml version="1.0" encoding="UTF-8"?>
<!--
// 
// Revision:    $Revision: 1506 $
// Date:        $Date: 2009-04-25 23:51:56 -0700 (Sat, 25 Apr 2009) $
// 
// Copyright (c) 2005, 2006, 2007, 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; but 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>Leon2TLM</ipxact:library>
   <ipxact:name>ahbbus22</ipxact:name>
   <ipxact:version>1.4</ipxact:version>
   <ipxact:busInterfaces>
      <ipxact:busInterface>
         <ipxact:name>AHB_MirroredMaster0</ipxact:name>
         <ipxact:busType library="AMBA2" name="AHB" vendor="amba.com" version="r2p0_6"/>
         <ipxact:abstractionTypes>
            <ipxact:abstractionType>
               <ipxact:abstractionRef library="abstractiondef.tlm"
                                      name="ahb_pv"
                                      vendor="spiritconsortium.org"
                                      version="1.4"/>
               <ipxact:portMaps>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>PV_TRANS</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>target_port</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
               </ipxact:portMaps>
            </ipxact:abstractionType>
         </ipxact:abstractionTypes>
         <ipxact:mirroredInitiator/>
      </ipxact:busInterface>
      <ipxact:busInterface>
         <ipxact:name>AHB_MirroredMaster1</ipxact:name>
         <ipxact:busType library="AMBA2" name="AHB" vendor="amba.com" version="r2p0_6"/>
         <ipxact:abstractionTypes>
            <ipxact:abstractionType>
               <ipxact:abstractionRef library="abstractiondef.tlm"
                                      name="ahb_pv"
                                      vendor="spiritconsortium.org"
                                      version="1.4"/>
               <ipxact:portMaps>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>PV_TRANS</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>target_port</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
               </ipxact:portMaps>
            </ipxact:abstractionType>
         </ipxact:abstractionTypes>
         <ipxact:mirroredInitiator/>
      </ipxact:busInterface>
      <ipxact:busInterface>
         <ipxact:name>AHB_MirroredSlave0</ipxact:name>
         <ipxact:busType library="AMBA2" name="AHB" vendor="amba.com" version="r2p0_6"/>
         <ipxact:abstractionTypes>
            <ipxact:abstractionType>
               <ipxact:abstractionRef library="abstractiondef.tlm"
                                      name="ahb_pv"
                                      vendor="spiritconsortium.org"
                                      version="1.4"/>
               <ipxact:portMaps>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>PV_TRANS</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>initiator_port</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
               </ipxact:portMaps>
            </ipxact:abstractionType>
         </ipxact:abstractionTypes>
         <ipxact:mirroredTarget>
            <ipxact:baseAddresses>
               <ipxact:remapAddresses>
                  <ipxact:remapAddress>start_addr_slv0_mirror</ipxact:remapAddress>
               </ipxact:remapAddresses>
               <ipxact:range>range_slv0_mirror</ipxact:range>
            </ipxact:baseAddresses>
         </ipxact:mirroredTarget>
         <ipxact:parameters>
            <ipxact:parameter choiceRef="BaseAddressChoices"
                              configGroups="requiredConfig"
                              parameterId="start_addr_slv0_mirror"
                              prompt="Slave 0 Starting Address:"
                              resolve="user"
                              type="longint">
               <ipxact:name>start_addr_slv0_mirror</ipxact:name>
               <ipxact:value>'h00000000</ipxact:value>
            </ipxact:parameter>
            <ipxact:parameter configGroups="requiredConfig"
                              parameterId="range_slv0_mirror"
                              prompt="Slave 0 Range:"
                              resolve="user"
                              type="longint">
               <ipxact:name>range_slv0_mirror</ipxact:name>
               <ipxact:value>'h00010000</ipxact:value>
            </ipxact:parameter>
         </ipxact:parameters>
      </ipxact:busInterface>
      <ipxact:busInterface>
         <ipxact:name>AHB_MirroredSlave1</ipxact:name>
         <ipxact:busType library="AMBA2" name="AHB" vendor="amba.com" version="r2p0_6"/>
         <ipxact:abstractionTypes>
            <ipxact:abstractionType>
               <ipxact:abstractionRef library="abstractiondef.tlm"
                                      name="ahb_pv"
                                      vendor="spiritconsortium.org"
                                      version="1.4"/>
               <ipxact:portMaps>
                  <ipxact:portMap>
                     <ipxact:logicalPort>
                        <ipxact:name>PV_TRANS</ipxact:name>
                     </ipxact:logicalPort>
                     <ipxact:physicalPort>
                        <ipxact:name>initiator_port</ipxact:name>
                     </ipxact:physicalPort>
                  </ipxact:portMap>
               </ipxact:portMaps>
            </ipxact:abstractionType>
         </ipxact:abstractionTypes>
         <ipxact:mirroredTarget>
            <ipxact:baseAddresses>
               <ipxact:remapAddresses>
                  <ipxact:remapAddress>start_addr_slv1_mirror</ipxact:remapAddress>
               </ipxact:remapAddresses>
               <ipxact:range>range_slv1_mirror</ipxact:range>
            </ipxact:baseAddresses>
         </ipxact:mirroredTarget>
         <ipxact:parameters>
            <ipxact:parameter choiceRef="BaseAddressChoices"
                              configGroups="requiredConfig"
                              parameterId="start_addr_slv1_mirror"
                              prompt="Slave 1 Starting Address:"
                              resolve="user"
                              type="longint">
               <ipxact:name>start_addr_slv1_mirror</ipxact:name>
               <ipxact:value>'h10000000</ipxact:value>
            </ipxact:parameter>
            <ipxact:parameter configGroups="requiredConfig"
                              parameterId="range_slv1_mirror"
                              prompt="Slave 1 Range:"
                              resolve="user"
                              type="longint">
               <ipxact:name>range_slv1_mirror</ipxact:name>
               <ipxact:value>'h00010000</ipxact:value>
            </ipxact:parameter>
         </ipxact:parameters>
      </ipxact:busInterface>
   </ipxact:busInterfaces>
   <ipxact:channels>
      <ipxact:channel>
         <ipxact:name>AHBChannel</ipxact:name>
         <ipxact:busInterfaceRef>
            <ipxact:localName>AHB_MirroredMaster0</ipxact:localName>
         </ipxact:busInterfaceRef>
         <ipxact:busInterfaceRef>
            <ipxact:localName>AHB_MirroredMaster1</ipxact:localName>
         </ipxact:busInterfaceRef>
         <ipxact:busInterfaceRef>
            <ipxact:localName>AHB_MirroredSlave0</ipxact:localName>
         </ipxact:busInterfaceRef>
         <ipxact:busInterfaceRef>
            <ipxact:localName>AHB_MirroredSlave1</ipxact:localName>
         </ipxact:busInterfaceRef>
      </ipxact:channel>
   </ipxact:channels>
   <ipxact:model>
      <ipxact:views>
         <ipxact:view>
            <ipxact:name>TLM_PV</ipxact:name>
            <ipxact:envIdentifier>:*Simulation:</ipxact:envIdentifier>
            <ipxact:componentInstantiationRef>TLM_PV</ipxact:componentInstantiationRef>
         </ipxact:view>
      </ipxact:views>
      <ipxact:instantiations>
         <ipxact:componentInstantiation>
            <ipxact:name>TLM_PV</ipxact:name>
            <ipxact:language>systemc</ipxact:language>
            <ipxact:moduleName>ahbbus</ipxact:moduleName>
            <ipxact:moduleParameters>
               <ipxact:moduleParameter dataType="const char*" usageType="nontyped">
                  <ipxact:name>mapfile</ipxact:name>
                  <ipxact:value>mapfile</ipxact:value>
               </ipxact:moduleParameter>
            </ipxact:moduleParameters>
            <ipxact:fileSetRef>
               <ipxact:localName>sourceCode</ipxact:localName>
            </ipxact:fileSetRef>
         </ipxact:componentInstantiation>
      </ipxact:instantiations>
      <ipxact:ports>
         <ipxact:port>
            <ipxact:name>target_port</ipxact:name>
            <ipxact:transactional>
               <ipxact:initiative>provides</ipxact:initiative>
               <ipxact:transTypeDefs>
                  <ipxact:transTypeDef>
                     <ipxact:typeName>pv_target_port</ipxact:typeName>
                     <ipxact:typeDefinition>pv_target_port.h</ipxact:typeDefinition>
                     <ipxact:typeParameters>
                        <ipxact:serviceTypeDef>
                           <ipxact:typeName implicit="true">OSCI_TLM_PV</ipxact:typeName>
                           <ipxact:typeParameters>
                              <ipxact:typeParameter>
                                 <ipxact:name>typedef1</ipxact:name>
                                 <ipxact:value>ADDRESS_TYPE</ipxact:value>
                              </ipxact:typeParameter>
                              <ipxact:typeParameter>
                                 <ipxact:name>typedef2</ipxact:name>
                                 <ipxact:value>DATA_TYPE</ipxact:value>
                              </ipxact:typeParameter>
                           </ipxact:typeParameters>
                        </ipxact:serviceTypeDef>
                     </ipxact:typeParameters>
                  </ipxact:transTypeDef>
               </ipxact:transTypeDefs>
            </ipxact:transactional>
         </ipxact:port>
         <ipxact:port>
            <ipxact:name>initiator_port</ipxact:name>
            <ipxact:transactional>
               <ipxact:initiative>requires</ipxact:initiative>
               <ipxact:transTypeDefs>
                  <ipxact:transTypeDef>
                     <ipxact:typeName>pv_initiator_port</ipxact:typeName>
                     <ipxact:typeDefinition>pv_initiator_port.h</ipxact:typeDefinition>
                     <ipxact:typeParameters>
                        <ipxact:serviceTypeDef>
                           <ipxact:typeName implicit="true">OSCI_TLM_PV</ipxact:typeName>
                           <ipxact:typeParameters>
                              <ipxact:typeParameter>
                                 <ipxact:name>typedef1</ipxact:name>
                                 <ipxact:value>ADDRESS_TYPE</ipxact:value>
                              </ipxact:typeParameter>
                              <ipxact:typeParameter>
                                 <ipxact:name>typedef2</ipxact:name>
                                 <ipxact:value>DATA_TYPE</ipxact:value>
                              </ipxact:typeParameter>
                           </ipxact:typeParameters>
                        </ipxact:serviceTypeDef>
                     </ipxact:typeParameters>
                  </ipxact:transTypeDef>
               </ipxact:transTypeDefs>
            </ipxact:transactional>
         </ipxact:port>
      </ipxact:ports>
   </ipxact:model>
   <ipxact:choices>
      <ipxact:choice>
         <ipxact:name>BaseAddressChoices</ipxact:name>
         <ipxact:enumeration text="0x00000000">0x00000000</ipxact:enumeration>
         <ipxact:enumeration text="0x10000000">0x10000000</ipxact:enumeration>
         <ipxact:enumeration text="0x20000000">0x20000000</ipxact:enumeration>
         <ipxact:enumeration text="0x30000000">0x30000000</ipxact:enumeration>
         <ipxact:enumeration text="0x40000000">0x40000000</ipxact:enumeration>
         <ipxact:enumeration text="0x50000000">0x50000000</ipxact:enumeration>
         <ipxact:enumeration text="0x60000000">0x60000000</ipxact:enumeration>
         <ipxact:enumeration text="0x70000000">0x70000000</ipxact:enumeration>
         <ipxact:enumeration text="0x80000000">0x80000000</ipxact:enumeration>
         <ipxact:enumeration text="0x90000000">0x90000000</ipxact:enumeration>
         <ipxact:enumeration text="0xa0000000">0xa0000000</ipxact:enumeration>
         <ipxact:enumeration text="0xb0000000">0xb0000000</ipxact:enumeration>
         <ipxact:enumeration text="0xc0000000">0xc0000000</ipxact:enumeration>
         <ipxact:enumeration text="0xd0000000">0xd0000000</ipxact:enumeration>
         <ipxact:enumeration text="0xe0000000">0xe0000000</ipxact:enumeration>
         <ipxact:enumeration text="0xf0000000">0xf0000000</ipxact:enumeration>
      </ipxact:choice>
   </ipxact:choices>
   <ipxact:fileSets>
      <ipxact:fileSet>
         <ipxact:name>sourceCode</ipxact:name>
         <ipxact:file>
            <ipxact:name>tlmsrc/ahbbus.h</ipxact:name>
            <ipxact:fileType>systemCSource</ipxact:fileType>
            <ipxact:isIncludeFile externalDeclarations="true">true</ipxact:isIncludeFile>
            <ipxact:logicalName>ahbbus</ipxact:logicalName>
            <ipxact:dependency>../../PV</ipxact:dependency>
         </ipxact:file>
         <ipxact:file>
            <ipxact:name>../../PV/pv_router.h</ipxact:name>
            <ipxact:fileType>unknown</ipxact:fileType>
            <ipxact:isIncludeFile>true</ipxact:isIncludeFile>
         </ipxact:file>
         <ipxact:file>
            <ipxact:name>../../PV/user_types.h</ipxact:name>
            <ipxact:fileType>unknown</ipxact:fileType>
            <ipxact:isIncludeFile>true</ipxact:isIncludeFile>
         </ipxact:file>
      </ipxact:fileSet>
   </ipxact:fileSets>
   <ipxact:parameters>
      <ipxact:parameter parameterId="mapfile" resolve="user">
         <ipxact:name>mapfile</ipxact:name>
         <ipxact:value>ahbbus22MapFile.map</ipxact:value>
      </ipxact:parameter>
   </ipxact:parameters>
</ipxact:component>
