ZLayout EDA Library v1.0.0
Advanced Electronic Design Automation Layout Library with Bilingual Documentation
|
Base class for all EDA components. More...
#include <component.hpp>
Public Member Functions | |
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< Component > | getChild (const std::string &name) const |
const std::vector< std::shared_ptr< Component > > & | getChildren () const |
std::shared_ptr< Component > | getParent () const |
void | setParent (std::shared_ptr< Component > parent) |
const geometry::Rectangle & | getBoundingBox () 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< Pin > | getPin (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 TimingInfo & | getTimingInfo () const |
void | setPowerInfo (const PowerInfo &power) |
const PowerInfo & | getPowerInfo () const |
void | setElectricalInfo (const ElectricalInfo &electrical) |
const ElectricalInfo & | getElectricalInfo () const |
void | setTechNode (TechNode node) |
TechNode | getTechNode () const |
virtual void | simulate (double time_step) |
virtual void | reset () |
virtual std::string | getDescription () const |
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) |
Protected Attributes | |
std::string | name_ |
std::string | type_ |
ComponentCategory | category_ |
std::vector< std::shared_ptr< Component > > | children_ |
std::weak_ptr< Component > | parent_ |
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 |
Base class for all EDA components.
Definition at line 178 of file component.hpp.
zlayout::components::Component::Component | ( | const std::string & | name, |
ComponentCategory | category ) |
|
virtualdefault |
void zlayout::components::Component::addChild | ( | std::shared_ptr< Component > | child | ) |
void zlayout::components::Component::addPin | ( | std::shared_ptr< Pin > | pin | ) |
|
virtual |
Reimplemented in zlayout::components::SoC.
|
virtual |
Reimplemented in zlayout::components::SoC.
|
virtual |
|
virtual |
|
inline |
Definition at line 201 of file component.hpp.
|
inline |
Definition at line 186 of file component.hpp.
std::shared_ptr< Component > zlayout::components::Component::getChild | ( | const std::string & | name | ) | const |
|
inline |
Definition at line 195 of file component.hpp.
|
inlinevirtual |
Reimplemented in zlayout::components::BinaryCounter, zlayout::components::Capacitor, zlayout::components::CommunicationInterface, zlayout::components::Crystal, zlayout::components::Decoder, zlayout::components::Demultiplexer, zlayout::components::DFlipFlop, zlayout::components::DSPCore, zlayout::components::Encoder, zlayout::components::FullAdder, zlayout::components::GPUCore, zlayout::components::Inductor, zlayout::components::JKFlipFlop, zlayout::components::LogicGate, zlayout::components::Memory, zlayout::components::MemoryController, zlayout::components::Multiplexer, zlayout::components::PowerManagementUnit, zlayout::components::ProcessorCore, zlayout::components::Resistor, zlayout::components::RippleCarryAdder, zlayout::components::ShiftRegister, zlayout::components::SoC, zlayout::components::SRLatch, and zlayout::components::Transformer.
Definition at line 237 of file component.hpp.
|
inline |
Definition at line 229 of file component.hpp.
|
inline |
Definition at line 184 of file component.hpp.
|
inline |
Definition at line 197 of file component.hpp.
std::shared_ptr< Pin > zlayout::components::Component::getPin | ( | const std::string & | name | ) | const |
|
inline |
Definition at line 214 of file component.hpp.
|
inline |
Definition at line 204 of file component.hpp.
|
inline |
Definition at line 226 of file component.hpp.
|
inline |
Definition at line 219 of file component.hpp.
std::string zlayout::components::Component::getProperty | ( | const std::string & | key | ) | const |
|
inline |
Definition at line 207 of file component.hpp.
|
inline |
Definition at line 232 of file component.hpp.
|
inline |
Definition at line 223 of file component.hpp.
|
virtual |
Reimplemented in zlayout::components::SoC.
|
inline |
Definition at line 185 of file component.hpp.
void zlayout::components::Component::removeChild | ( | const std::string & | name | ) |
void zlayout::components::Component::removePin | ( | const std::string & | name | ) |
|
inlinevirtual |
Reimplemented in zlayout::components::BinaryCounter, zlayout::components::DFlipFlop, zlayout::components::JKFlipFlop, zlayout::components::ShiftRegister, and zlayout::components::SRLatch.
Definition at line 236 of file component.hpp.
|
virtual |
|
inline |
Definition at line 202 of file component.hpp.
|
inline |
Definition at line 228 of file component.hpp.
|
inline |
Definition at line 188 of file component.hpp.
|
inline |
Definition at line 198 of file component.hpp.
|
inline |
Definition at line 205 of file component.hpp.
|
inline |
Definition at line 225 of file component.hpp.
void zlayout::components::Component::setProperty | ( | const std::string & | key, |
const std::string & | value ) |
|
inline |
Definition at line 208 of file component.hpp.
|
inline |
Definition at line 231 of file component.hpp.
|
inline |
Definition at line 222 of file component.hpp.
|
inline |
Definition at line 189 of file component.hpp.
|
inlinevirtual |
Reimplemented in zlayout::components::Capacitor, zlayout::components::CommunicationInterface, zlayout::components::Crystal, zlayout::components::DigitalComponent, zlayout::components::DSPCore, zlayout::components::GPUCore, zlayout::components::Inductor, zlayout::components::MemoryController, zlayout::components::PowerManagementUnit, zlayout::components::ProcessorCore, zlayout::components::Resistor, zlayout::components::SoC, and zlayout::components::Transformer.
Definition at line 235 of file component.hpp.
|
protected |
Definition at line 259 of file component.hpp.
|
protected |
Definition at line 252 of file component.hpp.
|
protected |
Definition at line 255 of file component.hpp.
|
protected |
Definition at line 273 of file component.hpp.
|
protected |
Definition at line 250 of file component.hpp.
|
protected |
Definition at line 256 of file component.hpp.
|
protected |
Definition at line 265 of file component.hpp.
|
protected |
Definition at line 264 of file component.hpp.
|
protected |
Definition at line 260 of file component.hpp.
|
protected |
Definition at line 272 of file component.hpp.
|
protected |
Definition at line 268 of file component.hpp.
|
protected |
Definition at line 261 of file component.hpp.
|
protected |
Definition at line 274 of file component.hpp.
|
protected |
Definition at line 271 of file component.hpp.
|
protected |
Definition at line 251 of file component.hpp.