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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [ip-xact/] [1685.1/] [constraints.xsd] - Rev 135

Compare with Previous | Blame | View Log

<?xml version="1.0" encoding="UTF-8"?>
<!--
// Description : constraints.xsd
// Author: The SPIRIT Consortium Schema Working Group
//
// Revision:    $Revision: 1540 $
// Date:        $Date: 2010-02-28 18:26:46 -0600 (Sun, 28 Feb 2010) $
//
// Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 The SPIRIT Consortium.
//
// This XML file is believed to be a consistent XML Schema expression for
// creating and validating XML documents based on the IEEE Std 1685-2009
// Standard for IP-XACT, Standard Structure for Packaging, Integrating
// and Re-using IP within Tool-flows. This is a file in the format
// specified by the World Wide Web Consortium (W3C) as XML Schema
// definition language.
//
// The purpose of this schema is to allow the creation and validation of
// XML documents conforming to the IEEE Std 1685-2009 Standard for
// IP-XACT, Standard Structure for Packaging, Integrating and Re-using IP
// within Tool-flows.
//
// USE AT YOUR OWN RISK.
//
// 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.
//
// 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-2009 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 SPIRIT Consortium
// using either mailto:feedback@lists.spiritconsortium.org or the forms at
// http://www.spiritconsortium.org/about/contact_us/
 -->
<xs:schema xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" elementFormDefault="qualified" attributeFormDefault="qualified">
    <xs:include schemaLocation="commonStructures.xsd"/>
    <xs:include schemaLocation="autoConfigure.xsd"/>
    <xs:include schemaLocation="signalDrivers.xsd"/>
    <xs:simpleType name="cellFunctionValueType">
        <xs:annotation>
            <xs:documentation>Indicates legal cell function values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="nand2"/>
            <xs:enumeration value="buf"/>
            <xs:enumeration value="inv"/>
            <xs:enumeration value="mux21"/>
            <xs:enumeration value="dff"/>
            <xs:enumeration value="latch"/>
            <xs:enumeration value="xor2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cellClassValueType">
        <xs:annotation>
            <xs:documentation>Indicates legal cell class values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="combinational"/>
            <xs:enumeration value="sequential"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cellStrengthValueType">
        <xs:annotation>
            <xs:documentation>Indicates legal cell strength values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="low"/>
            <xs:enumeration value="median"/>
            <xs:enumeration value="high"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="edgeValueType">
        <xs:annotation>
            <xs:documentation>Indicates legal values for edge specification attributes.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="rise"/>
            <xs:enumeration value="fall"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="delayValueType">
        <xs:annotation>
            <xs:documentation>Indicates the type of delay value - minimum or maximum delay.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="min"/>
            <xs:enumeration value="max"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="delayPercentageType">
        <xs:annotation>
            <xs:documentation>Type used to record percentage values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:float">
            <xs:minInclusive value="0.0"/>
            <xs:maxInclusive value="100.0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="nonNegativeFloat">
        <xs:annotation>
            <xs:documentation>Defines a non-negative floating point number.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:float">
            <xs:minInclusive value="0.0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="otherClocks">
        <xs:annotation>
            <xs:documentation>List of clocks associated with the component that are not associated with ports. Set the clockSource attribute on the clockDriver to indicate the source of a clock not associated with a particular component port.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="spirit:otherClockDriver" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:attribute name="cellStrength" type="spirit:cellStrengthValueType">
        <xs:annotation>
            <xs:documentation>Indicates the desired strength of the specified cell.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="clockEdge" type="spirit:edgeValueType">
        <xs:annotation>
            <xs:documentation>Indicates the clock edge that a timing constraint is relative to.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="delayType" type="spirit:delayValueType">
        <xs:annotation>
            <xs:documentation>Indicates the type of delay in a timing constraint - minimum or maximum.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="constraintSetId" type="xs:NMTOKEN" default="default">
        <xs:annotation>
            <xs:documentation>Indicates a name for this set of constraints. Constraints are tied to a view using this name in the constraintSetRef element.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:element name="cellSpecification">
        <xs:annotation>
            <xs:documentation>Used to provide a generic description of a technology library cell.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:choice>
                <xs:element name="cellFunction">
                    <xs:annotation>
                        <xs:documentation>Defines a technology library cell in library independent fashion, based on specification of a cell function and strength.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="spirit:cellFunctionValueType">
                                <xs:attribute ref="spirit:cellStrength"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="cellClass">
                    <xs:annotation>
                        <xs:documentation>Defines a technology library cell in library independent fashion, based on specification of a cell class and strength.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="spirit:cellClassValueType">
                                <xs:attribute ref="spirit:cellStrength"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    <xs:element name="timingConstraint">
        <xs:annotation>
            <xs:documentation>Defines a timing constraint for the associated port. The constraint is relative to the clock specified by the clockName attribute. The clockEdge indicates which clock edge the constraint is associated with (default is rising edge). The delayType attribute can be specified to further refine the constraint.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="spirit:delayPercentageType">
                    <xs:attribute ref="spirit:clockEdge" default="rise"/>
                    <xs:attribute ref="spirit:delayType"/>
                    <xs:attribute name="clockName" type="spirit:portName" use="required">
                        <xs:annotation>
                            <xs:documentation>Indicates the name of the clock to which this constraint applies.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="driveConstraint">
        <xs:annotation>
            <xs:documentation>Defines a constraint indicating how an input is to be driven. The preferred methodology is to specify a library cell in technology independent fashion. The implemention tool should assume that the associated port is driven by the specified cell, or that the drive strength of the input port is indicated by the specified resistance value.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="spirit:cellSpecification"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="loadConstraint">
        <xs:annotation>
            <xs:documentation>Defines a constraint indicating the type of load on an output port.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="spirit:cellSpecification"/>
                <xs:element name="count" type="xs:positiveInteger" default="3" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Indicates how many loads of the specified cell are connected. If not present, 3 is assumed.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="constraintSet">
        <xs:annotation>
            <xs:documentation>Defines constraints that apply to a component port. If multiple constraintSet elements are used, each must have a unique value for the constraintSetId attribute.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:group ref="spirit:nameGroupOptional"/>
                <xs:element name="vector" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>The optional element vector specify the bits of a vector for which the constraints apply. The vaules of left and right must be within the range of the port. If the vector is not specified then the constraints apply to all the bits of the port.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="left">
                                <xs:annotation>
                                    <xs:documentation>The optional elements left and right can be used to select a bit-slice of a vector. </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger"/>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="right">
                                <xs:annotation>
                                    <xs:documentation>The optional elements left and right can be used to select a bit-slice of a vector. </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger"/>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="spirit:driveConstraint" minOccurs="0"/>
                <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
                <xs:element ref="spirit:timingConstraint" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute ref="spirit:constraintSetId" use="optional"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="constraintSets">
        <xs:annotation>
            <xs:documentation>List of constraintSet elements for a component port.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="spirit:constraintSet" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="constraintSetRef" type="xs:NMTOKEN">
        <xs:annotation>
            <xs:documentation>A reference to a set of port constraints.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="abstractionDefPortConstraintsType">
        <xs:annotation>
            <xs:documentation>Defines constraints that apply to a wire type port in an abstraction definition. </xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:sequence>
                <xs:element ref="spirit:timingConstraint" maxOccurs="unbounded"/>
                <xs:element ref="spirit:driveConstraint" minOccurs="0"/>
                <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element ref="spirit:driveConstraint"/>
                <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element ref="spirit:loadConstraint"/>
            </xs:sequence>
        </xs:choice>
    </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.