59 area_(areaData), delay_(internalDelayData) {
82 for (EnergyMap::const_iterator i = stats1.
energies_.begin();
85 string key = (*i).first;
86 double energy1 = (*i).second;
89 double energy = energy1 + coefficient * (energy2 - energy1);
95 for (EnergyMap::const_iterator i = stats2.
energies_.begin();
98 string key = (*i).first;
103 for (EnergyMap::const_iterator i = stats1.
energies_.begin();
106 string key = (*i).first;
111 for (DelayMap::const_iterator i = stats1.
delays_.begin();
112 i != stats1.
delays_.end(); i++) {
114 string key = (*i).first;
115 double delay1 = (*i).second;
118 double delay = delay1 + coefficient * (delay2 - delay1);
124 for (DelayMap::const_iterator i = stats2.
delays_.begin();
125 i != stats2.
delays_.end(); i++) {
127 string key = (*i).first;
132 for (DelayMap::const_iterator i = stats1.
delays_.begin();
133 i != stats1.
delays_.end(); i++) {
135 string key = (*i).first;
157 for (EnergyMap::const_iterator i =
energies_.begin();
160 newStats->
addEnergy((*i).first, (*i).second);
162 for (DelayMap::const_iterator i =
delays_.begin();
165 newStats->
setDelay((*i).first, (*i).second);
221 "CostDBEntryStats::energyOperation");
236 "CostDBEntryStats::hasEnergyOperation");
251 "CostDBEntryStats::energyRead");
266 "CostDBEntryStats::energyRead");
283 "CostDBEntryStats::energyReadsWrites");
296 EnergyMap::const_iterator i =
energies_.find(key);
309 EnergyMap::const_iterator i =
energies_.find(key);
311 throw KeyNotFound(__FILE__, __LINE__,
"CostDBEntryStats::findEnergy");
360 "CostDBEntryStats::setEnergyOperation");
373 "CostDBEntryStats::setEnergyRead");
386 "CostDBEntryStats::setEnergyWrite");
401 "CostDBEntryStats::setEnergyReadsWrites");
416 EnergyMap::iterator iter =
energies_.find(key);
420 std::pair<const std::string, double> energyKey =
421 std::pair<const std::string, double>(key, energy);
460 DelayMap::const_iterator i =
delays_.find(key);
463 throw KeyNotFound(__FILE__, __LINE__,
"CostDBEntryStats::findDelay");
480 DelayMap::iterator iter =
delays_.find(key);
484 std::pair<const std::string, double> delayKey =
485 std::pair<const std::string, double>(key,
delay);
498 DelayMap::const_iterator i =
delays_.find(key);
virtual void setEnergyRead(double energy)
CostDBEntryStats(double areaData, double internalDelayData)
virtual double energyIdle() const
virtual void setEnergyOperation(const std::string &name, double energy)
virtual CostDBEntryStats * createStats() const
virtual CostDBEntryStats * copy() const
static const std::string ENERGY_ACTIVE
String for active energy.
virtual double findDelay(const std::string &key) const
virtual bool hasDelay(const std::string &key) const
virtual void addDelay(const std::string &name, double delay)
static const std::string ENERGY_READ_WRITE
String for reads and writes energy.
virtual double findEnergy(const std::string &key) const
virtual double delayPort(const std::string &port) const
DelayMap delays_
input and output delays in nanoseconds.
virtual ~CostDBEntryStats()
double delay_
delay in nanoseconds.
virtual bool hasEnergyOperation(const std::string &name) const
virtual double energyWrite() const
virtual void setEnergyReadWrite(int reads, int writes, double energy)
EnergyMap energies_
Energies of one specific type of usage of a resource. Usually the map contains energies for active an...
virtual double energyActive() const
virtual double delay() const
virtual void setEnergyIdle(double energy)
virtual void setEnergyWrite(double energy)
virtual double energyReadWrite(int reads, int writes) const
static const std::string ENERGY_READ
String for read energy.
double area_
area in gates.
virtual double energyRead() const
virtual void setEnergyActive(double energy)
virtual void setDelay(const std::string &port, double delay)
virtual bool hasEnergy(const std::string &key) const
static const std::string ENERGY_WRITE
String for write energy.
virtual void addEnergy(const std::string &name, double energy)
virtual double energyOperation(const std::string &name) const
virtual double area() const
static const std::string ENERGY_IDLE
String for idle energy.