summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nlid_system.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nlid_system.h')
-rw-r--r--src/lib/netlist/devices/nlid_system.h47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h
index 3bb651106b2..3ae553fc2ec 100644
--- a/src/lib/netlist/devices/nlid_system.h
+++ b/src/lib/netlist/devices/nlid_system.h
@@ -171,32 +171,33 @@ namespace devices
m_inc[0] = netlist_time::from_double(1.0 / (m_freq() * 2.0));
connect(m_feedback, m_Q);
+
+ netlist_time base = netlist_time::from_double(1.0 / (m_freq()*2.0));
+ std::vector<pstring> pat(plib::psplit(m_pattern(),","));
+ m_off = netlist_time::from_double(m_offset());
+
+ std::array<std::int64_t, 32> pati = { 0 };
+
+ m_size = static_cast<std::uint8_t>(pat.size());
+ netlist_time::mult_type total = 0;
+ for (unsigned i=0; i<m_size; i++)
{
- netlist_time base = netlist_time::from_double(1.0 / (m_freq()*2.0));
- std::vector<pstring> pat(plib::psplit(m_pattern(),","));
- m_off = netlist_time::from_double(m_offset());
-
- std::array<std::int64_t, 32> pati = { 0 };
-
- m_size = static_cast<std::uint8_t>(pat.size());
- netlist_time::mult_type total = 0;
- for (unsigned i=0; i<m_size; i++)
- {
- // FIXME: use pstonum_ne
- //pati[i] = plib::pstonum<decltype(pati[i])>(pat[i]);
- pati[i] = plib::pstonum<std::int64_t, true>(pat[i]);
- total += pati[i];
- }
- netlist_time ttotal = netlist_time::zero();
- auto sm1 = static_cast<uint8_t>(m_size - 1);
- for (unsigned i=0; i < sm1; i++)
- {
- m_inc[i] = base * pati[i];
- ttotal += m_inc[i];
- }
- m_inc[sm1] = base * total - ttotal;
+ // FIXME: use pstonum_ne
+ //pati[i] = plib::pstonum<decltype(pati[i])>(pat[i]);
+ pati[i] = plib::pstonum<std::int64_t, true>(pat[i]);
+ total += pati[i];
}
+ netlist_time ttotal = netlist_time::zero();
+ auto sm1 = static_cast<uint8_t>(m_size - 1);
+ for (unsigned i=0; i < sm1; i++)
+ {
+ m_inc[i] = base * pati[i];
+ ttotal += m_inc[i];
+ }
+ m_inc[sm1] = base * total - ttotal;
+
}
+
NETLIB_UPDATEI();
NETLIB_RESETI();
//NETLIB_UPDATE_PARAMI();