Пример #1
0
ATTR_HOT void netlist_net_t::dec_active(netlist_core_terminal_t &term)
{
	m_active--;
	m_list_active.remove(term);
	if (m_active == 0 && netlist().use_deactivate())
			railterminal().netdev().dec_active();
}
Пример #2
0
ATTR_HOT void netlist_net_t::inc_active(netlist_core_terminal_t &term)
{
	m_active++;
	m_list_active.insert(term);
	if (m_active == 1)
	{
		if (netlist().use_deactivate())
		{
			railterminal().netdev().inc_active();
			//m_cur_Q = m_new_Q;
		}
		if (m_in_queue == 0)
		{
			if (m_time > netlist().time())
			{
				m_in_queue = 1;     /* pending */
				netlist().push_to_queue(*this, m_time);
			}
			else
			{
				m_cur_Q = m_new_Q;
				m_in_queue = 2;
			}
		}
		//else if (netlist().use_deactivate())
		//	m_cur_Q = m_new_Q;
	}
}
Пример #3
0
void detail::net_t::dec_active(core_terminal_t &term)
{
	--m_active;
	nl_assert(m_active >= 0);
	m_list_active.remove(&term);
	if (m_active == 0)
		railterminal().device().do_dec_active();
}
Пример #4
0
ATTR_HOT void net_t::dec_active(core_terminal_t &term)
{
	m_active--;
	nl_assert(m_active >= 0);
	m_list_active.remove(term);
	if (m_active == 0 && netlist().use_deactivate())
			railterminal().device().dec_active();
}
Пример #5
0
void detail::net_t::inc_active(core_terminal_t &term)
{
	m_active++;
	m_list_active.push_front(&term);
	nl_assert(m_active <= static_cast<int>(num_cons()));
	if (m_active == 1)
	{
		railterminal().device().do_inc_active();
		if (m_in_queue == 0)
		{
			if (m_time > netlist().time())
			{
				m_in_queue = 1;     /* pending */
				netlist().push_to_queue(*this, m_time);
			}
			else
			{
				m_cur_Q = m_new_Q;
				m_in_queue = 2;
			}
		}
	}
}