MiST (uses Cyclone III) board with P1V?
porcupine
Posts: 80
I just ordered one of these: http://harbaum.org/till/mist/index.shtml ; it's an Atari ST (and other classic systems) implementation via FPGA on Cyclone 3 (EP3C25E144).
I'm curious what is the likelihood of getting the P1V to run on this board? If possible how many cogs, etc. could I run?
I'm curious what is the likelihood of getting the P1V to run on this board? If possible how many cogs, etc. could I run?
Comments
So sounds like the P1V will fit?
I'm not an FPGA expert, but I have a pretty good idea what's in an Amiga 500 or 2000 and I think a Propeller is probably not nearly as complex as that, so it should be possible to get it in there. The only thing is: the latest Quartus doesn't support the Cyclone 3 anymore. The good news, however, is that the Propeller code was developed with (much) older versions of Quartus and we know that the current code compiles fine in older Quartus versions, so it may still be possible to use a Quartus that supports the Cyclone III and add this board, and still support the existing targets.
I recommend the following to try it out:
- Make sure you have the hardware to flash the FPGA firmware to this board. It looks like you may need a USB JTAG blaster or something. Read the documentation on the MiST website and Suska's website. If you can update the MiST firmware, you will also be able to install the Propeller firmware once you build it. If you can't, well... there's not much sense in trying...
- Download and install Quartus Web Edition version 13.1 (not 14.0, it doesn't support Cyclone III), make sure you get the support files for Cyclone III, IV and V
- Download a ZIP file of my Altera branch in Github and unzip it. Or (even better) clone the branch using your own Github account of course.
- Download the latest .qsf file from Suska's website; this is where the source code is for the MiST board. Looks like you need to browse the FTP window to /Suska-III/2K14A/Configware/backend/Altera/Suska-III-B-Core-STE but you may need to read the information on that website to make sure you have the correct version for your board and your FPGA. You will only need the file WP_SUSKA.qsf (or some other file with the .qsf extension): it contains the Quartus settings needed for the MiST board.
- In Quartus, open the Altera/P8X32A.qpf project file
- Use the Project -> Revisions menu in Quartus to create a new revision called "MiST" for the MiST board, based on the DE2-115 revision. I don't know the exact steps and I can't do this on my current computer, sorry. But it should be self-explanatory. Don't worry too much about the settings if it asks; we're going to wipe them anyway.
- Close Quartus. it should have created a new file MiST.qsf. Delete that file and and rename WP_SUSKA.qsf to MiST.qsf.
- Modify the MiST.qsf file so that the "nres" signal (reset) and the 32 "io" pins (the Propeller I/O pins) are attached in a way that makes sense for this board. You can use an editor or you can do this in Quartus; I think it's the Assignments -> Device menu option if I'm not mistaken.
- Build the project by clicking the "play" icon in Quartus while the MiST revision is active (look in the Revisions tab in the Project Navigator window and make sure it's highlighted; if not, double-click it).
- You may have to convert the output file (.sof) to something else (.pof or .jic) using the File -> Convert Programming Files menu option in Quartus. More information about this should be available on the MiST website or on Suska's website.
It's very likely that you'll get errors, and it may be necessary to implement workarounds. For example if there's not enough memory space in the FPGA, you may need to disable the character ROM by overriding the parameter DISABLE_CHARACTER_ROM and setting it to 1 (in the Assignments -> Settings -> Analysis & Synthesis -> somethingsomething menu). The DE0-Nano uses the same parameter, so you can switch to that revision and see how it's done (I'm going to add some documentation on how to do this, later this week). In the very near future (also some time this week) I'll add a similar parameter to make it possible to override the number of cogs to a number other than 8, but for now, you may have to change the source code (the for-loop in dig.v) to make it work. If you can't figure it out, we're here to help.If you can get it to work (or almost work), I'm willing to consider changing the "official" version of Quartus for this project to 13.1 instead of 14.0 (I think Chip is happier with 13.1 as well) so we can support this board and other Cyclone III boards. I think it would be awesome to add this and other easy-to-get FPGA boards to our list of supported hardware!
Thanks in advance for your effort!
===Jac
The Cyclone V on the BeMicroCV has fewer than (the equivalent of) 10,000 LE's and it fits there, but it has lots of RAM as well. If the EP3C25 has enough RAM, or if Quartus can figure out how to use some of those LE's as RAM or ROM, or if you can change the code so that it uses the external RAM as hub RAM, it's likely that it will fit with room to spare.
But as I said, I'm not an FPGA expert yet (I know just enough to be dangerous :-)
===Jac