RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » upd7220 CPLD/FPGA project (Looking for a challenge?)
upd7220 CPLD/FPGA project [message #9045] Tue, 24 August 2021 03:53 Go to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
I've been thinking about video boards lately and if you'll recall the upd7220 GDC board.

https:// retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/48860 720/35845601/index.htm

It is quite a video board with VGA monitor compatibility, multiple color planes, 80 column text, graphic primitives. Everything but a blitter. The upd7220 GDC was way ahead of its time for 1985.

The main downside to the upd7220 was the complicated logic needed to drive the color planes. However I am thinking this would be an ideal project to consolidate/reimplement the upd7220 GDC board using a large CPLD or FPGA (and 16 bit or wider SRAMs, almost certainly SMD only).

It's not my forte but I'll concede this is one application where large programmable logic really makes sense. Otherwise it won't fit on the Euro card format (160x100mm). The current design uses a large mezzanine board to make everything fit. It's also a huge power hog.

If the design was redesigned to allow for shared memory on the ECB bus then you could use the DMA to supply the pseudo-blitter function. The current design is local video memory only. Again this would be even larger logic circuit so a CPLD/FPGA would make sense.

So if you're looking for a fun new project and like working with CPLD/FPGAs this might be something for you to consider.

Thanks, Andrew Lynch

[Updated on: Tue, 24 August 2021 04:05]

Report message to a moderator

Re: upd7220 CPLD/FPGA project [message #9056 is a reply to message #9045] Mon, 30 August 2021 04:38 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
The schematic for the upd7220 GDC board exists on the old wiki back up. Also at least a few prototype boards were built and tested. There are image captures in the directory of the board working. Unfortunately due to its complexity and just general difficulty it never really took off. Kind of disappointing but understandable considering all the factors. However I think with a large CPLD and a large and wide SRAM (16 or 32 bit) I think this design could fit on a single ECB board. Making it work with DIP and PTH only parts though resulted in a fairly large (double size) PCB and is not practical.

Thanks, Andrew Lynch
Re: upd7220 CPLD/FPGA project [message #9079 is a reply to message #9056] Wed, 01 September 2021 08:34 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
I had a look at it not long ago with a view to do an SVGA mono card and that looked a lot more approachable. It's clear the chip was designed for the mono workstation displays that were prevalent at that time. For colour the V9938 and V9958 look a much better option - and there are a few designs for 9938/9958 boards around both 8bit and 16bit wide. Not that any of those devices are that easy to find. I didn't bother with a V9958 design as for RC2014 where I wanted it there already is a card.

If you don't want acceleration you can also use a 6545 or faster 6845 to drive VGA, you just need the RAM to be 16bit wide as seen by the video shifters so that the 6545 video clock rate is low enough. In the 6845 case (and straight logic case) you can also make the memory write only (or shadowed by main RAM) fairly easily by latching the address and data on a write and alternating the address bus between reading for the 6845 and writing the latches to memory. The 6545 being nicer as it has a slightly slower but built in mechanism for this.

I've done FPGA video before - it's not easy to glue to a retro system because it's 3v3 (or increasingly 1.8v) and the biggest constraint I found on FPGA is pins. Adding VGA to the socz80 (FPGA CPU, FPGA I/O devices) was easy - but trying to build a standalone video interface would have been much much harder not only because of the extra bus arbitration but because by the time you've got the pins for the CPU interface and the pins for the private memory you've run out of pins unless you start multiplexing all the external memory interfaces and adding a load more glue. In fact I suspect it would be easier to just use the PIO engine on a Raspberry Pi Pico plus some buffers and write a TMS9958 or 7220 emulator than do an FPGA build.
Re: upd7220 CPLD/FPGA project [message #9081 is a reply to message #9079] Wed, 01 September 2021 08:44 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
Thanks, my idea above is to use an actual NEC upd7220 chip and consolidate most/all of the glue logic tying it to the bus and video RAM with a large 5v CPLD (or 5v FPGA if such a thing exists). Most of the board area on the current PCB is consumed by bus logic and shift registers and low density SRAMs. It does support 4 color planes though (R, G, B, and I). I think if all the glue logic were consolidated into a single CPLD then I think it might fit on a Eurocard. Otherwise it spreads out to twice that size. Also a CPLD would allow for wider RAM for video.

I've built a bunch of different video boards over the years but the upd7220 always has seemed just outside of my grasp due to its complexity. Myself and others did make a upd7220 board and it worked but it really just proved how impractical it really is.

Thanks, Andrew Lynch
Re: upd7220 CPLD/FPGA project [message #9090 is a reply to message #9081] Thu, 02 September 2021 08:41 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
There are still one or two small (like 1152 LUT4) size FPGAs from Chinese manufacturers (Gowin notably - sometimes sold in Europe at least under the "LittleBee" branding). Lattice still make a few 5v CPLDs but I don't think there are any 5v FPGA still in production there. Their 5V CPLD range is vastly reduced and 'not recommended for new designs'.

All the bigger ones are 3v3 or 1v8 because the smaller feature size necessary to fabricate them cannot run at a higher voltage (even 3v3 usually requires at least 28nm)

The other good option (the GODIL boards) have also been discontinued - they were an FPGA plus all the support and shifters on a DIP format board designed to just fit into an existing IC socket.

[Updated on: Thu, 02 September 2021 08:44]

Report message to a moderator

Re: upd7220 CPLD/FPGA project [message #9091 is a reply to message #9090] Thu, 02 September 2021 09:47 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
Yes, the CPLD or FPGA would have to be at least 5v tolerant or it defeats the purpose of glue logic consolidation by requiring a lot of voltage level translation components. Also the upd7220 is old enough that it only comes in an NMOS 5V version only as far as I know.

Of course, maybe there is just a better way to do it than my design. Here is one from hackaday that appears to use a lot less logic

https://hackaday.io/project/164728-upd7220-retro-graphics-ca rd-and-vga-hack

Interesting article on upd7220. Maybe it is going through a renaissance

https://www.electronicdesign.com/technologies/embedded-revol ution/article/21122304/jon-peddie-research-vol-1-no-1-nec-pd 7220-graphics-display-controller-the-first-graphics-processo r-chip


I'd love for a decent design to come out for upd7220. I have at least a tube of these old beauties just waiting for the right design to come along. Too bad that dual board design from a few years ago turned into such a monstrosity



[Updated on: Thu, 02 September 2021 09:49]

Report message to a moderator

Re: upd7220 CPLD/FPGA project [message #9096 is a reply to message #9091] Fri, 03 September 2021 07:36 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
After looking more closely at the upd7220 design on hackaday, I am thinking a new board based on it would fit in a single Eurocard. It is much more efficient than my schematic design. The designer did some excellent work. Very neat!

Thanks, Andrew Lynch
Re: upd7220 CPLD/FPGA project [message #9104 is a reply to message #9096] Mon, 06 September 2021 05:06 Go to previous messageGo to next message
e2k is currently offline  e2k
Messages: 33
Registered: June 2021
Member
Did you have a look at the HD63484? I used both, and liked the Hitachi better ...
Re: upd7220 CPLD/FPGA project [message #9131 is a reply to message #9096] Fri, 17 September 2021 02:20 Go to previous messageGo to next message
e2k is currently offline  e2k
Messages: 33
Registered: June 2021
Member
lynchaj wrote on Fri, 03 September 2021 07:36
Hi
After looking more closely at the upd7220 design on hackaday, I am thinking a new board based on it would fit in a single Eurocard. It is much more efficient than my schematic design. The designer did some excellent work. Very neat!

Thanks, Andrew Lynch
You like to have it on the ECB bus?
Re: upd7220 CPLD/FPGA project [message #9132 is a reply to message #9131] Fri, 17 September 2021 12:30 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1080
Registered: June 2016
Senior Member
Hi
Most of the boards on RBC are ECB and the previous upd7220 design was also. I think ECB would be most useful for the most people here. However if you want to make a project you can decide on whatever suits you best. I think the project on Hackaday probably would fit on an ECB Eurocard or come very close.

Thanks, Andrew Lynch
Re: upd7220 CPLD/FPGA project [message #9134 is a reply to message #9132] Sat, 18 September 2021 07:00 Go to previous messageGo to next message
e2k is currently offline  e2k
Messages: 33
Registered: June 2021
Member
lynchaj wrote on Fri, 17 September 2021 12:30
Hi
Most of the boards on RBC are ECB and the previous upd7220 design was also. I think ECB would be most useful for the most people here. However if you want to make a project you can decide on whatever suits you best. I think the project on Hackaday probably would fit on an ECB Eurocard or come very close.
Thanks, Andrew Lynch
Is there a 68k with ECB bus?
Re: upd7220 CPLD/FPGA project [message #9135 is a reply to message #9134] Sat, 18 September 2021 07:09 Go to previous message
e2k is currently offline  e2k
Messages: 33
Registered: June 2021
Member
Sorry for the noise, I found the list.
Still wondering if a 638484 isn't nicer. Have schematics for a 68000 anyway, and some software too.
Will look into both ...
Previous Topic: Z80 interrupt management
Next Topic: CP/M-68 assembler questions (NOT A HARDWARE ?)


Current Time: Mon Mar 24 23:24:13 PDT 2025

Total time taken to generate the page: 0.04113 seconds