SediCi PC currently features:

  • SediCiPUv2 CPU, running at up to 27 MHz with 4-6 clock cycles per instruction (currently, there's no pipeline)
  • LEDs output
  • Push button input
  • Periodic timer
  • UART I/O
  • UART boot loader (in ROM), capable of loading programs in a HEX format
  • SD card I/O (currently, reads only)
  • Video output:
    • VGA(ish) text and graphics modes (atop the 640 x 480 resolution):
      • text 80 x 30 (default)
      • text 80 x 60
      • text 40 x 30
      • graphics 320 x 240 x 1BPP
      • graphics 320 x 240 x 2BPP (warm colors: black, green, red, yellow)
      • graphics 320 x 240 x 2BPP (cool colors: black, cyan, magenta, white)
      • graphics 320 x 240 x 4BPP
    • all modes select colors from a programmable 16-color palette with 5 bits per each of the red, blue and green components:
      • 4BPP mode and text modes access all palette colors 0 through 15
      • 1BPP mode accesses palette colors 0 (black) and 15 (white)
      • 2BPP modes access these palette colors:
        • mode with warm colors:
          • 0 (black), 10 (bright green), 12 (bright red) and 14 (bright yellow)
        • mode with cool colors:
          • 0 (black), 11 (bright cyan), 13 (bright magenta) and 15 (white)
    • text modes currently use a fixed 8x8 font (hardware-scaled for the number of rows and columns). The font contains 512 different characters offering support for 50+ languages in Latin, Greek, Cyrillic and Hebrew scripts. Each character in every text mode occupies 16 bits: 9 bits select one of the 512 font characters and 7 bits select the foreground and background colors (the foreground uses 4 bits and can be any of all 16 colors of the palette and the background uses 3 bits and can be any of colors 0 through 7 of the 16-color palette)
    • all modes offer a blinking cursor with a programmable shape (hidden, underbar, block)
    • the number of visible lines can be programmatically reduced from 480 to 400 or even fewer to use less RAM for the video buffer and thus have more for the rest of your program
  • RAM: depends on the particular FPGA chip/board (up to 80 KB or so on Sipeed Tang Nano 20K)

See SediCiPC on github for more details and font files.