element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • 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
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • 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 Some FPGA Beginner Questions
  • 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 78 replies
  • Answers 19 answers
  • Subscribers 584 subscribers
  • Views 14003 views
  • Users 0 members are here
Related

Some FPGA Beginner Questions

e14 Contributor
e14 Contributor over 13 years ago

Hi element14!

 

Some time ago I've watched a talk of the nand2tetris course/project. If you've never heard of it you can check it out here: http://www.nand2tetris.org/ Basically it is a course designed to build a computer from the very ground up. It starts with logic gates and goes all the way up to programming a small game project (hence the name nand2tetris). There is also a video available from someone who has been doing the course on FPGA hardware ( http://www.youtube.com/watch?v=UHty1KKjaZw ).

[At one point in the above linked youtube video you can see the designation "ep2c8q208", which should mean the project is running on Altera Cyclone II hardware.]

 

I've always been curious about doing something with FPGA hardware, but never had any idea of a feasible, yet interesting-result-yielding project. Well, as you can probably guess, up until now that is image

 

During my university days I attended an FPGA workshop and I've read some stuff about the hardware components and the available course material, so I think I kind of have an idea about the difficulty of the project. But since everything I've been reading just made me more excited, I decided I absolutely want to give this a shot. Now there's a lot of FPGA information out there, so I'm surely still missing a lot of important information, but I would like to get started and think the best way to learn is to actually experiment with a real FPGA instead of wasting too much time with HDL simulations only to become used to functions that aren't going to synthesize on the board anyway.

 

So I now would like to ask you about some things I'm still unsure about and would like to have clarified before buying an expensive development kit. I've read several articles about Altera and Xilinx and right now my choice would be a Spartan 3E Starter Board - this one to be exact: http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=549

 

The main questions I'm having right now:

- Is there a general reason that would argue against getting the Spartan E3 board?

- I actually have no idea how powerful an FPGA really is.. but assuming it's running on Cyclone II hardware, it probably should run on a Spartan 3 as well? Or is that in itself already a stupid question, as FPGA comparison doesn't work so easily?

- As you can see, the price for the above board is about 150 Euro, which translates to something just short of $200. Yet I continue to find offers (on ebay or other websites) where boards are being sold for under $150 but even include small screens(!)*  What am I missing here? Did I pick an especially expensive outlet, or is there something shady about these cheap deals..?

- In general, who is more newbie-friendly, Altera or Xilinx? (I've worked with VHDL before, which I think is Xilinx, right? Altera's Quartus is probably very similar?)

- From how I understand the FPGA toolchain, in the above linked offer there should be everything included to get me going.. right? o_O

 

I also have this second candidate: http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,836&Prod=ATLYS

- Maybe I'm an idiot, but as I read the offer, *only* the board is sold? I.e., in contrast to the first offer, I would need additional stuff to get something running on the board?

- It also strikes me as a mayor drawback that there is not really an output option besides a few LEDs.. which for me would be very annoying; I'm already unhappy about the board linked before *only* having a small display (which in itself, however, is awesome to have of course).

- This might also be a stupid question: I remember from back in the FPGA workshop I mentioned that getting a number-display to run is not that hard at all. How much more effort is it to get something displayed on a screen (either an attached one or a PC screen accessed via one of the available ports)?

 

And as a final question: I've also seen some very much smaller boards than the ones linked here, that are also much cheaper.. are the boards I'm looking it overkill for what I'd like to do with them? Or does actually the contrary hold, and such a project wouldn't even run on one of the smaller boards available?

 

Thanks for your help!

 

Cheers,

pan

 

________________________

* Here for example:

http://www.sainsmart.com/evaluation-board/fpga-cpld-board/new-ep2c8q208c8n-development-board-kit-fpga-altera-cyclone-nios-ii-with-2-4-lcd.html

  • Sign in to reply
  • Cancel

Top Replies

  • johnbeetem
    johnbeetem over 13 years ago +2 suggested
    Hi Christian, I just saw your discussion today. I don't check the element14 FPGA page much since activity is rare. There's some good FPGA discussion in this thread at the Raspberry Pi group, including…
  • michaelkellett
    michaelkellett over 11 years ago in reply to e14 Contributor +2 suggested
    I'm going to offer some advice which has worked well for me over the last 10 years. Forget Xilinx and Altera and download the Lattice toolset - not as capable as the full Xilinx kit but good enough to…
  • michaelkellett
    michaelkellett over 11 years ago in reply to michaelkellett +2 suggested
    A simple counter example for LED twinkles ! There must be a way to add a text file - someone please tell how ! MK
  • e14 Contributor
    0 e14 Contributor over 10 years ago in reply to johnbeetem

    thanks john....

     

    "However, I will say that when I get around to playing with VGA myself, my first project will be to display color bars rather than try to display something complex like characters.  It's usually a good idea to start simple whenever you can."----john

     

     

    yes john i had aslo started with simple colorbox,colorbar and color pattern project but in those example the vga _sync is slightly different than above ,they all are worked well but now i am going with p.changs book "VHDL PROTOTYPING WITH EXAPLES" in in that is provide how to vga text displaying as a chapter of book...i have modify code as per my need     ,but that is not work on my case i have atteched the book.pdf and plz take a look on chap12 and chap13.. so you will understan well whwt i really want to do....thanksimage

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 10 years ago in reply to e14 Contributor

    I can't see where you posted a link to the book but I think you mean "FPGA Prototyping by VHDL Examples" by Pong P Chu which is widely pirated on the web and available as a .pdf.

    As a guide this book is sadly lacking since it has only a very brief discussion of simulation.

     

    Simulation is the KEY to getting any design (other than the most trivial)  to work on an FPGA in a reasonable time.

     

    I can't possibly go though your VHDL and find bugs in it - there is far too much and it would take far too long.

     

    So the solution is for you to simulate it - I'm sure the Xilinx tools include  a usable simulator and test bench generator. Run  a simulation that generates and displays graphically the VGA outputs - actually it is usually better to test the design in small pieces before you put it all together but since you think it's complete you may as well test the whole thing.

     

    If the VGA outputs are correct (and if you don't know what correct VGA looks like you can't test the design) then run the design on a chip and check that you have the same results in hardware as in simulation.

     

    If the simulation shows bad VGA data then work back in the simulation until you find the problem.

     

    If the hardware isn't doing what the simulation does then add hardware check points and use a scope (Xilinx may offer a virtual scope thing but I haven't ever used it so I can't comment on how good it is - I don't find the Lattice equivalent to be much use.)

     

    In most FPGA designs producing the verification/testing code and running it to completion takes longer than writing the original code.

     

    Time spent carefully planning and designing the job will reduce the coding and verification/testing time.

     

    Once you start simulating please feel free to come back and ask about things that don't do what you want.

     

    (BTW - one quick check worth doing is to compare the actual use of FPGA resources with what you expect - it is very common with a new design to find that where you expected to use 10k logic blocks, 24 block rams and 78 DSP (example numbers only !!) blocks the synthesizer/fitter reports only a small fraction of these as being used - this will be because somewhere you don't actually use an output or miss out  a clock and the synthesizer optimizes away most of your design (for the very good reason that it can't read your mind and most of the design isn't actually doing anything).

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 10 years ago in reply to michaelkellett

    Thank you very much for such brief answer...i have few questions on simulation that  is it to be good to generate test benches for all entity we used(top level and lower level )? in  xilinx ISE other features like plan ahead ,chip scope are available what's their function? are they useful in simulation?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 10 years ago in reply to e14 Contributor

    Chip Scope is Xilinx's virtual scope tool, used in hardware test/verification not during simulation:

     

    http://www.xilinx.com/itp/xilinx10/isehelp/ise_c_process_analyze_design_using_chipscope.htm

     

    Plan Ahead is an advanced design tool which you don't need to bother with yet.

     

    You need to read the Xilinx documents relevant to the simulator you mean to use - you can write (often automatically) a test bench to exercise your top level entity. This is probably where you should start. Later on you should try to get intot the habbit of making test benches for your lower level entities as you write them.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 10 years ago in reply to e14 Contributor

    narendra rathod wrote:

     

    yes john i had also started with simple colorbox,colorbar and color pattern project but in those example the vga _sync is slightly different than above ,they all are worked well but now i am going with p.changs book...

    OK, if you have examples that work and another that doesn't there's a couple of things you can do:

     

    1.  Compare a working example to the non-working example to see what's different.  It might be something as simple as having different master clock frequencies.  Analyzing other people's source code is a good way to improve your understanding of VHDL and you can see what VHDL style works best for you.

     

    2.  Start with a working example (so you can generate a good VGA display) and add your own VHDL code to display characters.  Start with something simple like displaying the same character over and over (using a constant look-up table) indexed by VGA row and column.  Once that's working use a Block RAM containing a single character.  Then fill the Block RAM with the full character set and index it by VGA row and column to display the whole character set.

     

    IMO it's useful to learn from examples, and useful to parts of source code from examples with permission, but trying to get examples to work together "as is" can be a lot of work and frustration.

     

    JMO/YMMV

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 10 years ago in reply to johnbeetem

    I concur with your approach but still want to urge Narenda to use simulation - that way you can see every cycle, every bit, register etc etc. If he can write  a reasonable top level test bench he can compare designs in it too. If you don't have a scope or logic analyzer it's much easier than trying to debug hardware.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 10 years ago in reply to johnbeetem

    yes you both right..now i have start to look out simulation and as you said john i use the working vga synchronization circuit ...i am very very happy to say that i succeeded to display fix four row of 128 character on vga display fills amazing....and now i can go ahead thanks Michel and thanks john.imageimage   thanks pong.p.chu too..

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 10 years ago in reply to michaelkellett

    thanks..

    • Cancel
    • Vote Up 0 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 © 2026 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.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube