Author Topic: Beginner FPGA dev board  (Read 34479 times)

0 Members and 1 Guest are viewing this topic.

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Beginner FPGA dev board
« on: November 26, 2015, 12:22:05 pm »
Yes, I know, yet another thread on this topic...

I am researching the feasibility of a retro computer build project. I want to build a Z80 computer but with some modern twists.
As I was researching the video output logic options it occurred to me that an FPGA would be a sensible choice here (is it?) and I would love to have an excuse to learn something more about FPGA's and the language(s).

So that brought me to the question of what FPGA (dev board) to use.
I am looking for the following aspects:

1) cheap (below 100,= if possible)
2) small - I have no need for a couple of hundred IO pins.
3) supported by free tools
4) Easy programming (USB?)
5) No BGA - I have to be able to solder it and have no oven

Perhaps there are more criteria I have not thought of yet.

I want to program the VGA video generation in this FPGA. I might make it really fancy with sprite's hardware collision detection (C64) and what not, but I will start with dumping the video memory out the VGA port at regular intervals, which hopefully results in a coherent picture. Resolution and color depth is not decided yet and will be determined if I can interface the Z80 with large amounts of (video) memory...

PS:
I have seen the #636 video Dave made but I am wondering if there are any recent developments that may be options for me.
« Last Edit: November 26, 2015, 01:23:14 pm by obiwanjacobi »
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Online blueskull

  • Supporter
  • ****
  • Posts: 13186
  • Country: cn
  • Power Electronics Guy
Re: Beginner FPGA dev board
« Reply #1 on: November 26, 2015, 01:05:34 pm »
DE0 Nano SoC

Gives you a very powerful FPGA, fanned out with 2.54mm dual row connectors, with a dual core ARM HPS integrated, with free Quartus II Free version support.

On board JTAG, ADC, accelerometer, LED and switches, in a very small board.

Officially supported (TerASIC is a listed and officially supported Altera partner).

Downside:

Not easy to learn, very big system.

Needs external power supply (the old DE0 Nano without SoC can be powered from USB).
 

Online PA0PBZ

  • Super Contributor
  • ***
  • Posts: 4260
  • Country: nl
Re: Beginner FPGA dev board
« Reply #2 on: November 26, 2015, 01:42:30 pm »
Keyboard error: Press F1 to continue.
 

Offline Lunasix

  • Regular Contributor
  • *
  • Posts: 131
  • Country: fr
Re: Beginner FPGA dev board
« Reply #3 on: November 26, 2015, 01:42:57 pm »
Digilent Cmod S6 ? After, Spartan 6 is available in tqfp for smaller parts.
Microsemi A3Pxxx is also at a low price and with usable footprints, but Xilinx gives you more (dsp blocks).
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10873
  • Country: gb
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #4 on: November 26, 2015, 01:46:21 pm »
Or http://www.micro-nova.com/mercury/

Smaller & cheaper.

And only one ground pin on a 64-way IO connector :( Good luck getting signal integrity with that!
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online blueskull

  • Supporter
  • ****
  • Posts: 13186
  • Country: cn
  • Power Electronics Guy
Re: Beginner FPGA dev board
« Reply #5 on: November 26, 2015, 02:08:35 pm »
And only one ground pin on a 64-way IO connector :( Good luck getting signal integrity with that!

Horribly design failure.

But this can be solved by using driven low IO pins to emulate GND, and it is actually a technique usually used to solve SSO problem.

Of course, a wrong register writing (say, driving a grounded IO low) can dry the chip.

Anyway, fail.
 

Offline daybyter

  • Frequent Contributor
  • **
  • Posts: 396
  • Country: de
Re: Beginner FPGA dev board
« Reply #6 on: November 26, 2015, 02:28:31 pm »
There is a zx81 Version for those cyclone 2 min dev boards. About 16,- at ebay.com.
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10873
  • Country: gb
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #7 on: November 26, 2015, 02:58:08 pm »
And only one ground pin on a 64-way IO connector :( Good luck getting signal integrity with that!

Horribly design failure.

But this can be solved by using driven low IO pins to emulate GND, and it is actually a technique usually used to solve SSO problem.

Of course, a wrong register writing (say, driving a grounded IO low) can dry the chip.

Anyway, fail.

That fail is all too common on "amateur" boards, typically made by people with little practical experience of high speed analogue electronics. And all electronic signals are analogue[1] even if they are interpreted in a non-linear fashion.

[1] except for photon counting applications and very small geometry devices
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online blueskull

  • Supporter
  • ****
  • Posts: 13186
  • Country: cn
  • Power Electronics Guy
Re: Beginner FPGA dev board
« Reply #8 on: November 26, 2015, 03:17:05 pm »
[1] except for photon counting applications and very small geometry devices

That's why my boards are USUALLY barely bigger than chips. I would rather spend 5x the time in routing and 2x the cost using 4 layer boards rather than spend 20x the time debugging weird SI problems.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #9 on: November 26, 2015, 06:44:23 pm »
The DE0 Nano looks a little heavy. I don't think I have any need for a hard processor.

The mercury's form factor looks very appealing - not sure about having one gnd pin. I have no experience with this so I go with what is said here. The highest frequency will be the clock that drives the FPGA (logic) which drives the transfer mechanism to output the video.

The board would need at least 16+8+4 IO lines for accessing the external video ram (forgot to mention this earlier). The rest of the remaining IO I will probably use for address decoding etc. (although I wanted to make the design modular...)

I would not mind buying a dev board with a larger/heavier FPGA than I need right now, IF I can down-scale the design to something smaller and compatible (and what will be compatible?).

Looking at the Altera site the MAX10 looks pretty good - haven't studied it yet in detail. Not sure about the packages it comes in though.
Would that be something that is suitable to start with as a beginner?

Another thing occurred to me: Because the exact FPGA is not too critical, would it stand to reason to let the quality of the tools dictate what brand I choose? In that case which brands have the best tools?  :P

@daybyter: sorry I couldn't decipher your hint on the zx81 version of the Cyclone II on ebay? Could you be more specific. Is it ZX81 programmed into a Cyclone? - that is not what I need.

Thanx for the suggestions.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Online PA0PBZ

  • Super Contributor
  • ***
  • Posts: 4260
  • Country: nl
Re: Beginner FPGA dev board
« Reply #10 on: November 26, 2015, 07:37:37 pm »

But this can be solved by using driven low IO pins to emulate GND, and it is actually a technique usually used to solve SSO problem.
Of course, a wrong register writing (say, driving a grounded IO low) can dry the chip.


That's what I was thinking, and luckily most IO is buffered so you can afford to make that mistake.
 
Keyboard error: Press F1 to continue.
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10873
  • Country: gb
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #11 on: November 26, 2015, 07:54:41 pm »
The highest frequency will be the clock that drives the FPGA (logic) which drives the transfer mechanism to output the video.

No.  The highest frequency is determined solely by the signal rise time; the period is irrelevant. You almost certainly need to use transmission lines for signals to/from FPGAs.

If you have many signals changing on the same clock, you have to consider ground bounce.

Both those serious problems are ameliorated by more ground pins.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5549
  • Country: us
Re: Beginner FPGA dev board
« Reply #12 on: November 26, 2015, 08:00:00 pm »
Regarding the BeMicro Max10

There is a wiki for it:
http://www.alterawiki.com/wiki/BeMicro_Max_10

And they have over 300 on stock at $30, there is a listing for cheaper but shows no stock
http://components.arrow.com/part/search/bemicro

If you need more I/O pins there is an 80 pin edge connector on the side, I did link the source to the connector in other threads that you probably can find by doing a search in the forum for MAX10

It is an expensive connector as I recall, but there is plenty of I/O to be had without using that, unless you have some requirement that needs to use one of those pins for some specialized functionality that's only present there, but I didn't look in detail if that's the case.

Edit: I just recalled there was some errata regarding some of the pins, but that could be for the BemicroCV (cyclone V) If I find the link in this forum I'll post it in here.

Edit2: The wrong pin assignments in the datasheet was for the BeMicroCV that affected the on board LED assignments:

http://longchute.herokuapp.com/2014/09/23/arrow-bemicro-cv-notes/

« Last Edit: November 26, 2015, 08:19:57 pm by miguelvp »
 

Offline daybyter

  • Frequent Contributor
  • **
  • Posts: 396
  • Country: de
Re: Beginner FPGA dev board
« Reply #13 on: November 26, 2015, 11:10:03 pm »
@daybyter: sorry I couldn't decipher your hint on the zx81 version of the Cyclone II on ebay? Could you be more specific. Is it ZX81 programmed into a Cyclone? - that is not what I need.

http://www.ebay.com/itm/1PCS-ALTERA-FPGA-Cyslonell-EP2C5T144-Minimum-System-Learning-Development-Board-/311369884158?hash=item487f1761fe:g:mTMAAOSwpdpVZxKv

I think it has 89 I/O lines IIRC.

You'll need a USB blaster to program it:

http://www.ebay.com/itm/altera-Mini-Usb-Blaster-Cable-For-CPLD-FPGA-NIOS-JTAG-Altera-Programmer-new-/161597061343?hash=item259fef78df:g:hTIAAOSwPYZU2wSX

There's a project, in which they implemented a zx81 computer on this board.

 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2329
  • Country: 00
    • My random blog.
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #15 on: November 27, 2015, 02:46:36 pm »
Ok I've looked at several others, mainly Latice and Xilinx and they all claim to be the latest greatest so no info there.

In the spirit of "you have to start somewhere" I bought the ebay Cyclone II board and also came across this board which I also bought (I'm on a roll here) - an Altera Max II. From what I understand not strictly an FPGA but should be fun anyway.

All I need now is a whole lot of (bi-derectional) 5<>3.3 volt level shifters (any affordable ICs out there?) and a whole lot of SRAM and I am good to go.

Thanx everyone - onto the next adventure.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline daybyter

  • Frequent Contributor
  • **
  • Posts: 396
  • Country: de
Re: Beginner FPGA dev board
« Reply #16 on: November 27, 2015, 08:39:59 pm »
Congrats! Download Altera Quartus2 13.0sp1. It's the latest version, that works with Cyclone2. You don't need an actual device to write the code and simulate it. If you use linux, you might want to use it in an virtual machine. I use a virtualbox 32 debian image, because Quartus seems to use a mixture of 64 bit and 32 bit code.
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2329
  • Country: 00
    • My random blog.
Re: Beginner FPGA dev board
« Reply #17 on: November 28, 2015, 08:11:04 am »
dont forget the jtag, you can make byteblaster clone if you have old computer with lpt, or ebay again
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #18 on: November 28, 2015, 08:15:26 am »
Yeah I found the software... holy f*$%!   :scared:
That will take some YouTube-watching to get my head around that!  :popcorn:

BTW: if you download the cyclone_web-13.0.1.232.qdz file, the device installer does not see it. Remove the '_web' and it works.

EDIT: No worries have the blaster too  :-+
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline Macbeth

  • Super Contributor
  • ***
  • Posts: 2559
  • Country: gb
Re: Beginner FPGA dev board
« Reply #19 on: November 28, 2015, 07:04:24 pm »
You should have some fun! I recently got one of those cheap MAX II EPM240 CPLD boards just to dip my toe in the water. Absolutely no documentation of course!  :-- But that was kind of expected.

I already had a cheap clone USB Blaster anyway but you will need one. One thing my current one crashes Windows 10 but works great in Linux (as does Quartus II).

Anyway, I didn't want to start with VHDL/Verilog, but the old fashioned schematic routing of logic chips like 74 series. Just like I would a board back in the early 90's. Quartus II has all that stuff built in  :-+

I am used to microcontrollers and I was bashing my head trying to figure out where to get a clock from? I mean a clock is fundamental and this CPLD has a 50MHz clock. I want to drive my shift registers and flip-flops... but with what?  I wasted a lot of time looking up PLL's and other stuff available on higher FPGAs but I just wanted a simple clock! Where is the clock register?  |O

It's one of those things that are more electronics engineer than programmer brain when you suddenly realise that you have all the pins you want available and one of those is the actual pin the crystal is connected to. I buzzed it out with my multimeter, found the pin, then used that as the input to my divider chain... Revelation! It's so bleeding obvious in hindsight!  :palm:

I've also ordered what seems a very cheap Cyclone IV dev kit on aliexpress http://www.aliexpress.com/snapshot/7097721248.html this one has some documentation and source code which I am reading while I wait for delivery!
 

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1427
  • Country: dk
Re: Beginner FPGA dev board
« Reply #20 on: November 28, 2015, 07:43:55 pm »
@Macbeth

Here you go

/Bingo
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #21 on: November 28, 2015, 07:59:48 pm »
I delved into VHDL first because I realized that all tutorials were meaningless with knowledge of the concepts. First watched Altera's VHDL Basics via https://www.youtube.com/user/deepaksh0607 and now I am wrestling through https://www.youtube.com/channel/UCbUe5SLMSZlSzCuJP81lU0A. I think I'm getting my head around this (very verbose) language.

Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline Macbeth

  • Super Contributor
  • ***
  • Posts: 2559
  • Country: gb
Re: Beginner FPGA dev board
« Reply #22 on: November 28, 2015, 08:13:53 pm »
@Bingo - Thanks! For some reason google chrome chokes at the source code zip! I downloaded it with IE/Edge ok though

@obiwan - I have put off the VHDL stuff for now as was only trying to implement e.g. Daves old 7 seg + logic IC clock using something as simple as a CPLD rather than all those IC's. However, back in the 80's we never really had 50MHz clocks to divide and the amount of shift registers to divide down to 1 or 2 Hz is silly on a schematic and perhaps a good excuse to implement in VHDL instead.

 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 971
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #23 on: November 29, 2015, 08:16:58 am »
Yeah, I've seen the clock video, loved it!

For simple stuff you can fallback on the ICs you know and replicate them in VHDL, but when it gets more complicated you can describe the behavior you're after and the compiler will add the registers, counters and adders etc.
I have little experience in working with bare 74 logic (not a complete noob - but no expert for sure) so I really dig that VHDL supports a higher level abstraction.

First I have to fix the QuartusII software - I don't see my installed devices  :o
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline marcopolo

  • Regular Contributor
  • *
  • Posts: 79
  • Country: fr
    • Retronik
Re: Beginner FPGA dev board
« Reply #24 on: November 29, 2015, 03:02:20 pm »
I think I'm getting my head around this (very verbose) language.

Try Verilog  ;)


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf