For an FPGA beginner, how to choose a certain series of products of a company as the basis for learning? This is a problem, but it is not the most important one. When beginners learn FPGA, the first problem to be solved is to master the basic knowledge of digital circuit technology, and then to master the hardware description language (Verilog or VHDL). As for the FPGA chip itself, it is just a carrier. When you master the essence of FPGA design and need to use a certain type of FPGA from a certain manufacturer, you only need to do some understanding of the type of FPGA of this manufacturer. The basis of the design is still the same. Most of the experience can be applied.
Choose an FPGA chip from a mainstream company: At present, the mainstream in China is Xilinx and Altera (Intel). The most convenient way to obtain information is the official websites of these manufacturers (https://china.xilinx.com/). Under normal circumstances, the official website will list all products according to product series or application occasions, and intuitively tell you the application occasions of a certain series of products. For example, the ALTERA website, will indicate its three major types of FPGA products, the high-end Stratix series, the mid-range Arria series, and the low-cost Cyclone series.
1) Xilinx’s mainstream FPGAs are divided into two categories. One focuses on low-cost applications with medium capacity and performance that can meet general logic design requirements, such as the Spartan series; the other focuses on high-performance applications with large capacity and performance. Meet various high-end applications, such as the Virtex series.
2) Altera's mainstream FPGAs are divided into two categories, one focuses on low-cost applications, with a medium capacity, and performance that can meet general logic design requirements, such as the Cyclone series; the other focuses on high-performance applications, with large capacity and performance that can meet Various high-end applications, such as the Startix series.
Users can choose according to their actual application requirements. When the performance can be met, low-cost devices are preferred. For beginners, I recommend choosing Xilinx's Spartan series or Altera's Cyclone series.
1) For the Cyclone series: It is recommended to choose the Cyclone IV E series. Because Cyclone IV E has many learning resources, for example, the black gold FPGA development board Cyclone IV EP4CE15 has a complete set of videos and a series of learning pens "Things about FPGAs". The community forums corresponding to the Black Gold Development Board are Black Gold Power Community. The Black Gold Power Community also has Xilinx's spartan6 series development boards. In addition, Huaqing Vision, a training organization on the market, also uses Cyclone products. Mingde FPGA training institutions also have Cyclone series and spartan6 series development boards and learning resources.
From the above picture, it is advisable to choose a series that is not very old or very new for learning. It is recommended to choose Cyclone IV. Cyclone IV is divided into Cyclone IV E and Cyclone IV GX (the detailed difference between the two can be viewed on the official website if you are interested). Check the on-chip resources on the official website as shown in the figure below, and you can check it when selecting the chip.
2) For Xilinx's spartan series: Spartan 6 is recommended. The reasons for the selection are as follows:
Similar to Cyclone IV being divided into Cyclone IV E and Cyclone IV GX, spartan-6 is also divided into spartan-6 LX series and spartan-6 LXT series.
From the above figure, according to the principle of whether the resources are sufficient, you can choose a moderate on-chip resource, such as XC6SLX45. If the requirements for on-chip resources are not so large, you can also choose XC6SLX16. Try not to choose XC6SLX4 or XC6SLX9, because too few resources are not conducive to Later expansion. The above are some of my suggestions for beginners to choose FPGA.
1. On-chip resources are mainly based on the information given in Table 1. Choose the appropriate on-chip resources according to the size of the design. This is a parameter that is more difficult to determine. It is difficult to determine how big the design is and how much on-chip resources are needed. A more recommended way is to first synthesize the previous design and map it to a certain chip to see how much on-chip resources need to be taken up, then evaluate the new design to be done and the previous size, and get the required on-chip after conversion. The number of resources. Another way is to complete the new design first, directly synthesize it and map it to different types of chips, and then evaluate which type of chip is suitable. Another point to note is that you cannot choose a chip with just enough on-chip resources, and you must leave a certain margin to facilitate the correction and upgrade of later design errors.
2. When choosing a package, there are two main considerations. The first is the number of available I/O ports. The second is the size of the package. The number of I/Os is a necessary condition, and we must first filter out the available chips based on this condition. Then, among the selected chips, the appropriate chip is selected according to the package type, size, and pitch size. When the package size meets the requirements, try to choose a package that is conducive to PCB design and production. For example, if there are TQFP packaged chips and the size meets the needs of the project, then do not choose BGA packages. For BGA packaged chips, if there is a pitch of 1.0mm that can meet the requirements, do not choose a pitch of 0.5mm. This directly affects the difficulty of PCB design, manufacturing cost, and yield.
3. Speed grade, speed grade is a relatively independent parameter. It is necessary to compare the highest operating frequency that can be synthesized by the actual design with the required operating frequency, and try to choose a chip with a slower speed level. When all the speed grades cannot meet the needs, it is more necessary to increase the maximum operating frequency that the design itself can achieve from the perspective of optimized design.