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
  • pcmorris
    0 pcmorris over 9 years ago

    Right, there's a lot covered already so I'll try not to repeat anything. Forgive me if I do.

     

    I would highly recommend not just writing your VHDL, this is a really bad habit I get into when I'm at home and I just want to get to the good stuff. In industry you'd draw out the system, it might just be a block diagram showing how to get from the inputs to the conclusion. Determine approximately how much data you need to move between the blocks, how you want to manipulate that data and how fast you need to do it to achieve your requirement. If you know for example that you want to take in two lots of 16 bits and multiply them together 20 times in parallel you should be able to determine approximately how many logic elements your going to use before you even being coding which will help you determine how many flip flops you need from a device when your designing the hardware. Equally, if you know you need a pci interface, then you know the timing specification you need to achieve on the chip, not all chips can achieve this frequency so this will again focus your decision. The key is contingency, your not going to be spot on with your sizing estimates and ideally you don't want to be running the clock at the boundary of the chips performance so take your numbers and add a bit before you seriously look to buy.

     

    With regards to choice of vendor, there is nothing to stop you writing VHDL in notepad and using just the vendors synthesis tools. Yes there is a learning curve with the toolset but if you write VHDL which conforms to the standards then you should not have a problem moving between vendors unless as previously mentioned you are using vendor specific macros. I would probably steer clear of ProASIC range for development at home, Xilinx and Altera are flash based tech which is great for home development, some of the Microsemi line work in a different way which is geared towards other applications.

     

    The DE0 is a nice looking development board, but I couldn't speculate whether it's capable for this kind of work. Best of luck, keep us all posted on how it goes.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • pcmorris
    0 pcmorris over 9 years ago

    Right, there's a lot covered already so I'll try not to repeat anything. Forgive me if I do.

     

    I would highly recommend not just writing your VHDL, this is a really bad habit I get into when I'm at home and I just want to get to the good stuff. In industry you'd draw out the system, it might just be a block diagram showing how to get from the inputs to the conclusion. Determine approximately how much data you need to move between the blocks, how you want to manipulate that data and how fast you need to do it to achieve your requirement. If you know for example that you want to take in two lots of 16 bits and multiply them together 20 times in parallel you should be able to determine approximately how many logic elements your going to use before you even being coding which will help you determine how many flip flops you need from a device when your designing the hardware. Equally, if you know you need a pci interface, then you know the timing specification you need to achieve on the chip, not all chips can achieve this frequency so this will again focus your decision. The key is contingency, your not going to be spot on with your sizing estimates and ideally you don't want to be running the clock at the boundary of the chips performance so take your numbers and add a bit before you seriously look to buy.

     

    With regards to choice of vendor, there is nothing to stop you writing VHDL in notepad and using just the vendors synthesis tools. Yes there is a learning curve with the toolset but if you write VHDL which conforms to the standards then you should not have a problem moving between vendors unless as previously mentioned you are using vendor specific macros. I would probably steer clear of ProASIC range for development at home, Xilinx and Altera are flash based tech which is great for home development, some of the Microsemi line work in a different way which is geared towards other applications.

     

    The DE0 is a nice looking development board, but I couldn't speculate whether it's capable for this kind of work. Best of luck, keep us all posted on how it goes.

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