blob: f2a3192571c5fadebdf4ddab4d418215a039eb57 [file] [log] [blame]
<!-- An IO pin found on an FPGA -->
<pb_type name="OBUF" capacity="2">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
<!-- IO operating as an input -->
<mode name="PAD_IS_INPUT">
<pb_type name="INPUT" blif_model=".input" num_pb="1">
<output name="inpad" num_pins="1"/>
<metadata>
<meta name="type">bel</meta>
<meta name="subtype">input</meta>
</metadata>
</pb_type>
<interconnect>
<direct name="INPUT" input="INPUT.inpad" output="OBUF.inpad">
<delay_constant max="4.243e-11" in_port="INPUT.inpad" out_port="OBUF.inpad"/>
</direct>
</interconnect>
</mode>
<!-- IO operating as an output -->
<mode name="PAD_IS_OUTPUT">
<pb_type name="OUTPUT" blif_model=".output" num_pb="1">
<input name="outpad" num_pins="1"/>
<metadata>
<meta name="type">bel</meta>
<meta name="subtype">output</meta>
</metadata>
</pb_type>
<interconnect>
<direct name="OUTPUT" input="OBUF.outpad" output="OUTPUT.outpad">
<delay_constant max="1.394e-11" in_port="OBUF.outpad" out_port="OUTPUT.outpad"/>
</direct>
</interconnect>
</mode>
<!-- FIXME - Should have a IO operating as bi-directional -->
<!-- IO pins are never connected to the fabric, they are connected to a platform specific IO tile -->
<fc in_type="frac" in_val="1" out_type="frac" out_val="1"/>
<!--
IOs go on the periphery of the FPGA/
Currently for consistency make it physically equivalent on all sides so
that only one definition of I/Os is needed.
If I do not make a physically equivalent definition, then we need to 4
different pin definitions (one for each side of the FPGA).
-->
<pinlocations pattern="custom">
<loc side="right">OBUF.outpad OBUF.inpad</loc>
</pinlocations>
<metadata>
<meta name="type">block</meta>
<meta name="subtype">tile</meta>
</metadata>
</pb_type>