So having explained what a FPGA is I guess the next step for anyone wanting to learn more is which language to use? Should you select a Altera or Xilinx chip? This is where you may find yourself in the middle of many arguments and views as to which is the best, and the choice is typically a personal one.
VHDL was the first to come alone in 1980 and stands for ‘VHSIC Hardware Description Language’ (VHSIC stands for Very High Speed Integrated Circuits. No wonder we just call it VHDL!) The interesting element of its name and all others that program FPGAs etc is the Hardware Description Language. HDL is very different from normal computer programmes like C. In a computer you know that each instruction is taken in turn and compiled into a string of commands that a computer chews though. The result is the string of commands generates a result or action. However HDL languages don't generate a string of commands to be processed, but generate the device that will do some work. You could crudely say that HDL could describe a microprocessor and how it works and C is the commands it then processes.
VHDL is a very strict language and follows some of its influence from Pascal in style. It’s often described as the low level language that can be used to detail the operating of gates and the pure logic within the final project. Verilog, which came along four years after VHDL, however is very similar in style to C and often refered to as a more system level, ever so slightly higher level than VHDL. It’s not that these have very different agendas and you may find yourself using them both within one project but the style is different. I could spend weeks and many blogs telling you the differences and still not convince you one way or the other. Personally I use VHDL as I like the pureness of it and found coming from a hardware logic background the quickest to learn, I found my knowledge of C programming adapted quickly to it as well.
However others see this very differently. A good way to see what you like is to try it out or maybe look at a blog that is not focused on the languages but allows you to see the differences. Ray Salemi is currently writing a number of blogs that are looking at the programming of FPGAs and I recommend reading though them and seeing the styles before jumping in and making a choice.
One of the next choices to make is the chip and IDE to use. I started out a long time ago in the field using ADHL (Altera HDL) on MAX3000EEUP+ and 7000 CPLDs. This allowed for simple schematic capture like programming - I just created the logic gates and counters etc in a drawing package. At the top level IDEs still have this function as well as working with VHDL and Verilog. However I have found that the chip I use or favor is normally because of the IDE, not the chip’s features alone. While only talking about the top two, Altera and Xilinx both have great IDEs. However my experience is that once people pick one, they stay there. Learning these IDEs is no simple task, you’re not only learning a new language but whole new way of programming and thinking. I have always been a fan of Altera and I like the fact you can get low-ish cost JTAG programming interfaces (don't worry, I’ll explain another time) but then I have found Xilinx to be the better IDE to simulate and test your projects in. Personally if I was starting out again I would suggest Xilinx but be prepared to switch or use both.
Your choice however could be made by the Development kits. There are some great kits about and in my view there are two that stand out. The terasIC DE0-Nano is powered by a Altera Cyclone IV chip and is in my view the best priced product out there. You get a lot of gates and add-ons for a very good price. On the other hand the XuLA-200 which may look simple is actually a fantastic first Xilinx development kit that allows total flexibility in what you can add on and design.
Unfortunately the choice is going to be yours alone and I can only recommend you spend lots of time reading blogs. To help with this next time I’ll be looking at a range of development kits that I have used over the last year. Both Altera and Xilix based and hopefully it will help you in making that choice.