DracBlade emulated on DE-115
steddyman
Posts: 91
I've started my first project which is to experiment with recreating the DracBlade on the DE-115 (as mentioned on the Retro Machine thread). It is mapping the hardware that would normally be on the DracBlade onto the native hardware on the DE-115 (e.g. the VGA is output from the ADV7123 but driven directly by the standard SPIN video code).
I haven't yet figured out how best to emulate the EEPROM that the prop usually boots from, but I've just tried compiling both the Spectrum Emulator and also the DracBlade rom and to my surprise both booted when transferred using the prop plug.
The DracBlade rom displays the welcome message, then shows Er1. I'm not sure if it is looking for something on the SD card here.
The Spectrum Emulator fully boots and lets you select which ROM to load from SD complete with screenshots. However, when you select one the screen looks like it corrupts.
Pictures included below of the Spectrum Emulator. I'll not release the source for this unless Drac supports me doing so.
I haven't yet figured out how best to emulate the EEPROM that the prop usually boots from, but I've just tried compiling both the Spectrum Emulator and also the DracBlade rom and to my surprise both booted when transferred using the prop plug.
The DracBlade rom displays the welcome message, then shows Er1. I'm not sure if it is looking for something on the SD card here.
The Spectrum Emulator fully boots and lets you select which ROM to load from SD complete with screenshots. However, when you select one the screen looks like it corrupts.
Pictures included below of the Spectrum Emulator. I'll not release the source for this unless Drac supports me doing so.
Comments
Spectrum emulator still showing issues with the video memory. Could be a bug in the Emulator so will try a different version of the source.
Are you releasing your FPGA image? if so I could help you figure out what the issue is with the Spectrum emulator.
I am out at the moment and when I return home I will post it. If Drac then let's me know he doesn't support it, I will then remove it.
Attached is the zipped Quartus II (Web) Project file. It is a vanilla Prop1V implementation to which I have wrapped a schematic around (TestSchem.bdf).
It uses the onboard SRAM, SD Card Reader, PS/2 Keyboard port and VGA DAC. The VGA DAC is wired with each VGA bit on the prop linking to 4 VGA DAC bits. There is a PLL in the schematic driving driving the Prop and the VGA DAC. Currently in this version the VGA clock (PLL c1) is configured for 50Mhz to match the requirements of the DracBlade CPM emulation. It would need changing to 15Mhz in the schematic to run the Spectrum Emulator and recompiling. The green LED's are controlled by the Prop1v and represent the 8 cogs. The red led is the diag led on the DracBlade and the next two are the serial transmit and receives indicators which are connected to the prop plug pins on the expansion header.
There are no modifications required to Prop code to run on this implementation of the DracBlade, because the hardware is being simulated as is. Currently there is no EEPROM emulation included, so once you have programmed it into the board you will need to connect your Prop plug to the normal expansion connector pins, then compile and send your DracBlade compatible app to the internal RAM.
Edit: I should add that so far this is the only CPM boot implementation that works for me, the rest throw up errors which may be down to the different hardware revisions of the DracBlade:
http://www.smarthome.jigsy.com/files/others/PropArchive-Nov-30-2009.zip
And yes you can copy anything I have done. Most of what I did was just building on the work of others, and it is all open source.
If I was doing it all again... well the big limiting thing with the physical propeller chip and ram is there are not enough pins, so either you can add in a port B and have lots of pins to do a ram chip and all the other peripherals, or I think there might even be enough ram to do things internally. Which would be even faster, better etc.
My dream fpga emulation is one Z80 core and some propeller cores, all running in parallel.
I will progress and see where it leads
My dreams are somewhere near 6502... there are some of them, too: http://forum.6502.org/viewtopic.php?t=1673
And for pure Propeller design, there is another thing we can think about puting it in DE2-115 called HIVE http://hive-project.de/
One question for Baggers. What versions of the DracBlade does the emulator work on? I built mine from the v5 schematic from the main DracBlade thread but just noticed another thread referencing a v7 version of the board. v7 seems to have a sound output, which v5 doesn't seem to have (from what I can see).
The DE-115 DracBlade seems to run everything I throw at it, except for ZiCog. I've tried multiple different implementations of ZiCog in cgenie, speccy and CPM and none of them work.
I have compiled test programs to test all the individual elements, like the memory (latches), the video, the SD card support, etc and everything works. However, as soon as Zicog starts it always crashes.
I suspect the issue is the prop1 verilog implementation has a bug which prevents it from running ZiCog. Has anyone got ZiCog running at all on the P1V?
ARGH: Upload of the ZIP does not work any longer. Have the forums been broken by the last upgrade. I click Upload and it tries then reports upload failed. It is 2.5MB like last time. Tried it from Safari and Chrome and also from Mac and Windows. You can download it from here:
https://dl.dropboxusercontent.com/u/7799729/P8X32A_Dracblade_Stripped2.zip