| <!-- VPR Architecture Specification File --> | |
| <!-- | |
| Quick XML Primer: | |
| -> Data is hierarchical and composed of tags (similar to HTML) | |
| -> All tags must be of the form <foo>content</foo> OR <foo /> with the | |
| latter form indicating no content. Don't forget the slash at the end. | |
| -> Inside a start tag you may specify attributes in the form key="value". | |
| Refer to manual for the valid attributes for each element. | |
| -> Comments may be included anywhere in the document except inside a tag | |
| where it's attribute list is defined. | |
| -> Comments may contain any characters except two dashes. | |
| --> | |
| <architecture> | |
| <layout auto="1.0"/> | |
| <!-- fixed size layout example | |
| <layout width="15" height="15"/> | |
| --> | |
| <device> | |
| <sizing R_minW_nmos="5726.87" R_minW_pmos="15491.7" ipin_mux_trans_size="1"/> | |
| <timing C_ipin_cblock="1.191e-14" T_ipin_cblock="1.482e-10"/> | |
| <area grid_logic_tile_area="100000.0"/> | |
| <chan_width_distr> | |
| <io width="1.0"/> | |
| <x distr="uniform" peak="1"/> | |
| <y distr="uniform" peak="1"/> | |
| <!-- Example of different chan width distributions for global routing | |
| <x distr="gaussian" width="0.5" peak="0.8" xpeak="0.6" dc="0.2"/> | |
| <y distr="pulse" width="0.5" peak="0.8" xpeak="0.6" dc="0.2"/> | |
| --> | |
| </chan_width_distr> | |
| <switch_block type="wilton" fs="3"/> | |
| </device> | |
| <switchlist> | |
| <!-- | |
| type can be | |
| name is any unique alphanumeric string | |
| --> | |
| <!-- unidir example --> | |
| <switch type="mux" name="normal" R="94.841" Cin="1.537e-14" Cout="2.194e-13" Tdel="6.562e-11" buf_size="16.0" mux_trans_size="1.2"/> | |
| <!-- bidir example | |
| <switch type="buffer" name="1" R="94.841" Cin="1.537e-14" Cout="2.194e-13" Tdel="6.562e-11"/> | |
| <switch type="buffer" name="2" R="94.841" Cin="1.537e-14" Cout="2.194e-13" Tdel="6.562e-11"/> | |
| --> | |
| </switchlist> | |
| <segmentlist> | |
| <!-- unidir example --> | |
| <segment freq="4" length="1" type="unidir" Rmetal="11.06455" Cmetal="4.72786e-14"> | |
| <mux name="normal" /> | |
| <sb type="pattern">1 1</sb> | |
| <cb type="pattern"> 1 </cb> | |
| </segment> | |
| <segment type="unidir" length="4" freq="1" Rmetal="44.06455" Cmetal="1.72786e-13"> | |
| <mux name="normal" /> | |
| <sb type="pattern">1 0 1 0 1</sb> | |
| <cb type="pattern"> 1 0 0 1 </cb> | |
| </segment> | |
| <!-- bidir example | |
| <segment length="4" type="bidir" Rmetal="11.06455" Cmetal="4.72786e-14"> | |
| <wire_switch name="1" /> | |
| <opin_switch name="2" /> | |
| <sb type="pattern">11111</sb> | |
| <cb type="pattern">1111</cb> | |
| </segment> | |
| --> | |
| </segmentlist> | |
| <typelist> | |
| <!-- This block defines our IOs. IOs are are a special type --> | |
| <io capacity="3" t_inpad="2e-09" t_outpad="1.5e-09"> | |
| <fc_in type="abs">8</fc_in> | |
| <fc_out type="full" /> | |
| </io> | |
| <!-- This is a basic CLB block with K=4, N=10, and I=22. The pins are | |
| logicaly equivalent with one class for input and one for output. --> | |
| <type name=".clb"> | |
| <subblocks max_subblocks="10" max_subblock_inputs="4"> | |
| <timing> | |
| <T_comb> | |
| <!-- matrix row is input pin, column is output pin --> | |
| <trow>2e-09</trow> | |
| <trow>3e-10</trow> | |
| <trow>4e-10</trow> | |
| <trow>5e-10</trow> | |
| </T_comb> | |
| <T_seq_in> | |
| <trow>-1e-12</trow> | |
| </T_seq_in> | |
| <T_seq_out> | |
| <trow>5e-10</trow> | |
| </T_seq_out> | |
| </timing> | |
| </subblocks> | |
| <fc_in type="frac">1</fc_in> | |
| <!-- other forms | |
| <fc_in type="abs">8</fc_in> | |
| <fc_in type="frac">0.3</fc_in> | |
| --> | |
| <fc_out type="full"></fc_out> | |
| <pinclasses> | |
| <!-- Logical Equivalence Classes--> | |
| <class type="in">0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21</class> | |
| <class type="out">22 23 24 25 26 27 28 29 30 31</class> | |
| <class type="global">32</class> | |
| </pinclasses> | |
| <pinlocations> | |
| <!-- Balenced around sides. See LEB type about how offsets work --> | |
| <loc side="left">0 4 8 12 16 20 24 28 32</loc> | |
| <loc side="top">1 5 9 13 17 21 25 29</loc> | |
| <loc side="right">2 6 10 14 18 22 26 30</loc> | |
| <loc side="bottom">3 7 11 15 19 23 27 31</loc> | |
| </pinlocations> | |
| <!-- for priority, bigger is higher priority --> | |
| <gridlocations> | |
| <loc type="fill" priority="1"/> | |
| </gridlocations> | |
| <timing> | |
| <tedge type="T_sblk_opin_to_sblk_ipin">2.5e-10</tedge> | |
| <tedge type="T_fb_ipin_to_sblk_ipin">3.5e-10</tedge> | |
| <tedge type="T_sblk_opin_to_fb_opin">4.5e-10</tedge> | |
| </timing> | |
| </type> | |
| <!-- This is an example definition of a 1x3 LEB with LE --> | |
| <type name=".leb" height="3"> | |
| <subblocks max_subblocks="1" max_subblock_inputs="44" max_subblock_outputs="20"> | |
| <timing> | |
| <T_comb> | |
| <!-- matrix row order is input pin, column is output pin --> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| <trow>2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09 2e-09</trow> | |
| </T_comb> | |
| <T_seq_in> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| <trow>-1e-10</trow> | |
| </T_seq_in> | |
| <T_seq_out> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| <trow>1e-10</trow> | |
| </T_seq_out> | |
| </timing> | |
| </subblocks> | |
| <fc_in type="frac">0.25</fc_in> | |
| <fc_out type="full" /> | |
| <pinclasses> | |
| <class type="in">0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43</class> | |
| <class type="out">44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63</class> | |
| <class type="global">64</class> | |
| </pinclasses> | |
| <pinlocations> | |
| <loc side="left">0 8 16 24 32 40 48 56 64</loc> | |
| <loc side="left" offset="1">1 9 17 25 33 41 49 57</loc> | |
| <loc side="left" offset="2">2 10 18 26 34 42 50 58</loc> | |
| <loc side="top" offset="2">3 11 19 27 35 43 51 59</loc> | |
| <loc side="right">4 12 20 28 36 44 52 60</loc> | |
| <loc side="right" offset="1">5 13 21 29 37 45 53 61</loc> | |
| <loc side="right" offset="2">6 14 22 30 38 46 54 62</loc> | |
| <loc side="bottom">7 15 23 31 39 47 55 63</loc> | |
| </pinlocations> | |
| <gridlocations> | |
| <loc type="col" start="2" repeat="5" priority="2"/> | |
| <loc type="rel" pos="0.5" priority="3"/> | |
| </gridlocations> | |
| <timing> | |
| <tedge type="T_sblk_opin_to_sblk_ipin">2e-9</tedge> | |
| <tedge type="T_fb_ipin_to_sblk_ipin">3e-9</tedge> | |
| <tedge type="T_sblk_opin_to_fb_opin">4e-9</tedge> | |
| </timing> | |
| </type> | |
| </typelist> | |
| </architecture> |