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 FPGA Design Consideration
  • 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 11 replies
  • Answers 3 answers
  • Subscribers 552 subscribers
  • Views 2651 views
  • Users 0 members are here
  • considerations
  • fpga
  • Design
  • beginner
Related

FPGA Design Consideration

hawktalon
hawktalon over 10 years ago

Hi, I'm very new to FPGA. Most of what I did was PIC and Atmel microcontrollers. I want to know about the design consideration of implementing an FPGA into a system. How do you pick the suitable FPGA to suit your needs? I know there are specifications such as number of logic elements, PLLs, multiplier and such but you will never know how much of those you will need until you finish the vhdl and compile it. Correct me if I'm wrong but I'm pretty sure the hardware has to be finalized before the vhdl codes are done in a general development process.

 

Also, I see that there are a few companies making FPGA. Namely Xillinx, Altera, Lattice etc. What are the differences between their product? Most of what I can search online talks about their development IDEs in terms of which one has free tools or which company has IP restrictions. It's hard for a beginner like me to make sense of what Cyclone offers compared to Spartan and such.

 

Third question is how do you objectively quantify and compare the performance between FPGAs? Assuming they all run at the same clock. Since they are all essentially doing the same thing and is functionally the same when loaded with the same vhdl code. How do they fare against each other in terms of efficiency, speed and what not? Googling around I only find people comparing them with GPUs and CPUs. Companies advertising their product using vague and very general descriptions doesn't help at all.

 

Sorry if these are very newb questions but I am a newb trying to learn FPGA. My college provides FPGA courses which I am now just starting but they only teach how to write vhdl. There are no info on hardware considerations or even how to set up a FPGA chip. Thanks in advance!

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 9 years ago in reply to johnbeetem +3
    I wouldn't consider myself to be an Altera expert but I do use VHDL quite a bit. I've been away so others have covered the key points. You don't really suffer from vendor lock in on simple FPGA hardware…
  • johnbeetem
    johnbeetem over 10 years ago +2 suggested
    That's a lot of material to cover, but I'll try to tackle a few items. First, it's unfortunate that your college only does VHDL. I personally prefer Verilog, which is more concise and IMO easier to write…
  • Jan Cumps
    Jan Cumps over 10 years ago in reply to johnbeetem +2 suggested
    On the tutorial part, there's also the very good VHDL handbook (and a list of FPGA projects he did, with source code) from hamsternz . FPGA course - Hamsterworks Wiki! I'm using a jack.gassett 's Papilio…
Parents
  • johnbeetem
    0 johnbeetem over 10 years ago

    That's a lot of material to cover, but I'll try to tackle a few items.

     

    First, it's unfortunate that your college only does VHDL.  I personally prefer Verilog, which is more concise and IMO easier to write and understand.  Verilog is based on C.  VHDL is based on Ada.

     

    Second, there's a huge spectrum of FPGA offerings so which you choose depends on what you want to do and how much money you want to spend.  There are cheap ($1 or a few dollars) FPGAs from Lattice -- e.g., the iCE40 family -- with a small number of look-up tables (LUTs).  They're a good alternative to CPLDs, which are now a "mature" technology.  Small FPGAs are good for "glue" logic and various specialized communication interfaces.

     

    Then you have mid-priced ($10s of dollars) FPGAs from Xilinx (Spartan) and Altera (Cyclone), with enough logic, RAM, and arithmetic to do amazing things.  I've mostly used Xilinx and it's my preference at this level.

     

    Then you have expensive FPGAs ($100s to $1000s of dollars) from Xilinx and Altera.  These are mostly for highly-specialized applications like signal/image processing and cryptography that can afford chips like these.

     

    I've always been able to fit customer applications into Spartan chips by using logic resources efficiently.  Xilinx salesmen don't like me.

     

    When I do an FPGA design for a customer, I want to use the cheapest FPGA that will do the job.  However, I also realize that the customer's needs may change and they'll want to do much more with the same hardware, so I choose an FPGA family and package that has a range of FPGA capacities in the same package.  Xilinx Spartan tend to do this well.

     

    To make sure everything fits, I do a preliminary design and synthesize it to make sure it fits the logic and RAM capacity of the FPGA and meets the clock cycle constraint.  Sometimes it's necessary to pipeline a design to meet the clock cycle.  I far prefer to use a relatively slow clock -- say, 33-40 MHz for a Spartan-3A or Spartan-6 -- so that I can fit many levels of logic into a single clock cycle.

     

    For people who are just starting out and want to play with FPGAs without investing much money, I strongly recommend Lattice's iCEstick, which is available in the USA for as little as $22 (though for some reason element14 has it listed for $30, with none available).  A unique feature of the Lattice iCE40 FPGA on iCEstick is that it can be programmed using open-source tools: http://www.element14.com/community/thread/43876/l/project-icestorm-fully-open-source-fpga-tools-for-lattice-ice40.  The tools support Verilog rather than VHDL.

     

    If you have more money to spend, I recommend Gadget Factory's Papilio boards and ValentF(x) LOGI-Pi and LOGI-Bone.  They bring out lots of I/O and some of the boards have external SRAM or SDRAM.

     

    FPGA software and chip interfacing have steep learning curves.  I recommend using an existing board like iCEstick or Papilio so you don't need to consider details like how to configure FPGAs.  The Xilinx and Altera design software packages are huge and will take a lot of time to get working.  There are tutorials out there -- Gadget Factor is a good place to start.  The open-source IceStorm for Lattice iCE40 has a much simpler learning curve, but has minimal documentation.  You'll need a GNU/Linux box with a GCC compiler that supports C++11 to compile and run the IceStorm tools.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 10 years ago in reply to johnbeetem

    On the tutorial part, there's also the very good VHDL handbook (and a list of FPGA projects he did, with source code) from hamsternz.

    FPGA course - Hamsterworks Wiki!

     

     

    I'm using a jack.gassett 's  Papilio Pro (Papilio FPGA Platform) as my FPGA training board. devbisme2 's Xula and Xula-2 are also excellent: http://www.xess.com/

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • Jan Cumps
    0 Jan Cumps over 10 years ago in reply to johnbeetem

    On the tutorial part, there's also the very good VHDL handbook (and a list of FPGA projects he did, with source code) from hamsternz.

    FPGA course - Hamsterworks Wiki!

     

     

    I'm using a jack.gassett 's  Papilio Pro (Papilio FPGA Platform) as my FPGA training board. devbisme2 's Xula and Xula-2 are also excellent: http://www.xess.com/

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
No Data
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