4 Replies Latest reply on May 12, 2019 7:31 PM by wolfgangfriedrich

    What to use for video output?


      Hello! I'm new here and I'm not sure if I am asking in the correct community.


      I have a personal project I have been working on (planning to work on, I'm not too confident in my lack of skill). Essentially I'm trying to build my own 8-bit/16-bit computer based around the W65C816 (which is not on Newark - I looked), and I am planning on using a separate chip for video output. However, I am unsure whether to use an FPGA or a microcontroller, or even which specific chip to use.


      For what sort of video capabilities I would be looking to program onto the chip, as well as any requirements I would need for the chip itself, they are as follows:

      • Through Hole is perferred, Surface Mount can be converted.
      • Can work as an MMIO device (i.e. can be put on the system bus).
      • May or may not use internal RAM for storing the state of the screen as well as text characters.
      • 64 colors, using 2 bits for each RGB channel.
      • Standard 640 by 480 VGA resolution.
      • Color cells! (like the NES or old Commodore computers)
      • Bitmap graphics and sprites (for the games)


      (And, before you ask, yes I know about the Gameduino, if you were going to ask. However it does not fit my needs exactly, lacking proper color cells and a bitmap graphic mode, and it cannot be used on a parallel system bus. And if I have to learn FPGA to modify the Gameduino, I might as well make the entire thing from scratch.

        • Re: What to use for video output?

          Hi Ashton,


          A company called VLSI make such chips, they are quite niche so not many other manufacturers of an all-in-one chip like this. See this thread for some part numbers: https://www.element14.com/community/message/248502/l/ttl-video-chip#248502

          There's likely no hope for a modern chip to be through-hole for this, but the packages are hand-solderable (and there are proto adaptor boards to break out the SMD to pins if desired.

          However, the chips mentioned above may not support graphics primitives and sprites (I've not checked the datasheet, but that is available from the VLSI site). To do that would require it to be implemented in software if you wish to use such a chip.

          Another option is to do it all in an FPGA, and then implement those primitives in the FPGA in hardware. That may be an uphill struggle (depends on how much effort you're willing to put in, since describing hardware in a hardware description language it is not like software programming). There are likely existing projects to copy though (implementing a graphics processor is a popular thing for FPGAs) such as this one: https://opencores.org/projects/orsoc_graphics_accelerator

          But if this is a retro system, then you may not need that. The old handheld PDAs from two decades ago, had slow-ish 68k compatible processors, and no hardware graphics engine (all graphics instructions were implemented in software on the 68k) and they were fast enough for some games.

          5 of 5 people found this helpful
            • Re: What to use for video output?

              Yes it is basically a retro system. I'll have to check all the suggestions I've gotten so far, but I like how helpful this community seems to be.


              Edit: Currently checking the VLSI chip datasheet, and I cannot find anything that either confirms or denies the chip having support for primitives. Also looking for Verilog tutorials, just in case.

            • Re: What to use for video output?

              Check out the VS23S010.

              It is also used by wolfgangfriedrich to make a display shield.

              5 of 5 people found this helpful
                • Re: What to use for video output?

                  Thanks dougw for remembering my project.

                  The VS23S010 only outputs composite video and would be restricted to 8 colours at 640x480. The chip does not support colour cells, which was a really genius concept to increase the colour count.

                  Also, it only has a basic block memory copy function, which could implement a basic type of sprite, but it would overwrite the background image data and it has no collision detection.

                  My shield only has the SPI communication option wired, the parallel bus access would need some blue-wires and would only work on a 3.3V host system, because those pin would need to be bidirectional. All required signals are accessible on test points.


                  I have 2 projects for the VS23S040 in the planning stage, but nothing to show yet.



                  - W.

                  2 of 2 people found this helpful