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

0 Members and 1 Guest are viewing this topic.

Offline obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • 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 PA0PBZ

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

Offline Lunasix

  • Regular Contributor
  • *
  • Posts: 142
  • Country: fr
Re: Beginner FPGA dev board
« Reply #2 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: 19280
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #3 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
 

Offline daybyter

  • Frequent Contributor
  • **
  • Posts: 397
  • Country: de
Re: Beginner FPGA dev board
« Reply #4 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: 19280
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #5 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
 

Offline obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #6 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: 5121
  • Country: nl
Re: Beginner FPGA dev board
« Reply #7 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: 19280
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #8 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: 5550
  • Country: us
Re: Beginner FPGA dev board
« Reply #9 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: 397
  • Country: de
Re: Beginner FPGA dev board
« Reply #10 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: 2616
  • 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 obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #12 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: 397
  • Country: de
Re: Beginner FPGA dev board
« Reply #13 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: 2616
  • Country: 00
    • My random blog.
Re: Beginner FPGA dev board
« Reply #14 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 obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #15 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: 2571
  • Country: gb
Re: Beginner FPGA dev board
« Reply #16 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!
 

Online bingo600

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

Here you go

/Bingo
 

Offline obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #18 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: 2571
  • Country: gb
Re: Beginner FPGA dev board
« Reply #19 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 obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #20 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: 146
  • Country: fr
    • Retronik
Re: Beginner FPGA dev board
« Reply #21 on: November 29, 2015, 03:02:20 pm »
I think I'm getting my head around this (very verbose) language.

Try Verilog  ;)
French Electronic Documentation and Magazines: www.retronik.fr
The 68K Archives: marc.retronik.fr/motorola/68K/68000.html
 

Offline obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #22 on: November 29, 2015, 03:27:51 pm »
Well - I have looked into the options of all the different languages (including drawing gates) and it seemed to me that VHDL is a 'standard' in Europe and 'verilog' in the US. I disregarded the C/C++ language because I could not see that it would be a good match (using a software language to fix a hardware problem). I also disgarded AVDL (Altera proprietary language) because I wanted to learn something that would also be useful elsewhere.

So indeed the choice was basically between Verilog and VHDL. At a first glance of the syntax I chose VHDL (arbitrarily). To my critical mind all these languages seem archaic and so last century -- and I love the 90's look of the software too! (NOT!).

But for now I am stuck because there is a problem with the Quartus web license and it does not show any devices and does not compile...

Which gives me some time to think about the design of what I am trying to build and how to implement it. I was wondering if there were any 'Design Patterns' and 'Best Practices' (as you have for software development)? I am sure I will make plenty of rookie mistakes but reading some simple tips and tricks could weed out e few before I even begin.

I have been watching (VHDL) YT video's all weekend just to get immersed in the material.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 19280
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Beginner FPGA dev board
« Reply #23 on: November 29, 2015, 10:45:55 pm »
Which gives me some time to think about the design of what I am trying to build and how to implement it. I was wondering if there were any 'Design Patterns' and 'Best Practices' (as you have for software development)? I am sure I will make plenty of rookie mistakes but reading some simple tips and tricks could weed out e few before I even begin.

Yes, good questions. There are many books and articles about VHDL around, including syntax and structure and style guidelines - but few at the design pattern level.

In its place, I like the "two process" pattern described in http://www.gaisler.com/doc/vhdl2proc.pdf

I would like to see design patterns for directory structure, and for timing constraints in systems with multiple clock domains. Please let me (us!) know of suitable examples.
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 obiwanjacobiTopic starter

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Beginner FPGA dev board
« Reply #24 on: November 30, 2015, 07:18:00 am »
Looks like Quartus 13.0SP1 does not work correctly on Windows 8.1 ...    :--
So that CycloneII board is not for you if you have Windows 8.1 or up (?).
I will probably abandon it (before I even have it  ???) and see if the newest Quertus version will run and what devices are supported and pick one of those...

Looking at the two processes pattern now. Looks interesting but also raises some questions - like: this only works if you also manage a suitable hierarchy..?

Anyway before I put my thoughts to paper (or forum) I'd better get some hands-on experience first  :-DD

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


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf