diff options
Diffstat (limited to 'src/lib/netlist/macro/nlm_roms_lib.cpp')
-rw-r--r-- | src/lib/netlist/macro/nlm_roms_lib.cpp | 453 |
1 files changed, 453 insertions, 0 deletions
diff --git a/src/lib/netlist/macro/nlm_roms_lib.cpp b/src/lib/netlist/macro/nlm_roms_lib.cpp new file mode 100644 index 00000000000..ede3feae85d --- /dev/null +++ b/src/lib/netlist/macro/nlm_roms_lib.cpp @@ -0,0 +1,453 @@ +// license:CC0-1.0 +// copyright-holders:Couriersud + +#include "devices/net_lib.h" + + +//- Identifier: PROM_82S126_DIP +//- Title: 82S126 1K-bit TTL bipolar PROM +//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O4,O3,O2,O1,CE1Q,CE2Q,A7,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 82S126.cpp,82S126_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/philips/82S129.pdf +//- + +static NETLIST_START(PROM_82S126_DIP) +{ + + PROM_82S126(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A6) + ALIAS(2, A.A5) + ALIAS(3, A.A4) + ALIAS(4, A.A3) + ALIAS(5, A.A0) + ALIAS(6, A.A1) + ALIAS(7, A.A2) + ALIAS(8, A.GND) + ALIAS(9, A.O4) + ALIAS(10, A.O3) + ALIAS(11, A.O2) + ALIAS(12, A.O1) + ALIAS(13, A.CE1Q) + ALIAS(14, A.CE2Q) + ALIAS(15, A.A7) + ALIAS(16, A.VCC) +} + +//- Identifier: PROM_74S287_DIP +//- Title: 74S287 (256 x 4) 1024-Bit TTL PROM +//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O3,O2,O1,O0,CE1Q,CE2Q,A7,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: +//- None. +//- +//- Example: 74S287.cpp,74S287_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet_pdf/national-semiconductor/DM54S287AJ_to_DM74S287V.pdf +//- + +static NETLIST_START(PROM_74S287_DIP) +{ + + PROM_74S287(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A6) + ALIAS(2, A.A5) + ALIAS(3, A.A4) + ALIAS(4, A.A3) + ALIAS(5, A.A0) + ALIAS(6, A.A1) + ALIAS(7, A.A2) + ALIAS(8, A.GND) + ALIAS(9, A.O3) + ALIAS(10, A.O2) + ALIAS(11, A.O1) + ALIAS(12, A.O0) + ALIAS(13, A.CE1Q) + ALIAS(14, A.CE2Q) + ALIAS(15, A.A7) + ALIAS(16, A.VCC) +} + +//- Identifier: PROM_82S123_DIP +//- Title: 82S123 256 bit TTL bipolar PROM +//- Pinalias: O1,O2,O3,O4,O5,O6,O7,GND,O8,A0,A1,A2,A3,A4,CEQ,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 82S123.cpp,82S123_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/philips/82S123.pdf +//- + +static NETLIST_START(PROM_82S123_DIP) +{ + + PROM_82S123(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.O0) + ALIAS(2, A.O1) + ALIAS(3, A.O2) + ALIAS(4, A.O3) + ALIAS(5, A.O4) + ALIAS(6, A.O5) + ALIAS(7, A.O6) + ALIAS(8, A.GND) + + ALIAS(9, A.O7) + ALIAS(10, A.A0) + ALIAS(11, A.A1) + ALIAS(12, A.A2) + ALIAS(13, A.A3) + ALIAS(14, A.A4) + ALIAS(15, A.CEQ) + ALIAS(16, A.VCC) +} + +/* + * nld_82S16.h + * + * DM82S16: 256 Bit bipolar ram + * + * +--------------+ + * A1 |1 ++ 16| VCC + * A0 |2 15| A2 + * CE1Q |3 14| A3 + * CE2Q |4 82S16 13| DIN + * CE3Q |5 12| WEQ + * DOUTQ |6 11| A7 + * A4 |7 10| A6 + * GND |8 9| A5 + * +--------------+ + * + * + * Naming conventions follow Signetics datasheet + */ + + +//- Identifier: EPROM_2716_DIP +//- Title: 2716 16K (2K x 8) UV ERASABLE PROM +//- Pinalias: A7,A6,A6,A4,A4,A2,A1,A0,O0,O1,O2,GND,O3,O4,O5,O6,O7,CE1Q/CE,A10,CE2Q/OE,VPP,A9,A8,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Intel datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 2716.cpp,2716_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/400/500340_DS.pdf +//- +static NETLIST_START(EPROM_2716_DIP) +{ + + EPROM_2716(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A7) + ALIAS(2, A.A6) + ALIAS(3, A.A5) + ALIAS(4, A.A4) + ALIAS(5, A.A3) + ALIAS(6, A.A2) + ALIAS(7, A.A1) + ALIAS(8, A.A0) + ALIAS(9, A.O0) + ALIAS(10, A.O1) + ALIAS(11, A.O2) + ALIAS(12, A.GND) + + ALIAS(13, A.O3) + ALIAS(14, A.O4) + ALIAS(15, A.O5) + ALIAS(16, A.O6) + ALIAS(17, A.O7) + ALIAS(18, A.CE1Q) // CEQ + ALIAS(19, A.A10) + ALIAS(20, A.CE2Q) // OEQ + ALIAS(22, A.A9) + ALIAS(23, A.A8) + ALIAS(24, A.VCC) +} + +/* DM82S16: 256 Bit bipolar ram + * + * +--------------+ + * A1 |1 ++ 16| VCC + * A0 |2 15| A2 + * CE1Q |3 14| A3 + * CE2Q |4 82S16 13| DIN + * CE3Q |5 12| WEQ + * DOUTQ |6 11| A7 + * A4 |7 10| A6 + * GND |8 9| A5 + * +--------------+ + * + * Naming conventions follow Signetics datasheet + */ + +static NETLIST_START(TTL_82S16_DIP) +{ + TTL_82S16(A) + + DIPPINS( /* +--------------+ */ + A.A1, /* A1 |1 ++ 16| VCC */ A.VCC, + A.A0, /* A0 |2 15| A2 */ A.A2, + A.CE1Q, /* CE1Q |3 14| A3 */ A.A3, + A.CE2Q, /* CE2Q |4 82S16 13| DIN */ A.DIN, + A.CE3Q, /* CE3Q |5 12| WEQ */ A.WEQ, + A.DOUTQ, /* DOUTQ |6 11| A7 */ A.A7, + A.A4, /* A4 |7 10| A6 */ A.A6, + A.GND, /* GND |8 9| A5 */ A.A5 + /* +--------------+ */ + ) +} + +/* 82S115: 4K-bit TTL bipolar PROM (512 x 8) + * + * +--------------+ + * A3 |1 ++ 24| VCC + * A4 |2 23| A2 + * A5 |3 22| A1 + * A6 |4 82S115 21| A0 + * A7 |5 20| CE1Q + * A8 |6 19| CE2 + * O1 |7 18| STROBE + * O2 |8 17| O8 + * O3 |9 16| O7 + * O4 |10 15| O6 + * FE2 |11 14| O5 + * GND |12 13| FE1 + * +--------------+ + */ + +static NETLIST_START(PROM_82S115_DIP) +{ + PROM_82S115(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A3, /* A3 |1 ++ 24| VCC */ A.VCC, + A.A4, /* A4 |2 23| A2 */ A.A2, + A.A5, /* A5 |3 22| A1 */ A.A1, + A.A6, /* A6 |4 82S115 21| A0 */ A.A0, + A.A7, /* A7 |5 20| CE1Q */ A.CE1Q, + A.A8, /* A8 |6 19| CE2 */ A.CE2, + A.O1, /* O1 |7 18| STROBE */ A.STROBE, + A.O2, /* O2 |8 17| O8 */ A.O8, + A.O3, /* O3 |9 16| O7 */ A.O7, + A.O4, /* O4 |10 15| O6 */ A.O6, + NC.I, /* FE2 |11 14| O5 */ A.O5, + A.GND, /* GND |12 13| FE1 */ NC.I + /* +--------------+ */ + ) +} + +//- Identifier: PROM_MK28000_DIP +//- Title: MK28000 (2048 x 8 or 4096 x 4) 16384-Bit TTL PROM +//- Pinalias: VCC,A1,A2,A3,A4,A5,A6,A10,GND,A9,A8,A7,ARQ,OE2,A11,O8,O7,O6,O5,O4,O3,O2,O1,OE1 +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- NamingConvention: Naming conventions follow Mostek datasheet +//- Limitations: +//- None. + +static NETLIST_START(PROM_MK28000_DIP) +{ + + PROM_MK28000(A) + + DEFPARAM(ROM, "unknown") + PARAM(A.ROM, "$(@.ROM)") + ALIAS(1, A.VCC) + ALIAS(2, A.A1) + ALIAS(3, A.A2) + ALIAS(4, A.A3) + ALIAS(5, A.A4) + ALIAS(6, A.A5) + ALIAS(7, A.A6) + ALIAS(8, A.A10) + ALIAS(9, A.GND) + ALIAS(10, A.A9) + ALIAS(11, A.A8) + ALIAS(12, A.A7) + ALIAS(13, A.ARQ) + ALIAS(14, A.OE2) + ALIAS(15, A.A11) + ALIAS(16, A.O8) + ALIAS(17, A.O7) + ALIAS(18, A.O6) + ALIAS(19, A.O5) + ALIAS(20, A.O4) + ALIAS(21, A.O3) + ALIAS(22, A.O2) + ALIAS(23, A.O1) + ALIAS(24, A.OE1) +} + +//- Identifier: ROM_MCM14524_DIP +//- Title: MCM14524 1024-BIT READ ONLY MEMORY +//- Pinalias: CLK,EN,B0,B1,B2,B3,A2,GND,A3,A4,A5,A6,A7,A1,A0,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- NamingConvention: Naming conventions follow Motorola datasheet +//- Limitations: +//- Voltage-dependent timing is partially implemented. +//- FunctionTable: +//- http://www.bitsavers.org/components/motorola/_dataBooks/1978_Motorola_CMOS_Data_Book.pdf 7-439 (pdf page 488) + +static NETLIST_START(ROM_MCM14524_DIP) +{ + + ROM_MCM14524(A) + + DEFPARAM(ROM, "unknown") + PARAM(A.ROM, "$(@.ROM)") + + /* Motorola MCM14524: */ + DIPPINS( /* +-----..-----+ */ + A.CLK, /* /CLK |1 16| VDD */ A.VCC, + A.EN, /* CE |2 15| A0 */ A.A0, + A.B0, /* B0 |3 MCM 14| A1 */ A.A1, + A.B1, /* B1 |4 14524 13| A7 */ A.A7, + A.B2, /* B2 |5 12| A6 */ A.A6, + A.B3, /* B3 |6 11| A5 */ A.A5, + A.A2, /* A2 |7 10| A4 */ A.A4, + A.GND, /* VSS |8 9| A3 */ A.A3 + /* +------------+ */ + ) +} + +/* 2102: 1024 x 1-bit Static RAM + * + * +--------------+ + * A6 |1 ++ 16| A7 + * A5 |2 15| A8 + * RWQ |3 14| A9 + * A1 |4 82S16 13| CEQ + * A2 |5 12| DO + * A3 |6 11| DI + * A4 |7 10| VCC + * A0 |8 9| GND + * +--------------+ + */ +static NETLIST_START(RAM_2102A_DIP) +{ + RAM_2102A(A) + + DIPPINS( /* +--------------+ */ + A.A6, /* A6 |1 ++ 16| A7 */ A.A7, + A.A5, /* A5 |2 15| A8 */ A.A8, + A.RWQ, /* RWQ |3 14| A9 */ A.A9, + A.A1, /* A1 |4 82S16 13| CEQ */ A.CEQ, + A.A2, /* A2 |5 12| DO */ A.DO, + A.A3, /* A3 |6 11| DI */ A.DI, + A.A4, /* A4 |7 10| VCC */ A.VCC, + A.A0, /* A0 |8 9| GND */ A.GND + /* +--------------+ */ + ) +} + +//FIXME: Documentation +static NETLIST_START(ROM_TMS4800_DIP) +{ + ROM_TMS4800(A) + + DIPPINS( /* +----------------+ */ + A.VSS, /* VSS |1 ++ 24| OE1 */ A.OE1, + A.A1, /* A1 |2 23| O1 */ A.O1, + A.A2, /* A2 |3 22| O2 */ A.O2, + A.A3, /* A3 |4 TMS-4800 21| O3 */ A.O3, + A.A4, /* A4 |5 20| O4 */ A.O4, + A.A5, /* A5 |6 19| O5 */ A.O5, + A.A6, /* A6 |7 18| O6 */ A.O6, + A.A10, /* A10 |8 17| O7 */ A.O7, + A.VGG, /* VGG |9 16| O8 */ A.O8, + A.A9, /* A9 |10 15| A11 */ A.A11, + A.A8, /* A8 |11 14| OE2 */ A.OE2, + A.A7, /* A7 |12 13| AR */ A.AR + /* +----------------+ */ + ) +} + + +NETLIST_START(roms_lib) +{ + + LOCAL_LIB_ENTRY(PROM_82S123_DIP) + LOCAL_LIB_ENTRY(PROM_82S126_DIP) + LOCAL_LIB_ENTRY(PROM_74S287_DIP) + LOCAL_LIB_ENTRY(EPROM_2716_DIP) + LOCAL_LIB_ENTRY(TTL_82S16_DIP) + LOCAL_LIB_ENTRY(PROM_82S115_DIP) + LOCAL_LIB_ENTRY(PROM_MK28000_DIP) + LOCAL_LIB_ENTRY(ROM_MCM14524_DIP) + LOCAL_LIB_ENTRY(RAM_2102A_DIP) + LOCAL_LIB_ENTRY(ROM_TMS4800_DIP) + } + |