Shop OBEX P1 Docs P2 Docs Learn Events
Getting started with FPGAs — Parallax Forums

Getting started with FPGAs

LeonLeon Posts: 7,620
edited 2013-04-21 09:40 in General Discussion
I thought I'd create a web page on how to get started with FPGAs. Here's what I've done so far:

http://www.leonheller.com/FPGA/FPGA.html

It's very much a work in progress, and will be updated over the next couple of days. Comments are welcome.
«13456

Comments

  • mindrobotsmindrobots Posts: 6,506
    edited 2011-06-27 05:44
    Leon,

    A great bare-bones start. I hope it stays simple and straightforward and shows the steps to get from knowing nothign about FPGS's (me) to being able to select and setup a simple evaluation kit and create some basic designs. Enough information to get someone going and tease their imagination.

    Along these lines, I know nothing about FPGA's and was wondering if you could provide an idea of some designs I might want to consider an FPGA for instead of using a micro-controller.

    Thanks for sharing knowledge - that's always a good thing!
  • LeonLeon Posts: 7,620
    edited 2011-06-27 05:55
    You can put an MCU into an FPGA, of course. That's how Parallax is testing some aspects of the Propeller 2, and there are lots of "soft cores" available as IP, many of them are free.

    That little board could be connected to an MCU, a Propeller, for instance, and used to provide additional functionality, such as high-performance DSP. Or, a motor control function could be off-loaded to it.
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2011-06-27 06:19
    Thanks for sharing. :)

    By the way, is it possible to start with "drawing" up the counters and the flip-flops? Or they are already predefined?

    Might borrow a book on digital design in my college workplace. :)
  • HumanoidoHumanoido Posts: 5,770
    edited 2011-06-27 06:27
    Leon, this is really great! Please continue this fine work!
  • LeonLeon Posts: 7,620
    edited 2011-06-27 06:28
    Thanks. I'll see what I can do.

    John:

    They can be built up from primitives, but it's easiest to use the pre-defined functions and just insert them into a schematic, or into one's code. A wizard is available that will design virtually any type of counter for you, it then generates the code and schematic symbol. Other complex functions can be designed using Wizards.
  • ctwardellctwardell Posts: 1,716
    edited 2011-06-27 06:35
    Leon,

    Thanks, this might just be what I need to try out an FPGA.

    C.W.
  • edited 2011-06-27 06:48
    I'll be watching, Leon. This is something I want to learn. I can suggest some websites that might be interested to host the information if you want to reduce bandwidth. You could also start a blog here.
  • LeonLeon Posts: 7,620
    edited 2011-06-27 07:24
    Bandwidth should be OK for now, I get 100 GB/month. I'll upgrade if necessary.

    I was thinking of creating a group/forum of some sort for discussion.
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2011-07-04 08:18
    Is the mini FPGA boards suggested are big enough to store an AVR core inside? :)
  • LeonLeon Posts: 7,620
    edited 2011-07-04 08:26
    There should be plenty of space. You could download a core, build it with the Quartus II software, and check that it fits.
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2011-07-04 08:41
    Leon wrote: »
    There should be plenty of space. You could download a core, build it with the Quartus II software, and check that it fits.

    Thanks for the information.

    I assume/presume that these cores can be added some peripherals, such as some more UART, or extend it to do divide and stuff?
  • LeonLeon Posts: 7,620
    edited 2011-07-04 08:53
    Peripherals are quite easy, but extending the instruction set will be difficult.
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2011-07-04 08:56
    Hmm... I'll start without putting the whole core first. Maybe will be trying out the adders and all the rudiments first before going deep. :)
  • LeonLeon Posts: 7,620
    edited 2011-07-04 09:41
    It's a good idea to do something very simple first, as with an MCU. Here is some VHDL of mine that lights LED2 when the PB is pressed:
    -- PB - PIN144
    -- LEDs - PIN3, PIN7, PIN9
    
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.all;
    
    ENTITY PB IS
    	PORT
    	(
    		PB1	: IN	STD_LOGIC;
    		LED1	: OUT	STD_LOGIC;
    		LED2	: OUT	STD_LOGIC;
    		LED3	: OUT STD_LOGIC
    	);
    END PB;
    
    ARCHITECTURE a OF PB IS
    BEGIN
    	LED1 <= '1';
    	LED2 <= PB1;
    	LED3 <= '1';
    END a;
    

    I can post the complete project if it helps.
  • Luis DigitalLuis Digital Posts: 371
    edited 2011-07-04 12:10
    Leon, without explanation does not understand anything.

    Personally I will continue with my projects ARMs until the Propeller 2 is available.
  • LeonLeon Posts: 7,620
    edited 2011-07-04 12:21
    What needs explaining and what don't you understand? FPGAs are easy to use, especially for people with a hardware background.
  • $WMc%$WMc% Posts: 1,884
    edited 2011-07-04 12:48
    Leon
    '
    I went to down load the Quartus II software VER 11.0(From the link on your web page), I saw a 30 day free trial version,Then it's $2999.00 after that.
    '
    Am I missing something ?
    '
    I would really like to learn more about FPGA's, But $2999.00 is out of my budget range.
  • LeonLeon Posts: 7,620
    edited 2011-07-04 12:48
    I designed something like that using a 9536 over 10 years ago, using a home-made PCB.
  • LeonLeon Posts: 7,620
    edited 2011-07-04 12:49
    $WMc% wrote: »
    Leon
    '
    I went to down load the Quartus II software VER 11.0(From the link on your web page), I saw a 30 day free trial version,Then it's $2999.00 after that.
    '
    Am I missing something ?
    '
    I would really like to learn more about FPGA's, But $2999.00 is out of my budget range.

    You need to download the Quartus II Web Edition, it's free! I didn't put it on my web page, here it is:

    http://www.altera.com/products/software/sfw-index.jsp
  • Luis DigitalLuis Digital Posts: 371
    edited 2011-07-04 12:57
    Leon wrote: »
    What needs explaining and what don't you understand? FPGAs are easy to use, especially for people with a hardware background.

    If you are doing a tutorial, you can not put a bunch of code, and then expect everyone to understand. In this tutorial "LED1" and "LED3" appear without explanation, we assume will always be ON. What is "STD_LOGIC", which contain inside? Finally, for a beginner the first program should be explained, almost line by line.

    I know these are things that you know. :-)
  • LeonLeon Posts: 7,620
    edited 2011-07-04 13:04
    There isn't any point in me teaching people how to use VHDL and the Quartus II software, I'm providing links for that. That VHDL code needs to be read in conjunction with the FPGA board schematic. It should be self evident what is going on, if someone knows VHDL.
  • $WMc%$WMc% Posts: 1,884
    edited 2011-07-04 13:06
  • Luis DigitalLuis Digital Posts: 371
    edited 2011-07-04 13:11
    Leon wrote: »
    There isn't any point in me teaching people how to use VHDL and the Quartus II software, I'm providing links for that. That VHDL code needs to be read in conjunction with the FPGA board schematic. It should be self evident what is going on, if someone knows VHDL.

    Case solved, thanks.
  • LeonLeon Posts: 7,620
    edited 2011-07-04 13:15
    HDLs are very complex, far more so than any programming language. The best way to learn to use them is to start by coding small hardware functions, simulating them, and trying them out. The FPGA manufacturers provide extensive IP libraries for most commonly used functions, which saves a great deal of time and effort.

    This is an excellent book on FPGAs that uses that approach:

    http://www.amazon.com/Rapid-Prototyping-Digital-Systems-Quartus%C2%AE/dp/0387277285/ref=sr_1_3?s=books&ie=UTF8&qid=1309810645&sr=1-3

    Don't pay the full price, get one of the cheaper new or second-hand books that are on offer. I bought mine quite cheaply that way. It's something of a cookbook as far as VHDL is concerned, so another book will be needed for that.
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-07-04 16:32
    Case solved, thanks.

    If you don't like what Leon has posted, how about just skipping it instead of coming on just to complain about it?

    You post links to your websites, and those are written in Spanish, with no explanation for those that don't understand it, but nobody has felt compelled to bash you about that, have they?
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-07-04 16:44
    Martin, I think you could find a market for something like that, but you might need to expand your horizons beyond the Parallax forums.
  • william chanwilliam chan Posts: 1,326
    edited 2011-07-04 17:07
    Leon,

    1. What is the function of a USB Blaster?
    2. Could you also provide some links on where to make custom chips in small quantities after you have tested them on FPGAs?
  • Luis DigitalLuis Digital Posts: 371
    edited 2011-07-04 17:20
    I found a page of interest: FPGA4FUN
    Looking to learn more about FPGAs?
    Find here:

    * FPGA projects: 23 projects to build using an FPGA board.
    * FPGA tutorials: what are FPGAs, and how they work.
  • Luis DigitalLuis Digital Posts: 371
    edited 2011-07-04 17:30
    Kevin Wood wrote: »
    If you don't like what Leon has posted, how about just skipping it instead of coming on just to complain about it?

    You post links to your websites, and those are written in Spanish, with no explanation for those that don't understand it, but nobody has felt compelled to bash you about that, have they?

    At no time have I said that I like or do not like.

    The title of this thread says: "Getting started with FPGAs", so the minimum is to give a brief explanation of things, not saying "You should know ...".

    About my websites: Use Google, as I'm using right now. :-)
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-04 20:17
    Thanks for doing this Leon. I like the "whole package on one page" approach, starting with where to get the board at a reasonable price.

    I see that you draw the circuit in VHDL and then the program draws a schematic. Is there a way of creating the circuit as a schematic directly, for those of us like myself who think more visually in schematics rather than in words?
Sign In or Register to comment.