11

This is my first look into FPGA, but heavy background in software development. Would like to purchase a board to learn with, but would eventually like to be able to run an early 80's style Z80 based computer (think TRS80 model I say).

I've been looking at Spartan 3E and Spartan 6 boards, but not really sure on the performance/capacity differences.

What I'm thinking is something like this:

  • Enough room for:
    • simulated Z80 using the opencores T80 softcore.
    • simulated onboard peripherals such as video controller, sound controller (simple 1 bit), floppy controller
    • perhaps a couple of picoblaze controllers to use onboard buttons for selection of floppy images etc...
  • VGA connector (16 color would suffice, 256 bonus)
  • PS2 Keyboard connector
  • Enough onboard flash to hold a number of virtual floppy disk images and system ROM (16Mb should be plenty)
  • On board display, LCD would be nice, 4x7 segment LED would probably suffice.
  • some sort of flash card socket would be nice, but not required.
  • Power connect to run off mains, probably through a power pack.

These are the boards I'm currently considering:

  • Nexys™3 Spartan-6 FPGA Board
  • Spartan 3E Starter Board
  • Spartan 3E-1600 Development Board
  • Basys™2 Spartan-3E FPGA Board (500K) + 16M Flash pMod
  • Basys™2 Spartan-3E FPGA Board (1200K) + 16M Flash pMod

EDIT: Just noticed the Basys doesn't have onboard RAM so I'd be limited to the FPGA RAM - not ideal.

The main thing I'm not sure on is how much room will be left after loading up the T80 softcore. Any advice greatly appreciated.

Trygve Laugstøl
  • 1,410
  • 2
  • 19
  • 28
Brad
  • 111
  • 4
  • 6
    I suggest learning either Verilog or VHDL first. Mess with it on a simulator. Make sure you're cut out for FPGA work. The strange thing with FPGAs is that you will spend most of your development time(as a beginner) working in simulators and running test benches. – Earlz Oct 19 '11 at 16:54

4 Answers4

6

While ambitious goals are nice, my advice is to start smaller. Much smaller. The project you are proposing would be difficult for an intermediate FPGA designer, and almost impossible for a beginner. I'm a big proponent of FPGA's and would like to see you have success-- starting out with such an ambitious project will likely result in much frustration and probably abandoning FPGA design altogether.

Let me put it in software terms: This project would be like someone who has never done software writing a complete C compiler-- from scratch.

Start smaller and you'll be much happier.

Edit: Added stuff below.

That all being said, it is difficult to give a good recommendation for a board. The reason for this is that any board I'd recommend for someone with no FPGA experience is absolutely not the same board I'd recommend for doing a CPU type project. A beginners board might cost US$50-100, while a board for doing CPU+VGA+Flash_Card+Whatever might be US$1000-2000.

There is also a huge chance that once you do a couple of simple FPGA designs then you'll change you mind and want to do a different project later on.

My recommendation then is for you to get a simple board in the under US$100 price range first. Then when you are ready to tackle a larger project you can buy a more expensive board that is close to what you want (whatever that is at the time).

The board I like is this one: http://www.xilinx.com/products/boards-and-kits/AES-S6MB-LX9.htm

It's inexpensive, uses a current-generation part, is from a Tier-1 manufacture, and can even do some simple CPU stuff.

  • Thanks David, I certainly realize that what I've suggested is ambitious but I was also thinking about the fact that there are already a number of already designed older machines like this that would be fun to just download and play with - which is why I wanted something capable from the start. Brad – Brad Oct 19 '11 at 01:27
  • 1
    @Brad - If you have a machine you want to download and play with, use the board it was designed for. It would be a prodigious effort just to port the project from one board to another. – Kevin Vermeer Oct 19 '11 at 17:03
  • @David Kessner - while this is decent project advice, for choosing a platform to work on it makes sense to pick something that will support efforts over several months, not just the first experiment. That's what the poster asked, and not really something your answer touched upon in the slightest. – Chris Stratton Oct 20 '11 at 13:24
  • @Chris Stratton Thanks for the criticism. I've added to my answer. –  Oct 20 '11 at 14:40
  • Not sure why you think a board for a CPU + VGA + flash card would be $1000. Seven years ago I had an IDE hard disk drive connected to a $100 spartan 3 kit playing video. It was somewhat ram constrained, and that board is now $150, but as your link points out, you can now get a board with many megabytes of memory for under $100. That should be ample for emulating systems from the 8-bit era. I would expect an SDcard operated in spi mode would compare favorably in speed at least to the floppy interfaces of that era. Do watch out for very low I/O voltages on the more recent FPGAs though. – Chris Stratton Oct 20 '11 at 15:16
2

Hmmm, unfortunately it is vhdl, I was going to say start with verilator or icarus verilog. Instead perhaps use ghdl. The first suggestion is get a simulation environment going, start building this thing there.

Before choosing an fpga board you need to get a feel for how big this will be, the various tools are free, or free with the sacrifice of your email address and some other info. Try lattice, altera, xilinx, etc tools, start strictly with the T80 core and some of these target fpgas you are looking at. I am guessing all the stuff you want to add is going to greatly increase whatever percent full number you come up with when you implement the T80 core. I bet, core alone, you are going to be able to eliminate some of the candidates.

Maybe the fpgaarcade board, which in some form has used the T80 core, is what you are looking for...When it is available.

I have to agree completely with the other David, if you are not already a professional fpga/board developer this is not where you start, you are looking at perhaps years of work, likely going to buy several multi-thousand-dollar boards as you destroy them with mistakes, etc. If you have that kind of money at your disposal perhaps you should hire a consultant to walk you through the process. Or have a board built to spec.

More power to you if this is really something you want to do, just be smart about it, start with the core, and some simple programs that blink some leds and work your way up from there, slowly. I highly recommend the simulation route. Other than instant gratification, dont bother with silicon until you are farther down the road. By then you will have more of the design and can use the tools to see what it might fit into. If you cant get this thing running in simulation you are probably not going to get it running in silicon.

old_timer
  • 8,203
  • 24
  • 33
  • 1
    Thanks guys, I've taken your advice and decided to go from over ambitious to totally tentative. Picked up a tiny PIC programmer/dev board kit and a soldering iron... – Brad Oct 19 '11 at 11:40
  • Until the end of the year lattice has a cpld board, pico something (machx02) that supports their mico8 core selling for $29. They claimed they were going to fix it but their store has the wrong, non-sale price, but one/some of the resellers have it at the right price. For about $50 you can their brevia board which is an fpga with more logic blocks and more embedded processor examples. Also there is a gameduino ardino shield that has a xilinx and vga, all open source, that you can play with generating video working toward a goal of simulating a legacy video card/system. – old_timer Oct 19 '11 at 13:53
  • dwelch, do you have a direct link for that board? It has peaked my interest... – drxzcl Nov 02 '11 at 14:23
  • @DrX http://www.latticesemi.com/products/developmenthardware/developmentkits/machxo2picokit.cfm I bought mine from http://www.nuhorizons.com/development/devtool.asp?board=257 and there may be other sites like mouser and digikey – old_timer Nov 02 '11 at 14:39
  • Just be careful about shipping; they wanted $80 to ship to Canada... "FedEx International Priority is our only option" -- bleh. – akohlsmith Aug 23 '12 at 03:25
1

If you want to simulate computers with video out, then try to get something with a fair amount of ram as you will need it for both system and video memory. Obviously a built-in connector for VGA is nice, though if you want to do a timing-faithful simulation of some early systems you may need to generate composite video by grafting on a DAC or even an R2R resistor DAC.

Then perhaps pick the largest gate count chip option available on the board that is supported by the free version of the FPGA tools. The larger chips implicitly have more block ram (I've seen many designs driven by that rather than gate count) however you may be into the application territory where external ram and a smaller FPGA is cheaper than an FPGA large enough to do it all onchip.

Flash storage can always be grafted in later - for example a multi-gigabyte SD card interfaced in SPI mode.

Generally FPGA boards come in the $100-200 class, and then the really expensive class. You can probably make quite a bit of progress with one of the former.

Chris Stratton
  • 33,282
  • 3
  • 43
  • 89
0

I was the original poster of this question but I mustn't have been logged in, or hadn't created an account yet...

Anyway, in the end I put the project aside for 4 or 5 months, but then went with the Nexys3 board and now have a Microbee computer up and running. You can read about it here: http://www.toptensoftware.com/fpgabee.

All in all I've been very happy with the Nexys3, it handles the T80 core with room to spare, it wasn't too expensive ($250) and has everything I need (and more).

The main disappointment is I've not been able to get the USB-HID keyboard interface to work and although I'm still in discussion with Digilent about it, I suspect that it only works with some keyboards and I've not been able to find one that's compatible (I've tried about 8 different keyboards now). There are no reference designs for it, the peripheral tests don't test the keyboard and I've read of others having the same trouble.

Brad Robinson
  • 1,185
  • 1
  • 9
  • 22