Newbie : Please give me an idea about programming an FPGA

Hi everyone,

I am new to the FPGA, and would like to know more about how we can program an FPGA to do a complex task.

Please suggest the steps or any website relevant to this which aids in studying.

Thanks to all in advance

Reply to
leeaby
Loading thread data ...

  1. If you haven't done so already, learn a design language (VHDL and Verilog come to mind).
  2. If you haven't done so already, learn how to use a simulator for the above chosen language.
  3. If you haven't done so already, learn how to use a synthesis tool which turns code written in the above chosen language into a file that you'll download into the FPGA.
  4. Code up your 'complex task' in the above chosen language.
5a. Simulate the code to make sure that it is functioning how you want it to. 5b. Run the code through the synthesis tool every now and then just to make sure that the code you are writing and debugging is synthesizable.
  1. Once simulation is nearly complete, run it through the synthesis tool to get timing numbers. If they are not acceptable go back to step 4 and rewrite it in such a way that the timing performance numbers have been met.
  2. Keep going back to step 4 until the simulation says that you've implemented what you intended....only then can you continue on to #8.
  3. Synthesize the code one last time to produce the bitstream to load into the FPGA.
  4. Load the bitstream into the FPGA which is presumably on a board that has the necessary input and output connections to meet the needs of your 'complex task'.
  5. If the end result doesn't work as intended, debug to find out why. Then beef up your simulation testbench to catch this type of problem. Verify in simulation that you can recreate the problem. Go back to step #4 and figure out what the fix is.

KJ

Reply to
KJ

Both Xilinx

formatting link
and Altera
formatting link
offer 'web-pack' versions of their commercial software. If you haven't already, pick a vendor and down load the free version and work through the tutorials.

Derek

snipped-for-privacy@gmail.com wrote:

Reply to
Derek Simmons

What a lesson, that's a good one! But I think you missed step 11:

  1. make your 'complex task' working with something else's 'complex task' and if not...let's step back to #4 alltogether!!

Al

KJ wrote:

--
Alessandro Basili
CERN, PH/UGC
Hardware Designer
Reply to
Al

I meant someone else's 'complex task'!!

--
Alessandro Basili
CERN, PH/UGC
Hardware Designer
Reply to
Al

You should probably start by realizing that "programming" the FPGA is actually digital logic design. I hate the word "program" when it is associated with FPGA design because it leads folks to think that developing an FPGA application is similar to developing a computer program. It is not, and if you attempt to treat it as if it was, you will have a difficult time getting your design working reliably.

With that in mind, the first step is to try to envision the logic circuit that would accomplish your desired task, then use whatever tools you are most comfortable with to capture that design, simulate it and then synthesize it to the FPGA hardware. The FPGA vendors for the most part have free or low cost tools to do all of that for smaller FPGAs.

Reply to
Ray Andraka

As noted, FPGAs realise hardware in a programmable way [although one might say processors do that, merely one step at a time ;)]

That said, some decent resources on hardware would help. If you have not used a schematic capture tool, get one and use it. KiCad is free and works well. You'll learn about netlists and all those other fun things in the hardware world, to say nothing of connecting basic functions together to do something interesting.

For HDL languages in books, there are a lot of resources, but I like HDL Chip design by Douglas J. Smith 0-9651934-3-8. Covers both Verilog and VHDL in a neutral way, and an excellent book for a beginner. Of course, as always, google is your friend.

As to the thread about 'debug someone else's complex design' - that was actually the way I started in FPGAs :)

Cheers

PeteS

Reply to
PeteS

Some useful links for getting started in FPGAs off our webpage

formatting link
Also look at the parent page for TechiTips as there may be a couple of other items there that might be of interest although most things on that page are more advanced.

John Adair Enterpo> Hi everyone,

Reply to
John Adair

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.