Xosera is an FPGA based video adapter designed with the rosco_m68k retro computer in mind (and adaptable to similar systems).
Currently the design is supported for the iCE40UP5K FPGA which is fully supported by the open Yosys/NextPNR tools. Development is being done on both the iCEBreaker FPGA board as well as the Upduino 3.0 board (or Upduino 2.x with external oscillator).
Planned Xosera features:
- VGA or HDMI (DVI) output at 640x480@60Hz or 848x480@60Hz (16:9 widescreen 480p) and perhaps 800x600@60Hz
- 16 or 256 color palette out of 4096 colors (12-bit RGB)
- 128KB of embedded video RAM
- Two overlayed "planes" of video
- Character tile based modes with color attribute byte
- Up to 8x16 character size
- 8KB of font RAM
- Smooth horizontal and vertical scrolling
- Bit-mapped 16 and 256 color graphics modes
- "Blitter" to accelerate copy and fill operations
- At least one "cursor" sprite (and likely more)
- Register based interface with auto-increment (as fast as direct mapped)
- SPI interface to registers for development from PC via FTDI (or direct GPIO use)
Current Xosera features:
- VGA and HDMI (DVI) video generation (at resolution fixed at config time)
- 8x16 text with 4-bit foreground/background color per character
- Draws "test image" with "proto-blitter"
- SPI target interface with test circuit that allows redefinition of font characters on the fly using C++ host_spi FTDI utility.
- GNU Make based build using the pre-built FPGA-Toolchain binaries and tested on Linux (Ubuntu 20.04), Windows 10 (Cygwin64) and MacOS.
- Fast Verilator simulation including SPI interface and using SDL2 for BMP screenshot of each video frame
- Icarus Verilog simulation (SPI test bench coming)