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

Shift Register. More...

#include <digital_components.hpp>

Inheritance diagram for zlayout::components::ShiftRegister:
Collaboration diagram for zlayout::components::ShiftRegister:

Public Types

enum class  ShiftType { SISO , SIPO , PISO , PIPO }
enum class  Direction { Left , Right }

Public Member Functions

 ShiftRegister (const std::string &name, size_t width, ShiftType type)
size_t getWidth () const
ShiftType getShiftType () const
Direction getDirection () const
void setDirection (Direction dir)
const std::vector< SignalState > & getData () const
void setData (const std::vector< SignalState > &data)
void evaluateLogic () override
void reset () override
std::string getDescription () const override
Public Member Functions inherited from zlayout::components::DigitalComponent
 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 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 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 Member Functions inherited from zlayout::components::DigitalComponent
SignalState voltageToSignalState (double voltage) const
double signalStateToVoltage (SignalState state) const
Protected Attributes inherited from zlayout::components::DigitalComponent
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

Shift Register.

Definition at line 237 of file digital_components.hpp.

Member Enumeration Documentation

◆ Direction

Enumerator
Left 
Right 

Definition at line 253 of file digital_components.hpp.

◆ ShiftType

Enumerator
SISO 
SIPO 
PISO 
PIPO 

Definition at line 239 of file digital_components.hpp.

Constructor & Destructor Documentation

◆ ShiftRegister()

zlayout::components::ShiftRegister::ShiftRegister ( const std::string & name,
size_t width,
ShiftType type )

Member Function Documentation

◆ evaluateLogic()

void zlayout::components::ShiftRegister::evaluateLogic ( )
overridevirtual

◆ getData()

const std::vector< SignalState > & zlayout::components::ShiftRegister::getData ( ) const
inline

Definition at line 258 of file digital_components.hpp.

◆ getDescription()

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

Reimplemented from zlayout::components::Component.

◆ getDirection()

Direction zlayout::components::ShiftRegister::getDirection ( ) const
inline

Definition at line 254 of file digital_components.hpp.

◆ getShiftType()

ShiftType zlayout::components::ShiftRegister::getShiftType ( ) const
inline

Definition at line 250 of file digital_components.hpp.

◆ getWidth()

size_t zlayout::components::ShiftRegister::getWidth ( ) const
inline

Definition at line 249 of file digital_components.hpp.

◆ reset()

void zlayout::components::ShiftRegister::reset ( )
overridevirtual

Reimplemented from zlayout::components::Component.

Here is the caller graph for this function:

◆ setData()

void zlayout::components::ShiftRegister::setData ( const std::vector< SignalState > & data)

◆ setDirection()

void zlayout::components::ShiftRegister::setDirection ( Direction dir)
inline

Definition at line 255 of file digital_components.hpp.


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