I recently took delivery of my Spectrum Next - it's a crowdfunded FPGA-based consumer-friendly update of Sinclair's Spectrum. There are some rough edges, but I'm coming to appreciate its strengths. I think these points might be good to bear in mind for future FPGA-based designs, or at least be food for thought. So I hope this is on-topic.
The Next has been a long time in pre-production - nearly three years since I put my money down. It has injection moulded case and custom keys and keyboard, with some high gloss finishes and a lot of attention to design detail. Some of that has made for a capital-intensive production and a lot of fine-tuning which don't apply for an uncased product. However, it's very nice to have a portable robust cased FPGA system with lots of useful connectors around the edge and a built in keyboard. Only needs a monitor (and cable) to use.
The big win, for me, is the use of the SD card to hold all user configuration and all support files as well as bitstreams. There's an initial bitstream programmed into the first slot of the EEPROM called the antibrick core, which would not usually ever be overwritten or updated. This core serves the purpose of the ARM chips in the blackice series, more or less. I think it's Z80-based and so could have been programmed in C, or Basic, and the user interface is by keyboard and screen. (Screen is VGA, HDMI, or RGB. There's a carousel of screen modes at first boot, to help with monitor compatibility. The user choice is saved on the SD card.) Normally this core just hands over to the main core, which is in the second slot of the EEPROM. It might do a cheap memory test too. But if appropriate keys are held down at boot, it can prompt to update the main core from SD card, or to update the secondary.
There's no jtag, no dongles, and no microcontroller. Just a FAT-formatted SD card.
The main core on the Next is again Z80 based, which has a parade of after-market extensions on top of two or three flavours of Spectrum model. The details of that are all for retrocomputing enthusiasts, but I like that the user interface for choosing options and adjusting configurations is (or could be) all programmed in Basic. For example, there's a file browser, configured for a few dozen filetypes with a text file which assigns complex command strings to each filetype.
The SD Card is just FAT-formatted, with a relatively clear directory hierarchy. In some cases files need to be placed in the root: for example the present updater reads a bitstream file from C:/core001.bit - I can imagine this might evolve into something more flexible and user-friendly.
Some beta-level secondary cores are available to act as machines which are not Spectrum family: Amstrad CPC, Acorn Atom, a variety of arcade machines. A Spectrum QL and an Acorn Master are being developed by others, and not yet released. In all cases, I think, these cores are VGA-only and use a PS/2 keyboard - not using the integral keyboard or providing HDMI out.
I think the provision of good old-fashioned SRAM on the board will have helped the development of all these cores - two chips, or four, each eight bits wide and on a 16 bit data bus.
The machine also has room inside for some optional extras:
- a real time clock
- an ESP8266 for wifi connectivity
- a Raspberry Pi, for many possible uses, presently connected by SPI and UART, I think.
I'm thinking of it as an FPGA dev board that's general purpose but especially handy for retrocomputing.
I could list some of the downsides too, but will that aspect for now.
There's a forum
and at least a couple of third party reviews: