]> AND Private Git Repository - blast.git/blobdiff - reference.xsd
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished testbench generation
[blast.git] / reference.xsd
index a5c2c2d0c612e32eaae9e8e361e4bc9be592d0c7..259506f3214f70768e57a322f594aa8f7668c7ab 100644 (file)
@@ -4,22 +4,23 @@
     <!-- déclaration des groupes d'attributs -->
 
     <xs:attributeGroup name="parameterAttrGroup">
     <!-- déclaration des groupes d'attributs -->
 
     <xs:attributeGroup name="parameterAttrGroup">
-       <xs:attribute ref="name" use="required"/>
-       <xs:attribute ref="type" use="required"/>
+      <xs:attribute ref="name" use="required"/>
+       <xs:attribute name="type" type="typeparam" use="required"/>
        <xs:attribute ref="wishbone" use="optional"/>
        <xs:attribute ref="wishbone" use="optional"/>
-       <xs:attribute ref="core" use="optional"/>
        <xs:attribute ref="value" use="optional"/>
        <xs:attribute ref="iface" use="optional"/>
        <xs:attribute ref="width" use="optional"/>      
        <xs:attribute ref="value" use="optional"/>
        <xs:attribute ref="iface" use="optional"/>
        <xs:attribute ref="width" use="optional"/>      
-       <xs:attribute ref="context" use="required"/>
+       <xs:attribute name="context" type="typecontext" use="required"/>
     </xs:attributeGroup>
 
     <xs:attributeGroup name="inOutAttrGroup">
        <xs:attribute ref="name" use="required"/>
        <xs:attribute ref="width" use="required"/>
     </xs:attributeGroup>
 
     <xs:attributeGroup name="inOutAttrGroup">
        <xs:attribute ref="name" use="required"/>
        <xs:attribute ref="width" use="required"/>
-       <xs:attribute ref="type"/>
-       <xs:attribute ref="purpose"/>
+       <xs:attribute name="type" type="typeiface"/>
+       <xs:attribute name="purpose" type="typepurpose" use="optional"/>
        <xs:attribute ref="multiplicity"/>
        <xs:attribute ref="multiplicity"/>
+       <xs:attribute name="endian" type="typeendian" use="optional"/>
+       <xs:attribute ref="clock" use="optional"/>
     </xs:attributeGroup>
 
 
     </xs:attributeGroup>
 
 
 
     <xs:attribute name="ids" type="xs:string"/>
     <xs:attribute name="name" type="xs:string"/>
 
     <xs:attribute name="ids" type="xs:string"/>
     <xs:attribute name="name" type="xs:string"/>
-    <xs:attribute name="type" type="xs:string"/>
-    <xs:attribute name="core" type="xs:string"/>
+    <xs:attribute name="clock" type="xs:string"/>
+
+    <xs:simpleType name="typespecial">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="source"/>
+       <xs:enumeration value="sink"/>
+       <xs:enumeration value="clkconvert"/>
+      </xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="typeparam">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="string"/>
+       <xs:enumeration value="expression"/>
+       <xs:enumeration value="boolean"/>
+       <xs:enumeration value="integer"/>
+       <xs:enumeration value="natural"/>
+       <xs:enumeration value="positive"/>
+       <xs:enumeration value="real"/>
+       <xs:enumeration value="time"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="typeiface">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="expression"/>
+       <xs:enumeration value="boolean"/>
+       <xs:enumeration value="natural"/>
+      </xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="typeendian">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="little"/>
+       <xs:enumeration value="big"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="typecontext">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="generic"/>
+       <xs:enumeration value="user"/>
+       <xs:enumeration value="wb"/>
+       <xs:enumeration value="port"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="typepurpose">
+      <xs:restriction base="xs:string">
+       <xs:enumeration value="data"/>
+       <xs:enumeration value="clock"/>
+       <xs:enumeration value="reset"/>
+       <xs:enumeration value="wb"/>    
+      </xs:restriction>
+    </xs:simpleType>
+    
     <xs:attribute name="wishbone" type="xs:string"/>
     <xs:attribute name="wishbone" type="xs:string"/>
-    <xs:attribute name="context" type="xs:string" />
     <xs:attribute name="multiplicity" type="xs:string" />
     <xs:attribute name="width" type="xs:string"/>
     <xs:attribute name="multiplicity" type="xs:string" />
     <xs:attribute name="width" type="xs:string"/>
-    <xs:attribute name="purpose" type="xs:string"/>
     <xs:attribute name="value" type="xs:string"/>
     <xs:attribute name="iface" type="xs:string"/>
     <xs:attribute name="path" type="xs:string" />
     <xs:attribute name="value" type="xs:string"/>
     <xs:attribute name="iface" type="xs:string"/>
     <xs:attribute name="path" type="xs:string" />
        <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="category"/>
        <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="category"/>
-           <xs:element ref="description"/>
-       </xs:sequence>
-    </xs:group>
-
-    <xs:group name="descriptionElmtGroup">
-       <xs:sequence>
-           <xs:element ref="brief"/>
-           <xs:element ref="detailed"/>
+           <xs:element name="description" type="xs:string"/>
        </xs:sequence>
     </xs:group>
 
        </xs:sequence>
     </xs:group>
 
        </xs:complexType>
     </xs:element>
 
        </xs:complexType>
     </xs:element>
 
-    <xs:element name="description">
-       <xs:complexType>
-           <xs:group ref="descriptionElmtGroup"/>
-       </xs:complexType>
-    </xs:element>
-
-    <xs:element name="brief" type="xs:string" />
-
-    <xs:element name="detailed" type="xs:string" />
-
     <xs:element name="parameters">
        <xs:complexType>
            <xs:sequence>
     <xs:element name="parameters">
        <xs:complexType>
            <xs:sequence>
        </xs:complexType>
     </xs:element>
 
        </xs:complexType>
     </xs:element>
 
+    <xs:element name="control">
+       <xs:complexType>
+           <xs:attribute ref="iface"/>
+       </xs:complexType>
+    </xs:element>
+
     <xs:element name="inputs">
        <xs:complexType>
            <xs:sequence>
     <xs:element name="inputs">
        <xs:complexType>
            <xs:sequence>
-               <xs:element ref="input" maxOccurs="unbounded" />
+             <xs:element ref="input" maxOccurs="unbounded" />
+             <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
     </xs:element>
            </xs:sequence>
        </xs:complexType>
     </xs:element>
     <xs:element name="outputs">
        <xs:complexType>
            <xs:sequence>
     <xs:element name="outputs">
        <xs:complexType>
            <xs:sequence>
-               <xs:element ref="output" maxOccurs="unbounded" />
+             <xs:element ref="output" maxOccurs="unbounded" />
+             <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
     </xs:element>
            </xs:sequence>
        </xs:complexType>
     </xs:element>
     <!-- Racine du document -->
 
     <xs:element name="block">
     <!-- Racine du document -->
 
     <xs:element name="block">
-       <xs:complexType>
-           <xs:group ref="blockElmtGroup"/>
-       </xs:complexType>
+      <xs:complexType>
+       <xs:group ref="blockElmtGroup"/>
+       <xs:attribute name="version" type="xs:string" use="optional" />
+       <xs:attribute name="special" type="typespecial" use="optional" />
+      </xs:complexType>
     </xs:element>
 
 </xs:schema>
     </xs:element>
 
 </xs:schema>