torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::placer::PlacementSiteTypeMappingVirtex5 Class Reference

Placement mapping for legal instance types to site types. More...

#include <PlacementSiteTypeMappingVirtex5.hpp>

+ Inheritance diagram for torc::placer::PlacementSiteTypeMappingVirtex5:
+ Collaboration diagram for torc::placer::PlacementSiteTypeMappingVirtex5:

Public Types

typedef std::vector
< MappingSiteType
TypeVector
 

Public Member Functions

 PlacementSiteTypeMappingVirtex5 (DDB &inDB)
 
 ~PlacementSiteTypeMappingVirtex5 ()
 
uint32 getNumTypes ()
 
std::vector< MappingSiteType > & getTypeVector ()
 
std::vector< uint32 > & getLegalSitesForInstance (uint32 inInstanceTypeIndex)
 
std::vector< uint32 > & getLegalInstancesForSite (uint32 inSiteTypeIndex)
 
MappingSiteTypegetType (uint32 inIndex)
 
MappingSiteTypegetType (std::string &inName)
 
const std::string & getName (uint32 inIndex)
 
uint32 getTypeIndex (const std::string &inType)
 Get the type index for a given type name, creates a new entry if not found. More...
 

Protected Types

typedef architecture::DDB DDB
 
typedef architecture::Sites Sites
 
typedef boost::uint32_t uint32
 
typedef std::vector< uint32InstanceTypeToCandidateTypeMap
 
typedef architecture::Site Site
 
typedef std::vector< const Site * > SitePtrVector
 
typedef std::vector
< SitePtrVector
SitePtrVectorVector
 
typedef std::vector
< SitePtrVectorVector
SitePtrVectorVectorVector
 
typedef std::set< Site * > SitePtrSet
 
typedef std::vector< SitePtrSetSitePtrSetVector
 
typedef std::vector
< SitePtrSetVector
SitePtrSetVectorVector
 

Protected Member Functions

void prepareStructures ()
 
void addMapData (std::string itype, std::string stype)
 

Protected Attributes

DDBmDB
 
const SitesmSites
 
const architecture::Array
< const
architecture::PrimitiveDef > & 
mSiteTypes
 
TypeVector mTypeVector
 
std::map< std::string, uint32mTypeLookup
 

Detailed Description

Placement mapping for legal instance types to site types.

Definition at line 29 of file PlacementSiteTypeMappingVirtex5.hpp.

Member Typedef Documentation

Definition at line 36 of file PlacementSiteTypeMapping.hpp.

Definition at line 41 of file PlacementSiteTypeMapping.hpp.

typedef std::set<Site*> torc::placer::PlacementSiteTypeMapping::SitePtrSet
protectedinherited

Definition at line 48 of file PlacementSiteTypeMapping.hpp.

Definition at line 49 of file PlacementSiteTypeMapping.hpp.

Definition at line 50 of file PlacementSiteTypeMapping.hpp.

typedef std::vector<const Site*> torc::placer::PlacementSiteTypeMapping::SitePtrVector
protectedinherited

Definition at line 44 of file PlacementSiteTypeMapping.hpp.

Definition at line 45 of file PlacementSiteTypeMapping.hpp.

Definition at line 64 of file PlacementSiteTypeMapping.hpp.

typedef boost::uint32_t torc::placer::PlacementSiteTypeMapping::uint32
protectedinherited

Definition at line 38 of file PlacementSiteTypeMapping.hpp.

Constructor & Destructor Documentation

torc::placer::PlacementSiteTypeMappingVirtex5::PlacementSiteTypeMappingVirtex5 ( DDB inDB)
inline

Definition at line 32 of file PlacementSiteTypeMappingVirtex5.hpp.

32  : PlacementSiteTypeMapping(inDB) {
33  // Don't want to call the parent constructor since it sets up the default mapping
34 
36 
37  // Record legal mappings for this family
38  // Instance type to legal site type
39 
40  // ONE TO ONE SITE TYPES
41  addMapData("BSCAN", "BSCAN");
42  addMapData("BUFDS", "BUFDS");
43  addMapData("BUFIO", "BUFIO");
44  addMapData("BUFR", "BUFR");
45  addMapData("CAPTURE", "CAPTURE");
46  addMapData("CRC32", "CRC32");
47  addMapData("CRC64", "CRC64");
48  addMapData("DCI", "DCI");
49  addMapData("DCIRESET", "DCIRESET");
50  addMapData("DCM_ADV", "DCM_ADV");
51  addMapData("DSP48E", "DSP48E");
52  addMapData("EFUSE_USR", "EFUSE_USR");
53  addMapData("FRAME_ECC", "FRAME_ECC");
54  addMapData("GLOBALSIG", "GLOBALSIG");
55  addMapData("GTP_DUAL", "GTP_DUAL");
56  addMapData("GTX_DUAL", "GTX_DUAL");
57  addMapData("ICAP", "ICAP");
58  addMapData("IDELAYCTRL", "IDELAYCTRL");
59  addMapData("JTAGPPC", "JTAGPPC");
60  addMapData("KEY_CLEAR", "KEY_CLEAR");
61  addMapData("PCIE", "PCIE");
62  addMapData("PLL_ADV", "PLL_ADV");
63  addMapData("PMV", "PMV");
64  addMapData("PMVBRAM", "PMVBRAM");
65  addMapData("PPC440", "PPC440");
66  addMapData("STARTUP", "STARTUP");
67  addMapData("SYSMON", "SYSMON");
68  addMapData("TEMAC", "TEMAC");
69  addMapData("TIEOFF", "TIEOFF");
70  addMapData("USR_ACCESS", "USR_ACCESS");
71 
72  // BUFG
73  addMapData("BUFG", "BUFGCTRL");
74  addMapData("BUFGCTRL", "BUFGCTRL");
75 
76  // IO LOGIC SITES
77  addMapData("ILOGIC", "ILOGIC");
78  addMapData("ISERDES", "ILOGIC");
79  addMapData("IODELAY", "IODELAY");
80  addMapData("OLOGIC", "OLOGIC");
81  addMapData("OSERDES", "OLOGIC");
82 
83  // IO PADS
84  addMapData("OPAD", "OPAD");
85  addMapData("IOBM", "IOBM");
86  addMapData("IOB", "IOBM");
87  addMapData("IPAD", "IOBM");
88  addMapData("IOBS", "IOBS");
89  addMapData("IOB", "IOBS");
90  addMapData("IPAD", "IOBS");
91  addMapData("IPAD", "IPAD");
92 
93  // BRAM SITES
94  addMapData("FIFO36_72_EXP", "RAMBFIFO36");
95  addMapData("FIFO36_EXP", "RAMBFIFO36");
96  addMapData("RAMB18X2", "RAMBFIFO36");
97  addMapData("RAMB18X2SDP", "RAMBFIFO36");
98  addMapData("RAMB36SDP_EXP", "RAMBFIFO36");
99  addMapData("RAMB36_EXP", "RAMBFIFO36");
100  addMapData("RAMBFIFO18", "RAMBFIFO36");
101  addMapData("RAMBFIFO18_36", "RAMBFIFO36");
102  addMapData("RAMBFIFO36", "RAMBFIFO36");
103 
104  // SLICE SITES
105  addMapData("SLICEL", "SLICEL");
106  addMapData("SLICEL", "SLICEM");
107  addMapData("SLICEM", "SLICEM");
108 
109  }
void addMapData(std::string itype, std::string stype)

+ Here is the call graph for this function:

torc::placer::PlacementSiteTypeMappingVirtex5::~PlacementSiteTypeMappingVirtex5 ( )
inline

Definition at line 110 of file PlacementSiteTypeMappingVirtex5.hpp.

110 {}

Member Function Documentation

void torc::placer::PlacementSiteTypeMapping::addMapData ( std::string  itype,
std::string  stype 
)
inlineprotectedinherited

Definition at line 102 of file PlacementSiteTypeMapping.hpp.

102  {
103  uint32 ii = mTypeLookup[itype];
104  uint32 si = mTypeLookup[stype];
105 
106  mTypeVector[ii].getSiteTypes().push_back(si);
107  mTypeVector[si].getInstanceTypes().push_back(ii);
108 
109  }
std::map< std::string, uint32 > mTypeLookup

+ Here is the caller graph for this function:

std::vector<uint32>& torc::placer::PlacementSiteTypeMapping::getLegalInstancesForSite ( uint32  inSiteTypeIndex)
inlineinherited

Definition at line 120 of file PlacementSiteTypeMapping.hpp.

120  {
121  return mTypeVector[inSiteTypeIndex].getInstanceTypes();
122  }

+ Here is the caller graph for this function:

std::vector<uint32>& torc::placer::PlacementSiteTypeMapping::getLegalSitesForInstance ( uint32  inInstanceTypeIndex)
inlineinherited

Definition at line 117 of file PlacementSiteTypeMapping.hpp.

117  {
118  return mTypeVector[inInstanceTypeIndex].getSiteTypes();
119  }

+ Here is the caller graph for this function:

const std::string& torc::placer::PlacementSiteTypeMapping::getName ( uint32  inIndex)
inlineinherited

Definition at line 128 of file PlacementSiteTypeMapping.hpp.

128 { return mTypeVector[inIndex].getName(); }

+ Here is the caller graph for this function:

uint32 torc::placer::PlacementSiteTypeMapping::getNumTypes ( )
inlineinherited

Definition at line 111 of file PlacementSiteTypeMapping.hpp.

111 { return mTypeLookup.size(); }
std::map< std::string, uint32 > mTypeLookup
MappingSiteType& torc::placer::PlacementSiteTypeMapping::getType ( uint32  inIndex)
inlineinherited

Definition at line 123 of file PlacementSiteTypeMapping.hpp.

123 { return mTypeVector[inIndex]; }
MappingSiteType& torc::placer::PlacementSiteTypeMapping::getType ( std::string &  inName)
inlineinherited

Definition at line 125 of file PlacementSiteTypeMapping.hpp.

125  {
126  return mTypeVector[mTypeLookup[inName]];
127  }
std::map< std::string, uint32 > mTypeLookup
uint32 torc::placer::PlacementSiteTypeMapping::getTypeIndex ( const std::string &  inType)
inlineinherited

Get the type index for a given type name, creates a new entry if not found.

Definition at line 131 of file PlacementSiteTypeMapping.hpp.

131 { return mTypeLookup[inType]; }
std::map< std::string, uint32 > mTypeLookup

+ Here is the caller graph for this function:

std::vector<MappingSiteType>& torc::placer::PlacementSiteTypeMapping::getTypeVector ( )
inlineinherited

Definition at line 113 of file PlacementSiteTypeMapping.hpp.

113  {
114  return mTypeVector;
115  }
void torc::placer::PlacementSiteTypeMapping::prepareStructures ( )
inlineprotectedinherited

Definition at line 92 of file PlacementSiteTypeMapping.hpp.

92  {
93  mTypeVector.clear();
94  mTypeLookup.clear();
95  // set up a map of site type indices
96  for (uint32 i = 0; i < mSites.getSiteTypeCount(); i++) {
97  mTypeVector.push_back(MappingSiteType(mSiteTypes[i].getName()));
98  mTypeLookup.insert(std::pair<std::string, uint32>(mSiteTypes[i].getName(), i));
99  }
100  }
const std::string & getName(uint32 inIndex)
std::map< std::string, uint32 > mTypeLookup
SiteTypeCount getSiteTypeCount(void) const
Returns the site type count for this family.
Definition: Sites.hpp:123
const architecture::Array< const architecture::PrimitiveDef > & mSiteTypes

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

DDB& torc::placer::PlacementSiteTypeMapping::mDB
protectedinherited

Definition at line 69 of file PlacementSiteTypeMapping.hpp.

const Sites& torc::placer::PlacementSiteTypeMapping::mSites
protectedinherited

Definition at line 70 of file PlacementSiteTypeMapping.hpp.

const architecture::Array<const architecture::PrimitiveDef>& torc::placer::PlacementSiteTypeMapping::mSiteTypes
protectedinherited

Definition at line 71 of file PlacementSiteTypeMapping.hpp.

std::map<std::string, uint32> torc::placer::PlacementSiteTypeMapping::mTypeLookup
protectedinherited

Definition at line 74 of file PlacementSiteTypeMapping.hpp.

TypeVector torc::placer::PlacementSiteTypeMapping::mTypeVector
protectedinherited

Definition at line 73 of file PlacementSiteTypeMapping.hpp.


The documentation for this class was generated from the following file: