@@ -1602,108 +1602,108 @@ enum e_Fc_type {
1602
1602
/* *
1603
1603
* @brief Lists all the important information about a certain segment type. Only
1604
1604
* used if the route_type is DETAILED. [0 .. det_routing_arch.num_segment]
1605
- */
1605
+ */
1606
1606
struct t_segment_inf {
1607
1607
/* * @var name
1608
1608
* @brief The name of the segment type
1609
- */
1609
+ */
1610
1610
std::string name;
1611
1611
1612
1612
/* * @var frequency
1613
1613
* @brief ratio of tracks which are of this segment type.
1614
- */
1614
+ */
1615
1615
int frequency;
1616
1616
1617
1617
/* * @var length
1618
1618
* @brief Length (in clbs) of the segment.
1619
- */
1619
+ */
1620
1620
int length;
1621
1621
1622
1622
/* * @var arch_wire_switch
1623
1623
* @brief Index of the switch type that connects other wires to this segment.
1624
1624
* Note that this index is in relation to the switches from the architecture file,
1625
1625
* not the expanded list of switches that is built at the end of build_rr_graph.
1626
- */
1626
+ */
1627
1627
short arch_wire_switch;
1628
-
1628
+
1629
1629
/* * @var arch_opin_switch
1630
1630
* @brief Index of the switch type that connects output pins to this segment.
1631
1631
* Note that this index is in relation to the switches from the architecture file,
1632
1632
* not the expanded list of switches that is built at the end of build_rr_graph.
1633
- */
1633
+ */
1634
1634
short arch_opin_switch;
1635
-
1635
+
1636
1636
/* * @var arch_wire_switch_dec
1637
1637
* @brief Same as arch_wire_switch but used only for decremental tracks if it is
1638
1638
* specified in the architecture file. If -1, this value was not set in the
1639
1639
* architecture file and arch_wire_switch should be used for "DEC_DIR" wire segments.
1640
- */
1640
+ */
1641
1641
short arch_wire_switch_dec = -1 ;
1642
-
1642
+
1643
1643
/* * @var arch_opin_switch_dec
1644
1644
* @brief Same as arch_opin_switch but used only for decremental tracks if
1645
1645
* it is specified in the architecture file. If -1, this value was not set in
1646
1646
* the architecture file and arch_opin_switch should be used for "DEC_DIR" wire segments.
1647
- */
1647
+ */
1648
1648
short arch_opin_switch_dec = -1 ;
1649
-
1649
+
1650
1650
/* * @var arch_opin_between_dice_switch
1651
1651
* @brief Index of the switch type that connects output pins (OPINs) to this
1652
1652
* segment from another die (layer). Note that this index is in relation to
1653
1653
* the switches from the architecture file, not the expanded list of switches
1654
1654
* that is built at the end of build_rr_graph.
1655
- */
1655
+ */
1656
1656
short arch_inter_die_switch = -1 ;
1657
-
1657
+
1658
1658
/* * @var frac_cb
1659
1659
* @brief The fraction of logic blocks along its length to which this segment can connect.
1660
1660
* (i.e. internal population).
1661
- */
1661
+ */
1662
1662
float frac_cb;
1663
-
1663
+
1664
1664
/* * @var frac_sb
1665
1665
* @brief The fraction of the length + 1 switch blocks along the segment to which the segment can connect.
1666
1666
* Segments that aren't long lines must connect to at least two switch boxes.
1667
- */
1667
+ */
1668
1668
float frac_sb;
1669
-
1669
+
1670
1670
bool longline;
1671
-
1671
+
1672
1672
/* * @var Rmetal
1673
1673
* @brief The resistance of a routing track, per unit logic block length. */
1674
1674
float Rmetal;
1675
-
1675
+
1676
1676
/* * @var Cmetal
1677
1677
* @brief The capacitance of a routing track, per unit logic block length. */
1678
1678
float Cmetal;
1679
-
1679
+
1680
1680
enum e_directionality directionality;
1681
-
1681
+
1682
1682
/* * @var parallel_axis
1683
1683
* @brief Defines what axis the segment is parallel to. See e_parallel_axis
1684
1684
* comments for more details on the values.
1685
- */
1685
+ */
1686
1686
enum e_parallel_axis parallel_axis;
1687
-
1687
+
1688
1688
/* * @var cb
1689
1689
* @brief A vector of booleans indicating whether the segment can connect to a logic block.
1690
- */
1690
+ */
1691
1691
std::vector<bool > cb;
1692
-
1692
+
1693
1693
/* * @var sb
1694
1694
* @brief A vector of booleans indicating whether the segment can connect to a switch block.
1695
- */
1695
+ */
1696
1696
std::vector<bool > sb;
1697
-
1697
+
1698
1698
/* * @var seg_index
1699
1699
* @brief The index of the segment as stored in the appropriate Segs list.
1700
1700
* Upon loading the architecture, we use this field to keep track of the
1701
1701
* segment's index in the unified segment_inf vector. This is useful when
1702
1702
* building the rr_graph for different Y & X channels in terms of track
1703
1703
* distribution and segment type.
1704
- */
1704
+ */
1705
1705
int seg_index;
1706
-
1706
+
1707
1707
/* * @var res_type
1708
1708
* @brief Determines the routing network to which the segment belongs.
1709
1709
* Possible values are:
@@ -1716,21 +1716,21 @@ struct t_segment_inf {
1716
1716
};
1717
1717
1718
1718
inline bool operator ==(const t_segment_inf& a, const t_segment_inf& b) {
1719
- return a.name == b.name
1720
- && a.frequency == b.frequency
1721
- && a.length == b.length
1722
- && a.arch_wire_switch == b.arch_wire_switch
1723
- && a.arch_opin_switch == b.arch_opin_switch
1724
- && a.arch_inter_die_switch == b.arch_inter_die_switch
1725
- && a.frac_cb == b.frac_cb
1726
- && a.frac_sb == b.frac_sb
1727
- && a.longline == b.longline
1728
- && a.Rmetal == b.Rmetal
1729
- && a.Cmetal == b.Cmetal
1730
- && a.directionality == b.directionality
1731
- && a.parallel_axis == b.parallel_axis
1732
- && a.cb == b.cb
1733
- && a.sb == b.sb ;
1719
+ return a.name == b.name
1720
+ && a.frequency == b.frequency
1721
+ && a.length == b.length
1722
+ && a.arch_wire_switch == b.arch_wire_switch
1723
+ && a.arch_opin_switch == b.arch_opin_switch
1724
+ && a.arch_inter_die_switch == b.arch_inter_die_switch
1725
+ && a.frac_cb == b.frac_cb
1726
+ && a.frac_sb == b.frac_sb
1727
+ && a.longline == b.longline
1728
+ && a.Rmetal == b.Rmetal
1729
+ && a.Cmetal == b.Cmetal
1730
+ && a.directionality == b.directionality
1731
+ && a.parallel_axis == b.parallel_axis
1732
+ && a.cb == b.cb
1733
+ && a.sb == b.sb ;
1734
1734
}
1735
1735
1736
1736
/* provide hashing for t_segment_inf to enable the use of many std containers.
0 commit comments