| <!-- 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> |