If you’ve just been given an FPGA board as a gift, then you may be finding yourself confused. A programmable FPGA board is a versatile, fun and exciting tool – but what do you actually do with it? There are so many options out there – you have, quite literally, been given a blank slate, or a set of incredibly sophisticated building blocks. What you do with it is up to you.
An FPGA board can be programmed using a hardware description language – usually something like Verilog or VHDL. You can do a lot with a board – from making an 8-bit computer to making a traffic light system with a finite state machine. Indeed, if you have a machine that has VGA output, then you could try programming a game. It’s possible to make Pong on an FPGA – and this is a great way to learn about all the different parts of the FPGA. Let’s break down how you would make Pong (or any other simple game).
Firstly, you need to learn how to get the screen to display a color. Then you need to figure out how to display on specific areas of the screen, and show sprites. Once you have that, you need to make the sprites move, and apply logic to track the location of the sprites and to alter their direction and velocity based on if the collide with the edge of the screen or with each other.
Now, you need to process input by reading from the switches, and link the behavior of one of the sprtes ot the input. From there, you would need to add a scoring system. It is possible to do all of those things on even most basic learner FPGAs – but fitting the logic into the available space is a challenge. If you’re someone who has only ever played with a modern beginner-level programming language such as Visual Basic, then having to get so bare-bones with your code will be quite a surprise. Using an FPGA in texas instruments components will teach you a lot about computer systems, and will teach you how to code in a way that you may not have appreciated before. Even if you don’t go into engineering full time, you’ll take a lot away from the experiment, and think twice about wasted memory and overly spaghetti logic!