<?xml version="1.0"?>
<!--
//=============================================================
//   Filename    : pci_3.0_rtl.xml
//   Type        : ABSTRACTION DEFINITION
// 	 Description : pci_3.0_rtl
//   Author : SPIRIT Schema Working Group
//   Version     : 1.0
//   Status      : RELEASED
//                                                             
//   Copyright (c) 2013 Accellera Systems Initiative Inc. 
//   1370 Trancas Street #163, Napa, CA 94558, USA
//   
//   Licensed under the Apache License, Version 2.0 (the 'License'); 
//   you may not use this file except in compliance with the License.  
//   You may obtain a copy of the License at                                            
//                                                                
//          http://www.apache.org/licenses/LICENSE-2.0            
//                                                                
//   Unless required by applicable law or agreed to in writing, software 
//   distributed under the License is distributed on an 'AS IS' BASIS, 
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
//   express or implied. See the License for the specific language 
//   governing permissions and limitations under the License.
//   
//   Suggestions for improvements to the provided example 
//   are welcome. They should be sent to the group's 
//   email Reflector:
//   
//          ip-xact@lists.accellera.org
//   
//   The current IP-XACT Technical Committee web page is:
//   
//          www.accellera.org/activities/committees/ip-xact
//   
//   The current official IP-XACT user Forum is :
//
//          http://forums.accellera.org/forum/30-ip-xact/
//   
//=============================================================     
-->
<spirit:abstractionDefinition xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
	<spirit:vendor>spiritconsortium.org</spirit:vendor>
	<spirit:library>busdef.pcisig</spirit:library>
	<spirit:name>pci_3.0_rtl</spirit:name>
	<spirit:version>1.0</spirit:version>
	<spirit:busType spirit:vendor="spiritconsortium.org" spirit:library="busdef.pcisig" spirit:name="pci_3.0" spirit:version="1.0"/>
	<spirit:extends spirit:vendor="spiritconsortium.org" spirit:library="busdef.pcisig" spirit:name="pci_2.3_rtl" spirit:version="1.0"/>
	<spirit:ports>
		<spirit:port>
			<spirit:logicalName>CLK</spirit:logicalName>
			<spirit:wire>
				<spirit:qualifier>
					<spirit:isClock>true</spirit:isClock>
				</spirit:qualifier>
				<spirit:onSystem>
					<spirit:group>system_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>RST_n</spirit:logicalName>
			<spirit:wire>
				<spirit:qualifier>
					<spirit:isReset>true</spirit:isReset>
				</spirit:qualifier>
				<spirit:onSystem>
					<spirit:group>system_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>AD</spirit:logicalName>
			<spirit:wire>
				<spirit:qualifier>
					<spirit:isAddress>true</spirit:isAddress>
					<spirit:isData>true</spirit:isData>
				</spirit:qualifier>
				<spirit:onMaster>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>CBE_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>PAR</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>FRAME_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>IRDY_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>TRDY_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>STOP_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>LOCK_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>IDSEL_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>idsel_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>DEVSEL_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>REQ_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>arbitration_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:presence>illegal</spirit:presence>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>GNT_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>arbitration_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:presence>illegal</spirit:presence>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>PERR_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>SERR_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>error_reporting_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>INTA_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>interrupt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>INTB_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>interrupt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>INTC_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>interrupt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>INTD_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>interrupt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>PAR64</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>REQ64_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>ACK64_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>CLKRUN_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>system_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>M66EN</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>system_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>PME_n</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>power_mgmt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>Vaux33</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>power_mgmt_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>SMBCLK</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>system_management_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>out</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>in</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
		<spirit:port>
			<spirit:logicalName>SMBDAT</spirit:logicalName>
			<spirit:wire>
				<spirit:onSystem>
					<spirit:group>system_management_group</spirit:group>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSystem>
				<spirit:onMaster>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onMaster>
				<spirit:onSlave>
					<spirit:width>1</spirit:width>
					<spirit:direction>inout</spirit:direction>
				</spirit:onSlave>
			</spirit:wire>
		</spirit:port>
	</spirit:ports>
</spirit:abstractionDefinition>
