diff options
Diffstat (limited to 'src/lib/netlist/devices/nld_7448.cpp')
-rw-r--r-- | src/lib/netlist/devices/nld_7448.cpp | 74 |
1 files changed, 10 insertions, 64 deletions
diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp index 4500229a1c5..c74e8a42496 100644 --- a/src/lib/netlist/devices/nld_7448.cpp +++ b/src/lib/netlist/devices/nld_7448.cpp @@ -7,6 +7,7 @@ #include "nld_7448.h" #include "nlid_truthtable.h" +#include "nlid_system.h" #include <array> @@ -14,12 +15,7 @@ namespace netlist { namespace devices { - #if (USE_TRUTHTABLE_7448) - - NETLIB_TRUTHTABLE(7448, 7, 7); - - #else - + #if !(USE_TRUTHTABLE_7448) NETLIB_OBJECT(7448) { NETLIB_CONSTRUCTOR(7448) @@ -32,6 +28,7 @@ namespace netlist , m_RBIQ(*this, "RBIQ") , m_state(*this, "m_state", 0) , m_Q(*this, {{"a", "b", "c", "d", "e", "f", "g"}}) + , m_power_pins(*this) { } @@ -52,6 +49,7 @@ namespace netlist state_var<unsigned> m_state; object_array_t<logic_output_t, 7> m_Q; /* a .. g */ + nld_power_pins m_power_pins; }; @@ -66,6 +64,7 @@ namespace netlist register_subalias("5", m_RBIQ); register_subalias("6", m_D); register_subalias("7", m_A); + register_subalias("8", "GND"); register_subalias("9", m_Q[4]); // e register_subalias("10", m_Q[3]); // d @@ -74,66 +73,13 @@ namespace netlist register_subalias("13", m_Q[0]); // a register_subalias("14", m_Q[6]); // g register_subalias("15", m_Q[5]); // f + register_subalias("16", "VCC"); } }; #endif - #if (USE_TRUTHTABLE_7448) - nld_7448::truthtable_t nld_7448::m_ttbl; - std::vector<pstring> nld_7448::m_desc = { - " LTQ,BIQ,RBIQ, A , B , C , D | a, b, c, d, e, f, g", - - " 1, 1, 1, 0, 0, 0, 0 | 1, 1, 1, 1, 1, 1, 0|100,100,100,100,100,100,100", - " 1, 1, X, 1, 0, 0, 0 | 0, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100", - " 1, 1, X, 0, 1, 0, 0 | 1, 1, 0, 1, 1, 0, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 1, 0, 0 | 1, 1, 1, 1, 0, 0, 1|100,100,100,100,100,100,100", - " 1, 1, X, 0, 0, 1, 0 | 0, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 0, 1, 0 | 1, 0, 1, 1, 0, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 0, 1, 1, 0 | 0, 0, 1, 1, 1, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 1, 1, 0 | 1, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100", - " 1, 1, X, 0, 0, 0, 1 | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 0, 0, 1 | 1, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 0, 1, 0, 1 | 0, 0, 0, 1, 1, 0, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 1, 0, 1 | 0, 0, 1, 1, 0, 0, 1|100,100,100,100,100,100,100", - " 1, 1, X, 0, 0, 1, 1 | 0, 1, 0, 0, 0, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 0, 1, 1 | 1, 0, 0, 1, 0, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100", - " 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", - - // BI/RBO is input output. In the next case it is used as an input will go low. - " 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", // RBI - - " 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100", // LT - - // This condition has precedence - " X, 0, X, X, X, X, X | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", // BI - "" - }; - - NETLIB_OBJECT_DERIVED(7448_dip, 7448) - { - NETLIB_CONSTRUCTOR_DERIVED(7448_dip, 7448) - { - register_subalias("1", m_I[4]); // B - register_subalias("2", m_I[5]); // C - register_subalias("3", m_I[0]); // LTQ - register_subalias("4", m_I[1]); // BIQ - register_subalias("5", m_I[2]); // RBIQ - register_subalias("6", m_I[6]); // D - register_subalias("7", m_I[3]); // A - - register_subalias("9", m_Q[4]); // e - register_subalias("10", m_Q[3]); // d - register_subalias("11", m_Q[2]); // c - register_subalias("12", m_Q[1]); // b - register_subalias("13", m_Q[0]); // a - register_subalias("14", m_Q[6]); // g - register_subalias("15", m_Q[5]); // f - } - }; - - #else + #if !(USE_TRUTHTABLE_7448) #define BITS7(b6,b5,b4,b3,b2,b1,b0) ((b6)<<6) | ((b5)<<5) | ((b4)<<4) | ((b3)<<3) | ((b2)<<2) | ((b1)<<1) | ((b0)<<0) @@ -213,11 +159,11 @@ namespace netlist } } - #endif - - NETLIB_DEVICE_IMPL(7448, "TTL_7448", "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ") + NETLIB_DEVICE_IMPL(7448, "TTL_7448", "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ,@VCC,@GND") NETLIB_DEVICE_IMPL(7448_dip, "TTL_7448_DIP", "") + #endif + } //namespace devices } // namespace netlist |