OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [ip-xact/] [1685-2014/] [component.xsd] - Rev 135

Compare with Previous | Blame | View Log

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Erwin de Kock (Philips Electronics Nederland BV) -->
<!--
// Description : component.xsd
// Author: The Accellera System Initiative IP-XACT Schema Working Group
// 
// Revision:    $Revision: 1537 $
// Date:        $Date: 2010-02-26 13:28:40 -0800 (Fri, 26 Feb 2010) $
// 
// Copyright (c) 2005 - 2012 Accellera Systems Initiative Inc. 
// All rights reserved.
// 
// This source file is provided on an AS IS basis. The Accellera 
// Systems Initiative 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 Accellera 
// Systems Initiative and its members harmless from any damages or liability.
// 
// This file may be copied, and distributed, WITHOUT
// modifications; this notice must be included on any copy.
// 
// This schema shall not be modified, adapted, altered, sublicensed, nor
// any derivative works shall be created based upon the schema.  The
// intended and allowed uses of the schema include:
// 
//  o Creating and validating XML documents that conform to the schema
// 
//  o Building software programs and systems based on the schema
// 
//  o Distributing verbatim copy of the schema as long as the full text
//  of this license is included in all copies of the schema.
//  Specifically, a tool may include full copies of the schema, and these
//  copies may be distributed by the tool provider directly.  A link or
//  URL to the original of the schema is inherent in the schema URI.
// 
//  o Documents which are validated against this schema may also
//  reference additional schema. These additional schemas may provide for
//  validation of elements and attributes at the extension points
//  explicitly and implicitly included in the IEEE 1685-???? standard.
// 
//  o No right to create new schemas derived from parts of this base
//  schema is granted pursuant to this License.
// 
// Users are requested to provide feedback to The Accellera Systems 
// Initiative IP-XACT Schema Working Group using: 
// mailto:ip-xact-swg@lists.accellera.org
 -->
<xs:schema xmlns:ipxact="http://www.accellera.org/XMLSchema/IPXACT/1685-2014" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.accellera.org/XMLSchema/IPXACT/1685-2014" elementFormDefault="qualified">
        <xs:include schemaLocation="busInterface.xsd"/>
        <xs:include schemaLocation="identifier.xsd"/>
        <xs:include schemaLocation="generator.xsd"/>
        <xs:include schemaLocation="commonStructures.xsd"/>
        <xs:include schemaLocation="model.xsd"/>
        <xs:include schemaLocation="subInstances.xsd"/>
        <xs:include schemaLocation="constraints.xsd"/>
        <xs:complexType name="componentType">
                <xs:annotation>
                        <xs:documentation>Component-specific extension to componentType</xs:documentation>
                </xs:annotation>
                <xs:sequence>
                        <xs:group ref="ipxact:versionedIdentifier"/>
                        <xs:element ref="ipxact:busInterfaces" minOccurs="0"/>
                        <xs:element ref="ipxact:indirectInterfaces" minOccurs="0"/>
                        <xs:element ref="ipxact:channels" minOccurs="0"/>
      <xs:element ref="ipxact:remapStates" minOccurs="0"/>
                <xs:element ref="ipxact:addressSpaces" minOccurs="0"/>
                        <xs:element ref="ipxact:memoryMaps" minOccurs="0"/>
                        <xs:element ref="ipxact:model" minOccurs="0"/>
                        <xs:element ref="ipxact:componentGenerators" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>Generator list is tools-specific.</xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element ref="ipxact:choices" minOccurs="0"/>
                        <xs:element ref="ipxact:fileSets" minOccurs="0"/>
                        <xs:element name="whiteboxElements" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>A list of whiteboxElements</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="whiteboxElement" type="ipxact:whiteboxElementType" maxOccurs="unbounded">
                                                        <xs:annotation>
                                                                <xs:documentation>A whiteboxElement is a useful way to identify elements of a component that can not be identified through other means such as internal signals and non-software accessible registers.</xs:documentation>
                                                        </xs:annotation>
                                                </xs:element>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="cpus" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>cpu's in the component</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="cpu" maxOccurs="unbounded">
                                                        <xs:annotation>
                                                                <xs:documentation>Describes a processor in this component.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:complexType>
                                                                <xs:sequence>
                                                                        <xs:group ref="ipxact:nameGroup">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>The name of the cpu instance relative to the platform core.</xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:group>
                                                                        <xs:element ref="ipxact:isPresent" minOccurs="0"/>
                                                                        <xs:element ref="ipxact:addressSpaceRef" maxOccurs="unbounded">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>Indicates which address space maps into this cpu.</xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:element>
                                                                        <xs:element ref="ipxact:parameters" minOccurs="0">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>Data specific to the cpu.</xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:element>
                                                                        <xs:element ref="ipxact:vendorExtensions" minOccurs="0"/>
                                                                </xs:sequence>
                                                                <xs:attributeGroup ref="ipxact:id.att"/>
                                                        </xs:complexType>
                                                </xs:element>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="otherClockDrivers" type="ipxact:otherClocks" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>Defines a set of clock drivers that are not directly associated with an input port of the component.</xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element name="resetTypes" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>A list of user defined resetTypes applicable to this component.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="resetType" maxOccurs="unbounded">
                                                        <xs:annotation>
                                                                <xs:documentation>A user defined reset policy</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:complexType>
                                                                <xs:sequence>
                                                                        <xs:group ref="ipxact:nameGroup"/>
                                                                        <xs:element ref="ipxact:vendorExtensions" minOccurs="0"/>
                                                                </xs:sequence>
                                                                <xs:attributeGroup ref="ipxact:id.att"/>
                                                        </xs:complexType>
                                                </xs:element>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                        <xs:element ref="ipxact:description" minOccurs="0"/>
                        <xs:element ref="ipxact:parameters" minOccurs="0"/>
                        <xs:element ref="ipxact:assertions" minOccurs="0"/>
                        <xs:element ref="ipxact:vendorExtensions" minOccurs="0"/>
                </xs:sequence>
                <xs:attributeGroup ref="ipxact:id.att"/>
        </xs:complexType>
        <xs:element name="component" type="ipxact:componentType">
                <xs:annotation>
                        <xs:documentation>This is the root element for all non platform-core components.</xs:documentation>
                </xs:annotation>
                <xs:unique name="fieldIDKey">
                        <xs:selector xpath=".//ipxact:field"/>
                        <xs:field xpath="@fieldID"/>
                </xs:unique>
                <xs:keyref name="indirectDataFieldIDRef" refer="ipxact:fieldIDKey">
                        <xs:selector xpath=".//ipxact:indirectInterface/ipxact:indirectDataRef"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:keyref name="indirectAddressFieldIDRef" refer="ipxact:fieldIDKey">
                        <xs:selector xpath=".//ipxact:indirectInterface/ipxact:indirectAddressRef"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:key name="indirectInterfaceKey">
                        <xs:selector xpath="ipxact:indirectInterfaces/ipxact:indirectInterface"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:key name="interfaceKey">
                        <xs:selector xpath="ipxact:busInterfaces/ipxact:busInterface"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="interfaceRef" refer="ipxact:interfaceKey">
                        <xs:selector xpath="ipxact:busInterfaces/ipxact:busInterface/ipxact:slave/ipxact:bridge"/>
                        <xs:field xpath="@masterRef"/>
                </xs:keyref>
                <xs:keyref name="channelInterfaceRef" refer="ipxact:interfaceKey">
                        <xs:selector xpath="ipxact:channels/ipxact:channel/ipxact:busInterfaceRef/ipxact:localName"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:keyref name="subspaceMapRef" refer="ipxact:interfaceKey">
                        <xs:selector xpath=".//ipxact:subspaceMap"/>
                        <xs:field xpath="@masterRef"/>
                </xs:keyref>
                <xs:key name="addressSpaceKey">
                        <xs:selector xpath="ipxact:addressSpaces/ipxact:addressSpace"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="addressSpaceRef" refer="ipxact:addressSpaceKey">
                        <xs:selector xpath=".//ipxact:addressSpaceRef"/>
                        <xs:field xpath="@addressSpaceRef"/>
                </xs:keyref>
                <xs:key name="memoryMapKey">
                        <xs:selector xpath="ipxact:memoryMaps/ipxact:memoryMap"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="memoryMapRef" refer="ipxact:memoryMapKey">
                        <xs:selector xpath=".//ipxact:memoryMapRef"/>
                        <xs:field xpath="@memoryMapRef"/>
                </xs:keyref>
                <xs:keyref name="indirectMemoryMapRef" refer="ipxact:memoryMapKey">
                        <xs:selector xpath="ipxact:indirectInterfaces/ipxact:indirectInterface/ipxact:memoryMapRef"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:unique name="cpuNameConstraint">
                        <xs:selector xpath="ipxact:cpus/ipxact:cpu"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:unique>
                <xs:unique name="parameterConstraint">
                        <xs:selector xpath=".//ipxact:parameter | .//ipxact:moduleParameter"/>
                        <xs:field xpath="@parameterId"/>
                </xs:unique>
                <xs:unique name="resetTypeKey">
                        <xs:selector xpath="ipxact:resetTypes/ipxact:resetType"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:unique>
                <xs:keyref name="resetTypeRef" refer="ipxact:resetTypeKey">
                        <xs:selector xpath=".//ipxact:field/ipxact:resets/ipxact:reset  | .//ipxact:ports/ipxact:port/ipxact:isReset"/>
                        <xs:field xpath="@resetTypeRef"/>
                </xs:keyref>
                <xs:key name="componentChoiceKey">
                        <xs:selector xpath="ipxact:choices/ipxact:choice/ipxact:name"/>
                        <xs:field xpath="."/>
                </xs:key>
                <xs:keyref name="componentChoiceRef" refer="ipxact:componentChoiceKey">
                        <xs:selector xpath=".//ipxact:parameter | .//ipxact:moduleParameter"/>
                        <xs:field xpath="@choiceRef"/>
                </xs:keyref>
                <xs:key name="componentViewKey">
                        <xs:selector xpath="ipxact:model/ipxact:views/ipxact:view"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="componentTypeDefViewRef" refer="ipxact:componentViewKey">
                        <xs:selector xpath=".//ipxact:viewRef"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:key name="fileSetKey">
                        <xs:selector xpath=".//ipxact:fileSet"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="fileSetRef" refer="ipxact:fileSetKey">
                        <xs:selector xpath=".//ipxact:fileSetRef"/>
                        <xs:field xpath="ipxact:localName"/>
                </xs:keyref>
                <xs:key name="executableImageKey">
                        <xs:selector xpath=".//ipxact:executableImage"/>
                        <xs:field xpath="@imageId"/>
                </xs:key>
                <xs:unique name="fileKey">
                        <xs:selector xpath=".//ipxact:file"/>
                        <xs:field xpath="@fileId"/>
                </xs:unique>
                <xs:keyref name="fileRef" refer="ipxact:fileKey">
                        <xs:selector xpath=".//ipxact:function"/>
                        <xs:field xpath="ipxact:fileRef"/>
                </xs:keyref>
    <xs:key name="remapStateKey">
        <xs:selector xpath="ipxact:remapStates/ipxact:remapState"/>
        <xs:field xpath="ipxact:name"/>
    </xs:key>
    <xs:keyref name="remapStateRef" refer="ipxact:remapStateKey">
        <xs:selector xpath="ipxact:memoryMaps/ipxact:memoryMap/ipxact:memoryRemap"/>
        <xs:field xpath="@ipxact:state"/>
    </xs:keyref>
    <xs:keyref name="remapStateRefMS" refer="ipxact:remapStateKey">
        <xs:selector xpath="ipxact:busInterfaces/ipxact:busInterface/ipxact:mirroredSlave/ipxact:baseAddresses/ipxact:remapAddress"/>
        <xs:field xpath="@ipxact:state"/>
    </xs:keyref>
                <xs:key name="portKey">
                        <xs:selector xpath="ipxact:model/ipxact:ports/ipxact:port"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="portRef" refer="ipxact:portKey">
                        <xs:selector xpath="ipxact:busInterfaces/ipxact:busInterface/ipxact:abstractionTypes/ipxact:abstractionType/ipxact:portMaps/ipxact:portMap/ipxact:physicalPort/ipxact:name"/>
                        <xs:field xpath="."/>
                </xs:keyref>
                <xs:keyref name="remapStatePortRef" refer="ipxact:portKey">
                        <xs:selector xpath="ipxact:remapStates/ipxact:remapState/ipxact:remapPorts/ipxact:remapPort"/>
                        <xs:field xpath="@portRef"/>
                </xs:keyref>
                <xs:key name="whiteboxKey">
                        <xs:selector xpath="ipxact:whiteboxElements/ipxact:whiteboxElement"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="whiteboxRef" refer="ipxact:whiteboxKey">
                        <xs:selector xpath="ipxact:model/ipxact:views/ipxact:view/ipxact:whiteboxElementRefs/ipxact:whiteboxElementRef"/>
                        <xs:field xpath="@name"/>
                </xs:keyref>
                <xs:key name="componentGeneratorKey">
                        <xs:selector xpath="ipxact:componentGenerators/ipxact:componentGenerator"/>
                        <xs:field xpath="ipxact:name"/>
                </xs:key>
                <xs:keyref name="componentGeneratorRef" refer="ipxact:componentGeneratorKey">
                        <xs:selector xpath=".//ipxact:generatorRef"/>
                        <xs:field xpath="."/>
                </xs:keyref>
        </xs:element>
        <xs:simpleType name="simpleWhiteboxType">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="signal"/>
                        <xs:enumeration value="pin"/>
                        <xs:enumeration value="interface"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="whiteboxElementType">
                <xs:annotation>
                        <xs:documentation>Defines a white box reference point within the component.</xs:documentation>
                </xs:annotation>
                <xs:sequence>
                        <xs:group ref="ipxact:nameGroup"/>
                        <xs:element ref="ipxact:isPresent" minOccurs="0"/>
                        <xs:element name="whiteboxType" type="ipxact:simpleWhiteboxType">
                                <xs:annotation>
                                        <xs:documentation>Indicates the type of the element. The pin and signal types refer to elements within the HDL description. The register type refers to a register in the memory map. The interface type refers to a group of signals addressed as a single unit.</xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element name="driveable" type="xs:boolean" default="false" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>If true, indicates that the white box element can be driven (e.g. have a new value forced into it).</xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element ref="ipxact:parameters" minOccurs="0"/>
                        <xs:element ref="ipxact:vendorExtensions" minOccurs="0"/>
                </xs:sequence>
                <xs:attributeGroup ref="ipxact:id.att"/>
        </xs:complexType>
</xs:schema>

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.