Learning FPGA programming does not have to be a great deal since most of the skills are not similar to normal programming apart from that the fact that Verilog punctuation looks somewhat like C programming language. In this manner, it is difficult to really narrow down to the exact starting point where someone should start when intending to learn FPGA programming. There are different published notes on how or where to begin but highlighted below is the basic starting point for anyone who wants to learn FPGA programming.
- Start By Learning The Basics
Disregard everything you know or have heard about programming and software development. Particularly programming languages. Those standards don’t make a difference in digital design. It presumably would be simple for a person who has coded a CPU to program it in a component or even C, however, a software engineer won’t have the capacity to design a CPU.
On your learning curve, you should not have a tendency to comprehend what appears to be a simple issue with your learned knowledge from programming. Despite the fact that you can a loop, say, Verilog it serves a different need. It is for the most part used for code development. It might also be a loop as programming engineers see it, however, it won’t be useful for anything other than recreation (i.e. you won’t have the capacity to program FPGA using the same structure and flow).
So for each task, you need to handle, don’t think you know how to do it based on previous programming knowledge buy instead do your research and make reference to checkbooks, illustrations, and also get to learn from more experienced individuals.
- Learn HDL And Hardware Languages
The most well-known HDL languages are VHDL and Verilog. There are other commercially available ones like AHDL also known as Altera HDL. Since the languages are used to describe hardware components, they are on the whole basically used to express a similar thing in a comparative design yet with an alternate language structure.
A few people recommend learning Verilog in light of the fact that it would appear similar to C. Indeed, its language structure is a blend of C and Ada yet it doesn’t make it simple for a product designer to lean. Truth be told, it might even exacerbate it in light of the fact that there will be a compulsion to compose C in Verilog. That is a decent formula for having a terrible time. Having that as a top priority, it is recommended that you start by learning VHDL. Despite the fact that Verilog is also essential as long as the above pointers are considered. One essential thing to remember is that you should comprehend what you are communicating with that programming language. What sort of equipment is being described and how it works.
Consequently, you should strive to get yourself some books on hardware when all is said in done and an example of a decent book would be the HDL Chip Design Books also known as the Bluebook.
- Purchase A Decent Computer
Any X86 PC will be sufficient, yet in the event that you get ready for some bigger designs, you should use an Intel Core Duo-equipped computer. Using a MacBook with an Intel Core 2 Duo processor running at 2 GHz should give satisfactory results as well, but you might need to use and an external screen for a larger image output.
- Choose Your Operating System
There are two available options.
- a) You can use UNIX operating framework such as Solaris in the event that you have a SPARC workstation from SUN.
- b) You can use Windows XP or Linux on an X86 PC.
- Choose Your FPGA vendor
The two key FPGA vendors are Xilinx and Altera get them http://www.directics.com/fpga-board/ The two platforms in a way offer different experiences and your choice will be determined by the expected end results as well and the availability of other associated accessories within your reach. You might also consider your computer specifications and the processor speed might be determined by the base computer system components.
- Get A Simulator
Before you begin doing anything to do with hardware and using any Vendor-particular features, you must make it a top priority to get yourself a simulator. Most people opt to begin with a Verilog and use Icarus Verilog alongside GTK Wave. Those are free open-source platforms readily available online. Run and test the illustrations you will find in books, rehearse by outlining your own circuits to get some grip on how the circuits function.
- Get An Advancement Board
When you crave going ahead, get an improvement board. In the event that you realize that your employer or potential employer might require using Lattice, then at that point get a Lattice board.
The programming strategies are fundamentally the same as, yet there are subtle elements that are extraordinary. For instance, different options, different tools, and different interfaces. More often than not, in the event that you have a past experience with one vendor. it will not be difficult for you to switch to a new or different one. The ultimate goal is to learn as much as you can and be able to design and deploy different solutions while maximizing the earned knowledge and skills.
You should also ensure that the chosen board integrates different components that may be required and essential for several applications and should be extendable. For instance, on the off chance that you need to design system gadgets like switches or routers, ensure the board has Ethernet PHY or it can be reached out through, say, an HSMC connector. In most cases, the boards are always sold with a broad instruction guide which should be very helpful in learning the basics of FPGA programming.
Keep your knowledge up to date by continuously reading relevant books and testing out as many boards as you are able to get hold of, add different components on your boards and test will different accessories such as LEDs and switched.