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

Processor Core IP Block. More...

#include <ip_blocks.hpp>

Inheritance diagram for zlayout::components::ProcessorCore:
Collaboration diagram for zlayout::components::ProcessorCore:

Classes

struct  CacheConfig

Public Member Functions

 ProcessorCore (const std::string &name, CPUArchitecture arch, size_t core_count=1)
CPUArchitecture getArchitecture () const
size_t getCoreCount () const
double getMaxFrequency () const
void setMaxFrequency (double freq)
double getCurrentFrequency () const
void setCurrentFrequency (double freq)
void setL1Config (const CacheConfig &config)
void setL2Config (const CacheConfig &config)
void setL3Config (const CacheConfig &config)
const CacheConfiggetL1Config () const
const CacheConfiggetL2Config () const
const CacheConfiggetL3Config () const
size_t getPipelineStages () const
void setPipelineStages (size_t stages)
bool hasFloatingPoint () const
void setFloatingPoint (bool has_fpu)
bool hasVectorUnit () const
void setVectorUnit (bool has_vector)
double getIPC () const
void setIPC (double ipc)
double getDMIPS () const
void setDMIPS (double dmips)
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

Processor Core IP Block.

Definition at line 66 of file ip_blocks.hpp.

Constructor & Destructor Documentation

◆ ProcessorCore()

zlayout::components::ProcessorCore::ProcessorCore ( const std::string & name,
CPUArchitecture arch,
size_t core_count = 1 )

Member Function Documentation

◆ getArchitecture()

CPUArchitecture zlayout::components::ProcessorCore::getArchitecture ( ) const
inline

Definition at line 71 of file ip_blocks.hpp.

◆ getCoreCount()

size_t zlayout::components::ProcessorCore::getCoreCount ( ) const
inline

Definition at line 72 of file ip_blocks.hpp.

◆ getCurrentFrequency()

double zlayout::components::ProcessorCore::getCurrentFrequency ( ) const
inline

Definition at line 78 of file ip_blocks.hpp.

◆ getDescription()

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

Reimplemented from zlayout::components::Component.

◆ getDMIPS()

double zlayout::components::ProcessorCore::getDMIPS ( ) const
inline

Definition at line 113 of file ip_blocks.hpp.

◆ getIPC()

double zlayout::components::ProcessorCore::getIPC ( ) const
inline

Definition at line 110 of file ip_blocks.hpp.

◆ getL1Config()

const CacheConfig & zlayout::components::ProcessorCore::getL1Config ( ) const
inline

Definition at line 94 of file ip_blocks.hpp.

◆ getL2Config()

const CacheConfig & zlayout::components::ProcessorCore::getL2Config ( ) const
inline

Definition at line 95 of file ip_blocks.hpp.

◆ getL3Config()

const CacheConfig & zlayout::components::ProcessorCore::getL3Config ( ) const
inline

Definition at line 96 of file ip_blocks.hpp.

◆ getMaxFrequency()

double zlayout::components::ProcessorCore::getMaxFrequency ( ) const
inline

Definition at line 75 of file ip_blocks.hpp.

◆ getPipelineStages()

size_t zlayout::components::ProcessorCore::getPipelineStages ( ) const
inline

Definition at line 99 of file ip_blocks.hpp.

◆ hasFloatingPoint()

bool zlayout::components::ProcessorCore::hasFloatingPoint ( ) const
inline

Definition at line 103 of file ip_blocks.hpp.

◆ hasVectorUnit()

bool zlayout::components::ProcessorCore::hasVectorUnit ( ) const
inline

Definition at line 106 of file ip_blocks.hpp.

◆ setCurrentFrequency()

void zlayout::components::ProcessorCore::setCurrentFrequency ( double freq)
inline

Definition at line 79 of file ip_blocks.hpp.

◆ setDMIPS()

void zlayout::components::ProcessorCore::setDMIPS ( double dmips)
inline

Definition at line 114 of file ip_blocks.hpp.

◆ setFloatingPoint()

void zlayout::components::ProcessorCore::setFloatingPoint ( bool has_fpu)
inline

Definition at line 104 of file ip_blocks.hpp.

◆ setIPC()

void zlayout::components::ProcessorCore::setIPC ( double ipc)
inline

Definition at line 111 of file ip_blocks.hpp.

◆ setL1Config()

void zlayout::components::ProcessorCore::setL1Config ( const CacheConfig & config)
inline

Definition at line 90 of file ip_blocks.hpp.

◆ setL2Config()

void zlayout::components::ProcessorCore::setL2Config ( const CacheConfig & config)
inline

Definition at line 91 of file ip_blocks.hpp.

◆ setL3Config()

void zlayout::components::ProcessorCore::setL3Config ( const CacheConfig & config)
inline

Definition at line 92 of file ip_blocks.hpp.

◆ setMaxFrequency()

void zlayout::components::ProcessorCore::setMaxFrequency ( double freq)
inline

Definition at line 76 of file ip_blocks.hpp.

◆ setPipelineStages()

void zlayout::components::ProcessorCore::setPipelineStages ( size_t stages)
inline

Definition at line 100 of file ip_blocks.hpp.

◆ setVectorUnit()

void zlayout::components::ProcessorCore::setVectorUnit ( bool has_vector)
inline

Definition at line 107 of file ip_blocks.hpp.

◆ simulate()

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

Reimplemented from zlayout::components::Component.


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