19 #ifndef TORC_PACKER_PRIMITIVESTRUCTURE_HPP
20 #define TORC_PACKER_PRIMITIVESTRUCTURE_HPP
23 #include <boost/regex.hpp>
24 #include <boost/shared_ptr.hpp>
32 namespace architecture {
class PackageUnitTest; }
33 namespace packer {
class PrimitiveStructureUnitTest; }
35 using namespace architecture;
53 friend class torc::packer::packer::PrimitiveStructureUnitTest;
128 virtual void initialize(
void);
133 : mPrimitiveDefPtr(inPrimitiveDefPtr) {
158 virtual bool isLUT(
const PrimitiveElement& inElement,
const string& inConfig);
160 virtual bool isFlop(
const PrimitiveElement& inElement,
const string& inConfig);
174 #endif // TORC_PACKER_PRIMITIVESTRUCTURE_HPP
static boost::regex sInvertingInputRegEx
Regular expression for inverting input pins.
NameToElementPtrMap mRoutethroughs
Map of all routethroughs.
NameToElementPtrMap mSwitches
Map of all switches.
torc::architecture::PrimitiveElement PrimitiveElement
Imported type name.
static boost::regex sLUTRegEx
Regular expression for LUTs.
static boost::regex sPowerRegEx
Regular expression for power sources.
static boost::regex sGroundRegEx
Regular expression for ground sources.
NameToElementPtrMap mUnprocessed
Map of unprocessed elements.
std::map< string, const PrimitiveElement * > NameToElementPtrMap
Mapping from element name to element pointer.
const PrimitiveDef * getPrimitiveDefPtr(void) const
Returns a pointer to the associated primitive definition.
NameToElementPtrMap mGround
Map of all ground sources.
ElementPinPtrSet mInvertedInputs
Set of inverted element input pins.
Encapsulation of primitive site definition, with associated connections, elements, and pins.
virtual ~PrimitiveStructure(void)
Virtual destructor.
NameToElementPtrMap mElements
Map of all elements.
PrimitiveStructure(const PrimitiveDef *inPrimitiveDefPtr)
Default constructor.
std::string string
Imported type name.
NameToElementPtrMap mPower
Map of all power sources.
static boost::regex sRoutethroughRegEx
Regular expression for routethroughs.
PrimitiveStructure(void)
Null constructor.
NameToElementPtrMap mMuxes
Map of all configurable muxes (including switches and inverters).
std::map< string, std::vector< const PrimitiveElement * > > PrincipalToOrphanPtrMap
Mapping from principal element name to an orphan element pointer vector.
static boost::regex sPrincipalRegEx
Regular expression for additional principal elements.
Header for the PrimitiveDef class.
std::set< const torc::architecture::PrimitiveElementPin * > ElementPinPtrSet
A set of configuration values.
NameToElementPtrMap mPreclassified
Map of pre-classified elements (typically by a subclass).
static boost::regex sFlopRegEx
Regular expression for flops.
PrincipalToOrphanPtrMap mPrincipalsToOrphans
Map of principals to orphans.
NameToElementPtrMap mPrincipals
Map of all principals.
NameToElementPtrMap mFlops
Map of all flops.
NameToElementPtrMap mLUTs
Map of all LUTs.
Encapsulation of a primitive site element. Primitive elements are subcomponents of logic primitive s...
const PrimitiveDef * mPrimitiveDefPtr
Pointer to the associated primitive definition.
NameToElementPtrMap mTerminals
Map of all terminals.
ELogicType
Enumeration of logic types.
boost::shared_ptr< PrimitiveStructure > PrimitiveStructureSharedPtr
Shared pointer encapsulation of a PrimitiveStructure.
Encapsulation of the site index, pin name, and pin flags for a package.
torc::architecture::PrimitiveDef PrimitiveDef
Imported type name.
NameToElementPtrMap mOrphans
Map of all Orphans.