ZLayout EDA Library v1.0.0
Advanced Electronic Design Automation Layout Library with Bilingual Documentation
Loading...
Searching...
No Matches
component.hpp File Reference

Hierarchical EDA Component System. More...

#include <memory>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
#include <functional>
#include <zlayout/geometry/rectangle.hpp>
#include <zlayout/geometry/point.hpp>
Include dependency graph for component.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  zlayout::components::Pin
 Pin class representing component connection points. More...
class  zlayout::components::Net
 Net class representing electrical connections. More...
struct  zlayout::components::TimingInfo
 Component timing information. More...
struct  zlayout::components::PowerInfo
 Component power information. More...
struct  zlayout::components::ElectricalInfo
 Component electrical characteristics. More...
class  zlayout::components::Component
 Base class for all EDA components. More...
class  zlayout::components::ComponentLibrary
 Component library for managing component definitions. More...

Namespaces

namespace  zlayout
 Main namespace for ZLayout library.
namespace  zlayout::components
namespace  zlayout::components::ComponentUtils
 Utility functions for component hierarchy.

Enumerations

enum class  zlayout::components::PinType {
  zlayout::components::Input , zlayout::components::Output , zlayout::components::Bidirectional , zlayout::components::Power ,
  zlayout::components::Ground , zlayout::components::Clock , zlayout::components::Reset , zlayout::components::Analog
}
 Pin types for component connections. More...
enum class  zlayout::components::SignalState { zlayout::components::Low = 0 , zlayout::components::High = 1 , zlayout::components::Unknown = 2 , zlayout::components::HighZ = 3 }
 Signal states in digital circuits. More...
enum class  zlayout::components::ComponentCategory {
  zlayout::components::Passive , zlayout::components::Active , zlayout::components::Digital , zlayout::components::Analog ,
  zlayout::components::Mixed , zlayout::components::Memory , zlayout::components::Processor , zlayout::components::Interface ,
  zlayout::components::Power , zlayout::components::Custom
}
 Component categories for organization. More...
enum class  zlayout::components::TechNode {
  zlayout::components::um_180 = 180 , zlayout::components::um_130 = 130 , zlayout::components::um_90 = 90 , zlayout::components::um_65 = 65 ,
  zlayout::components::um_45 = 45 , zlayout::components::um_32 = 32 , zlayout::components::um_22 = 22 , zlayout::components::um_14 = 14 ,
  zlayout::components::um_10 = 10 , zlayout::components::um_7 = 7 , zlayout::components::um_5 = 5 , zlayout::components::um_3 = 3 ,
  zlayout::components::um_2 = 2
}
 Technology nodes for manufacturing. More...

Functions

void zlayout::components::ComponentUtils::traversePreOrder (std::shared_ptr< Component > root, std::function< void(std::shared_ptr< Component >)> visitor)
void zlayout::components::ComponentUtils::traversePostOrder (std::shared_ptr< Component > root, std::function< void(std::shared_ptr< Component >)> visitor)
size_t zlayout::components::ComponentUtils::countComponents (std::shared_ptr< Component > root, ComponentCategory category)
double zlayout::components::ComponentUtils::calculateTotalPower (std::shared_ptr< Component > root)
double zlayout::components::ComponentUtils::calculateCriticalPath (std::shared_ptr< Component > root)
std::vector< std::shared_ptr< Component > > zlayout::components::ComponentUtils::groupComponentsByFunction (const std::vector< std::shared_ptr< Component > > &components)
std::shared_ptr< Componentzlayout::components::ComponentUtils::createHierarchicalBlock (const std::vector< std::shared_ptr< Component > > &components, const std::string &block_name)

Detailed Description

Hierarchical EDA Component System.

This system supports hierarchical composition of electronic components, from basic passive components to complex IP blocks.

Definition in file component.hpp.