element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum Where to start for an easy intro to FPGAs?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 27 replies
  • Answers 18 answers
  • Subscribers 554 subscribers
  • Views 5888 views
  • Users 0 members are here
Related

Where to start for an easy intro to FPGAs?

Fred27
Fred27 over 6 years ago

I'm sure this is one of those questions that is going to have more opinion that definitive answer, but I'm going to ask it anyway. I've not done anything with FPGAs. I know what they are and what they can do. I know that they're a bit of a shift in mindset for someone who's used to coding for a microcontroller. I'm at the same stage that I'm sure many people are. I want to find out if FPGAs are the sort of thing that I want to get into or not. To dip my toe in the water so to speak.

 

The trouble is there are a lot of manufacturers who seem to have their own tool chains and programming approaches. It's tricky picking one to start with. There are road tests of a few on here but to be honest they all sound hard and are difficult to compare. Has anyone got advice on where to start? I suppose my priorities are:

 

  • Once I pick a manufacturer I want to stick with it. Jumping from one to another will just make it harder.
  • It would be hopefully easy to get the basics. I don't need raw power right now. Being able to create a microcontroller core is great, but will only confuse me at this stage.
  • The option of a SoC alongside a microcontroller would be a nice option for later, but once again I don't need it right now.
  • Reasonably cheap. It doesn't have to be the cheapest, but this may be a dead end experience so I'd prefer 10s rather than 100s of £/$.

 

Right now I was thinking of waiting see how the pans out for those selected, and to learn from their experience. However, any opinions are welcome

  • Sign in to reply
  • Cancel

Top Replies

  • genebren
    genebren over 6 years ago +8 suggested
    David, You might want to look at CPLD's first. They are very much the same as FPGA, but smaller (#gates and #pins). They are typically programmed with the same tools and languages as FPGAs. I started with…
  • michaelkellett
    michaelkellett over 6 years ago +8 suggested
    If you want to learn about FPGAs then don't mess with CPLDs. The CoolRunners are ancient (15 year old designs). There are 4 major players in the FPGA business, Xilinx, Intel (was Altera), Lattice and Microsemi…
  • michaelkellett
    michaelkellett over 6 years ago in reply to neuromodulator +8 suggested
    Lots of interesting points - I'm off on a long weekend hol so not enough time to cover them all but I'll have a go. There are two primary HDL (Hardware Definition Languages), Verilog and VHDL. They both…
  • michaelkellett
    0 michaelkellett over 6 years ago in reply to Fred27

    The downside of the CPLDs is that you don't get memory or multipliers or that many logic elements (except in the modern ones ), since you'll use VHDL or Verilog it's no harder to work with the simple FPGAs.

     

    The Digilent board doesn't include a  JTAG programmer (and the CPLD is tiny with only 64 logic elements v the 5000 or more in the FPGAs we've mentioned) so you would need to budget for that as well.

     

    It does rather depend on what you might try doing first, which we haven't asked yet ........

     

    MK

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Fred27
    0 Fred27 over 6 years ago in reply to michaelkellett

    michaelkellett  wrote:

    It does rather depend on what you might try doing first, which we haven't asked yet ........

    Good question. To be honest I have nothing pressing that needs programmable logic, just a desire to learn and to use this time wisely. I obviously considered applying for the Path to Programmable, but wasn't sure I could really commit to the time required.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • mjardini
    0 mjardini over 6 years ago

    I've found the book 'Free Range VHDL' a smooth reading. There's also the other links and book listed by our fellows. Some inexpensive boards for starts are the iCEStick and iCEBlink, you can also see the TinyFPGA from Luke (Twitter). I've bought to myself one iCEBlink (iCE40) and a PapilioOne 250K (Spartan3E) to start.

    The Arduino Vidor 4000 HDL Tutorial (SystemVerilog) is also a nice kickoff.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 6 years ago

    I'm afraid there's no "easy introduction" to FPGAs at this time -- at least I don't know of one.  We had a good discussion here about this a couple of years ago: Barriers to designing with FPGAs?  I don't think much has changed.  I see the primary barrier as the steep learning curve, which I sometimes call the "The Cliffs of Insanity".  You have to be pretty motivated to face that climb.

     

    Professionally, I've mostly designed using Xilinx.  I started serious FPGA design with Spartan-II and ISE 5.2, which was quite simple compared to the later versions.  My favorite Xilinx family is Spartan-3A, which is relatively simple but very powerful.  Unfortunately, the Spartan-3A has passed its peak.  Spartan-6 is very powerful and has excellent price/performance, but it's very complex so I wouldn't recommend it for a novice.

     

    I'd check out Lattice iCE40.  It's a very simple architecture with 4-input look-up tables, kind of like the early Xilinx chips before they added (useful!) bells and whistles.  You can get a Lattice iCEstick for US$20-25 which has a decent size iCE40, a built-in programmer, LEDs, and 0.1" headers for your experiments.  It's a good way to get started.  A huge advantage of iCE40 is that it has the open-source IceStorm tool suite so you don't need to download a huge program from Lattice.  I've only used IceStorm for iCE40 design so I don't know what the Lattice tools are like.  I watched Clifford Wolf's demo of how much faster IceStorm tools are.

     

    To a certain extent, you can just program FPGAs at the Verilog or VHDL level and let the tools worry about the details.  However, at some point you'll need to understand the FPGA architecture enough to make sense of the error messages.  I've read of people doing Spartan-6 design, making a minor VHDL error, and getting baffling error messages about clocks when the design was supposed to have been combinational.  (The Spartan-6 has a separate long reference manual for clocks.)  Having a simpler architecture makes debugging that much simpler.

     

    I'd stay away from CPLDs.  They were very useful in their time (I've done lots of Xilinx XC9572XL designs), but with the low cost and superior capabilities of iCE40 chips there isn't much point to using CPLDs in new designs.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • DAB
    0 DAB over 6 years ago in reply to afmishaq

    Goto the Cypress Semiconductor website and search for PSOC.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • genebren
    0 genebren over 6 years ago

    David,

     

    Just a further point of clarification.  I too was quite interested in the iCE40 chips and I have purchased a 'blinky' board to experiment with this part (much bigger and more powerful than any CPLDs).  The problem that I ran into was with the tools set associated with the parts.  Where I was able to pick up the XILINX tools and produce designs very quickly (ISE WebPack), the same was not true of the lattice parts.  Whether this had to do with my prior exposure to the XILINX tools and then the Lattice tools, or whatever, the end result was I dropped my plans of using the iCE40 in that particular design (robotics) and instead when back to CPLDs and completed my design. (Note: the iCE40 chips were initially developed by Blue Silicon, which was acquired by Lattice and integrated into their tool set, which may or may not account for some of the difficulties that I experience - a tough task for any company).

     

    I know that other people may have the exact opposite experience with these tool sets (finding Lattice much easier than XILINX), but tools are such an important part of the experience of learning and designing with programmable parts.  Either way that you go, keep the tool set in mind when making your selections.  Also, anything you learn in designing programmable part, be it CPLDs or FPGAs, will be applicable as you move forward in your designs.  If you reach to far on your first attempts, you might end up with such a bad experience that you think twice (or some greater number of times) before you try again.  Keep it simple, learn in steps, but always try.

     

    Good luck,

    Gene

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • gsgill112
    0 gsgill112 over 6 years ago in reply to afmishaq

    Hi Abdul,

     

    http://www.cypress.com/documentation/development-kitsboards/psoc-4-cy8ckit-049-4xxx-prototyping-kits has a couple of boards, starting from PSoC 4 (Go for the PSOC 4 4200 series as that has 4 UDB unlike the other one 41xx which has none.) . This board also has only an Usb to serial programming interface like Arduino, so no debugging there.

     

    If you can I would personally recommend PSOC5 LP Kit (its about 10$) , It has an On board Full fledged debugger that can be customised , and it has about 24 UDB's and you can also use the 24 on the debugger. It is a very interesting module, but nothing complex can be implemented. which is a bang for buck.

     

    I would suggest getting an FPGA dev board also.

     

    Regards,

    GS Gill

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • afmishaq
    0 afmishaq over 6 years ago in reply to gsgill112

    Hi Gurinder,

     

    Thanks, I will look it up. I am basically looking for an inexpensive kit for learning and teaching purposes.

     

    Faiz

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • neuromodulator
    0 neuromodulator over 6 years ago

    I've also wanted to learn FPGA programming but I've found it to be kinda hard as there doesn't seem to be an agreed on good way to learn how to program them. I've found many tutorials in the net that teach VHDL/Verilog, but I feel like they give examples, show results, but don't explain any further. In the end I feel like they teach HDL recipes more than teaching how the HDL actually gets synthesized into the logic design. There have been a lot of FPGA roadtests, but I've felt a bit intimidated to apply to a roadtest as I'm not sure I would be able to deliver it in-time. On the other side I've seen that most FPGA roadtesters appear to dodge the HDL completly, and stick to the visual programming languages or soft/hard CPU programming in their reviews.

     

    I have also many questions about FPGAs, so I'll add a few myself in case any of the experts wants to answer them:

     

    - There appear to be many different languages that can be used on FPGA, besides the HDL, what is each of the languages good for? When should I use one language in opposition to another one?

    - When it comes to HDL, I've read that code could synthesise for one FPGA and not synthesise for another one, how hard is it to make HDL portable? Would programming in portable HDL make it inefficient to the point that its not worth the hassle?

    - I keep reading that tools are very complex and all that, I don't really understand how a tool could make such a great difference when the HDL is not tool dependent (or is it?). Could someone elaborate on that? (as an analogy, learning a computer language is what is hard, switching between IDEs is quite straightforward as much as you keep the same language. Why is it so different with FPGAs?)

    - What are FPGAs actually good at? What kind of tasks are FPGA the only good alternative? It appears to me that they are mostly good at I/O stuff (multiple or fast DACs, ADCs). I've seen some claims on FPGAs being good at some computational tasks, but I've also seen some others claiming that they are not that great anymore.

    - How hard is it to debug them? I've read some claims about debugging timing issues being super hard and requiring an excessive amount of time and patience. Considering that time is money, one would leave the FPGAs as a last resort alternative, as it could increase the product development time considerably if it is that slow to program and debug them.

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Fred27
    0 Fred27 over 6 years ago in reply to neuromodulator

    Some good questions neuromodulator. How to debug is a particularly good one. I assumed that just like building a physical circuit it would require exposing a test point of the circuit to a physical pin and using oscilloscope, logic analyser or LED.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube