46 log_warning(
"logic loop in mux tree at signal %s in module %s.\n",
51 recursion_monitor.
add(sig);
53 std::set<sig2driver_entry_t> cellport_list;
55 for (
auto &cellport : cellport_list) {
56 if ((cellport.first->type !=
"$mux" && cellport.first->type !=
"$pmux") || cellport.second !=
"\\Y")
62 for (
int i = 0; i < sig_b.size(); i += sig_a.
size())
68 recursion_monitor.
del(sig);
void log_warning(const char *format,...)
const char * log_signal(const RTLIL::SigSpec &sig, bool autoint)
static SigPool sig_at_port
bool check_any(RTLIL::SigSpec sig)
bool is_fully_const() const
static const char * id2cstr(const RTLIL::IdString &str)
void add(RTLIL::SigSpec sig)
RTLIL::SigSpec extract(const RTLIL::SigSpec &pattern, const RTLIL::SigSpec *other=NULL) const
static SigSet< sig2driver_entry_t > sig2driver
static std::set< RTLIL::Cell * > muxtree_cells
void del(RTLIL::SigSpec sig)
static bool check_state_mux_tree(RTLIL::SigSpec old_sig, RTLIL::SigSpec sig, SigPool &recursion_monitor)
USING_YOSYS_NAMESPACE static PRIVATE_NAMESPACE_BEGIN RTLIL::Module * module