Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |
| builderpages:plasmo:piggybackvga [2025/02/12 17:01] – Revision from 2025-02-12 | builderpages:plasmo:piggybackvga [2026/06/15 13:09] (current) – external edit 127.0.0.1 |
|---|
| | /* Imported from Wayback Machine |
| | Original URL : https://retrobrewcomputers.org/doku.php?id=builderpages:plasmo:piggybackvga |
| | Snapshot date: 2024-11-06 |
| | Generator : wayback-archiver |
| | */ |
| | |
| | ====== VGA Piggybacked on RAM, An Experimental Prototype ====== |
| | |
| | ===== Introduction ===== |
| | |
| | The design of a simple VGA using dual port RAM and CPLD was discussed [[http://forum.6502.org/viewtopic.php?f=10&t=6502|here]]. Posts after May 25, 2021 described an experimental prototype where the dual port RAM, CPLD, and oscillator are glued on top of a 128KB RAM such that the content of a portion of the RAM is displayed as 64-column X 48-line text. This page describes the detailed design of this experimental prototype. A pc board version of the piggybacked VGA prototype is [[builderpages:plasmo:vgaxram|here]]. |
| | |
| | [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=42d35a&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/piggybackvga/vga_piggyback_on_ram.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/piggybackvga/vga_piggyback_on_ram.jpg?600x324|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_piggybackvga_vga_piggyback_on_ram.jpg}}]] |
| | |
| | ===== Features ===== |
| | |
| | Add VGA function to existing system RAM |
| | |
| | 128KB RAM |
| | |
| | 4K dual port RAM |
| | |
| | 64-macrocell CPLD, EPM7064SLC44 |
| | |
| | Each character is 8×8 pixels |
| | |
| | 25.175MHz oscillator |
| | |
| | HD15 VGA connector |
| | |
| | [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=369a20&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/piggybackvga/dsc_65750528.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/piggybackvga/dsc_65750528.jpg?500x277|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_piggybackvga_dsc_65750528.jpg}}]] |
| | |
| | ===== Theory of Operation ===== |
| | |
| | The VGA circuit consists of a 4KB dual port RAM, CPLD, and 25.175MHz oscillator. One side of the dual port RAM snoops a 4KB space of the system RAM such that every write to the 4KB space modifies both system RAM as well as the dual port RAM while a read only return the content of the system RAM. The other side of the dual port RAM is controlled by the CPLD state machine where the first 3KB contains the text memory and are read sequentially and continuously into CPLD. The text value is used to look up corresponding entry in the font table located at the top 1KB of the dual port RAM. The bit patterns from the font table is loaded into a shift register and output to RGB outputs at 25.175MHz pixel rate. |
| | |
| | ===== Design Files ===== |
| | |
| | [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:piggybackvga:stackvga6448_scm.pdf|Schematic]] |
| | |
| | [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:piggybackvga:piggybackvga_cpld.zip|CPLD design files]] |
| | |
| | [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:piggybackvga:piggybacked_vga_top_scm.pdf|Schematic]] of the CPLD design |
| | |
| | [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:piggybackvga:piggybackvga_test_screen.zip|test file]] to be loaded into 0xA000-0xAFFF and generates the text screen of above picture |
| | |
| | Prototype [[builderpages:plasmo:piggybackvga:assembly|assembly blog]] |
| |