<?xml version="1.0"?> | |
<!-- | |
Copyright 2020-2022 F4PGA Authors | |
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. | |
SPDX-License-Identifier: Apache-2.0 | |
XML 1.0 Schema for packed netlist format developed based on documentation here: | |
http://vtr-verilog-to-routing.readthedocs.io/en/latest/vpr/file_formats.html#packed-netlist-format-net | |
--> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
<xs:complexType name="named_value"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="port"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="port_rotation_map"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="port_group" mixed="true"> | |
<xs:sequence> | |
<xs:element name="port" type="port" minOccurs="0" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="block"> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element name="inputs"> | |
<xs:complexType mixed="true"> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element name="port" type="port"/> | |
<xs:element name="port_rotation_map" type="port_rotation_map"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="outputs" type="port_group"/> | |
<xs:element name="clocks" type="port_group"/> | |
<xs:element name="attributes"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="attribute" type="named_value" minOccurs="0" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="parameters"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="parameter" type="named_value" minOccurs="0" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="block" type="block"/> | |
</xs:choice> | |
<xs:attribute name="name" type="xs:string"/> | |
<xs:attribute name="instance" type="xs:string"/> | |
<xs:attribute name="mode" type="xs:string"/> | |
<xs:attribute name="architecture_id" type="xs:string"/> | |
<xs:attribute name="atom_netlist_id" type="xs:string"/> | |
<xs:attribute name="pb_type_num_modes" type="xs:integer"/> | |
</xs:complexType> | |
<xs:element name="block" type="block"/> | |
</xs:schema> |