FPGA-Prop - connecting the Propeller to an FPGA
Leon
Posts: 7,620
On my Getting started with FPGAs thread Heater thought that interfacing a Propeller to an FPGA might make an interesting project. I'd been thinking of doing something like that, as well, and came up with this board which will plug onto one of the headers on the low-cost Cyclone II board I've been experimenting with:
http://www.leonheller.com/FPGA-Prop/FPGA-Prop_sch.pdf
P0-P15 are connected to the FPGA, and P16-P31 are brought out to pads so that they may be connected to parts or connectors on the prototyping area.
I've made a start on the PCB layout:
http://www.leonheller.com/FPGA-Prop/FPGA-Prop_sch.pdf
P0-P15 are connected to the FPGA, and P16-P31 are brought out to pads so that they may be connected to parts or connectors on the prototyping area.
I've made a start on the PCB layout:
Comments
Looks interesting. I did not see your Getting Started thread (http://forums.parallax.com/showthread.php?132578-Getting-started-with-FPGAs&highlight=started+FPGAs) before this, but it looks interesting (only had a chance to skim the first part so far).
With this new board, what are you thinking about here? Will you be adding all sorts of I/O to the Prop? Will you be creating a new CPU with your Prop handling the I/O for that system? Will you be having the Prop program the FPGA? - Come on, Leon, enquiring minds want to know! Seriously, this looks pretty good; I will be going through your tutorial as soon as I get a chance.
I once used a DSP to configure an FPGA on the same board to save cost, but the necessary signals aren't brought out to a connector on that FPGA board.
I am doing something like this for my Retro Challenge project (http://retrochallenge.granzeier.com), except with a traditional CPU rather than a soft CPU. Just think what kind of advances could be in the MC6800-II, or III, if you were to put it into an FPGA, and then let the Prop handle the SD card, the VGA, the sound, and the other I/O that you want for the system. Hmmm... an quad-core SWTPC-6800 with 4 Gigabytes of directly accessible RAM, running at 50MHz, xVGA, stereo out and 16-Gigabytes of SD Card storage! And it only takes a couple of microseconds to get into MikBug and then, less than a second to launch FlexOS. Now that would be cool.
Any of the old 8-bit CPUs should be OK. I just tried the MIPS processor from Chapter 14 of the Hamblen et al book in the EP2C5T144C8 with the following results:
Total combinational functions 2,095 / 4,608 ( 45 % ) Flow Status Successful - Thu Jul 07 23:01:28 2011
Dedicated logic registers 1,124 / 4,608 ( 24 % ) Quartus II Version 11.0 Build 157 04/27/2011 SJ Web Edition
Revision Name Video_MIPS
Top-level Entity Name Video_MIPS
Family Cyclone II
Device EP2C5T144C8
Timing Models Final
Total logic elements 2,739 / 4,608 ( 59 % )
Total registers 1124
Total pins 26 / 89 ( 29 % )
Total virtual pins 0
Total memory bits 20,840 / 119,808 ( 17 % )
Embedded Multiplier 9-bit elements 0 / 26 ( 0 % )
Total PLLs 1 / 2 ( 50 % )
That MIPS processor is much bigger than any 8-bit CPU, and includes video output. I've had John Kent's version of a 6809 running in a Xilinx Spartan-3 FPGA, with VGA output and keyboard input.
There are a number of other fpga boards available quite cheaply from various sources. Most should interface quite simply with a prop board with spare I/O.
I wonder what would the FPGA do in that combination? A southbridge chip? I believe some people had made up a retro computer based on a Z80/6800/6502 with the memory decoders and stuff all lumped into the FPGA.
I just have to work out a way to get them past the sentinel.
Leon,
With the exception of the Total Logic Elements, it seems that you could fit a dual-core version of that MIPS processor in the EP2C5T144C8. Perhaps with some optimization you could fit it.
I don't know a lot about FPGAs and putting CPUs into them (yet), but it seems, from what little I do know about the MIPS and the 6800, that I could actually get my dual-core 6800-II into one. (Yeah I know, I must have 6800 on the brain ). The Prop would actually do well in this type environment working as an I/O processor.
This is really going on my list for, probably, this fall - after UPENE, I should have a bit of down-time for a little while.
All of the prop powered video drivers run into the problem of lack of memory, and even if you put the entire program into XMM (eg with C), there is still only 32k of video ram. To do a proper display requires hundreds of kilobytes.
How much internal ram do these FPGA chips have? Or could you use a FPGA and a fast external ram chip?
I wonder what the best memory chip would be for this - in terms of speed/cost?
And as a support chip for the FPGA, I would prefeer a soft microcontroller, cheap, and not so powerfull as the propeller is, still less, if we think to share a propeller 2.
Just a "begginer opinion".
(Two boards are still unpopulated )
I'd probably also use an Altera device in my next project
Add a couple of footprints for SRAM and SDRAM , besides prototyping area.