From 730d11ecea3f4f8aeda38aaf248ad948eb623a36 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 13 Aug 2024 20:53:47 -0700 Subject: [PATCH] Add tentative requirements document to capture requests. --- Requirements.md | 96 ++++++++++++++++++++++++++++ images/65x-gary-graphics.png | Bin 0 -> 46702 bytes images/65x-gary-system-overview.png | Bin 0 -> 26832 bytes 3 files changed, 96 insertions(+) create mode 100644 Requirements.md create mode 100644 images/65x-gary-graphics.png create mode 100644 images/65x-gary-system-overview.png diff --git a/Requirements.md b/Requirements.md new file mode 100644 index 0000000..59cb8fd --- /dev/null +++ b/Requirements.md @@ -0,0 +1,96 @@ +# GARY: Graphics Adapter for Retropixel Yeeting + +Tentative requirements and wishlist for an FPGA-based media processor +for retrocomputing. + +## Target hardware/era + +The design is intended to feel at home in a retrocomputer with a "late +16-bit era" feel, like the Sentinel 65X: 16-bit CPU clocked around +5-15MHz with a wide main bus shared by multiple memory-mapped +peripherals. It aims for capabilities comparable to early VGA graphics +and early PC audio. + +Initially, we'll tailor the design to the Sentinel 65X's needs and +wants, as a potential replacement for the VERA processor developed for +the Commander X16. + +## Overview + +![schematic diagram of a hypothetical 65X computer with GARY. The +important parts of the schematic are described in text following the +image.][images/65x-gary-system-overview.png] + +This is a general system overview. The 65C816 main processor connects +to the board's main bus, with peripherals like system RAM and +expansion ports. GARY also connects to this bus. It has dedicated +attached video RAM, and provides audio and video output as well as a +few GPIOs. It also has a dedicated interrupt line, to serve as an +offboard interrupt controller to the main CPU. + +Initially the plan is to mirror the design and features of the VERA +processor, and modify from there. + +![schematic diagram of GARY's graphics rendering pipeline. The system +bus hooks to a bus interface, which writes data to video RAM and +configures the other components. Video RAM feeds into two tile engines +and a sprite engine, their output is merged by a compositor, and +finally pixels are output by the palette DAC, which also reads palette +information from video RAM.][images/65x-gary-graphics.png] + +## Feature/wish list + +Roughly, start from VERA and evolve from there. + +- 640x480@60Hz "industry standard" VGA output. +- RGB color output, 12bpp (4 bits per colour), into a resistor DAC to + convert to analog VGA signals. +- Modifiable 256 color palette. +- 128KiB video RAM, accessible from CPU. +- Various tile and sprite modes (same as VERA's, tentatively). +- Glitch-free video, correct clock domain crossing (unlike VERA). +- PCM audio with output to I2S DAC. Samples fed directly from CPU. +- Written in Bluespec SystemVerilog, an high level HDL that makes it + hard to screw up timing/synchronization/types. (Not strictly + required, but Dave's doing it this way so if you want him to make + the thing...) +- Well tested, good simulator support (again to not go mad trying to + debug subtle problems on live hardware). + +Desires to better fit 65X's needs than VERA. These mostly rely on having more I/O available, so would require moving up to a low-end Lattice ECP5 instead of a maxed out ICE40. + +- Directly expose internal address space on system bus, instead of a + narrow window to wider internal space. Full 24 address + 8 data + lanes into GARY. +- Programmable interrupt controller, 8 GPIOs and some timers to + trigger interrupts. +- Absorb the glue logic from the separate CPLD/7400 chips [TODO: what + does said logic need to do exactly?] + +I want a pony! Things that should be doable, but are more radical +departures from VERA in various ways. Definitely would need an ECP5. + +- Palette in main VRAM, at configurable location (unlike VERA, which + has a separate palette memory). Specifically support reconfiguring + the palette during frame drawing, to enable cool beam-racing + nonsense. +- Support for palette colour cycling: specify [start:end] range in + palette and cycle speed, palette DAC rolls colours by itself. +- Direct double-buffered framebuffer mode, for GUI stuff. 1bpp and + 2bpp palettized possible within VERA's RAM budget, more would + require larger VRAM. +- S-Video output in addition to VGA. Require YPbPr conversion to + output luma+chroma signals. +- HDMI or DisplayPort output in addition to VGA. Same + resolution/depth, different transport. Requires 8b/10b encoder and + additional signals. +- Support for 65C816's 16-bit move instructions. Normal move sends 8 + bits every 7 PHI2 clock cycles, 16-bit move sends 2x8 bits on two + consecutive PHI2 cycles. +- Display lists? As in https://www.atariarchives.org/dere/chapt02.php + . Effectively a small DSP ISA/very primitive GPU + programming. Significant architecture change from VERA. +- Higher resolution output? Would be nice to hit SVGA resolutions like + 1024x768 or 1280x1024. Requires gateware running at higher + frequency, use of more complex I/O hardware, larger video RAM. Even + moreso if we want 24bpp per SVGA, rather than palettized output. diff --git a/images/65x-gary-graphics.png b/images/65x-gary-graphics.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf121fc89db21b177882bb83672fea18c7fee03 GIT binary patch literal 46702 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 K)VsUl@jG`fQ+#$=Z0~yN$%I~G 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 MO6h*?y(iEAFS=Wa7ytkO literal 0 HcmV?d00001 diff --git a/images/65x-gary-system-overview.png b/images/65x-gary-system-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..02ddc9ced9de9eaed480af07d222ad3819f2e70e GIT binary patch literal 26832 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 d!N$PA!q(W*ZW|3D2!08W5|