Shop OBEX P1 Docs P2 Docs Learn Events
FPGA-Prop - connecting the Propeller to an FPGA — Parallax Forums

FPGA-Prop - connecting the Propeller to an FPGA

LeonLeon Posts: 7,620
edited 2011-07-09 09:24 in Propeller 1
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:
990 x 617 - 44K

Comments

  • GranzGranz Posts: 179
    edited 2011-07-07 13:19
    Leon,

    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.
  • LeonLeon Posts: 7,620
    edited 2011-07-07 13:54
    I'm not sure what it will get used for. That cheap FPGA board hasn't got the PLLs enabled so it will only run at 50 MHz as it stands. It would be more useful if it had some SDRAM. Lots of additional I/O is an obvious use for it, or a CPU with the Propeller for I/O, as you suggest.

    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.
  • GranzGranz Posts: 179
    edited 2011-07-07 14:28
    The FPGA that you are using, would it run one of the available CPUs that you can download? I am thinking about the Z-80, or maybe one of the other retro CPUs. The Prop would make a cool peripheral controller.

    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. ;)
  • WBA ConsultingWBA Consulting Posts: 2,935
    edited 2011-07-07 15:06
    I don't know enough about FPGAs to understand why you would want to pair one with a prop, but maybe because I have only dealt with the higher end versions like this 1,152 ball BGA Xilinx Virtex-II Pro that we will be using next week for a small run. (at $2k a piece, it's easy to see why it is a small run) Using that chip, you could add 692 I/Os to a propeller project........
  • LeonLeon Posts: 7,620
    edited 2011-07-07 15:10
    Art,

    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.
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-07-07 15:18
    The Xilinx Spartan 3 from Avnet is quite a cheap fpga board. It has two 6pin (4 I/O) Digilent style headers which would interface to the prop easily.

    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.
  • LeonLeon Posts: 7,620
    edited 2011-07-07 15:29
    There are lots of low-cost boards around that could be used. Those Chinese ones on eBay are good value for money, although some of the others have nice features like RAM, and the programming interface.
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2011-07-07 20:32
    Again, thanks for sharing the combination. It is the best of both worlds!

    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. :)
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-07-08 01:35
    I have always pulled back from using the bigger FPGAs due to pin soldering difficulties and cost, but those Chinese boards are just the answer to those problems.

    I just have to work out a way to get them past the sentinel.
  • GranzGranz Posts: 179
    edited 2011-07-08 15:00
    Leon wrote: »
    Art,

    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.

    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 :tongue:). 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.
  • LeonLeon Posts: 7,620
    edited 2011-07-08 15:07
    The 6800 was the first micro-processor I used, I bought one of the Motorola D2 kits 35 years ago. Two of them should fit in the Cyclone II on that board without any problems.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-08 16:18
    I wonder if the FPGA could be used as a video driver for the propeller?

    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?
  • LeonLeon Posts: 7,620
    edited 2011-07-08 16:34
    An FPGA with external RAM is often used for graphics. SDRAM controllers are available, or SRAM could be used for a simpler system.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-08 17:19
    That sounds fun. The propeller could do the fancy image processing, and the FPGA could do the repetitive scanline generation. Exchange data on the front or back porch.

    I wonder what the best memory chip would be for this - in terms of speed/cost?
  • BTXBTX Posts: 674
    edited 2011-07-08 20:06
    Modestly, I think that a propeller is too much micro to add it to a FPGA, I did it last year, but mixing a CPLD as video controller, and I get some good results, but, using in example a Cyclone II, I found that is more convenient (at least for me) to use a processor core inside the FPGA and do all the job only with "her".
    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".
  • LeonLeon Posts: 7,620
    edited 2011-07-09 00:02
    I had the same thought. A dedicated graphics soft core could be used.
  • AleAle Posts: 2,363
    edited 2011-07-09 05:18
    I didn't get that much traffic and I did a propeller+FPGA+SDRAM board... http://forums.parallax.com/showthread.php?119689-A-new-dimension-in-Propeller-marriages-pPropFPGA&highlight=pPropFPGA
    (Two boards are still unpopulated :) )
    I'd probably also use an Altera device in my next project :)
  • LeonLeon Posts: 7,620
    edited 2011-07-09 05:25
    I'd forgotten about that!
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-07-09 06:36
    I am interested in this, but as I only had a couple of XC95xx to play with it was all a bit over my head. Now I have been restricted on the size of my little work place then thinking will have to replace the making, So one of those boards would make a good experiment base, along with one of those USB programmers.
  • LeonLeon Posts: 7,620
    edited 2011-07-09 08:29
    It should work quite well with a solderless prototyping board. I think that suitable push on single jumper cables are made. It's easy to make them with suitable terminals and a crimp tool, anyway.
  • AleAle Posts: 2,363
    edited 2011-07-09 09:03
    Leon: (Do you want one of my boards ?)
    Add a couple of footprints for SRAM and SDRAM :), besides prototyping area.
  • LeonLeon Posts: 7,620
    edited 2011-07-09 09:24
    Thanks very much! I never "look a gift horse in the mouth", as we say here. I think I've got some of those Spartan-3 chips somewhere that I can put on it. I'll send you a PM.
Sign In or Register to comment.