Quite a bit of work has been going on behind the scenes on the FPGA based accelerator card, so it’s time for an update. TG68 is now running stable in 68020 mode at a clock frequency of 6x the motherboard clock (about 42 MHz), and an instruction cache has been implemented that can feed the core with 0 tick latency in the event of a cache hit. This has added up to some pretty impressive performance, with AIBB’s integer maths test running at more than double the speed of a 25 MHz 68040 A4000.
Being reasonably content with performance, and expecting a further increase on the final hardware anyway due to the use of a faster FPGA, we moved on to one of the other key features that this board will have at launch – support for booting from the on-board micro SD.
The Amiga is still a popular platform with enthusiasts, with the vibrant add-on scene still seeing new accelerator cards being developed. Most of these are based on the long obsolete faster derivatives of the 68000, such as the 68030 and 68060. These are getting increasingly hard to find for a reasonable price.
For the last few weeks I’ve been tinkering with hooking an FPGA up to an A500+ in place of its 68000 CPU with a view to using the open-source TG68 core as a fast 68020. This core is already proven in projects such as Minimig and MISTer, so it seemed like a logical choice. Rather than going straight to a custom PCB I made the decision to use an existing FPGA development board that I had on hand, along with a simple level shifting interface put together on stripboard. This has proved to work perfectly well for testing, although the grounding did need to be beefed up with copper tape to get things working reliably. A proper PCB with an FPGA integrated will be designed in due course.
It’s been a while since I last did any retro-computing stuff, but when someone contacted me recently asking for permission to use some of my VHDL in an open-source accelerator project for the Amiga 1200 my attention was grabbed.
The A1200 was the second Amiga I owned back in the 90s. This is a Motorola 68EC020 based machine running at 14.2 MHz – twice the clock speed of the older Amigas. As luck would have it I still had the A1200 in storage, and after replacing some capacitors and cleaning things up a bit it was back in full working order, so I agreed to help out…
Spectrum +2A boot menu
I’ve been promising for years to put the source for my FPGA retro-computing bits up on GitHub. Well I’ve finally gone and done it.
These are essentially just the 2011 releases that are already available for download from here, but with the full development history intact. I know that others have been doing some excellent work based on both of these projects, both in terms of adding new features and porting to other boards. If anyone feels like forking and patching in their changes I will gladly accept pull requests in order to keep things together.
You can clone the BBC Micro from here, and the Spectrum from here, and if you missed the accompanying write-ups and videos you can find them up the top under Retro FPGA.
Laurent Mitnik has ported my FPGA Sinclair Spectrum to the Terasic DE2-70 board, and has very kindly allowed me to publish his changes. The port is based on the 200110901 release from the Downloads page.
I don’t have a DE2-70 on which to test this, but Laurent provided the screenshot to the right showing his board running Monty On The Run.
You can download the port from here for now, with the longer term plan being to move the source for both onto Github (when I have some time to convert the existing SVN repo).
So as promised I spent a bit of the bank holiday weekend hacking on the FPGA Spectrum to fix a few bugs. In the end I got carried away and finished up with a full implementation of the 128K Spectrum +2A running ResiDOS and loading emulator images from an SD card. It’s still not cycle accurate, but it is feature complete apart from the disk controller, which isn’t really needed thanks to the ZXMMC+ compatibility that went in as well.
Emulating bus contention and improving the cycle accuracy of the T80 core is definitely on the cards, but for now the ability to finally load emulator images from SD makes the machine extremely usable. An explanation of how to get this up and running is a job for another post (hint: format the card as IDEDOS and bootstrap ResiDOS into the extra RAM), but for the time being here is a detailed write-up and the full VHDL source.
And let’s not forgot the obligatory eye candy…
As promised, some more detailed design notes for my BBC B design are now available.
Planning to revisit the Spectrum design next for some bug fixes, as it is clear there is still quite a bit of interest in that.
I added a video of the FPGA BBC in action, shot straight off the TV.
You can see the MMBEEB ROM extensions providing access to multiple disk images on the SD card, then some messing about on Chuckie Egg and Boffin.
BBC Micro boot screen running on FPGA
It’s been a while since the Spectrum project and, although there is still work left to do on that, I eventually gave in and did another great British computer from my childhood – the BBC B. Getting this machine up and running has been an interesting job given its complexity. For something that first came out in 1981 it really is a sophisticated computer, and one that I’m sure anyone who grew up in the UK in the 80’s and early 90’s will remember.
I’ve written this one up on its own page so that it doesn’t disappear, and the Speccy will get the same treatment in the next few weeks. A bitstream image is provided for you to run on your own DE1 board, if you have one, and the full VHDL source code is available too.
A detailed description of the design is also in the works, and should be ready in a day or two.
Sorry it took so long, but I’ve finally cleaned up the source code ready for publishing, and here it is. This contains a Quartus project file, so it should load and compile straight away. I used Quartus 9.1 Web Edition, available from the Altera website. There is also a pre-compiled .sof image which should work straight away if you have a DE1.
A full write-up will follow, but here is a quick summary: