106 log(
"Skipping module %s as it contains processes (run 'proc' pass first).\n", module->
name.
c_str());
120 for (
auto &it : module->
wires_)
121 if (design->
selected(module, it.second))
124 for (
auto &it : module->
cells_)
128 if (!design->
selected(module, cell))
140 bool isInput =
true, isOutput =
true;
153 outputSignals.
append(sig);
161 sigToNextCells.
insert(inputSignals, cell);
170 while (workQueue.size() > 0) {
174 run(cell, 0, maxDepth);
const char * c_str() const
bool selected(T1 *module) const
RTLIL::SigSpec extract(RTLIL::SigSpec sig)
void run(RTLIL::Cell *cell, int depth, int maxDepth)
void setup(RTLIL::Design *design=NULL)
std::map< RTLIL::IdString, RTLIL::Wire * > wires_
std::map< RTLIL::Cell *, int > cellDepth
std::map< RTLIL::Cell *, std::pair< int, int > > cellLabels
bool cell_known(RTLIL::IdString type)
bool cell_output(RTLIL::IdString type, RTLIL::IdString port)
#define log_assert(_assert_expr_)
std::map< RTLIL::Cell *, std::set< RTLIL::Cell * > > cellToNextCell
static const char * id2cstr(const RTLIL::IdString &str)
std::map< RTLIL::IdString, RTLIL::Process * > processes
void add(RTLIL::SigSpec sig)
std::vector< std::set< RTLIL::Cell * > > sccList
std::map< RTLIL::IdString, RTLIL::Cell * > cells_
void log(const char *format,...)
std::vector< RTLIL::Cell * > cellStack
void append(const RTLIL::SigSpec &signal)
bool cell_input(RTLIL::IdString type, RTLIL::IdString port)
std::map< RTLIL::Cell *, RTLIL::SigSpec > cellToNextSig
std::set< RTLIL::Cell * > workQueue
const std::map< RTLIL::IdString, RTLIL::SigSpec > & connections() const
void find(RTLIL::SigSpec sig, std::set< T > &result)
void insert(RTLIL::SigSpec sig, T data)
std::map< RTLIL::Cell *, RTLIL::SigSpec > cellToPrevSig