Useful Links
Computer Science
Software Engineering
FPGA Development
1. Introduction to FPGAs and Digital Logic
2. FPGA Architecture Fundamentals
3. Hardware Description Languages
4. The FPGA Design Flow
5. Simulation and Verification
6. Timing Constraints and Analysis
7. Advanced HDL Design Techniques
8. System-on-Chip FPGA Design
9. On-Chip Debugging and Practical Implementation
10. High-Level Synthesis
The FPGA Design Flow
Overview of the Toolchain
Vendor Toolchains
Xilinx Vivado
Intel Quartus Prime
Lattice Diamond
Microsemi Libero
Third-Party Tools
Synopsys Design Compiler
Cadence Genus
Design Flow Stages
Project Management
Design Entry
Writing HDL Code
Text Editors and IDEs
Syntax Highlighting
Code Templates
Schematic Capture
Graphical Design Entry
Symbol Libraries
IP Integrator Tools
Block Design Environment
IP Catalog
Custom IP Creation
Design Constraints Entry
Timing Constraints
Physical Constraints
Design Rule Constraints
Simulation and Functional Verification
Purpose of Simulation
Simulation Types
Behavioral Simulation
Post-Synthesis Simulation
Post-Implementation Simulation
Verifying Logic Before Synthesis
Writing Testbenches
Stimulus Generation
Manual Test Vectors
Automated Test Generation
Analyzing Waveforms
Debugging Simulation Results
Coverage Analysis
Synthesis
HDL to Netlist Translation
Logic Optimization
Boolean Optimization
Resource Sharing
Constant Propagation
Dead Code Elimination
Technology Mapping
LUT Mapping
DSP Inference
BRAM Inference
Resource Estimation
Synthesis Reports
Synthesis Constraints
Implementation
Placement
Assigning Logic to Physical Locations
Placement Algorithms
Placement Constraints
Floorplanning
Routing
Connecting Logic with Interconnects
Routing Algorithms
Routing Constraints
Congestion Analysis
Optimization
Timing-Driven Optimization
Power Optimization
Area Optimization
Timing Analysis
Static Timing Analysis
Setup Time Analysis
Hold Time Analysis
Clock Skew Analysis
Timing Reports
Worst Negative Slack
Total Negative Slack
Critical Path Reports
Verifying Performance Against Constraints
Identifying Timing Violations
Timing Closure Techniques
Power Analysis
Static Power Analysis
Dynamic Power Analysis
Power Optimization Techniques
Power Reports
Bitstream Generation
Creating the Final Configuration File
Bitstream Formats
Compression Options
Security and Encryption Options
Bitstream Encryption
Authentication
Partial Reconfiguration Bitstreams
Hardware Programming and Debugging
Programming Interfaces
JTAG
SPI
BPI
SelectMAP
Loading the Bitstream onto the FPGA
Configuration Modes
In-System Debugging
Logic Analyzers
Virtual I/O
Debug Cores
Hardware Validation
Board-Level Testing
Previous
3. Hardware Description Languages
Go to top
Next
5. Simulation and Verification