diff options
Diffstat (limited to 'src/lib/netlist/macro')
-rw-r--r-- | src/lib/netlist/macro/nlm_opamp.cpp | 34 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_opamp.h | 3 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx.cpp | 28 |
3 files changed, 50 insertions, 15 deletions
diff --git a/src/lib/netlist/macro/nlm_opamp.cpp b/src/lib/netlist/macro/nlm_opamp.cpp index 08dc5f60b27..146f95b72b4 100644 --- a/src/lib/netlist/macro/nlm_opamp.cpp +++ b/src/lib/netlist/macro/nlm_opamp.cpp @@ -52,7 +52,7 @@ static NETLIST_START(opamp_layout_2_13_9_4) A.GND, /* |4 11| */ NC, B.N1, /* |5 10| */ B.OUT, B.PLUS, /* |6 9| */ B.VCC, - B.MINUS /* |7 8| */ B.N2 + B.MINUS, /* |7 8| */ B.N2 /* +--------------+ */ ) NET_C(A.GND, B.GND) @@ -186,6 +186,37 @@ static NETLIST_START(LM747A_DIP) NETLIST_END() +static NETLIST_START(LM3900) + + /* + * Fast norton opamp model without bandwidth + */ + + /* Terminal definitions for calling netlists */ + + ALIAS(PLUS, R1.1) // Positive input + ALIAS(MINUS, R2.1) // Negative input + ALIAS(OUT, G1.OP) // Opamp output ... + ALIAS(VM, G1.ON) // V- terminal + ALIAS(VP, DUMMY.I) // V+ terminal + + DUMMY_INPUT(DUMMY) + + /* The opamp model */ + + RES(R1, 1) + RES(R2, 1) + NET_C(R1.1, G1.IP) + NET_C(R2.1, G1.IN) + NET_C(R1.2, R2.2, G1.ON) + VCVS(G1) + PARAM(G1.G, 10000000) + //PARAM(G1.RI, 1) + PARAM(G1.RO, RES_K(8)) + +NETLIST_END() + + NETLIST_START(OPAMP_lib) LOCAL_LIB_ENTRY(opamp_layout_4_4_11) LOCAL_LIB_ENTRY(opamp_layout_2_8_4) @@ -209,5 +240,6 @@ NETLIST_START(OPAMP_lib) LOCAL_LIB_ENTRY(UA741_DIP14) LOCAL_LIB_ENTRY(LM747_DIP) LOCAL_LIB_ENTRY(LM747A_DIP) + LOCAL_LIB_ENTRY(LM3900) NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_opamp.h b/src/lib/netlist/macro/nlm_opamp.h index f349f11911c..6e3c1f615e7 100644 --- a/src/lib/netlist/macro/nlm_opamp.h +++ b/src/lib/netlist/macro/nlm_opamp.h @@ -20,6 +20,9 @@ #define LM358_DIP(name) \ NET_REGISTER_DEV(LM358_DIP, name) +#define LM3900(name) \ + NET_REGISTER_DEV(LM3900, name) + /* ---------------------------------------------------------------------------- * External declarations * ---------------------------------------------------------------------------*/ diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp index 2120d88eb3f..c66314366d2 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp @@ -588,7 +588,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7400_NAND, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7400_NAND, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("0,X|1|22") TT_LINE("X,0|1|22") @@ -604,7 +604,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7402_NOR, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7402_NOR, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("0,0|1|22") TT_LINE("X,1|0|15") @@ -619,7 +619,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7404_INVERT, 1, 1, "A") + TRUTHTABLE_START(TTL_7404_INVERT, 1, 1, "+A") TT_HEAD(" A | Q ") TT_LINE(" 0 | 1 |22") TT_LINE(" 1 | 0 |15") @@ -634,7 +634,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7408_AND, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7408_AND, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("0,X|0|15") TT_LINE("X,0|0|15") @@ -642,7 +642,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7410_NAND, 3, 1, "A,B,C") + TRUTHTABLE_START(TTL_7410_NAND, 3, 1, "+A,+B,+C") TT_HEAD("A,B,C|Q ") TT_LINE("0,X,X|1|22") TT_LINE("X,0,X|1|22") @@ -660,7 +660,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7411_AND, 3, 1, "A,B,C") + TRUTHTABLE_START(TTL_7411_AND, 3, 1, "+A,+B,+C") TT_HEAD("A,B,C|Q ") TT_LINE("0,X,X|0|15") TT_LINE("X,0,X|0|15") @@ -696,7 +696,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7420_NAND, 4, 1, "A,B,C,D") + TRUTHTABLE_START(TTL_7420_NAND, 4, 1, "+A,+B,+C,+D") TT_HEAD("A,B,C,D|Q ") TT_LINE("0,X,X,X|1|22") TT_LINE("X,0,X,X|1|22") @@ -716,7 +716,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7425_NOR, 4, 1, "A,B,C,D") + TRUTHTABLE_START(TTL_7425_NOR, 4, 1, "+A,+B,+C,+D") TT_HEAD("A,B,C,D|Q ") TT_LINE("1,X,X,X|0|15") TT_LINE("X,1,X,X|0|15") @@ -735,7 +735,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7427_NOR, 3, 1, "A,B,C") + TRUTHTABLE_START(TTL_7427_NOR, 3, 1, "+A,+B,+C") TT_HEAD("A,B,C|Q ") TT_LINE("1,X,X|0|15") TT_LINE("X,1,X|0|15") @@ -758,7 +758,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7430_NAND, 8, 1, "A,B,C,D,E,F,G,H") + TRUTHTABLE_START(TTL_7430_NAND, 8, 1, "+A,+B,+C,+D,+E,+F,+G,+H") TT_HEAD("A,B,C,D,E,F,G,H|Q ") TT_LINE("0,X,X,X,X,X,X,X|1|22") TT_LINE("X,0,X,X,X,X,X,X|1|22") @@ -780,7 +780,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7432_OR, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7432_OR, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("1,X|1|22") TT_LINE("X,1|1|22") @@ -800,7 +800,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7437_NAND, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7437_NAND, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("0,X|1|22") TT_LINE("X,0|1|22") @@ -817,7 +817,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_7486_XOR, 2, 1, "A,B") + TRUTHTABLE_START(TTL_7486_XOR, 2, 1, "+A,+B") TT_HEAD("A,B|Q ") TT_LINE("0,0|0|15") TT_LINE("0,1|1|22") @@ -837,7 +837,7 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() - TRUTHTABLE_START(TTL_74260_NOR, 5, 1, "A,B,C,D,E") + TRUTHTABLE_START(TTL_74260_NOR, 5, 1, "+A,+B,+C,+D,+E") TT_HEAD("A,B,C,D,E|Q ") TT_LINE("0,0,0,0,0|1|10") TT_LINE("X,X,X,X,1|0|12") |