I want to start developing with a FPGA and I have no idea about them. I have found a Xilinx-spartan-6-FPGA but I'm not sure if it is a good choice to start learning with.

Any advice?

This question is not a shopping recommendation, it is more about with which FPGA I can start to learn.

I want to start with a real one, not with a simulator. This is why I've asked it a Xilinx-spartan-6-FPGA is a good one to start.


closed as too broad by Michael Karas, Matt Young, Marcus Müller, DoxyLover, Voltage Spike Jan 29 '17 at 0:51

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    \$\begingroup\$ You don't need an FPGA to start with. You need to learn about digital electronics (if you haven't already), logic circuit design, state machine design, and so forth. Then you will need to learn to program with a HDL (hardware description language) such as Verilog. Everything that can be done on an FPGA can be done in simulation software like ModelSim. \$\endgroup\$ – Tom Carpenter Jan 28 '17 at 15:22
  • \$\begingroup\$ Also this board is very expensive compared to the mojo, papilio or mimas FPGAs which are suitable for beginners and they have well documented tutorials that will help you to start \$\endgroup\$ – Elbehery Jan 28 '17 at 15:35
  • \$\begingroup\$ Disagree with @TomCarpenter, people don't develop an interest in something they'll enjoy and pursue by doing months of dry classroom studying first. The answer below recommends good things. Strongly recommend VHDL over Verilog but depends on which country you're in as to which is a better professional prospect. Look at an Altera DE0 or iCEStick. Avoid state machines, overuse leads to lazy unclear design. Get a demo design up and enjoy learning by doing for a while. The formal learning will come in time if you take to it. \$\endgroup\$ – TonyM Jan 28 '17 at 19:02
  • \$\begingroup\$ What topics can I ask about here? ...if your question generally covers …and it is not about …a shopping or buying recommendation \$\endgroup\$ – user8352 Jan 28 '17 at 19:34
  • \$\begingroup\$ @TonyM While I agree that over-use of state machines is bad, there are many complex structures which are far clearer and easier to follow when in a state machine format, and in any case blindly ignoring them is not a good idea as you will inevitably meet them. \$\endgroup\$ – Tom Carpenter Jan 28 '17 at 22:28

The development board you linked to is for a Xilinx Spartan 6 FPGA. I have successfully used that FPGA family on a variety of projects.

Xilinx was one of the first companies to commercialize FPGAs. Xilinx has the largest market share of all the FPGA manufacturers. So if you learn with Xilinx FPGAs you will be learning what most people are using.

Xilinx currently supports two sets of development tools. ISE (which is their older tool), and their newer tool Vivado. Licenses for the full version of either tool cost thousands of dollars. But they offer a free web-pack version of their tool which supports most of their devices. When picking any FPGA you should check that the development tools are affordable.

You can get Vivado here...


You can get ISE here...


The Spartan-6 is however old technology by now. Xilinx has already moved on to the 7-series FPGA line. I believe that the Spartan-6 is not supported by Vivado. You can still use ISE-web-pack to do your development, but you won't have all the new features in Vivado.


The Spartan series is the lowest end FPGA offered by Xilinx. The XC6SLX9 is the second smallest member of that family in terms of logic cells. It contains 1430 slices. On Xilinx parts a slice usually consists of lookup tables, flip flops, and some miscellaneous glue logic. 1430 slices is only enough to support smaller projects. In contrast the 150T (the largest member of the Spartan 6 family) has 23,038 slices.

The Spartan-6 has a 6-input one output lookup-table as its main logic element.

It can achieve clock rates in the 100s of MHz range for most designs if they are implemented efficiently.

It has 18bit x 18bit hardware multipliers which are good if you plan on doing any math that involves multiplication. Specifically, you can write VHDL statements like Y <= A * B directly rather than having to build your own multiply routines from scratch.

The Spartan-6 includes 18k-bit block RAM elements which are useful for storing large amounts of data. FPGAs that do not include block rams must build distributed RAMs out of logic slice resources, which is very expensive in terms of area. The LX9 has 90 K-bits of block ram available.


Not the answer you're looking for? Browse other questions tagged or ask your own question.