Created
July 15, 2018 14:21
-
-
Save Laksen/cf67f1103e5c539bb44cd183d617aee8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
<xs:complexType name="port"> | |
<xs:attribute name="name" type="xs:string" use="required" /> | |
<xs:attribute name="is_clock" type="xs:boolean" /> | |
<xs:attribute name="clock" type="xs:string" /> | |
<xs:attribute name="combinational_sink_ports" type="xs:string" /> | |
</xs:complexType> | |
<xs:complexType name="port_list"> | |
<xs:sequence> | |
<xs:element name="port" type="port" maxOccurs="unbounded" /> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="model_type"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="input_ports" type="port_list"/> | |
<xs:element name="output_ports" type="port_list"/> | |
</xs:choice> | |
<xs:attribute name="name" type="xs:string" use="required" /> | |
</xs:complexType> | |
<xs:complexType name="models"> | |
<xs:sequence> | |
<xs:element name="model" type="model_type" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="fill"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="perimeter"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="corners"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="single"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
<xs:attribute name="x" type="xs:string" use="required"/> | |
<xs:attribute name="y" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="col"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
<xs:attribute name="startx" type="xs:string" use="required"/> | |
<xs:attribute name="repeatx" type="xs:string"/> | |
<xs:attribute name="starty" type="xs:string" default="0"/> | |
<xs:attribute name="incry" type="xs:string" default="h"/> | |
</xs:complexType> | |
<xs:complexType name="row"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
<xs:attribute name="starty" type="xs:string" use="required"/> | |
<xs:attribute name="repeaty" type="xs:string"/> | |
<xs:attribute name="startx" type="xs:string" default="0"/> | |
<xs:attribute name="incrx" type="xs:string" default="w"/> | |
</xs:complexType> | |
<xs:complexType name="region"> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="priority" type="xs:int" use="required"/> | |
<xs:attribute name="startx" type="xs:string" default="0"/> | |
<xs:attribute name="endx" type="xs:string" default="W-1"/> | |
<xs:attribute name="incrx" type="xs:string" default="w"/> | |
<xs:attribute name="repeatx" type="xs:string"/> | |
<xs:attribute name="starty" type="xs:string" default="0"/> | |
<xs:attribute name="endy" type="xs:string" default="H-1"/> | |
<xs:attribute name="incry" type="xs:string" default="h"/> | |
<xs:attribute name="repeaty" type="xs:string"/> | |
</xs:complexType> | |
<xs:complexType name="layout_info"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="fill" type="fill"/> | |
<xs:element name="perimeter" type="perimeter"/> | |
<xs:element name="corners" type="corners"/> | |
<xs:element name="single" type="single"/> | |
<xs:element name="col" type="col"/> | |
<xs:element name="row" type="row"/> | |
<xs:element name="region" type="region"/> | |
</xs:choice> | |
</xs:complexType> | |
<xs:complexType name="auto_layout"> | |
<xs:complexContent> | |
<xs:extension base="layout_info"> | |
<xs:attribute name="aspect_ratio" type="xs:double" default="1.0" /> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="fixed_layout"> | |
<xs:complexContent> | |
<xs:extension base="layout_info"> | |
<xs:attribute name="name" type="xs:string" use="required" /> | |
<xs:attribute name="width " type="xs:int" use="required" /> | |
<xs:attribute name="height " type="xs:int" use="required" /> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="layout"> | |
<xs:choice minOccurs="1"> | |
<xs:element name="auto_layout" type="auto_layout" maxOccurs="1"/> | |
<xs:element name="fixed_layout" type="fixed_layout" maxOccurs="unbounded"/> | |
</xs:choice> | |
</xs:complexType> | |
<xs:simpleType name="switch_block_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="wilton"/> | |
<xs:enumeration value="subset"/> | |
<xs:enumeration value="universal"/> | |
<xs:enumeration value="custom"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="fc_type_enum"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="frac"/> | |
<xs:enumeration value="abs"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="chan_distribution"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="gaussian"/> | |
<xs:enumeration value="uniform"/> | |
<xs:enumeration value="pulse"/> | |
<xs:enumeration value="delta"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="chan_dist"> | |
<xs:attribute name="distr" type="chan_distribution" use="required"/> | |
<xs:attribute name="peak" type="xs:double" use="required"/> | |
<xs:attribute name="width" type="xs:double"/> | |
<xs:attribute name="xpeak" type="xs:double"/> | |
<xs:attribute name="dc" type="xs:double"/> | |
</xs:complexType> | |
<xs:complexType name="chan_width_distr"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="x" type="chan_dist"/> | |
<xs:element name="y" type="chan_dist"/> | |
</xs:choice> | |
</xs:complexType> | |
<xs:complexType name="device"> | |
<xs:all> | |
<xs:element name="sizing"> | |
<xs:complexType> | |
<xs:attribute name="R_minW_nmos" type="xs:double" use="required"/> | |
<xs:attribute name="R_minW_pmos" type="xs:double" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="connection_block"> | |
<xs:complexType> | |
<xs:attribute name="input_switch_name" type="xs:string" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="area"> | |
<xs:complexType> | |
<xs:attribute name="grid_logic_tile_area" type="xs:double" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="switch_block"> | |
<xs:complexType> | |
<xs:attribute name="type" type="switch_block_type" use="required"/> | |
<xs:attribute name="fs" type="xs:int" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="chan_width_distr" minOccurs="0" type="chan_width_distr"/> | |
<xs:element name="default_fc" minOccurs="0"> | |
<xs:complexType> | |
<xs:attribute name="in_type" type="fc_type_enum"/> | |
<xs:attribute name="in_val" type="xs:double"/> | |
<xs:attribute name="out_type" type="fc_type_enum"/> | |
<xs:attribute name="out_val" type="xs:double"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:all> | |
</xs:complexType> | |
<xs:simpleType name="switch_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="mux"/> | |
<xs:enumeration value="tristate"/> | |
<xs:enumeration value="pass_gate"/> | |
<xs:enumeration value="short"/> | |
<xs:enumeration value="buffer"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="buf_size"> | |
<xs:union memberTypes="xs:double"> | |
<xs:simpleType> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="auto"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:union> | |
</xs:simpleType> | |
<xs:complexType name="switch"> | |
<xs:sequence> | |
<xs:element name="Tdel" minOccurs="0" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:attribute name="num_inputs" type="xs:int" use="required"/> | |
<xs:attribute name="delay" type="xs:double" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="type" type="switch_type" use="required"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="R" type="xs:double" use="required"/> | |
<xs:attribute name="Cin" type="xs:double" use="required"/> | |
<xs:attribute name="Cout" type="xs:double" use="required"/> | |
<xs:attribute name="Tdel" type="xs:double"/> | |
<xs:attribute name="buf_size" type="buf_size" default="auto"/> | |
<xs:attribute name="mux_trans_size" type="xs:double"/> | |
<xs:attribute name="power_buf_size" type="xs:double"/> | |
</xs:complexType> | |
<xs:complexType name="switchlist"> | |
<xs:sequence> | |
<xs:element name="switch" type="switch" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:simpleType name="pb_type_class"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="lut"/> | |
<xs:enumeration value="flipflop"/> | |
<xs:enumeration value="memory"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="pb_type_input"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="num_pins" type="xs:int" use="required"/> | |
<xs:attribute name="equivalent" type="xs:boolean" default="false"/> | |
<xs:attribute name="is_non_clock_global" type="xs:boolean"/> | |
<xs:attribute name="port_class" type="xs:string" /> | |
</xs:complexType> | |
<xs:complexType name="pb_type_output"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="num_pins" type="xs:int" use="required"/> | |
<xs:attribute name="equivalent" type="xs:boolean" default="false"/> | |
<xs:attribute name="port_class" type="xs:string" /> | |
</xs:complexType> | |
<xs:simpleType name="delay_matrix_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="min"/> | |
<xs:enumeration value="max"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="delay_matrix"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="type" type="delay_matrix_type" use="required"/> | |
<xs:attribute name="in_port" type="xs:string" use="required"/> | |
<xs:attribute name="out_port" type="xs:string" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="T_timing_minmax"> | |
<xs:attribute name="max" type="xs:double"/> | |
<xs:attribute name="min" type="xs:double"/> | |
<xs:attribute name="in_port" type="xs:string" use="required"/> | |
<xs:attribute name="out_port" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="T_timing"> | |
<xs:attribute name="value" type="xs:double" use="required"/> | |
<xs:attribute name="port" type="xs:string" use="required"/> | |
<xs:attribute name="clock" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="T_clock_timing"> | |
<xs:attribute name="max" type="xs:double"/> | |
<xs:attribute name="min" type="xs:double"/> | |
<xs:attribute name="port" type="xs:string" use="required"/> | |
<xs:attribute name="clock" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:group name="timing_group"> | |
<xs:choice> | |
<xs:element name="delay_constant" type="T_timing_minmax"/> | |
<xs:element name="delay_matrix" type="delay_matrix"/> | |
</xs:choice> | |
</xs:group> | |
<xs:group name="timing_group_pbtype"> | |
<xs:choice> | |
<xs:group ref="timing_group" minOccurs="0"/> | |
<xs:element name="T_setup" type="T_timing"/> | |
<xs:element name="T_hold" type="T_timing"/> | |
<xs:element name="T_clock_to_Q" type="T_clock_timing"/> | |
</xs:choice> | |
</xs:group> | |
<xs:complexType name="interconnect_type"> | |
<xs:group ref="timing_group" minOccurs="0"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="input" type="xs:string" use="required"/> | |
<xs:attribute name="output" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="interconnect"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="complete" type="interconnect_type"/> | |
<xs:element name="direct" type="interconnect_type"/> | |
<xs:element name="mux" type="interconnect_type"/> | |
<xs:element name="pack_pattern"> | |
<xs:complexType> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="in_port" type="xs:string" use="required"/> | |
<xs:attribute name="out_port" type="xs:string" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:choice> | |
</xs:complexType> | |
<xs:simpleType name="power_estimation_method"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="specify-size"/> | |
<xs:enumeration value="auto-size"/> | |
<xs:enumeration value="pin-toggle"/> | |
<xs:enumeration value="C-internal"/> | |
<xs:enumeration value="absolute"/> | |
<xs:enumeration value="ignore"/> | |
<xs:enumeration value="sum-of-children"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="power"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="dynamic_power"> | |
<xs:complexType> | |
<xs:attribute name="power_per_instance" type="xs:double"/> | |
<xs:attribute name="C_internal" type="xs:double"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="static_power"> | |
<xs:complexType> | |
<xs:attribute name="power_per_instance" type="xs:double"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="port"> | |
<xs:complexType> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="energy_per_toggle" type="xs:double" use="required"/> | |
<xs:attribute name="scaled_by_static_prob" type="xs:string"/> | |
<xs:attribute name="scaled_by_static_prob_n" type="xs:string"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:choice> | |
<xs:attribute name="method" type="power_estimation_method" default="auto-size"/> | |
</xs:complexType> | |
<xs:simpleType name="pinlocations_pattern"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="spread"/> | |
<xs:enumeration value="perimeter"/> | |
<xs:enumeration value="custom"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="loc_side"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="left"/> | |
<xs:enumeration value="right"/> | |
<xs:enumeration value="bottom"/> | |
<xs:enumeration value="top"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="pinlocations"> | |
<xs:sequence> | |
<xs:element name="loc" maxOccurs="unbounded" minOccurs="0"> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="side" type="loc_side" use="required"/> | |
<xs:attribute name="xoffset" type="xs:int" default="0"/> | |
<xs:attribute name="yoffset" type="xs:int" default="0"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="pattern" type="pinlocations_pattern"/> | |
</xs:complexType> | |
<xs:simpleType name="switchblock_locations_pattern"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="external_full_internal_straight"/> | |
<xs:enumeration value="all"/> | |
<xs:enumeration value="external"/> | |
<xs:enumeration value="internal"/> | |
<xs:enumeration value="none"/> | |
<xs:enumeration value="custom"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="switchblock_locations"> | |
<xs:attribute name="pattern" type="switchblock_locations_pattern" default="external_full_internal_straight"/> | |
<xs:attribute name="internal_switch" type="xs:string"/> | |
</xs:complexType> | |
<xs:complexType name="fc"> | |
<xs:sequence> | |
<xs:element name="fc_override" minOccurs="0" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:attribute name="fc_type" type="fc_type_enum" use="required"/> | |
<xs:attribute name="fc_val" type="xs:double" use="required"/> | |
<xs:attribute name="port_name" type="xs:string"/> | |
<xs:attribute name="segment_name" type="xs:string"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="in_type" type="fc_type_enum" use="required"/> | |
<xs:attribute name="in_val" type="xs:double" use="required"/> | |
<xs:attribute name="out_type" type="fc_type_enum" use="required"/> | |
<xs:attribute name="out_val" type="xs:double" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="pb_type"> | |
<xs:choice maxOccurs="unbounded" minOccurs="0"> | |
<xs:element name="pb_type" type="pb_type"/> | |
<xs:element name="input" type="pb_type_input"/> | |
<xs:element name="output" type="pb_type_output"/> | |
<xs:element name="clock" type="pb_type_output"/> | |
<xs:element name="mode"> | |
<xs:complexType> | |
<xs:choice maxOccurs="unbounded" minOccurs="0"> | |
<xs:element name="pb_type" type="pb_type"/> | |
<xs:element name="interconnect" type="interconnect"/> | |
<xs:element name="pinlocations" type="pinlocations"/> | |
<xs:element name="switchblock_locations" type="switchblock_locations"/> | |
</xs:choice> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="interconnect" type="interconnect"/> | |
<xs:element name="pinlocations" type="pinlocations"/> | |
<xs:element name="switchblock_locations" type="switchblock_locations"/> | |
<xs:element name="fc" type="fc"/> | |
<xs:group ref="timing_group_pbtype"/> | |
<xs:element name="power" type="power"/> | |
</xs:choice> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="num_pb" type="xs:int"/> | |
<xs:attribute name="blif_model" type="xs:string"/> | |
<xs:attribute name="capacity" type="xs:int"/> | |
<xs:attribute name="width" type="xs:int"/> | |
<xs:attribute name="height" type="xs:int"/> | |
<xs:attribute name="area" type="xs:double"/> | |
<xs:attribute name="class" type="pb_type_class"/> | |
</xs:complexType> | |
<xs:simpleType name="segment_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="bidir"/> | |
<xs:enumeration value="unidir"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="segment_length"> | |
<xs:union memberTypes="xs:nonNegativeInteger"> | |
<xs:simpleType> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="longline"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:union> | |
</xs:simpleType> | |
<xs:complexType name="complexblocklist"> | |
<xs:sequence> | |
<xs:element name="pb_type" type="pb_type" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="segment_block"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="type" use="required"> | |
<xs:simpleType> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="pattern"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="segment_mux"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="segment_wire_switch"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="segment"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="sb" type="segment_block"/> | |
<xs:element name="cb" type="segment_block"/> | |
<xs:element name="mux" type="segment_mux"/> | |
<xs:element name="wire_switch" type="segment_wire_switch"/> | |
<xs:element name="opin_switch" type="segment_wire_switch"/> | |
</xs:choice> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="length" type="segment_length" use="required"/> | |
<xs:attribute name="type" type="segment_type" use="required"/> | |
<xs:attribute name="freq" type="xs:double" use="required"/> | |
<xs:attribute name="Rmetal" type="xs:double" use="required"/> | |
<xs:attribute name="Cmetal" type="xs:double" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="segmentlist"> | |
<xs:sequence> | |
<xs:element name="segment" type="segment" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="direct"> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="from_pin" type="xs:string" use="required"/> | |
<xs:attribute name="to_pin" type="xs:string" use="required"/> | |
<xs:attribute name="x_offset" type="xs:int" use="required"/> | |
<xs:attribute name="y_offset" type="xs:int" use="required"/> | |
<xs:attribute name="z_offset" type="xs:int" use="required"/> | |
<xs:attribute name="switch_name" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="directlist"> | |
<xs:sequence> | |
<xs:element name="direct" type="direct" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:simpleType name="switchblock_location_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="EVERYWHERE"/> | |
<xs:enumeration value="PERIMETER"/> | |
<xs:enumeration value="CORNER"/> | |
<xs:enumeration value="FRINGE"/> | |
<xs:enumeration value="CORE"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="switchblock_location"> | |
<xs:attribute name="type" type="switchblock_location_type" use="required"/> | |
</xs:complexType> | |
<xs:simpleType name="switchblock_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="bidir"/> | |
<xs:enumeration value="unidir"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="func_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="lt"/> | |
<xs:enumeration value="lr"/> | |
<xs:enumeration value="lb"/> | |
<xs:enumeration value="tr"/> | |
<xs:enumeration value="tb"/> | |
<xs:enumeration value="tl"/> | |
<xs:enumeration value="rb"/> | |
<xs:enumeration value="rl"/> | |
<xs:enumeration value="rt"/> | |
<xs:enumeration value="bl"/> | |
<xs:enumeration value="bt"/> | |
<xs:enumeration value="br"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="switchblock_func"> | |
<xs:sequence> | |
<xs:element name="func" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:attribute name="type" type="func_type" use="required" /> | |
<xs:attribute name="formula" type="xs:string" use="required" /> | |
</xs:complexType> | |
</xs:element> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="wireconn"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="from" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="switchpoint" type="xs:string" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="to" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:attribute name="type" type="xs:string" use="required"/> | |
<xs:attribute name="switchpoint" type="xs:string" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:choice> | |
<xs:attribute name="num_conns_type" type="xs:string" use="required"/> | |
<xs:attribute name="from_type" type="xs:string"/> | |
<xs:attribute name="to_type" type="xs:string"/> | |
<xs:attribute name="from_switchpoint" type="xs:string"/> | |
<xs:attribute name="to_switchpoint" type="xs:string"/> | |
</xs:complexType> | |
<xs:complexType name="switchblock"> | |
<xs:sequence> | |
<xs:element name="switchblock_location" type="switchblock_location" maxOccurs="unbounded"/> | |
<xs:element name="switchfuncs" type="switchblock_func" maxOccurs="unbounded"/> | |
<xs:element name="wireconn" type="wireconn" maxOccurs="unbounded"/> | |
</xs:sequence> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="type" type="switchblock_type" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="switchblocklist"> | |
<xs:sequence> | |
<xs:element name="switchblock" type="switchblock" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:element name="architecture"> | |
<xs:complexType> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element name="models" type="models"/> | |
<xs:element name="layout" type="layout"/> | |
<xs:element name="device" type="device"/> | |
<xs:element name="switchlist" type="switchlist"/> | |
<xs:element name="switchblocklist" type="switchblocklist"/> | |
<xs:element name="segmentlist" type="segmentlist"/> | |
<xs:element name="directlist" type="directlist"/> | |
<xs:element name="complexblocklist" type="complexblocklist"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
</xs:schema> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<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"> | |
<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> | |
<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:complexType> | |
<xs:element name="block" type="block"/> | |
</xs:schema> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
<xs:complexType name="channel"> | |
<xs:attribute name="chan_width_max" type="xs:int" use="required"/> | |
<xs:attribute name="x_min" type="xs:int" use="required"/> | |
<xs:attribute name="y_min" type="xs:int" use="required"/> | |
<xs:attribute name="x_max" type="xs:int" use="required"/> | |
<xs:attribute name="y_max" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="x_list"> | |
<xs:attribute name="index" type="xs:int" use="required"/> | |
<xs:attribute name="info" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="y_list"> | |
<xs:attribute name="index" type="xs:int" use="required"/> | |
<xs:attribute name="info" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:simpleType name="switch_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="mux"/> | |
<xs:enumeration value="tristate"/> | |
<xs:enumeration value="pass_gate"/> | |
<xs:enumeration value="short"/> | |
<xs:enumeration value="buffer"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="timing"> | |
<xs:attribute name="R" type="xs:double"/> | |
<xs:attribute name="Cin" type="xs:double"/> | |
<xs:attribute name="Cout" type="xs:double"/> | |
<xs:attribute name="Tdel" type="xs:double"/> | |
</xs:complexType> | |
<xs:complexType name="sizing"> | |
<xs:attribute name="mux_trans_size" type="xs:int" use="required"/> | |
<xs:attribute name="buf_size" type="xs:double" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="switch"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="timing" type="timing"/> | |
<xs:element name="sizing" type="sizing"/> | |
</xs:choice> | |
<xs:attribute name="id" type="xs:int" use="required"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="type" type="switch_type"/> | |
</xs:complexType> | |
<xs:complexType name="segment_timing"> | |
<xs:attribute name="R_per_meter" type="xs:double"/> | |
<xs:attribute name="C_per_meter" type="xs:double"/> | |
</xs:complexType> | |
<xs:complexType name="segment"> | |
<xs:sequence> | |
<xs:element name="timing" type="segment_timing" maxOccurs="unbounded"/> | |
</xs:sequence> | |
<xs:attribute name="id" type="xs:int" use="required"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="pin"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="ptc" type="xs:int" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="pin_class"> | |
<xs:sequence> | |
<xs:element name="pin" type="pin" maxOccurs="unbounded"/> | |
</xs:sequence> | |
<xs:attribute name="type" type="pin_type" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="block_type"> | |
<xs:sequence> | |
<xs:element name="pin_class" type="pin_class" maxOccurs="unbounded"/> | |
</xs:sequence> | |
<xs:attribute name="id" type="xs:int" use="required"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
<xs:attribute name="width" type="xs:int" use="required"/> | |
<xs:attribute name="height" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:simpleType name="pin_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="OPEN"/> | |
<xs:enumeration value="OUTPUT"/> | |
<xs:enumeration value="INPUT"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="grid_loc"> | |
<xs:attribute name="x" type="xs:int" use="required"/> | |
<xs:attribute name="y" type="xs:int" use="required"/> | |
<xs:attribute name="block_type_id" type="xs:int" use="required"/> | |
<xs:attribute name="width_offset" type="xs:int" use="required"/> | |
<xs:attribute name="height_offset" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:simpleType name="node_type"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="CHANX"/> | |
<xs:enumeration value="CHANY"/> | |
<xs:enumeration value="SOURCE"/> | |
<xs:enumeration value="SINK"/> | |
<xs:enumeration value="OPIN"/> | |
<xs:enumeration value="IPIN"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="node_direction"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="INC_DIR"/> | |
<xs:enumeration value="DEC_DIR"/> | |
<xs:enumeration value="BI_DIR"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="loc_side"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="LEFT"/> | |
<xs:enumeration value="RIGHT"/> | |
<xs:enumeration value="TOP"/> | |
<xs:enumeration value="BOTTOM"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="node_loc"> | |
<xs:attribute name="xlow" type="xs:int" use="required"/> | |
<xs:attribute name="ylow" type="xs:int" use="required"/> | |
<xs:attribute name="xhigh" type="xs:int" use="required"/> | |
<xs:attribute name="yhigh" type="xs:int" use="required"/> | |
<xs:attribute name="side" type="loc_side"/> | |
<xs:attribute name="ptc" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="node_timing"> | |
<xs:attribute name="R" type="xs:double" use="required"/> | |
<xs:attribute name="C" type="xs:double" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="node_segment"> | |
<xs:attribute name="segment_id" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="node"> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="loc" type="node_loc"/> | |
<xs:element name="timing" type="node_timing"/> | |
<xs:element name="segment" type="node_segment"/> | |
</xs:choice> | |
<xs:attribute name="id" type="xs:int" use="required"/> | |
<xs:attribute name="type" type="node_type" use="required"/> | |
<xs:attribute name="direction" type="node_direction"/> | |
<xs:attribute name="capacity" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:complexType name="edge"> | |
<xs:attribute name="src_node" type="xs:int" use="required"/> | |
<xs:attribute name="sink_node" type="xs:int" use="required"/> | |
<xs:attribute name="switch_id" type="xs:int" use="required"/> | |
</xs:complexType> | |
<xs:element name="rr_graph"> | |
<xs:complexType> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="channels"> | |
<xs:complexType> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="channel" type="channel"/> | |
<xs:element name="x_list" type="x_list"/> | |
<xs:element name="y_list" type="y_list"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="switches"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="switch" type="switch" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="segments"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="segment" type="segment" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="block_types"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="block_type" type="block_type" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="grid"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element name="grid_loc" type="grid_loc" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="rr_nodes"> | |
<xs:complexType> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="node" type="node"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="rr_edges"> | |
<xs:complexType> | |
<xs:choice maxOccurs="unbounded"> | |
<xs:element name="edge" type="edge"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
</xs:choice> | |
<xs:attribute name="tool_name" type="xs:string"/> | |
<xs:attribute name="tool_version" type="xs:string"/> | |
<xs:attribute name="tool_comment" type="xs:string"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:schema> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment