5 Essential Skills Every FPGA Designer Must Master

In the book ‘The Legend of Tong Lin’, Tong Lin practiced the basics of ‘circling a big tree and untying a rope’ before mastering skills like ‘ghostly shadows following’ and ‘willow leaf soft palm’.

In my opinion, to become a competent FPGA designer, one must master five essential skills: simulation, synthesis, timing analysis, debugging, and verification.

It is important to emphasize that these essential skills are for FPGA designers, not for IC designers. I do not understand IC design, so I dare not speak recklessly.

For FPGA designers, mastering these five essential skills is a process that corresponds with effectively using the relevant EDA tools as follows:

1. Simulation: Modelsim, Quartus II (Simulator Tool)

2. Synthesis: Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner)

3. Timing: Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner)

4. Debugging: Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor)

5. Verification: Modelsim, Quartus II (Test Bench Template Writer)

Mastering HDL languages is not everything in FPGA design, but the influence of HDL languages permeates the entire FPGA design process and complements the five essential skills for FPGA design.

For FPGA designers, effectively using the ‘synthesizable subset of HDL languages’ can accomplish 50% of the FPGA design work—design coding.

Mastering the three essential skills of simulation, synthesis, and timing analysis can aid in learning the ‘synthesizable subset of HDL languages’ in the following ways:

1. Through simulation, one can observe the logical behavior of HDL languages in FPGA.

2. Through synthesis, one can observe the physical realization of HDL languages in FPGA.

3. Through timing analysis, one can analyze the physical realization characteristics of HDL languages in FPGA.

For FPGA designers, effectively using the ‘verification subset of HDL languages’ can accomplish another 50% of the FPGA design work—debugging and verification.

1. Establish a verification environment, and through simulation, one can verify the correctness of the FPGA design.

2. Comprehensive simulation verification can reduce the workload of FPGA hardware debugging.

3. Combining hardware debugging with simulation verification methods, using debugging to solve issues not verified by simulation, and using simulation to ensure that resolved issues do not reappear in debugging, can establish a regression verification process, aiding in the maintenance of FPGA design projects.

These five essential skills for FPGA designers are not isolated; they must be used in conjunction to complete a complete FPGA design process. Conversely, completing a complete design process is the most effective way to practice these five essential skills. Once there is a preliminary understanding of these five essential skills, one can delve deeper into each skill and then apply the knowledge gained to the complete design process. By repeating this process, one can gradually improve their design level. By adopting this gradual and spiral approach, one can self-learn and self-improve as long as they have received basic training.

The books available on FPGA design often introduce each aspect of FPGA design separately to ensure structural integrity. Although each aspect is covered in depth, due to the lack of support from other related aspects, it is difficult for readers to put it into practice; only by reading the entire book can they gain a holistic understanding of FPGA design. Such books are not suitable as engineering training guides but can serve as reference books for advancing in specific areas. How to use existing books for self-study is another topic.

For newly hired employees, they often have a preliminary understanding of the overall FPGA design process, and some aspects of the five essential skills may be quite solid. However, due to a lack of capability in one or several aspects, their ability to independently complete the entire design process is limited. The purpose of onboarding training is to help them master the overall design process, cultivate their ability to acquire information independently, and through repeated training in several design processes, form a positive cycle of self-promotion and self-development. In this process, as their understanding of the breadth and depth of the knowledge involved in their work becomes clearer, the confidence of new employees will gradually increase, and their personal development direction will also become clearer, allowing them to actively participate in engineering projects.

Leave a Comment