Skip to content
Back to skills

Esmt

ASecurity

ESMT (Elite Semiconductor Memory Technology) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ESMT DRAM and Flash memory components or ESMTHandler.

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
developmentjavagit

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill esmt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Esmt?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Esmt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-esmt/badge)](https://www.skillsdirectory.com/skills/majiayu000-esmt)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: esmt
description: ESMT (Elite Semiconductor Memory Technology) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ESMT DRAM and Flash memory components or ESMTHandler.
---

# ESMT (Elite Semiconductor Memory Technology) Manufacturer Skill

## MPN Structure

ESMT MPNs follow this general structure:

```
[PREFIX][DENSITY][CONFIG][VERSION]-[SPEED][PACKAGE]
   |       |        |       |        |        |
   |       |        |       |        |        +-- Package code (TG, BG, etc.)
   |       |        |       |        +-- Speed grade (6, 5, 2.5, 100, 70)
   |       |        |       +-- Version letter (A, B, etc.)
   |       |        +-- Memory configuration (bus width, banks)
   |       +-- Density in Mbit
   +-- Series prefix (M12L, M14D, F25L, F49L)
```

### Example Decoding

```
M12L128168A-6TG
|  |   |  ||  ||
|  |   |  ||  |+-- TG = TSOP-II package
|  |   |  ||  +-- 6 = 6ns speed grade
|  |   |  |+-- A = version/revision
|  |   |  +-- 8 = 8 banks
|  |   +-- 16 = 16-bit data bus
|  +-- 128 = 128 Mbit density
+-- M12L = SDRAM series

F25L016A-100PAIG
|  |  ||    | ||
|  |  ||    | |+-- IG = Industrial grade
|  |  ||    | +-- PA = SOP package
|  |  ||    +-- 100 = 100MHz speed
|  |  |+-- A = version
|  |  +-- 016 = 16 Mbit
|  +-- 25L = SPI Flash series
+-- F = Flash prefix
```

---

## Series Prefixes

| Prefix | Memory Type | Description |
|--------|-------------|-------------|
| M12L | SDRAM | Synchronous DRAM |
| M14D | DDR SDRAM | DDR1 SDRAM |
| F25L | SPI Flash | Serial SPI NOR Flash |
| F49L | Parallel Flash | Parallel NOR Flash |

---

## Density Codes

### SDRAM (M12L) and DDR (M14D)

| Code | Density | Notes |
|------|---------|-------|
| 16 | 16 Mbit | |
| 32 | 32 Mbit | |
| 64 | 64 Mbit | |
| 128 | 128 Mbit | |
| 256 | 256 Mbit | DDR only |
| 512 | 512 Mbit | DDR only |

### SPI Flash (F25L)

| Code | Density | Notes |
|------|---------|-------|
| 004 | 4 Mbit | Leading zeros |
| 008 | 8 Mbit | Leading zeros |
| 016 | 16 Mbit | Leading zeros |
| 032 | 32 Mbit | Leading zeros |
| 064 | 64 Mbit | Leading zeros |
| 128 | 128 Mbit | |

### Parallel Flash (F49L)

| Code | Density | Notes |
|------|---------|-------|
| 160 | 16 Mbit | Scaled encoding (160 = 16Mb) |
| 320 | 32 Mbit | Scaled encoding |
| 640 | 64 Mbit | Scaled encoding |

---

## Package Codes

| Code | Package | Description |
|------|---------|-------------|
| A | TSOP | Thin Small Outline Package |
| B | BGA | Ball Grid Array |
| TG | TSOP-II | TSOP Type II |
| WG | WBGA | Window BGA |
| BG | BGA | Ball Grid Array |
| PA | SOP | Small Outline Package |
| PAIG | SOP | SOP with Industrial Grade |
| PG | SOP-8 | 8-pin SOP |

---

## Speed Grades

### SDRAM/DDR

| Code | Speed | Access Time |
|------|-------|-------------|
| 5 | 200MHz | 5ns |
| 6 | 166MHz | 6ns |
| 7 | 143MHz | 7ns |
| 2.5 | 400MHz | 2.5ns (DDR) |

### Flash

| Code | Speed | Notes |
|------|-------|-------|
| 70 | 70ns | Parallel Flash |
| 100 | 100MHz | SPI Flash |
| 104 | 104MHz | High-speed SPI |

---

## Product Families

### M12L Series - SDRAM

| Part Number | Density | Configuration | Speed |
|-------------|---------|---------------|-------|
| M12L128168A-6TG | 128 Mbit | 8M x 16 x 8 banks | 166MHz |
| M12L64164A-5TG | 64 Mbit | 4M x 16 x 4 banks | 200MHz |
| M12L32164A-6TG | 32 Mbit | 2M x 16 x 4 banks | 166MHz |

### M14D Series - DDR SDRAM

| Part Number | Density | Configuration | Speed |
|-------------|---------|---------------|-------|
| M14D5121632A-2.5BG | 512 Mbit | 32M x 16 x 2 | 400MHz |
| M14D2561616A-2.5BG | 256 Mbit | 16M x 16 x 1 | 400MHz |
| M14D1281616A-2.5BG | 128 Mbit | 8M x 16 x 1 | 400MHz |

### F25L Series - SPI Flash

| Part Number | Density | Interface | Speed |
|-------------|---------|-----------|-------|
| F25L004A-100PAIG | 4 Mbit | SPI | 100MHz |
| F25L008A-100PAIG | 8 Mbit | SPI | 100MHz |
| F25L016A-100PAIG | 16 Mbit | SPI | 100MHz |

### F49L Series - Parallel Flash

| Part Number | Density | Interface | Speed |
|-------------|---------|-----------|-------|
| F49L160UA-70TG | 16 Mbit | Parallel | 70ns |
| F49L320UA-70TG | 32 Mbit | Parallel | 70ns |

---

## Configuration Encoding (SDRAM/DDR)

The configuration digits after the density encode:

```
M12L128168A
       |||
       ||+-- Banks (4 or 8)
       |+-- Data bus width (16-bit = 16)
       +-- First digit varies
```

| Config Code | Meaning |
|-------------|---------|
| 168 | 16-bit bus, 8 banks |
| 164 | 16-bit bus, 4 banks |
| 1616 | 16-bit bus, 16Mbit config |

---

## Handler Implementation Notes

### Pattern Matching

```java
// SDRAM - M12L series
"^M12L\\d+.*"

// DDR SDRAM - M14D series
"^M14D\\d+.*"

// SPI Flash - F25L series (also MEMORY_FLASH type)
"^F25L\\d+.*"

// Parallel Flash - F49L series (also MEMORY_FLASH type)
"^F49L\\d+.*"
```

### Package Code Extraction

```java
// Handle hyphenated MPNs - get part after last hyphen
int lastHyphen = upperMpn.lastIndexOf('-');
if (lastHyphen > 0) {
    String suffix = upperMpn.substring(lastHyphen + 1);
    // Strip leading speed grade digits/dots
    String pkgCode = suffix.replaceAll("^[0-9.]+", "");
    // Check PACKAGE_CODES map
}
```

### Density Extraction Complexities

```java
// SPI Flash uses leading zeros: 004, 008, 016
// Parallel Flash uses scaled encoding: 160=16Mbit

// F25L004A -> "4" (strip leading zeros)
// F49L160UA -> "16" (scale down by 10)
```

---

## Cross-References

### SDRAM Equivalents

| ESMT | Samsung | Micron | ISSI |
|------|---------|--------|------|
| M12L128168A | K4S641632N | MT48LC8M16 | IS42S16800 |
| M12L64164A | K4S281632I | MT48LC4M16 | IS42S16400 |

### SPI Flash Equivalents

| ESMT | Winbond | Macronix | SST |
|------|---------|----------|-----|
| F25L016A | W25Q16 | MX25L1606E | SST25VF016B |
| F25L008A | W25Q80 | MX25L8006E | SST25VF080B |

---

## Related Files

- Handler: `manufacturers/ESMTHandler.java`
- Component types: `MEMORY`, `MEMORY_FLASH`, `IC`

---

## Learnings & Edge Cases

- **Leading zeros in F25L**: SPI Flash density codes have leading zeros (004, 008, 016)
- **Scaled encoding in F49L**: Parallel Flash uses 160=16Mbit, 320=32Mbit encoding
- **Configuration encoding**: SDRAM part numbers encode bus width and bank count
- **Speed grade in suffix**: Speed appears before package code after hyphen (e.g., -6TG = 6ns + TSOP-II)
- **Industrial grade suffix**: PAIG = SOP package with Industrial Grade indicator
- **Version letters**: A, B, C indicate silicon revisions, not always form/fit/function compatible

<!-- Add new learnings above this line -->

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.