Retro ZX Spectrum Lives A Spartan Existence

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].

23 thoughts on “Retro ZX Spectrum Lives A Spartan Existence

    1. 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.

      1. 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.

          1. 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.

    1. 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.

    1. 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.

  1. 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

  2. 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

  3. 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!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.