 |
Cerata
A library to generate structural hardware designs
|
19 #include "cerata/signal.h"
23 Signal::Signal(std::string name, std::shared_ptr<Type> type, std::shared_ptr<ClockDomain> domain)
28 result->meta = this->
meta;
36 std::shared_ptr<Signal>
signal(
const std::string &name,
37 const std::shared_ptr<Type> &type,
38 const std::shared_ptr<ClockDomain> &domain) {
39 auto ret = std::make_shared<Signal>(name, type, domain);
43 std::shared_ptr<Signal>
signal(
const std::shared_ptr<Type> &type,
const std::shared_ptr<ClockDomain> &domain) {
44 auto ret = std::make_shared<Signal>(type->name() +
"_signal", type, domain);
std::string ToString() const override
Return a human-readable string of this node.
std::unordered_map< std::string, std::string > meta
KV storage for metadata of tools or specific backend implementations.
Signal(std::string name, std::shared_ptr< Type > type, std::shared_ptr< ClockDomain > domain=default_domain())
Signal constructor.
std::shared_ptr< Object > Copy() const override
Create a copy of this Signal.
Contains every Cerata class, function, etc...
std::shared_ptr< Type > type_
The Type of this Node.
Class to mark nodes with information for synchronous designs, e.g. clock domain.
std::string name() const
Return the name of the object.
NodeID
Node type IDs with different properties.
std::shared_ptr< ClockDomain > domain_
The clock domain.
A single-input, multiple-outputs node.
std::shared_ptr< Signal > signal(const std::string &name, const std::shared_ptr< Type > &type, const std::shared_ptr< ClockDomain > &domain)
Create a new Signal and return a smart pointer to it.
Type * type() const
Return the node Type.