torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
XilinxPhysicalTypes.hpp
Go to the documentation of this file.
1 // Torc - Copyright 2011-2013 University of Southern California. All Rights Reserved.
2 // $HeadURL$
3 // $Id$
4 
5 // This program is free software: you can redistribute it and/or modify it under the terms of the
6 // GNU General Public License as published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
10 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
11 // the GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License along with this program. If
14 // not, see <http://www.gnu.org/licenses/>.
15 
16 /// \file
17 /// \brief Header for Xilinx physical types.
18 
19 #ifndef TORC_PHYSICAL_XILINXPHYSICALTYPES_HPP
20 #define TORC_PHYSICAL_XILINXPHYSICALTYPES_HPP
21 
22 #include <boost/cstdint.hpp>
23 #include <string>
24 
25 namespace torc {
26 namespace physical {
27 
28  // --------------------------------------------------------------------------------------------
29  // ------------------------------------------- Wires ------------------------------------------
30  // --------------------------------------------------------------------------------------------
31 
32  /// \brief Encapsulation of a wire name.
33  class WireName : public std::string {
34  /// \brief Basic constructor.
35  public: WireName(const std::string& rhs) : std::string(rhs) {}
36  };
37 
38  // --------------------------------------------------------------------------------------------
39  // ------------------------------------------- Tiles ------------------------------------------
40  // --------------------------------------------------------------------------------------------
41 
42  /// \brief Encapsulation of a tile name.
43  class TileName : public std::string {
44  /// \brief Basic constructor.
45  public: TileName(const std::string& rhs) : std::string(rhs) {}
46  };
47 
48  // --------------------------------------------------------------------------------------------
49  // ---------------------------------------- Tile types ----------------------------------------
50  // --------------------------------------------------------------------------------------------
51 
52  /// \brief Encapsulation of a tile type name.
53  class TileTypeName : public std::string {
54  /// \brief Basic constructor.
55  public: TileTypeName(const std::string& rhs) : std::string(rhs) {}
56  };
57 
58  // --------------------------------------------------------------------------------------------
59  // ----------------------------------------- Instances ----------------------------------------
60  // --------------------------------------------------------------------------------------------
61 
62  /// \brief Encapsulation of an instance name.
63  class InstanceName : public std::string {
64  /// \brief Basic constructor.
65  public: InstanceName(const std::string& rhs) : std::string(rhs) {}
66  };
67 
68  /// \brief Enumeration of pad bonding types.
74  };
75 
76  // --------------------------------------------------------------------------------------------
77  // ------------------------------------------- Sites ------------------------------------------
78  // --------------------------------------------------------------------------------------------
79 
80  /// \brief Encapsulation of a site name.
81  class SiteName : public std::string {
82  /// \brief Basic constructor.
83  public: SiteName(const std::string& rhs) : std::string(rhs) {}
84  };
85 
86  // --------------------------------------------------------------------------------------------
87  // ----------------------------------------- Site types ---------------------------------------
88  // --------------------------------------------------------------------------------------------
89 
90  /// \brief Encapsulation of a site type name.
91  class SiteTypeName : public std::string {
92  /// \brief Basic constructor.
93  public: SiteTypeName(const std::string& rhs) : std::string(rhs) {}
94  };
95 
96  // --------------------------------------------------------------------------------------------
97  // ------------------------------------------- Pins -------------------------------------------
98  // --------------------------------------------------------------------------------------------
99 
100  /// \brief Encapsulation of a site pin name.
101  class PinName : public std::string {
102  /// \brief Basic constructor.
103  public: PinName(const std::string& rhs) : std::string(rhs) {}
104  };
105 
106  /// \brief Enumeration of instance pin directionality.
112  };
113 
114  // --------------------------------------------------------------------------------------------
115  // ------------------------------------------- Pips -------------------------------------------
116  // --------------------------------------------------------------------------------------------
117 
118  /// \brief Enumeration of pip directionality.
125  };
126 
127  // --------------------------------------------------------------------------------------------
128  // ------------------------------------------- Nets -------------------------------------------
129  // --------------------------------------------------------------------------------------------
130 
131  /// \brief Enumeration of net power types.
132  enum ENetType {
137  };
138 
139  // --------------------------------------------------------------------------------------------
140  // ----------------------------------------- Sequences ----------------------------------------
141  // --------------------------------------------------------------------------------------------
142 
143  /// \brief Typedef for generic sequences.
144  typedef boost::uint64_t SequenceIndex;
145  /// \brief Enumeration of sequence indexes.
146  /// \brief A sequence index is just a number, so we only need to capture the number to use when
147  /// there is no sequence defined, and the number with which to begin actual sequences.
148  /// Note that this should probably be pulled into a higher-level part of the code, since it
149  /// may be used in multiple cases.
153  };
154 
155 } // namespace physical
156 } // namespace torc
157 
158 #endif // TORC_PHYSICAL_XILINXPHYSICALTYPES_HPP
ENetType
Enumeration of net power types.
boost::uint64_t SequenceIndex
Typedef for generic sequences.
Encapsulation of a wire name.
EInstanceBonding
Enumeration of pad bonding types.
TileName(const std::string &rhs)
Basic constructor.
Encapsulation of a site name.
Encapsulation of a site pin name.
InstanceName(const std::string &rhs)
Basic constructor.
ESequenceIndex
Enumeration of sequence indexes.
Encapsulation of a tile name.
std::string string
PinName(const std::string &rhs)
Basic constructor.
Encapsulation of an instance name.
WireName(const std::string &rhs)
Basic constructor.
SiteName(const std::string &rhs)
Basic constructor.
SiteTypeName(const std::string &rhs)
Basic constructor.
EPipDirection
Enumeration of pip directionality.
TileTypeName(const std::string &rhs)
Basic constructor.
Encapsulation of a tile type name.
Encapsulation of a site type name.
EPinDirection
Enumeration of instance pin directionality.