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

Base class for digital logic components. More...

#include <digital_components.hpp>

Inheritance diagram for zlayout::components::DigitalComponent:
Collaboration diagram for zlayout::components::DigitalComponent:

Public Member Functions

 DigitalComponent (const std::string &name, ComponentCategory category)
LogicFamily getLogicFamily () const
void setLogicFamily (LogicFamily family)
double getVil () const
void setVil (double vil)
double getVih () const
void setVih (double vih)
double getVol () const
void setVol (double vol)
double getVoh () const
void setVoh (double voh)
virtual void evaluateLogic ()=0
virtual void propagateSignals ()
void simulate (double time_step) 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 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 Member Functions

SignalState voltageToSignalState (double voltage) const
double signalStateToVoltage (SignalState state) const

Protected Attributes

LogicFamily logic_family_ = LogicFamily::CMOS
double vil_ = 0.8
double vih_ = 2.0
double vol_ = 0.4
double voh_ = 2.4
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

Base class for digital logic components.

Definition at line 37 of file digital_components.hpp.

Constructor & Destructor Documentation

◆ DigitalComponent()

zlayout::components::DigitalComponent::DigitalComponent ( const std::string & name,
ComponentCategory category )

Member Function Documentation

◆ evaluateLogic()

◆ getLogicFamily()

LogicFamily zlayout::components::DigitalComponent::getLogicFamily ( ) const
inline

Definition at line 42 of file digital_components.hpp.

◆ getVih()

double zlayout::components::DigitalComponent::getVih ( ) const
inline

Definition at line 49 of file digital_components.hpp.

◆ getVil()

double zlayout::components::DigitalComponent::getVil ( ) const
inline

Definition at line 46 of file digital_components.hpp.

◆ getVoh()

double zlayout::components::DigitalComponent::getVoh ( ) const
inline

Definition at line 55 of file digital_components.hpp.

◆ getVol()

double zlayout::components::DigitalComponent::getVol ( ) const
inline

Definition at line 52 of file digital_components.hpp.

◆ propagateSignals()

virtual void zlayout::components::DigitalComponent::propagateSignals ( )
virtual

◆ setLogicFamily()

void zlayout::components::DigitalComponent::setLogicFamily ( LogicFamily family)
inline

Definition at line 43 of file digital_components.hpp.

◆ setVih()

void zlayout::components::DigitalComponent::setVih ( double vih)
inline

Definition at line 50 of file digital_components.hpp.

◆ setVil()

void zlayout::components::DigitalComponent::setVil ( double vil)
inline

Definition at line 47 of file digital_components.hpp.

◆ setVoh()

void zlayout::components::DigitalComponent::setVoh ( double voh)
inline

Definition at line 56 of file digital_components.hpp.

◆ setVol()

void zlayout::components::DigitalComponent::setVol ( double vol)
inline

Definition at line 53 of file digital_components.hpp.

◆ signalStateToVoltage()

double zlayout::components::DigitalComponent::signalStateToVoltage ( SignalState state) const
protected

◆ simulate()

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

Reimplemented from zlayout::components::Component.

◆ voltageToSignalState()

SignalState zlayout::components::DigitalComponent::voltageToSignalState ( double voltage) const
protected

Member Data Documentation

◆ logic_family_

LogicFamily zlayout::components::DigitalComponent::logic_family_ = LogicFamily::CMOS
protected

Definition at line 66 of file digital_components.hpp.

◆ vih_

double zlayout::components::DigitalComponent::vih_ = 2.0
protected

Definition at line 68 of file digital_components.hpp.

◆ vil_

double zlayout::components::DigitalComponent::vil_ = 0.8
protected

Definition at line 67 of file digital_components.hpp.

◆ voh_

double zlayout::components::DigitalComponent::voh_ = 2.4
protected

Definition at line 70 of file digital_components.hpp.

◆ vol_

double zlayout::components::DigitalComponent::vol_ = 0.4
protected

Definition at line 69 of file digital_components.hpp.


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