ZLayout EDA Library v1.0.0
Advanced Electronic Design Automation Layout Library with Bilingual Documentation
Loading...
Searching...
No Matches
zlayout::components::PowerManagementUnit Class Reference

Power Management Unit (PMU) IP Block. More...

#include <ip_blocks.hpp>

Inheritance diagram for zlayout::components::PowerManagementUnit:
Collaboration diagram for zlayout::components::PowerManagementUnit:

Public Types

enum class  PowerState {
  Active , Idle , Standby , Sleep ,
  DeepSleep , Shutdown
}

Public Member Functions

 PowerManagementUnit (const std::string &name)
void addPowerDomain (const std::string &domain, double voltage, double current)
void removePowerDomain (const std::string &domain)
double getVoltage (const std::string &domain) const
void setVoltage (const std::string &domain, double voltage)
double getCurrent (const std::string &domain) const
double getTotalPower () const
PowerState getPowerState () const
void setPowerState (PowerState state)
void enableDVFS (bool enable)
bool isDVFSEnabled () const
void simulate (double time_step) override
std::string getDescription () const override
Public Member Functions inherited from zlayout::components::Component
 Component (const std::string &name, ComponentCategory category)
virtual ~Component ()=default
const std::string & getName () const
const std::string & getType () const
ComponentCategory getCategory () const
void setName (const std::string &name)
void setType (const std::string &type)
void addChild (std::shared_ptr< Component > child)
void removeChild (const std::string &name)
std::shared_ptr< ComponentgetChild (const std::string &name) const
const std::vector< std::shared_ptr< Component > > & getChildren () const
std::shared_ptr< ComponentgetParent () const
void setParent (std::shared_ptr< Component > parent)
const geometry::RectanglegetBoundingBox () const
void setBoundingBox (const geometry::Rectangle &bbox)
geometry::Point getPosition () const
void setPosition (const geometry::Point &pos)
double getRotation () const
void setRotation (double angle)
void addPin (std::shared_ptr< Pin > pin)
void removePin (const std::string &name)
std::shared_ptr< PingetPin (const std::string &name) const
const std::vector< std::shared_ptr< Pin > > & getPins () const
void setProperty (const std::string &key, const std::string &value)
std::string getProperty (const std::string &key) const
const std::map< std::string, std::string > & getProperties () const
void setTimingInfo (const TimingInfo &timing)
const TimingInfogetTimingInfo () const
void setPowerInfo (const PowerInfo &power)
const PowerInfogetPowerInfo () const
void setElectricalInfo (const ElectricalInfo &electrical)
const ElectricalInfogetElectricalInfo () const
void setTechNode (TechNode node)
TechNode getTechNode () const
virtual void reset ()
virtual geometry::Rectangle calculateHierarchicalBoundingBox () const
virtual double calculateTotalArea () const
virtual size_t getTotalGateCount () const
virtual std::vector< std::shared_ptr< Component > > flattenHierarchy () const
virtual std::string serialize () const
virtual void deserialize (const std::string &data)

Additional Inherited Members

Protected Attributes inherited from zlayout::components::Component
std::string name_
std::string type_
ComponentCategory category_
std::vector< std::shared_ptr< Component > > children_
std::weak_ptr< Componentparent_
geometry::Rectangle bounding_box_
geometry::Point position_
double rotation_ = 0.0
std::vector< std::shared_ptr< Pin > > pins_
std::unordered_map< std::string, std::shared_ptr< Pin > > pin_map_
std::map< std::string, std::string > properties_
TimingInfo timing_
PowerInfo power_
ElectricalInfo electrical_
TechNode tech_node_ = TechNode::um_7

Detailed Description

Power Management Unit (PMU) IP Block.

Definition at line 367 of file ip_blocks.hpp.

Member Enumeration Documentation

◆ PowerState

Enumerator
Active 
Idle 
Standby 
Sleep 
DeepSleep 
Shutdown 

Definition at line 369 of file ip_blocks.hpp.

Constructor & Destructor Documentation

◆ PowerManagementUnit()

zlayout::components::PowerManagementUnit::PowerManagementUnit ( const std::string & name)

Member Function Documentation

◆ addPowerDomain()

void zlayout::components::PowerManagementUnit::addPowerDomain ( const std::string & domain,
double voltage,
double current )

◆ enableDVFS()

void zlayout::components::PowerManagementUnit::enableDVFS ( bool enable)
inline

Definition at line 397 of file ip_blocks.hpp.

◆ getCurrent()

double zlayout::components::PowerManagementUnit::getCurrent ( const std::string & domain) const

◆ getDescription()

std::string zlayout::components::PowerManagementUnit::getDescription ( ) const
overridevirtual

Reimplemented from zlayout::components::Component.

◆ getPowerState()

PowerState zlayout::components::PowerManagementUnit::getPowerState ( ) const
inline

Definition at line 393 of file ip_blocks.hpp.

◆ getTotalPower()

double zlayout::components::PowerManagementUnit::getTotalPower ( ) const

◆ getVoltage()

double zlayout::components::PowerManagementUnit::getVoltage ( const std::string & domain) const

◆ isDVFSEnabled()

bool zlayout::components::PowerManagementUnit::isDVFSEnabled ( ) const
inline

Definition at line 398 of file ip_blocks.hpp.

◆ removePowerDomain()

void zlayout::components::PowerManagementUnit::removePowerDomain ( const std::string & domain)

◆ setPowerState()

void zlayout::components::PowerManagementUnit::setPowerState ( PowerState state)

◆ setVoltage()

void zlayout::components::PowerManagementUnit::setVoltage ( const std::string & domain,
double voltage )

◆ simulate()

void zlayout::components::PowerManagementUnit::simulate ( double time_step)
overridevirtual

Reimplemented from zlayout::components::Component.


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