FPGA-101
FPGA Fundamentals
These are the fundamental concepts that are important to understand when designing FPGAs. If you have a solid grasp on these concepts, then FPGA design will come very easily for you!
-
Lesson 1: What is an FPGA? What is an ASIC?
-
Lesson 2: What is Digital Design?
-
Lesson 4: What is a Look-Up Table (LUT)?
-
Lesson 5: What is a Flip-Flop?
-
Lesson 6: Synthesizable vs. Non-Synthesizable Code
-
Lesson 8: What is a FIFO?
-
Lesson 9: What is a Latch?
-
Lesson 10: Tutorial: Shift Registers
-
Lesson 11: What is Propagation Delay?
-
Lesson 12: Setup and Hold Time
-
Lesson 13: Metastability
-
Lesson 14: Crossing Clock Domains
-
Lesson 15: What is a Block RAM (BRAM)?
How To Get A Job In FPGA
FPGA Advanced Concepts
These concepts are useful once you have mastered the above lessons and decided which language you would like to start coding in, VHDL or Verilog. I recommend reading through these articles so that you avoid making mistakes before they happen.
- What is a Testbench?
- How to avoid creating a Latch
- VHDL Math: std_logic_arith vs. numeric_std
- Coding Style Guidelines for VHDL & Verilog
- Blocking vs. Nonblocking in Verilog
- Create Tri-State Buffer in VHDL and Verilog