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

Memory Controller IP Block. More...

#include <ip_blocks.hpp>

Inheritance diagram for zlayout::components::MemoryController:
Collaboration diagram for zlayout::components::MemoryController:

Classes

struct  TimingParams

Public Types

enum class  MemoryType {
  DDR3 , DDR4 , DDR5 , LPDDR4 ,
  LPDDR5 , HBM2 , HBM3 , GDDR6 ,
  SRAM , Custom
}

Public Member Functions

 MemoryController (const std::string &name, MemoryType type, size_t channels=1)
MemoryType getMemoryType () const
size_t getChannelCount () const
size_t getDataWidth () const
void setDataWidth (size_t width)
double getFrequency () const
void setFrequency (double freq)
size_t getCapacityPerChannel () const
void setCapacityPerChannel (size_t capacity)
size_t getTotalCapacity () const
void setTimingParams (const TimingParams &params)
const TimingParamsgetTimingParams () const
double getBandwidth () const
double getLatency () const
double getPowerConsumption () 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

Memory Controller IP Block.

Definition at line 144 of file ip_blocks.hpp.

Member Enumeration Documentation

◆ MemoryType

Enumerator
DDR3 
DDR4 
DDR5 
LPDDR4 
LPDDR5 
HBM2 
HBM3 
GDDR6 
SRAM 
Custom 

Definition at line 146 of file ip_blocks.hpp.

Constructor & Destructor Documentation

◆ MemoryController()

zlayout::components::MemoryController::MemoryController ( const std::string & name,
MemoryType type,
size_t channels = 1 )

Member Function Documentation

◆ getBandwidth()

double zlayout::components::MemoryController::getBandwidth ( ) const

◆ getCapacityPerChannel()

size_t zlayout::components::MemoryController::getCapacityPerChannel ( ) const
inline

Definition at line 172 of file ip_blocks.hpp.

◆ getChannelCount()

size_t zlayout::components::MemoryController::getChannelCount ( ) const
inline

Definition at line 163 of file ip_blocks.hpp.

◆ getDataWidth()

size_t zlayout::components::MemoryController::getDataWidth ( ) const
inline

Definition at line 165 of file ip_blocks.hpp.

◆ getDescription()

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

Reimplemented from zlayout::components::Component.

◆ getFrequency()

double zlayout::components::MemoryController::getFrequency ( ) const
inline

Definition at line 168 of file ip_blocks.hpp.

◆ getLatency()

double zlayout::components::MemoryController::getLatency ( ) const

◆ getMemoryType()

MemoryType zlayout::components::MemoryController::getMemoryType ( ) const
inline

Definition at line 162 of file ip_blocks.hpp.

◆ getPowerConsumption()

double zlayout::components::MemoryController::getPowerConsumption ( ) const

◆ getTimingParams()

const TimingParams & zlayout::components::MemoryController::getTimingParams ( ) const
inline

Definition at line 189 of file ip_blocks.hpp.

◆ getTotalCapacity()

size_t zlayout::components::MemoryController::getTotalCapacity ( ) const
inline

Definition at line 175 of file ip_blocks.hpp.

◆ setCapacityPerChannel()

void zlayout::components::MemoryController::setCapacityPerChannel ( size_t capacity)
inline

Definition at line 173 of file ip_blocks.hpp.

◆ setDataWidth()

void zlayout::components::MemoryController::setDataWidth ( size_t width)
inline

Definition at line 166 of file ip_blocks.hpp.

◆ setFrequency()

void zlayout::components::MemoryController::setFrequency ( double freq)
inline

Definition at line 169 of file ip_blocks.hpp.

◆ setTimingParams()

void zlayout::components::MemoryController::setTimingParams ( const TimingParams & params)
inline

Definition at line 188 of file ip_blocks.hpp.

◆ simulate()

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

Reimplemented from zlayout::components::Component.


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