ULX4M
ULX3S successor in Raspberry Pi CM4 module format; most ULX3S designs port with the ulx4m_v002.lpf constraint file.
| Board | Radiona ULX4M (CM4-format ECP5 module) |
| FPGA | LFE5UM-85F (ECP5-5G) on the variants catalogued |
| Evidence | catalogue rows (e.g. lawrie__ulx4m_examples) |
| Clock | unknown |
| Catalogued repos | 21 |
The description is a short summary; FPGA facts come from the catalogue rows cited above.
Constraint files (LPF)
Most-copied distinct LPFs for this board in the cloned repos (from the LPF catalogue).
| LPF | Revision | Copies | Peripherals constrained |
|---|---|---|---|
ulx4m_v002.lpf (lawrie__apple-one) | v0.0.2 (file name) | 6 | button, esp32-wifi, ftdi-uart, gpio-header, hdmi-dvi, led, rtc-power, sdcard, sdram, spi-flash, switch, usb |
ulx4m-ld_v001.lpf (intergalaktik__ulx4m-ls) | v001 (file name) | 2 | button, camera, ddr3, hdmi-dvi, led, rtc-power, sdcard, spi-flash, usb |
ulx4m-ld_v002.lpf (intergalaktik__ulx4m-ls) | v0.0.2 (file name) | 2 | button, camera, ddr3, esp32-wifi, ftdi-uart, hdmi-dvi, i2c, led, rtc-power, sdcard, spi-flash, switch, usb |
ulx4m_ls_v003.lpf (intergalaktik__ulx4m-ls) | v003 (file name) | 2 | button, camera, ethernet, ftdi-uart, gpio-header, hdmi-dvi, i2c, led, rtc-power, sdcard, sdram, spi-flash, switch, usb |
ulx4m_v002.lpf (danodus__ulx3s_sms) | v0.0.2 (file name) | 2 | button, esp32-wifi, ftdi-uart, gpio-header, hdmi-dvi, led, rtc-power, sdcard, sdram, spi-flash, switch, usb |
ulx4m_v002.lpf (intergalaktik__ulx4m-ls) | v0.0.2 (file name) | 2 | button, gpio-header, hdmi-dvi, led, rtc-power, sdcard, sdram, spi-flash, usb |
ulx4m_v01.lpf (intergalaktik__ulx4m-ls) | v01 (file name) | 2 | hdmi-dvi, led, rtc-power, sdcard, sdram, spi-flash, usb |
fpga_ulx4m_ld.lpf (ulx3s__hazard3) | unknown | 1 | ddr3, ftdi-uart, hdmi-dvi, led, sdcard |
fpga_ulx4m_ld_blinky.lpf (ulx3s__hazard3) | unknown | 1 | led |
fpga_ulx4m_ld_v002.lpf (ulx3s__hazard3) | v0.0.2 (file name) | 1 | ddr3, ftdi-uart, hdmi-dvi, led |
fpga_ulx4m_ls.lpf (ulx3s__hazard3) | unknown | 1 | ftdi-uart, hdmi-dvi, led, sdram |
top-ulx4m-v002.lpf (emard__had2019-playground) | v0.0.2 (file name) | 1 | button, esp32-wifi, ftdi-uart, gpio-header, hdmi-dvi, led, rtc-power, sdcard, sdram, spi-flash, switch, usb |
Reusable cores seen on this board
Cores whose source repo, or a repo that copies/instantiates them, targets this board.
| Core | Function | Source repo |
|---|---|---|
| MAX1112x ADC reader (ulx3s-emi copy) | adc | emard__ulx3s-emi |
| MAX1112x ADC reader (ulx3s-misc) | adc | emard__ulx3s-misc |
| I2S audio interface (ulx3s-misc) | audio-digital | emard__ulx3s-misc |
| S/PDIF transmitter (synthowheel) | audio-digital | emard__synthowheel |
| Hazard3-Doom vendored DFU bootloader (ULX4M-LD validated) | bootloader-dfu | ulx3s__hazard3-doom |
| ULX3S/ULX4M USB DFU bootloader (had2019-playground) | bootloader-dfu | emard__had2019-playground |
| AHB-Lite crossbar/arbiter/APB bridge | bus-fabric | ulx3s__hazard3 |
| TV80 Z80-compatible core (emard__ulx3s_galaksija copy) | cpu-retro | emard__ulx3s_galaksija |
| grom toy 8-bit CPU + computer (FPGA 101 original) | cpu-retro | mmicko__fpga101-workshop |
| i8080-compatible core (Bashkiria-2M-derived) | cpu-retro | lawrie__ulx3s_examples |
| Hazard3 RV32IMAC core | cpu-riscv | wren6991__hazard3 |
| PicoRV32 RISC-V core | cpu-riscv | yosyshq__picorv32 |
| VexRiscv (SpinalHDL-generated Verilog) | cpu-riscv | rschlaikjer__fpga-3-softcores |
| Resistor+PWM hybrid DAC (dacpwm) | dac | emard__ulx3s-misc |
| Sigma-delta DAC (up5k-demos) | dac | daveshah1__up5k-demos |
| ESP32 SPI OSD + spirw_slave ROM/disk loading stack | esp32-osd | lawrie__ulx3s_sms |
| SPI RAM slave (ESP32 <-> FPGA memory-mapped link) | esp32-osd | emard__uk101onfpga |
| RMII hex-dump packet sniffer | ethernet | emard__ulx3s-misc |
| smoldvi small portable DVI core | hdmi-dvi | wren6991__smoldvi |
| vga2dvid + tmds_encoder DVI/TMDS core (Mike Field / EMARD) | hdmi-dvi | emard__ulx3s-misc |
| SAO I2C command engine | i2c | ulx3s__hazard3 |
| OpenCores JTAG TAP + JTAGG bridge | jtag-debug | emard__ulx3s-misc |
| 64x64 LED panel scanner (ledscan) | led-drivers | goran-mahovlic__prjtrellis-led64x64 |
| ecp5pll parametric PLL | pll-clock | emard__ulx3s-misc |
| ps2_intf keyboard decoder | ps2 | lawrie__ulx3s_examples |
| ps2kbd + ps2mouse (EMARD) | ps2 | emard__ulx3s-misc |
| FM stereo transmitter with RDS | radio | emard__ulx3s-misc |
| sdram_pnru simplistic SDRAM controller | sdram | emard__ulx3s-misc |
| LAYR_AUDIO SID6581 sound chip core | sound-chips | thorkn__layr_audio |
| SN76489 PSG (sound chip) | sound-chips | lawrie__ulx3s_sms |
| APB SPI master (microSD) | spi | ulx3s__hazard3 |
| SPI master (Bus Pirate NextGen Ultra) | spi | dangerousprototypes__buspirateultrahdl |
| SlabBoy ST7789 SpinalHDL LCD driver | spi-display | lawrie__slabboy |
| lcd_video / spi_display multi-panel SPI LCD driver | spi-display | emard__ulx3s-misc |
| Wishbone Quad-SPI flash controller (Gisselquist-derived) | spi-flash | emard__ulx3s-misc |
| qspi_phy_ecp5 QSPI flash PHY (ECP5-native) | spi-flash | emard__had2019-playground |
| SAO UART phy (minimal 8N1) | uart | ulx3s__hazard3 |
| circuit-killer USB FS serial device (VHDL, ULX3S-built) | usb-device | circuit-killer__fpga-usbserial |
| f32c USB CDC-ACM device + soft PHY | usb-device | f32c__f32c |
| no2usb-derived ECP5 USB FS device core (had2019 bootloader) | usb-device | emard__had2019-playground |
Projects targeting this board
- alangarf__apple-one: Multi-board
- cheyao__nes_ecp5: NES (MiST-derived core) for ULX3S/ULX4M/icepi-zero via open toolchain, with ESP32 SD-card OSD loader
- danodus__ulx3s_sms: Sega Master System core for ULX3S and ULX4M, HDMI/VGA out, ESP32 OSD ROM loader
- emard__had2019-playground: HAD2019 badge playground
- emard__ulx3s-misc: ULX3S misc/advanced examples: EMARD’s building-block library (review)
- intergalaktik__ulx4m-ls: ULX4M-LS PCB, ULX3S successor board hardware
- lawrie__apple-one: Apple 1 Verilog, ULX3S HDMI + PS/2 + UART
- lawrie__jupiter_ace: Jupiter Ace
- lawrie__ulx3s_acorn_atom: Acorn Atom 8-bit home computer core ported to ULX3S
- lawrie__ulx3s_amstrad_cpc: Amstrad CPC 664 emulation
- lawrie__ulx3s_atari_2600: Atari 2600
- lawrie__ulx3s_colecovision: ColecoVision game console core for ULX3S, also ported to a distinct ‘ulx4m’ board variant
- lawrie__ulx3s_sms: Sega Master System / SG-1000: TV80, VDP, SN76489, SDRAM carts, ESP32 OSD (review)
- lawrie__ulx3s_zx81: ZX80/ZX81: TV80, HDMI scandoubler, PS/2, ear/audio
- lawrie__ulx4m_amaranth_examples: Amaranth HDL examples for the ULX4M board: blinky, DVI, SDRAM16, Conway life, mitecpu, PS/2, OLED, audio
- lawrie__ulx4m_examples: Verilog examples for the ULX4M board: blinky, HDMI/DVI, SDRAM, softcore CPUs, GPI2 game demos
- litex-hub__litex-boards: LiteX board-support collection: Python platform + target definitions
- trabucayre__openfpgaloader: openFPGALoader universal programmer (review)
- ulx3s__hazard3: Hazard3 RV32IMACZb* CPU: ULX3S/ULX4M-LD fork with dedicated build docs, incl.
- ulx3s__hazard3-doom: ulx3s/Hazard3-Doom: Doom
- ulx3s__tt-support-tools: tt-support-tools