Skip to content

Commit d914e2a

Browse files
committed
cpu/e132xs: Improved comment about model differences.
1 parent cc56f6b commit d914e2a

File tree

2 files changed

+42
-23
lines changed

2 files changed

+42
-23
lines changed

src/devices/cpu/e132xs/e132xs.cpp

+40-21
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,31 @@
44
Hyperstone cpu emulator
55
written by Pierpaolo Prazzoli
66
7-
All the types are compatible, but they have different IRAM size and cycles
8-
97
Hyperstone models:
108
11-
Model Core IRAM Process Bus Package
12-
E1-16T E1 4 KiB DRAM 16-bit 100-pin TQFP
13-
E1-32T E1 4 KiB DRAM 32-bit 144-pin TQFP
14-
E1-32N E1 4 KiB DRAM 32-bit 160-pin PQFP
15-
E1-16XT E1-X 8 KiB DRAM 0.5 µm 16-bit 100-pin TQFP
16-
E1-32XT E1-X 8 KiB DRAM 0.5 µm 32-bit 144-pin TQFP
17-
E1-32XN E1-X 8 KiB DRAM 0.5 µm 32-bit 160-pin PQFP
18-
E1-16XS E1-XS 16 KiB SRAM 0.25 µm 16-bit 100-pin LQFP
19-
E1-16XSB E1-XS 16 KiB SRAM 0.25 µm 16-bit 100-pin TFBGA
20-
E1-32XS E1-XS 16 KiB SRAM 0.25 µm 32-bit 144-pin LQFP
21-
E1-16XSR E1-XSR 16 KiB SRAM 0.25 µm 16-bit 100-pin LQFP
22-
E1-32XSR E1-XSR 16 KiB SRAM 0.25 µm 32-bit 144-pin LQFP
9+
Model Core Bus IRAM Maximum core frequency Process Package
10+
E1-16T E1 16-bit 4 KiB DRAM 66 MHz @ 5.0 V 100-pin TQFP
11+
E1-32T E1 32-bit 4 KiB DRAM 66 MHz @ 5.0 V 144-pin TQFP
12+
E1-32N E1 32-bit 4 KiB DRAM 66 MHz @ 5.0 V 160-pin PQFP
13+
E1-16XT E1-X 16-bit 8 KiB DRAM 80 MHz @ 5.0 V, 53 MHz @ 3.3V 0.5 µm 100-pin TQFP
14+
E1-32XT E1-X 32-bit 8 KiB DRAM 80 MHz @ 5.0 V, 53 MHz @ 3.3V 0.5 µm 144-pin TQFP
15+
E1-32XN E1-X 32-bit 8 KiB DRAM 80 MHz @ 5.0 V, 53 MHz @ 3.3V 0.5 µm 160-pin PQFP
16+
E1-16XS E1-XS 16-bit 16 KiB SRAM 115 MHz 0.25 µm 100-pin LQFP
17+
E1-16XSB E1-XS 16-bit 16 KiB SRAM 115 MHz 0.25 µm 100-pin TFBGA
18+
E1-32XS E1-XS 32-bit 16 KiB SRAM 115 MHz 0.25 µm 144-pin LQFP
19+
E1-16XSR E1-XSR 16-bit 16 KiB SRAM 128 MHz 0.25 µm 100-pin LQFP
20+
E1-32XSR E1-XSR 32-bit 16 KiB SRAM 128 MHz 0.25 µm 144-pin LQFP
2321
2422
Hynix models:
2523
26-
Model Core IRAM Process Bus Package
27-
GMS30C2116 E1 4 KiB DRAM 0.6 µm 16-bit 100-pin TQFP
28-
GMS30C2132 E1 4 KiB DRAM 0.6 µm 32-bit 144-pin TQFP, 160-pin MQFP
29-
GMS30C2216 E1-X 8 KiB DRAM 0.35 µm 16-bit 100-pin TQFP
30-
GMS30C2232 E1-X 8 KiB DRAM 0.35 µm 32-bit 144-pin TQFP, 160-pin MQFP
24+
Model Core Bus IRAM Maximum core frequency Process Package
25+
GMS30C2116 E1 16-bit 4 KiB DRAM 66 MHz @ 5.0 V, 40 MHz @ 3.3 V 0.6 µm 100-pin TQFP
26+
GMS30C2132 E1 32-bit 4 KiB DRAM 66 MHz @ 5.0 V, 40 MHz @ 3.3 V 0.6 µm 144-pin TQFP, 160-pin MQFP
27+
GMS30C2216 E1-X 16-bit 8 KiB DRAM 108 MHz 0.35 µm 100-pin TQFP
28+
GMS30C2232 E1-X 32-bit 8 KiB DRAM 108 MHz 0.35 µm 144-pin TQFP, 160-pin MQFP
3129
3230
E1-X changes:
33-
* Added PLL with up to 4* multiplication
31+
* Adds PLL with up to 4* multiplication
3432
* Increases IRAM to 8 KiB
3533
* Adds MEM0 EDO DRAM support
3634
* Adds MEM0/MEM1/MEM2/MEM3 parity support
@@ -40,6 +38,7 @@
4038
* Moves power down from MCR to an I/O address
4139
4240
E-1XS changes:
41+
* Changes to 3.3 V I/O voltage and 2.5 V core voltage
4342
* Increases PLL options to up to 8* multiplication
4443
* Increases IRAM to 16 KiB
4544
* Changes IRAM to SRAM
@@ -51,6 +50,24 @@
5150
* Adds more DRAM clock configuration options
5251
* Removes MEM0/MEM1/MEM2 byte write strobe/byte enable selection
5352
53+
The Hynix models are generally similar to the Hyperstone models
54+
based on the same core with minor differences:
55+
* Hynix models are fabricated with smaller feature sizes
56+
* The GMS30C2216 and GMS30C2232 support higher core frequencies
57+
* The GMS30C2216 and GMS30C2232 only support a 3.3 V power supply
58+
* The GMS30C2216 and GMS30C2232 lack bus output voltage and input
59+
threshold selection (inputs are 5 V tolerant)
60+
* Hynix offered a 160-pin MQFP package rather than LQFP
61+
62+
Backwards compatibility is fairly good across models.
63+
Incompatibilities include:
64+
* Power supply and bus voltages changed
65+
* Additional memory types and features are supported on later models
66+
* Only the E1-X and E1-XS support memory byte write strobe signals
67+
* The E1-XSR changes the available DRAM timing options
68+
* PLL control bits added to the TPR register
69+
* The BCR, MCR and SDCR register formats change in incompatible ways
70+
5471
TODO:
5572
- All instructions should clear the H flag (not just MOV/MOVI)
5673
- Fix behaviour of branches in delay slots for recompiler
@@ -576,7 +593,9 @@ void hyperstone_x_device::update_memory_control()
576593
{
577594
const uint32_t val = m_core->global_regs[MCR_REGISTER];
578595

579-
// GMS30C22xx drops bus output voltage/input threshold selecting while E1-X apparently doesn't
596+
// GMS30C2216 and GMS30C2232 drop bus output voltage/input
597+
// threshold selection as they only support 3.3V power supply
598+
// and have 5V tolerant inputs.
580599

581600
static char const *const entrymap[8] = { "MEM0", "MEM1", "MEM2", "IRAM", "reserved", "reserved", "reserved", "MEM3" };
582601
LOG("%s: Set MCR = 0x%08x, entry map in %s, %s output voltage, input threshold for VDD=%sV\n",

src/mame/promat/gstream.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ void gstream_state::machine_reset()
832832
void gstream_state::gstream(machine_config &config)
833833
{
834834
/* basic machine hardware */
835-
E132X(config, m_maincpu, 16000000*4); /* 4x internal multiplier */
835+
E132X(config, m_maincpu, 16'000'000*4); // E1-32XT (TQFP), 4x internal multiplier
836836
m_maincpu->set_addrmap(AS_PROGRAM, &gstream_state::gstream_32bit_map);
837837
m_maincpu->set_addrmap(AS_IO, &gstream_state::gstream_io);
838838
m_maincpu->set_vblank_int("screen", FUNC(gstream_state::irq0_line_hold));
@@ -861,7 +861,7 @@ void gstream_state::gstream(machine_config &config)
861861
void gstream_state::x2222(machine_config &config)
862862
{
863863
/* basic machine hardware */
864-
E132X(config, m_maincpu, 16000000*4); /* 4x internal multiplier */
864+
E132X(config, m_maincpu, 16'000'000*4); // E1-32XT (TQFP) 4x internal multiplier
865865
m_maincpu->set_addrmap(AS_PROGRAM, &gstream_state::x2222_32bit_map);
866866
m_maincpu->set_addrmap(AS_IO, &gstream_state::x2222_io);
867867
m_maincpu->set_vblank_int("screen", FUNC(gstream_state::irq0_line_hold));

0 commit comments

Comments
 (0)