|
4 | 4 | Hyperstone cpu emulator
|
5 | 5 | written by Pierpaolo Prazzoli
|
6 | 6 |
|
7 |
| - All the types are compatible, but they have different IRAM size and cycles |
8 |
| -
|
9 | 7 | Hyperstone models:
|
10 | 8 |
|
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 |
23 | 21 |
|
24 | 22 | Hynix models:
|
25 | 23 |
|
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 |
31 | 29 |
|
32 | 30 | E1-X changes:
|
33 |
| - * Added PLL with up to 4* multiplication |
| 31 | + * Adds PLL with up to 4* multiplication |
34 | 32 | * Increases IRAM to 8 KiB
|
35 | 33 | * Adds MEM0 EDO DRAM support
|
36 | 34 | * Adds MEM0/MEM1/MEM2/MEM3 parity support
|
|
40 | 38 | * Moves power down from MCR to an I/O address
|
41 | 39 |
|
42 | 40 | E-1XS changes:
|
| 41 | + * Changes to 3.3 V I/O voltage and 2.5 V core voltage |
43 | 42 | * Increases PLL options to up to 8* multiplication
|
44 | 43 | * Increases IRAM to 16 KiB
|
45 | 44 | * Changes IRAM to SRAM
|
|
51 | 50 | * Adds more DRAM clock configuration options
|
52 | 51 | * Removes MEM0/MEM1/MEM2 byte write strobe/byte enable selection
|
53 | 52 |
|
| 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 | +
|
54 | 71 | TODO:
|
55 | 72 | - All instructions should clear the H flag (not just MOV/MOVI)
|
56 | 73 | - Fix behaviour of branches in delay slots for recompiler
|
@@ -576,7 +593,9 @@ void hyperstone_x_device::update_memory_control()
|
576 | 593 | {
|
577 | 594 | const uint32_t val = m_core->global_regs[MCR_REGISTER];
|
578 | 595 |
|
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. |
580 | 599 |
|
581 | 600 | static char const *const entrymap[8] = { "MEM0", "MEM1", "MEM2", "IRAM", "reserved", "reserved", "reserved", "MEM3" };
|
582 | 601 | LOG("%s: Set MCR = 0x%08x, entry map in %s, %s output voltage, input threshold for VDD=%sV\n",
|
|
0 commit comments