

Prog
SD to AES project
- Size
- 174 × 134 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 147
- Nets
- 290
- Pads
- 1,097
- Tracks, vias
- 3,176, 857
- Pours
- 14
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 13 Oct 2026
- Updated
- 22 Oct 2026
Overview
Prog is an open-source printed circuit board by DocteurPCB, from the DocteurPCB/SDAES repository on GitHub. It is a 4-layer board of 174 × 134 mm with 147 parts on 290 nets, routed with 3,176 tracks and 857 vias.
It is built around the ICE40HX4K-TQ144, 74LVC16244ADL and 74LVC16245ADL, with the 74AHCT125D, 74LVC1G07 and AP63203WU among its other parts. Its parts include 78 capacitors, 34 resistors, 13 ICs, 5 connectors and 3 diodes. It belongs with the RP2040 and FPGA and CPLD boards of this library.
Main components
7ICE40HX4K-TQ144
TQFP-144(20x20)-40℃~+100℃ 1.14V~1.26V 107 3520 440 81920bit iCE40 HX TQFP-144(20x20) Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)74LVC16244ADL
SSOP-48-300mil-40℃~+125℃ 1 1.2V~3.6V 16 2.2ns@3.3V,50pF 24mA 24mA 74LVC 80uA Tri-State Unidirectional SSOP-48-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74LVC16245ADL
SSOP-48-300mil-40℃~+125℃ 1 1.2V~3.6V 16 2.4ns@3.3V,50pF 24mA 24mA 74LVC 80uA Bidirectional Tri-State SSOP-48-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74AHCT125D
SOP-14-40℃~+125℃ 1 4 4.3ns@5V,50pF 4.5V~5.5V 40uA 74AHCT 8mA 8mA Schmitt trigger Tri-State Unidirectional SOP-14 Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74LVC1G07
SOT-353-40℃~+105℃ 1 1 1.65V~5.5V 1.6ns@5.5V,50pF 24mA 4uA 74LVC Open-drain Power-off isolation、Level shifting Unidirectional SOT-353 Buffers, Drivers, Receivers, Transceivers ROHSWuxi I-core ElecBuffers, Drivers, Receivers, TransceiversAP63203WU
TSOT-23-6-40℃~+85℃@(TA) 1 1.1MHz 22uA 2A 3.3V 3.8V~32V Buck Built-in Fixed Overcurrent Protection、Light load efficient mode、Cycle-by-cycle current limiting、Hiccup current limiting、EMI optimization (spread spectrum) Step-down type Yes TSOT-23-6 DC-DC Converters ROHSDiodes IncorporatedDC-DC ConvertersW9825G6KH-6
TSOP-54-10.2mm0℃~+70℃ 166MHz 256Mbit 3V~3.6V TSOP-54-10.2mm SDRAM ROHSWinbond ElecSDRAM
README
README.mdSDAES — cartouche SD pour Neo Geo AES
Cartouche ouverte pour Neo Geo AES qui charge les jeux depuis une carte
microSD, dans l'esprit de la NeoSD : un menu s'affiche sur la console, on
choisit un fichier .neo, la cartouche le charge en mémoire et la console
redémarre dessus. Tous les composants se soudent au fer : aucun BGA ni
QFN.
État : conception + logiciel vérifiés en simulation, pas encore de prototype matériel. Le code FPGA, le menu, le firmware et les outils sont écrits et testés automatiquement (voir plus bas) ; les circuits imprimés restent à dessiner. Le brochage AES est relevé sur le wiki neogeodev (
hardware/aes_connector.csv) ; son orientation reste à confirmer sur une vraie cartouche (docs/07-validation-et-feuille-de-route.md).
Principe
- 4 FPGA Lattice iCE40 en TQFP-144 (un par bus de la console : programme 68000, son ADPCM, sprites, couche fixe + Z80) répondent en temps réel et remplacent les ROM et les puces de cartouche (NEO-273, NEO-ZMC2, NEO-PCM2, banques P et Z80). Chaîne de développement libre (Yosys, nextpnr).
- 3 SDRAM + 1 SRAM en TSOP contiennent le jeu (jusqu'à 24 Mo de P, 32 Mo de V, 64 Mo de C : tous les jeux commerciaux standards).
- Un Raspberry Pi Pico 2 (RP2350, ~5 €) lit la carte SD et charge les
jeux (~9 Mo/s). Un Raspberry Pi « Linux » ne convient pas pour le bus
lui-même (trop peu de GPIO, latence) : voir
docs/01-architecture.md. - Coût matière estimé : ≈ 70-95 € par cartouche en petite série, montage à la main.
Organisation du dépôt
| Dossier | Contenu |
|---|---|
docs/ | architecture, signaux, timings, liaison, menu/firmware, nomenclature, validation |
hdl/ | Verilog des 4 FPGA (prog/ : P et V, cha/ : C et SM, common/) + bancs de test (sim/) |
menu/ | menu Neo Geo : programme 68000 (68k/) et pilote Z80 (z80/) |
firmware/rp2350/ | firmware du Pico 2 (SDK Pico + FatFs SDIO) et test sur PC |
protocol/ | protocole menu ↔ RP2350, partagé |
tools/ | neotool.py (.neo, police, BRAM, code de sécurité, bootlegs avec mame_sets.py), tests |
hardware/ | brochage du connecteur AES (aes_connector.csv), gabarits de contraintes FPGA (.pcf), futurs projets KiCad |
Construire et tester
Dépendances (Ubuntu/Debian) : iverilog, gcc-m68k-linux-gnu, z80asm,
console-setup-linux (police), Python 3 ; facultatif : yosys +
nextpnr-ice40 (ou pip install yowasp-yosys yowasp-nextpnr-ice40),
pip install machine68k (émulation du menu).
make # menu + fichiers d'init BRAM (hdl/build/*.hex)
make SECURITY_FROM=un_jeu.neo # idem, avec le code de sécurité requis par le BIOS
make test # tous les tests (Python + simulations HDL)
make sdaes_test.neo # ROM de test à copier sur la carte SD
make -C hdl lint pnr YOSYS=yowasp-yosys NEXTPNR=yowasp-nextpnr-ice40 # synthèse + placement-routage des 4 FPGA
python3 tools/neotool.py info jeu.neoRésultats actuels de make test :
- 18 tests Python : outils (dont descriptions de protections), firmware sur PC (chargement complet d'un
.neoet comparaison des images mémoire), menu 68000 exécuté dans un émulateur ; - simulations HDL au niveau carte :
tb_prog(FPGA P + V) ettb_cha(FPGA C + SM) en SUCCÈS ; lecture du programme 68000 en 79 ns (126 ns au pire cas) pour une limite estimée à ~125-150 ns ; - placement-routage des 4 FPGA à 101-114 MHz pour 100 MHz visés.
Documentation
- Architecture
- Signaux et niveaux 5 V
- Mémoires et timings
- Liaison RP2350 ↔ FPGA
- Menu et firmware
- Matériel et nomenclature
- Validation et feuille de route
- Cartouches protégées
Avertissements
- Aucun BIOS, ROM ou code SNK n'est inclus. Le code de sécurité exigé par le BIOS est recopié, à la construction, depuis un jeu que vous possédez.
- Protections : SMA (KOF 99, Garou, Metal Slug 3, KOF 2000), PVC (Metal
Slug 5, SVC Chaos, KOF 2003), KOF 98, PRO-CT0 (Fatal Fury 2, Super
Sidekicks), Metal Slug X (P1 corrigée au chargement), Metal Slug 5 Plus
et les bootlegs de Metal Slug 5, SVC Chaos et KOF 2003 sont pris en
charge (
neotool mamefabrique leurs.neo) (détails) ; les tables SMA s'extraient du source de MAME avecneotool.py sma-from-mame. Banques de couche fixe NEO-CMC : KOF 2000, SVC, KOF 2003, Metal Slug 3/4 ; approchées pour Garou.
Parts
147| Qty | Value | Footprint | References |
|---|---|---|---|
| 61 | 100n | Capacitor_SMD:C_0603_1608Metric | C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 +45 |
| 14 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R4, R5, R6, R7, R8, R9, R12, R17, R30, R31, R32, R33, R34 |
| 13 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C7, C25, C35, C36, C38, C48, C53, C63, C64, C66, C76, C77 |
| 12 | 33 | Resistor_SMD:R_0603_1608Metric | R13, R18, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29 |
| 9 | Entretoise M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4, H5, H6, H7, H8, H9 |
| 4 | 100 | Resistor_SMD:R_0603_1608Metric | R10, R11, R15, R16 |
| 3 | 22u | Capacitor_SMD:C_1206_3216Metric | C3, C5, C6 |
| 3 | 74LVC16244A | Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm | U3, U4, U5 |
| 2 | 0 | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 25 MHz 3,3 V | Oscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mm_HandSoldering | X1, X2 |
| 2 | 470 | Resistor_SMD:R_0603_1608Metric | R14, R19 |
| 2 | 74LVC16245A | Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm | U6, U7 |
| 2 | LED | LED_SMD:LED_0603_1608Metric | D1, D2 |
| 2 | W9825G6KH-6 | Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mm | U11, U13 |
| 2 | iCE40HX4K-TQ144 | Package_QFP:TQFP-144_20x20mm_P0.5mm | U10, U12 |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric | C8 |
| 1 | 4,7 µH 3 A | Inductor_SMD:L_Bourns_SRP5030T | L1 |
| 1 | 74AHCT125 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U8 |
| 1 | 74LVC1G07 | Package_TO_SOT_SMD:SOT-23-5 | U9 |
| 1 | AES_PROG | SDAES:AES_Edge_2x50_P2.54mm | J1 |
| 1 | AP2112K-1.2 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | AP63203WU | Package_TO_SOT_SMD:TSOT-23-6 | U1 |
| 1 | CONF P | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J3 |
| 1 | CONF V | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J4 |
| 1 | Câble PROG-CHA | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical | J2 |
| 1 | Raspberry Pi Pico 2 | SDAES:RaspberryPi_Pico2_SMD | A1 |
| 1 | Retour menu | Button_Switch_SMD:SW_SPST_TL3342 | SW1 |
| 1 | SS14 / BAT60A | Diode_SMD:D_SOD-123 | D3 |
| 1 | microSD | Connector_Card:microSD_HC_Wuerth_693072010801 | J5 |
More from DocteurPCB/SDAES
1- 4 layers173 × 134 mm

Similar boards
- 4 layers106 × 120 mm

Tang Primer 20k HD6309 Board
blark/6809sidecar
Experimental daughter board for the Tang Primer 20k Lite
70 parts1 - 2 layers83.8 × 51 mm

Mega wifi
jfryman/mw-cart
MegaWiFi Mega Drive/Genesis Wi-Fi cartridge — Rev.C fork (TI TL16C550D UART, 20 MHz / 1.25 Mbaud). Upstream: gitlab.com/doragasu/mw-cart
56 parts - 4 layers181.5 × 182.3 mm

Stencil
jerry-kerenzikov/ytterbium
Project files for Ytterbium modular CPU platform and Yprog programming tool
421 partsCERN-OHL-S-2.0 - 2 layers24 × 38 mm

BSH Board
Bouni/BSH-Board
A board that interfaces the DBUS of several home appliances and brings them into Home-Assitant via ESPHome
75 parts65 - 4 layers65 × 30 mm

- 4 layers100 × 77.4 mm

- 2 layers100.5 × 60 mm

- 4 layers57.9 × 59.4 mm

GW4302
garrettsworkshop/GW4302
Prototype RAM cartridge compatible with Commodore 1700/1750/1764 RAM Expansion Unit (REU)
100 parts11
Questions
How big is the Prog PCB?
It measures 174 × 134 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Prog use?
147 parts, built around the ICE40HX4K-TQ144, 74LVC16244ADL, 74LVC16245ADL and 74AHCT125D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Prog KiCad files?
From the DocteurPCB/SDAES repository on GitHub, at the commit this page was made from: the board is hardware/kicad/prog/prog.kicad_pcb and its schematic hardware/kicad/cha/buffers.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Prog design in my own project?
Its repository states no licence, so its author keeps all rights: ask DocteurPCB before reusing the design.