summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nld_9316.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nld_9316.cpp')
-rw-r--r--src/lib/netlist/devices/nld_9316.cpp19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/lib/netlist/devices/nld_9316.cpp b/src/lib/netlist/devices/nld_9316.cpp
index e054f22c3a7..88d56e50ae3 100644
--- a/src/lib/netlist/devices/nld_9316.cpp
+++ b/src/lib/netlist/devices/nld_9316.cpp
@@ -25,10 +25,7 @@ namespace netlist
, m_LOADQ(*this, "LOADQ")
, m_ENP(*this, "ENP")
, m_CLRQ(*this, "CLRQ")
- , m_A(*this, "A", NETLIB_DELEGATE(9316, abcd))
- , m_B(*this, "B", NETLIB_DELEGATE(9316, abcd))
- , m_C(*this, "C", NETLIB_DELEGATE(9316, abcd))
- , m_D(*this, "D", NETLIB_DELEGATE(9316, abcd))
+ , m_ABCD(*this, {{"A", "B", "C", "D"}}, NETLIB_DELEGATE(9316, abcd))
, m_Q(*this, {{ "QA", "QB", "QC", "QD" }})
, m_cnt(*this, "m_cnt", 0)
, m_abcd(*this, "m_abcd", 0)
@@ -61,8 +58,8 @@ namespace netlist
m_CLK.inactivate();
if (!CLRQ && (m_cnt>0))
{
+ update_outputs_all(0, NLTIME_FROM_NS(36));
m_cnt = 0;
- update_outputs_all(m_cnt, NLTIME_FROM_NS(36));
}
}
m_RC.push(m_ent && (m_cnt == MAXCNT), NLTIME_FROM_NS(27));
@@ -79,7 +76,7 @@ namespace netlist
NETLIB_HANDLERI(abcd)
{
- m_abcd = static_cast<uint8_t>((m_D() << 3) | (m_C() << 2) | (m_B() << 1) | (m_A() << 0));
+ m_abcd = static_cast<uint8_t>((m_ABCD[0]() << 0) | (m_ABCD[1]() << 1) | (m_ABCD[2]() << 2) | (m_ABCD[3]() << 3));
}
logic_input_t m_CLK;
@@ -92,22 +89,18 @@ namespace netlist
logic_input_t m_ENP;
logic_input_t m_CLRQ;
- logic_input_t m_A;
- logic_input_t m_B;
- logic_input_t m_C;
- logic_input_t m_D;
-
+ object_array_t<logic_input_t, 4> m_ABCD;
object_array_t<logic_output_t, 4> m_Q;
/* counter state */
- state_var<unsigned> m_cnt;
+ state_var<uint8_t> m_cnt;
/* cached pins */
state_var_u8 m_abcd;
state_var_sig m_loadq;
state_var_sig m_ent;
nld_power_pins m_power_pins;
- void update_outputs_all(unsigned cnt, netlist_time out_delay) noexcept
+ void update_outputs_all(uint8_t cnt, netlist_time out_delay) noexcept
{
m_Q[0].push((cnt >> 0) & 1, out_delay);
m_Q[1].push((cnt >> 1) & 1, out_delay);