FPGAs (like Xilinx’s Spartan series) are great building blocks. They often remind us of the 100-in-1 electronic kits we used to get as kids. Lots of components you can mix and match to make nearly anything. However, like a bare microcontroller, they usually don’t have much in the way of peripheral devices. So the secret sauce is what components you can surround the chip with.
If you are interested in retro computing, you ought to have a look at the ZX-Uno board. It hosts a Spartan 6 FPGA. They are for sale, but the design is open source and all the info is available if you prefer to roll your own or make modifications. You can see a video of the board in action, below (as explained in the video, the color issues are due to the capture card trying to deal with the non-standard sync rate).
Here are the key specifications:
- FPGA Xilinx Spartan XC6SLX9-2TQG144C
- Static Memory 512Kb, AS7C34096A-10TIN
- 50MHz Oscillator
- Video output (composite)
- PS/2 keyboard
- Stereo audio jack
- EAR jack connector (for reading cassette tapes)
- Connectors for JTAG and RGB
- Slot for SD Cards
- Expansion port with 3 male pin strips
- Micro-USB power connector
- PCB Size: 86×56 mm. (Compatible with Raspberry Pi cases)
In a recent post, we mentioned an Amstrad clone, and at least one commenter pointed out that the ZX Spectrum was more popular. However, with this board, you don’t have to choose. In the downloads section, there are bit streams (FPGA configurations) to let the board emulate several different computers, including several Commodore systems, some Atari systems, the BBC Micro, the ZX81, and more. Of course, the ZX Spectrum is at the top of the list.
If you decide to try one of these, you might need to brush up on your Spanish or keep a link to Google Translate handy. A lot of the surrounding community seems to be Spanish-speaking. But it looks like a nice board for doing any sort of computer platform you could cram into an FPGA.
If you want to learn ZX Spectrum assembly language (and who doesn’t?), we covered a good tutorial awhile back. It might take a USB to PS/2 adapter, but we’d love to see this board used with a keyboard like this one.
Thanks for the tip [Dave].
ZX Spectrum was made using the Zilog Z80 microprocessor, so I would rather call it “Z80 assembly” instead of “ZX Spectrum assembly” language.
Agreed, unless the ZX Spectrum had its own unique mnemonics or syntax.
I deliberately used that because it covers using the hardware in assembly. I used to have generic z80 books and trs80 specific ones. True the assembly doesn’t change but the peripherals are quite different.
Nice, but why composite video in this day and age?
So that they can still get the original image effects caused by TV output standards perhaps?
http://www.chrismcovell.com/gotRGB/screenshots.html
That was one of things that the good developers did was take the bad with composite video and turning it into something good.
Argh! I wish there was an edit button.
Dead simple to implement and rather low-usage for resources, I believe. Ditto for PS/2 and RS232 serial inputs.
Atari joystick, sorry, but the principle stands.
There’s actually quite a bit of PCB real-estate dedicated to the color composite output. The AD724 is a PAL/NTSC encoder. I would have chosen a different chip as the the AD724 (apart from being ancient) has color phase issues when you throw pixels at it that are not at a multiple of the color sub-carrier frequency because of it’s capacitive coupled inputs for RGB.
In any case it has VGA out so you can ignore the composite. Personally I would have gone with a second joystick port instead.
The PS/2 port has the extra pins connected to you can use a splitter for a mouse as well.
It’s good that SRAM is used instead of SDRAM or even DDR as that makes this an excellent VHDL/Verilog learning tool as well. It’s also 10ns so it’s very capable for complex graphic schemes.
The one thing that I think is missing is a simple power button so that he SD card can be powered down properly so it doesn’t get corrupted.
But in any case, a Spartan 6 will easily do most of the older retro computes easily so there will be a lot more additions to the hardware emulation base that is already quite significant.
The 512kB SRAM is about the most that older computers had to.
It’s definitely a very capable board but I am baulking at the $100 price tag. I will probably buy one at some later time anyway because I do VHDL and this is so compact and has what you want.
One could argue that a ZX computer should have display issues. I mean, the original was (in)famous for attribute clashing and the dreaded pixel crawl.
Sure, for the ZX Spectrum.
The hardware emulation list –
Bitstreams/cores (v4.1):
FLASH file 3 Mb – ZIP – 0.51/01082016
FIRMWARE file Version
ZX Spectrum 135 Kb – ZIP – T22-01082016
Sam Coupé
Jupiter Ace
Sega Master System
Oric Atmos 162 Kb – ZIP – 832
BBC Micro
Atari 800XL
VIC-20
Acorn Electron
PET
ZX-81
Spectrum: Kyp
Spectrum: TBBlue/Next(NTSC)
MSX1 (NTSC)
Colecovision (NTSC)
Atari 2600 (VGA) 96 Kb – ZIP – 816
Apple 2 (VGA)
Acorn Atom (VGA) 250 Kb – ZIP – 832
Nintendo Entertainment System (VGA)
Utility for generate ZX1/TAP files from BIT file 165 Kb – ZIP
It’s far more than just a ZX Spectrum even tough it started that way.
And it does have VGA as an optional cable, I guess there just wasn’t enough board space for it to be soldered directly.
The ZX Uno also has RGB SCART and VGA options too I believe. The RGB analogue video is output on one of the JST connectors, the other is a JTAG connector I think.
The RGB JST is the edge-mounted one, the other mid-board one is clearly labelled in the photo above.
I should have mentioned –
This board doesn’t natively convert from older standards like NTSC to VGA for example.
Some people write a port of an old game that includes the ability to also output a newer standard but this is much harder to achieve and requires a good understanding of a HDL and the available resources. By comparison it is much easier to write a port that uses whatever the original used so it was originally NTSC then porting to this board and using NTCS only is closer to a bit of copy and paste.
Having said that, the Spartan 6 should have enough resources for any of the older retro computers from the 80’s to be ported over to VGA and someone (else) will probably do that for you at some stage.
License costs perhaps?
Looks fantastic. Hope it’s a affordable price point.
And when it dies try this ;) https://www.retrohax.net/debricking-a-zx-uno-2/
Re-flashing the bit-stream with a Pi is a bit cumbersome.
I have seen a utility that will re-flash over USB/serial.
The Papillio is also a serial link so these sorts of methods would be better for a beginner.
Perhaps a bit-steam replay could work with a Xilinx programmer as they’re cheaper than a Pi if you but from China. I even see them included in some Chinese FPGA development boards/kits.
There is no way a beginner would want to load the Xilinx ISE unless they are serious about learning a HDL.
This is probably something the creators could consider for version 2
https://github.com/GadgetFactory/Papilio-Loader
It’s xilinx bitstream file to SPI flash over USB/serial – FTDI in this case.
The readme file shows the development path.
I couldn’t see a licence but from the papilio site –
“Papilio is an open-source hardware and software project”
You might even be able to do a ^c ^v of the software and board layout for the FTDI
Although is true that most posts in the ZX-Uno forums are in spanish (the group that built the device is a spanish group), english is welcome in their forums, so don’t hesitate to ask in english if you have any questions. Also, there is a ZX-Uno FAQ in english for all those willing to know the details about this splendid device:
http://www.ngpaws.com/zxunofaq_en.html
I guess you’ve all seen the spectrum next at http://www.specnext.com ?
The Uno’s the perfect tinkerers machine and I almost got one, was on the edge for some time. The specnext is promising to be an FPGA based speccy that’s bundled in a nicely Wifey Acceptable case!